.tag{background-color:#f4f4f4;border:1px solid #e9e9e9;padding:2px 0 2px 2px;border-radius:2px;display:inline-block}.tag:focus-within{background-color:#e9e9e9;border-color:#a0a0a0}.tag-remove{color:#a0a0a0;font-size:75%;line-height:100%;cursor:pointer;background-color:transparent;border:none;outline:none}.tag-remove.disabled,.tag-remove.readOnly{cursor:not-allowed}.tag-remove:focus{color:#3c3c3c}.node>label{cursor:pointer;margin-left:2px}.tag-list{display:inline;padding:0;margin:0}.tag-item{display:inline-block;margin:4px}.tag-item .search{border:none;border-bottom:1px solid #ccc;outline:none}.tag-item:last-child{margin-right:4px}.node{list-style:none;white-space:nowrap;padding:4px}.node.leaf.collapsed{display:none}.node.disabled>*{color:gray;cursor:not-allowed}.node.match-in-children.hide .node-label{opacity:.5}.node.focused{background-color:#f4f4f4}.toggle{white-space:pre;margin-right:4px;cursor:pointer}.toggle:after{content:" "}.toggle.collapsed:after{content:"+"}.toggle.expanded:after{content:"-"}.searchModeOn .toggle{display:none}.checkbox-item,.radio-item{vertical-align:middle;margin:0 4px 0 0}.checkbox-item.simple-select,.hide:not(.match-in-children),.radio-item.simple-select{display:none}.react-dropdown-tree-select .dropdown{position:relative;display:table}.react-dropdown-tree-select .dropdown .dropdown-trigger{padding:4px;line-height:20px;max-height:200px;display:inline-block;overflow:auto;border:1px solid #b9b9b9}.react-dropdown-tree-select .dropdown .dropdown-trigger.arrow{cursor:pointer}.react-dropdown-tree-select .dropdown .dropdown-trigger.arrow.bottom:after{content:"\25BC";vertical-align:middle;color:#3c3c3c;margin-right:2px}.react-dropdown-tree-select .dropdown .dropdown-trigger.arrow.top:after{content:"\25B2";vertical-align:middle;color:#3c3c3c;margin-right:2px}.react-dropdown-tree-select .dropdown .dropdown-trigger.arrow.disabled{cursor:not-allowed}.react-dropdown-tree-select .dropdown .dropdown-trigger.arrow.disabled.bottom:after{color:#b9b9b9}.react-dropdown-tree-select .dropdown .dropdown-content{position:absolute;padding:4px;z-index:1;background:#fff;border-top:1px solid rgba(0,0,0,.05);-webkit-box-shadow:0 5px 8px rgba(0,0,0,.15);box-shadow:0 5px 8px rgba(0,0,0,.15)}.react-dropdown-tree-select .dropdown .dropdown-content .search{width:100%;border:none;border-bottom:1px solid #ccc;outline:none}.react-dropdown-tree-select .dropdown .dropdown-content ul{margin:0;padding:0}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker__year-read-view--down-arrow{margin-left:-8px;position:absolute}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow:before,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow:before,.react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view--down-arrow:before{-webkit-box-sizing:content-box;box-sizing:content-box;position:absolute;border:8px solid transparent;height:0;width:1px}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before,.react-datepicker__month-read-view--down-arrow:before,.react-datepicker__month-year-read-view--down-arrow:before,.react-datepicker__year-read-view--down-arrow:before{content:"";z-index:-1;border-width:8px;left:-8px;border-bottom-color:#aeaeae}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{top:0;margin-top:-8px}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle,.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before{border-top:none;border-bottom-color:#f0f0f0}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle:before{top:-1px;border-bottom-color:#aeaeae}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker__year-read-view--down-arrow{bottom:0;margin-bottom:-8px}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow:before,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow:before,.react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view--down-arrow:before{border-bottom:none;border-top-color:#fff}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle:before,.react-datepicker__month-read-view--down-arrow:before,.react-datepicker__month-year-read-view--down-arrow:before,.react-datepicker__year-read-view--down-arrow:before{bottom:-1px;border-top-color:#aeaeae}.react-datepicker,.react-datepicker-wrapper{display:inline-block}.react-datepicker{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.8rem;background-color:#fff;color:#000;border:1px solid #aeaeae;border-radius:.3rem;position:relative}.react-datepicker--time-only .react-datepicker__triangle{left:35px}.react-datepicker--time-only .react-datepicker__time-container{border-left:0}.react-datepicker--time-only .react-datepicker__time,.react-datepicker--time-only .react-datepicker__time-box{border-radius:.3rem}.react-datepicker__triangle{position:absolute;left:50px}.react-datepicker-popper{z-index:1}.react-datepicker-popper[data-placement^=bottom]{margin-top:10px}.react-datepicker-popper[data-placement^=top]{margin-bottom:10px}.react-datepicker-popper[data-placement^=right]{margin-left:8px}.react-datepicker-popper[data-placement^=right] .react-datepicker__triangle{left:auto;right:42px}.react-datepicker-popper[data-placement^=left]{margin-right:8px}.react-datepicker-popper[data-placement^=left] .react-datepicker__triangle{left:42px;right:auto}.react-datepicker__header{text-align:center;background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:.3rem;border-top-right-radius:.3rem;padding-top:8px;position:relative}.react-datepicker__header--time{padding-bottom:8px;padding-left:5px;padding-right:5px}.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__year-dropdown-container--select{display:inline-block;margin:0 2px}.react-datepicker-time__header,.react-datepicker__current-month{margin-top:0;color:#000;font-weight:700;font-size:.944rem}.react-datepicker-time__header{-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.react-datepicker__navigation{background:none;line-height:1.7rem;text-align:center;cursor:pointer;position:absolute;top:10px;width:0;padding:0;border:.45rem solid transparent;z-index:1;height:10px;width:10px;text-indent:-999em;overflow:hidden}.react-datepicker__navigation--previous{left:10px;border-right-color:#ccc}.react-datepicker__navigation--previous:hover{border-right-color:#b3b3b3}.react-datepicker__navigation--previous--disabled,.react-datepicker__navigation--previous--disabled:hover{border-right-color:#e6e6e6;cursor:default}.react-datepicker__navigation--next{right:10px;border-left-color:#ccc}.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:80px}.react-datepicker__navigation--next:hover{border-left-color:#b3b3b3}.react-datepicker__navigation--next--disabled,.react-datepicker__navigation--next--disabled:hover{border-left-color:#e6e6e6;cursor:default}.react-datepicker__navigation--years{position:relative;top:0;display:block;margin-left:auto;margin-right:auto}.react-datepicker__navigation--years-previous{top:4px;border-top-color:#ccc}.react-datepicker__navigation--years-previous:hover{border-top-color:#b3b3b3}.react-datepicker__navigation--years-upcoming{top:-4px;border-bottom-color:#ccc}.react-datepicker__navigation--years-upcoming:hover{border-bottom-color:#b3b3b3}.react-datepicker__month-container{float:left}.react-datepicker__month{margin:.4rem;text-align:center}.react-datepicker__time-container{float:right;border-left:1px solid #aeaeae;width:70px}.react-datepicker__time-container--with-today-button{display:inline;border:1px solid #aeaeae;border-radius:.3rem;position:absolute;right:-72px;top:0}.react-datepicker__time-container .react-datepicker__time{position:relative;background:#fff}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{width:70px;overflow-x:hidden;margin:0 auto;text-align:center}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{list-style:none;margin:0;height:calc(195px + 0.85rem);overflow-y:scroll;padding-right:30px;width:100%;-webkit-box-sizing:content-box;box-sizing:content-box}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{padding:5px 10px}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{cursor:pointer;background-color:#f0f0f0}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{background-color:#216ba5;color:#fff;font-weight:700}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover{background-color:#216ba5}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled{color:#ccc}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover{cursor:default;background-color:transparent}.react-datepicker__week-number{color:#ccc;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:.166rem}.react-datepicker__week-number.react-datepicker__week-number--clickable{cursor:pointer}.react-datepicker__week-number.react-datepicker__week-number--clickable:hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__day-names,.react-datepicker__week{white-space:nowrap}.react-datepicker__day,.react-datepicker__day-name,.react-datepicker__time-name{color:#000;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:.166rem}.react-datepicker__day{cursor:pointer}.react-datepicker__day:hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__day--today{font-weight:700}.react-datepicker__day--highlighted{border-radius:.3rem;background-color:#3dcc4a;color:#fff}.react-datepicker__day--highlighted:hover{background-color:#32be3f}.react-datepicker__day--highlighted-custom-1{color:#f0f}.react-datepicker__day--highlighted-custom-2{color:green}.react-datepicker__day--in-range,.react-datepicker__day--in-selecting-range,.react-datepicker__day--selected{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__day--in-range:hover,.react-datepicker__day--in-selecting-range:hover,.react-datepicker__day--selected:hover{background-color:#1d5d90}.react-datepicker__day--keyboard-selected{border-radius:.3rem;background-color:#2a87d0;color:#fff}.react-datepicker__day--keyboard-selected:hover{background-color:#1d5d90}.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range){background-color:rgba(33,107,165,.5)}.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range){background-color:#f0f0f0;color:#000}.react-datepicker__day--disabled{cursor:default;color:#ccc}.react-datepicker__day--disabled:hover{background-color:transparent}.react-datepicker__input-container{position:relative;display:inline-block}.react-datepicker__month-read-view,.react-datepicker__month-year-read-view,.react-datepicker__year-read-view{border:1px solid transparent;border-radius:.3rem}.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover,.react-datepicker__year-read-view:hover{cursor:pointer}.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow{border-top-color:#b3b3b3}.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow,.react-datepicker__year-read-view--down-arrow{border-top-color:#ccc;float:right;margin-left:20px;top:8px;position:relative;border-width:.45rem}.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown,.react-datepicker__year-dropdown{background-color:#f0f0f0;position:absolute;width:50%;left:25%;top:30px;z-index:1;text-align:center;border-radius:.3rem;border:1px solid #aeaeae}.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover,.react-datepicker__year-dropdown:hover{cursor:pointer}.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable,.react-datepicker__year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__month-option,.react-datepicker__month-year-option,.react-datepicker__year-option{line-height:20px;width:100%;display:block;margin-left:auto;margin-right:auto}.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type,.react-datepicker__year-option:first-of-type{border-top-left-radius:.3rem;border-top-right-radius:.3rem}.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type,.react-datepicker__year-option:last-of-type{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover,.react-datepicker__year-option:hover{background-color:#ccc}.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:#b3b3b3}.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous{border-top-color:#b3b3b3}.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected,.react-datepicker__year-option--selected{position:absolute;left:15px}.react-datepicker__close-icon{background-color:transparent;border:0;cursor:pointer;outline:0;padding:0;vertical-align:middle;position:absolute;height:16px;width:16px;top:25%;right:7px}.react-datepicker__close-icon:after{background-color:#216ba5;border-radius:50%;bottom:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;content:"\D7";cursor:pointer;font-size:12px;height:16px;width:16px;line-height:1;margin:-8px auto 0;padding:2px;position:absolute;right:0;text-align:center}.react-datepicker__today-button{background:#f0f0f0;border-top:1px solid #aeaeae;cursor:pointer;text-align:center;font-weight:700;padding:5px 0;clear:left}.react-datepicker__portal{position:fixed;width:100vw;height:100vh;background-color:rgba(0,0,0,.8);left:0;top:0;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;z-index:2147483647}.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__time-name{width:3rem;line-height:3rem}@media (max-height:550px),(max-width:400px){.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__time-name{width:2rem;line-height:2rem}}.react-datepicker__portal .react-datepicker-time__header,.react-datepicker__portal .react-datepicker__current-month{font-size:1.44rem}.react-datepicker__portal .react-datepicker__navigation{border:.81rem solid transparent}.react-datepicker__portal .react-datepicker__navigation--previous{border-right-color:#ccc}.react-datepicker__portal .react-datepicker__navigation--previous:hover{border-right-color:#b3b3b3}.react-datepicker__portal .react-datepicker__navigation--previous--disabled,.react-datepicker__portal .react-datepicker__navigation--previous--disabled:hover{border-right-color:#e6e6e6;cursor:default}.react-datepicker__portal .react-datepicker__navigation--next{border-left-color:#ccc}.react-datepicker__portal .react-datepicker__navigation--next:hover{border-left-color:#b3b3b3}.react-datepicker__portal .react-datepicker__navigation--next--disabled,.react-datepicker__portal .react-datepicker__navigation--next--disabled:hover{border-left-color:#e6e6e6;cursor:default}.customCheckbox .ant-checkbox-inner{background:-webkit-linear-gradient(45deg,#dfdfdf,#d7d3d2);background:-o-linear-gradient(45deg,#dfdfdf,#d7d3d2);background:linear-gradient(45deg,#dfdfdf,#d7d3d2);border:2px solid #ddd6d6;border-radius:5px;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.customCheckbox .ant-checkbox-checked .ant-checkbox-inner{background:-webkit-linear-gradient(45deg,#1890ff,#1890ff);background:-o-linear-gradient(45deg,#1890ff,#1890ff);background:linear-gradient(45deg,#1890ff,#1890ff);border-color:#3bb2b8;-webkit-box-shadow:0 4px 6px rgba(0,0,0,.2);box-shadow:0 4px 6px rgba(0,0,0,.2)}.customCheckbox .ant-checkbox:hover .ant-checkbox-inner{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.visually-hidden:not(:focus):not(:active){position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;white-space:nowrap;clip-path:inset(100%);clip:rect(0 0 0 0);overflow:hidden}.center-all{align-content:center}.DiscoverAndList .DiscoveryDropZone{border:none;outline:none;padding:4px;height:100%;width:100%;resize:none}.DiscoverAndList .DiscoveryDropZone:focus{outline:none}.DiscoverAndList .DiscoveryDropZone::placeholder{width:100;padding:20px 30px;height:48px;font-size:12px;font-weight:400;font-style:normal;font-stretch:normal;letter-spacing:normal;text-align:center;color:#a2adc4}.DiscoverAndList .qListWrapper{width:100%;height:100%;display:flex;justify-content:center}.DiscoverAndList .qListWrapper .qList{display:flex;justify-content:flex-start;flex-direction:column;margin-top:20px;width:86%;height:100%}.DiscoverAndList .discoverInputsWrapper{padding-left:8%;height:100%;flex-direction:column;justify-content:space-evenly}.DiscoverAndList .discoverInputsWrapper,.DiscoverAndList .discoverInputsWrapper .discoverInputs{display:flex;align-items:center;background-color:transparent;width:100%}.DiscoverAndList .discoverProgressContainer{height:124px;padding:25px 0 16px;background-color:#fafbfe}.DiscoverAndList .ant-form-explain{margin-top:-10px!important}.discoverHeaderTitle{min-width:125px;height:27px;margin-left:86px;margin-right:27px;font-family:Stolzl-Medium;font-size:18px;font-weight:500;font-style:normal;font-stretch:normal;line-height:1.56;letter-spacing:normal;text-align:left;color:#3f435c}.spaceShip-appear{opacity:.01}.spaceShip-appear.spaceShip-appear-active{opacity:1;transition:opacity .5s ease-in;transition-delay:.3s}.discovery_animation_source-exit{opacity:1}.discovery_animation_source-exit-active{opacity:.5;transform:translateY(-210px) translateX(-420px) scale(.15);transition:all .5s ease-out}.discovery_animation_ids-exit{opacity:1}.discovery_animation_ids-exit-active{opacity:.5;transform:translateY(-210px) translateX(-200px) scale(.15);transition:all .5s ease-out}.discovery_animation_listingSelect-exit{opacity:1}.discovery_animation_listingSelect-exit-active{opacity:.5;transform:translateY(-210px) translateX(20px) scale(.15);transition:all .5s ease-out}.discovery_animation_selectAccount-exit{opacity:1}.discovery_animation_selectAccount-exit-active{opacity:.5;transform:translateY(-210px) translateX(240px) scale(.15);transition:all .5s ease-out}.discoverInputs .ant-form-explain{margin-top:0!important}*{padding:0;margin:0;box-sizing:border-box}.ant-btn-primary:hover{background-color:#0070ba!important}.ant-btn-default:hover{color:#0070ba!important;border-color:#0070ba!important}.ant-popover-background .ant-popover-arrow,.ant-popover-background .ant-popover-inner{background-color:#0070ba}.ant-progress-bg{height:6px!important;margin:4px}.ant-progress-inner{width:100%}.ant-progress-status-success .ant-progress-bg{background-color:#02aff9}.ant-menu-item-active,.ant-menu-item-selected{color:rgba(0,0,0,.65)!important;border-bottom:none!important}.ant-menu-item{border-bottom:none!important}.ant-select .ant-select-selection{border-radius:15px!important}.ant-select-open .ant-select-selection{border-radius:15px 15px 3px 3px!important}.ant-checkbox-inner{background-color:#fafbfe!important;border:1px solid #919db4!important}.ant-checkbox-checked .ant-checkbox-inner,.ant-checkbox-input:focus+.ant-checkbox-inner,.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner{border:1px solid #919db4}.ant-select-dropdown--single,.ant-select-dropdown-hidden,.ant-select-dropdown-menu,.ant-select-dropdown-menu:before,.ant-select-dropdown-placement-bottomLeft{margin:0!important;padding:0!important}.scroll-1{scrollbar-width:thin}.scroll-1::-webkit-scrollbar{width:4px;height:4px}.scroll-1::-webkit-scrollbar-track{background-color:#eceff5}.scroll-1::-webkit-scrollbar-thumb{background-color:#a2adc4!important;border-radius:20px}.ant-switch{border:1px solid #a2adc4!important;background-color:#cdd3e0!important}.ant-switch:after{background-color:#919db4!important}.ant-switch-checked{border:1px solid #a2adc4!important;background-color:#d9e7ff!important}.ant-switch-checked:after{background-color:#474588!important}.ant-collapse-content>.ant-collapse-content-box{padding:0!important}.single-edit .react-datepicker{top:500px!important;left:56%!important;position:absolute}.highLight{background-color:red!important}.strategy-modal .ant-form-item{margin:0!important}.strategy-modal .ant-form-item-label{line-height:inherit!important}.strategy-modal label{margin-bottom:0!important}.normal-font label{font-weight:400!important;font-size:12px;font-weight:500;font-style:normal;font-stretch:normal;letter-spacing:normal}.inline-form-item{display:flex!important;flex-wrap:wrap;align-items:center}.inline-form-item label{display:inline-block}.inline-form-item input{width:50px!important;display:inline-block}.single-edit .ant-btn-circle,.single-edit .ant-btn-circle-outline{height:18px;width:18px}@keyframes showAndGo{0%{opacity:0}30%,70%{opacity:1}to{opacity:0}}#tm-congratulations{position:absolute;top:50vh;left:50vw;font-size:29px;opacity:0;background:#fff;color:#233b69;transform:translate(-50%,-50%);line-height:1;padding:12px;border-radius:8px;box-shadow:0 0 20px 18px #d9e7ff;animation:showAndGo 3s linear}.loader{position:fixed;top:40%;left:47%;width:200px;height:200px;z-index:9999;background:url(/static/media/Loader.0c8ddc16.gif) no-repeat 50%/contain}.mainTitle{color:#3f435c;font-size:18px;line-height:1.56}.mainTitle,.title2{font-weight:500;font-style:normal;font-stretch:normal;letter-spacing:normal}.title2{font-size:12px;line-height:2.33}.title3{font-weight:500;line-height:2}.title3,h1{font-size:14px;font-style:normal;font-stretch:normal;letter-spacing:normal}h1{line-height:1.29}h1,h2{font-weight:400}h2{font-size:12px;font-style:normal;font-stretch:normal;line-height:2.33;letter-spacing:normal}@font-face{font-family:Stolzl;src:url(/static/media/Stolzl.4e85d39c.otf) format("opentype"),url(/static/media/Stolzl.4e85d39c.otf) format("opentype");font-weight:400;font-style:normal}@font-face{font-family:Stolzl-Thin;src:url(/static/media/Stolzl_Thin.71db8fe2.otf) format("opentype");font-weight:100}@font-face{font-family:Stolzl-Medium;src:url(/static/media/Stolzl_Medium.022e1632.otf) format("opentype");font-weight:400;font-style:normal}@font-face{font-family:Stolzl-Bold;src:url(/static/media/Stolzl_Bold.7b8c81b1.otf) format("opentype");font-weight:400;font-style:normal}@font-face{font-family:Stolzl-Light;src:url(/static/media/Stolzl_Light.b2d69a9b.otf) format("opentype");font-weight:400;font-style:normal}@font-face{font-family:Heebo;src:url(/static/media/heebo.0e2615c8.woff) format("woff"),url(/static/media/heebo.22386612.woff2) format("woff2");font-weight:400;font-style:normal}@font-face{font-family:Heebo-Thin;src:url(/static/media/Heebo-Thin.0cb4aa93.woff) format("woff");font-weight:100}@font-face{font-family:Heebo-Medium;src:url(/static/media/Heebo-Medium.1b739655.woff) format("woff");font-weight:400;font-style:normal}@font-face{font-family:Heebo-Bold;src:url(/static/media/Heebo-Bold.2ab1fc94.woff) format("woff");font-weight:400;font-style:normal}@font-face{font-family:Heebo-Light;src:url(/static/media/Heebo-Light.dc933c26.woff) format("woff");font-weight:400;font-style:normal}@font-face{font-family:Roboto;src:url(/static/media/roboto.60fa3c06.woff) format("woff"),url(/static/media/roboto.479970ff.woff2) format("woff2");font-weight:400;font-style:normal}body,html{font-family:Stolzl,sans-serif}/* WEBPACK VAR INJECTION */(function(setImmediate, clearImmediate) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return generateCategoricalChart; });
/* harmony import */ var lodash_every__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(414);
/* harmony import */ var lodash_every__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_every__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash_find__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(654);
/* harmony import */ var lodash_find__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_find__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(51);
/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isFunction__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var lodash_throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(655);
/* harmony import */ var lodash_throttle__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash_throttle__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var lodash_sortBy__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(314);
/* harmony import */ var lodash_sortBy__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_sortBy__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var lodash_get__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(113);
/* harmony import */ var lodash_get__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash_get__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var lodash_range__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(334);
/* harmony import */ var lodash_range__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash_range__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var lodash_isNil__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(48);
/* harmony import */ var lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(lodash_isNil__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var lodash_isBoolean__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(656);
/* harmony import */ var lodash_isBoolean__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash_isBoolean__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var lodash_isArray__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(71);
/* harmony import */ var lodash_isArray__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(lodash_isArray__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(2);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(25);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var _container_Surface__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(378);
/* harmony import */ var _container_Layer__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(60);
/* harmony import */ var _component_Tooltip__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(388);
/* harmony import */ var _component_Legend__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(382);
/* harmony import */ var _shape_Curve__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(176);
/* harmony import */ var _shape_Cross__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(663);
/* harmony import */ var _shape_Sector__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(381);
/* harmony import */ var _shape_Dot__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(221);
/* harmony import */ var _shape_Rectangle__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(288);
/* harmony import */ var _util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(68);
/* harmony import */ var _cartesian_CartesianAxis__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(349);
/* harmony import */ var _cartesian_Brush__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(459);
/* harmony import */ var _util_DOMUtils__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(192);
/* harmony import */ var _util_DataUtils__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(24);
/* harmony import */ var _util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(49);
/* harmony import */ var _util_DetectReferenceElementsDomain__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(456);
/* harmony import */ var _util_PolarUtils__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(78);
/* harmony import */ var _util_ShallowEqual__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(263);
/* harmony import */ var _util_Events__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(155);
/* harmony import */ var _util_types__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(42);
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }












function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _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."); }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function _extends() { _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 _extends.apply(this, arguments); }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _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; }

function _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; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }

function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _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 _arrayLikeToArray(o, minLen); }

function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }

function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }

function _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; }

function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }























var ORIENT_MAP = {
  xAxis: ['bottom', 'top'],
  yAxis: ['left', 'right']
};
var originCoordinate = {
  x: 0,
  y: 0
}; // use legacy isFinite only if there is a problem (aka IE)
// eslint-disable-next-line no-restricted-globals

var isFinit = Number.isFinite ? Number.isFinite : isFinite;
var defer = // eslint-disable-next-line no-nested-ternary
typeof requestAnimationFrame === 'function' ? requestAnimationFrame : typeof setImmediate === 'function' ? setImmediate : setTimeout;
var deferClear = // eslint-disable-next-line no-nested-ternary
typeof cancelAnimationFrame === 'function' ? cancelAnimationFrame : typeof clearImmediate === 'function' ? clearImmediate : clearTimeout;

var calculateTooltipPos = function calculateTooltipPos(rangeObj, layout) {
  if (layout === 'horizontal') {
    return rangeObj.x;
  }

  if (layout === 'vertical') {
    return rangeObj.y;
  }

  if (layout === 'centric') {
    return rangeObj.angle;
  }

  return rangeObj.radius;
};

var getActiveCoordinate = function getActiveCoordinate(layout, tooltipTicks, activeIndex, rangeObj) {
  var entry = tooltipTicks.find(function (tick) {
    return tick && tick.index === activeIndex;
  });

  if (entry) {
    if (layout === 'horizontal') {
      return {
        x: entry.coordinate,
        y: rangeObj.y
      };
    }

    if (layout === 'vertical') {
      return {
        x: rangeObj.x,
        y: entry.coordinate
      };
    }

    if (layout === 'centric') {
      var _angle = entry.coordinate;
      var _radius = rangeObj.radius;
      return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), Object(_util_PolarUtils__WEBPACK_IMPORTED_MODULE_28__[/* polarToCartesian */ "e"])(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {
        angle: _angle,
        radius: _radius
      });
    }

    var radius = entry.coordinate;
    var angle = rangeObj.angle;
    return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), Object(_util_PolarUtils__WEBPACK_IMPORTED_MODULE_28__[/* polarToCartesian */ "e"])(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {
      angle: angle,
      radius: radius
    });
  }

  return originCoordinate;
};

var getDisplayedData = function getDisplayedData(data, _ref, item) {
  var graphicalItems = _ref.graphicalItems,
      dataStartIndex = _ref.dataStartIndex,
      dataEndIndex = _ref.dataEndIndex;
  var itemsData = (graphicalItems || []).reduce(function (result, child) {
    var itemData = child.props.data;

    if (itemData && itemData.length) {
      return [].concat(_toConsumableArray(result), _toConsumableArray(itemData));
    }

    return result;
  }, []);

  if (itemsData && itemsData.length > 0) {
    return itemsData;
  }

  if (item && item.props && item.props.data && item.props.data.length > 0) {
    return item.props.data;
  }

  if (data && data.length && Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* isNumber */ "h"])(dataStartIndex) && Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* isNumber */ "h"])(dataEndIndex)) {
    return data.slice(dataStartIndex, dataEndIndex + 1);
  }

  return [];
};
/**
 * Get the content to be displayed in the tooltip
 * @param  {Object} state          Current state
 * @param  {Array}  chartData      The data defined in chart
 * @param  {Number} activeIndex    Active index of data
 * @param  {String} activeLabel    Active label of data
 * @return {Array}                 The content of tooltip
 */


var getTooltipContent = function getTooltipContent(state, chartData, activeIndex, activeLabel) {
  var graphicalItems = state.graphicalItems,
      tooltipAxis = state.tooltipAxis;
  var displayedData = getDisplayedData(chartData, state);

  if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {
    return null;
  } // get data by activeIndex when the axis don't allow duplicated category


  return graphicalItems.reduce(function (result, child) {
    var hide = child.props.hide;

    if (hide) {
      return result;
    }

    var data = child.props.data;
    var payload;

    if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {
      // graphic child has data props
      var entries = data === undefined ? displayedData : data;
      payload = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* findEntryInArray */ "a"])(entries, tooltipAxis.dataKey, activeLabel);
    } else {
      payload = data && data[activeIndex] || displayedData[activeIndex];
    }

    if (!payload) {
      return result;
    }

    return [].concat(_toConsumableArray(result), [Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getTooltipItem */ "v"])(child, payload)]);
  }, []);
};
/**
 * Returns tooltip data based on a mouse position (as a parameter or in state)
 * @param  {Object} state     current state
 * @param  {Array}  chartData the data defined in chart
 * @param  {String} layout     The layout type of chart
 * @param  {Object} rangeObj  { x, y } coordinates
 * @return {Object}           Tooltip data data
 */


var getTooltipData = function getTooltipData(state, chartData, layout, rangeObj) {
  var rangeData = rangeObj || {
    x: state.chartX,
    y: state.chartY
  };
  var pos = calculateTooltipPos(rangeData, layout);
  var ticks = state.orderedTooltipTicks,
      axis = state.tooltipAxis,
      tooltipTicks = state.tooltipTicks;
  var activeIndex = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* calculateActiveTickIndex */ "b"])(pos, ticks, tooltipTicks, axis);

  if (activeIndex >= 0 && tooltipTicks) {
    var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;
    var activePayload = getTooltipContent(state, chartData, activeIndex, activeLabel);
    var activeCoordinate = getActiveCoordinate(layout, ticks, activeIndex, rangeData);
    return {
      activeTooltipIndex: activeIndex,
      activeLabel: activeLabel,
      activePayload: activePayload,
      activeCoordinate: activeCoordinate
    };
  }

  return null;
};
/**
 * Get the configuration of axis by the options of axis instance
 * @param  {Object} props         Latest props
 * @param {Array}  axes           The instance of axes
 * @param  {Array} graphicalItems The instances of item
 * @param  {String} axisType      The type of axis, xAxis - x-axis, yAxis - y-axis
 * @param  {String} axisIdKey     The unique id of an axis
 * @param  {Object} stackGroups   The items grouped by axisId and stackId
 * @param {Number} dataStartIndex The start index of the data series when a brush is applied
 * @param {Number} dataEndIndex   The end index of the data series when a brush is applied
 * @return {Object}      Configuration
 */


var getAxisMapByAxes = function getAxisMapByAxes(props, _ref2) {
  var axes = _ref2.axes,
      graphicalItems = _ref2.graphicalItems,
      axisType = _ref2.axisType,
      axisIdKey = _ref2.axisIdKey,
      stackGroups = _ref2.stackGroups,
      dataStartIndex = _ref2.dataStartIndex,
      dataEndIndex = _ref2.dataEndIndex;
  var layout = props.layout,
      children = props.children,
      stackOffset = props.stackOffset;
  var isCategorical = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* isCategoricalAxis */ "x"])(layout, axisType); // Eliminate duplicated axes

  var axisMap = axes.reduce(function (result, child) {
    var _child$props = child.props,
        type = _child$props.type,
        dataKey = _child$props.dataKey,
        allowDataOverflow = _child$props.allowDataOverflow,
        allowDuplicatedCategory = _child$props.allowDuplicatedCategory,
        scale = _child$props.scale,
        ticks = _child$props.ticks;
    var axisId = child.props[axisIdKey];
    var displayedData = getDisplayedData(props.data, {
      graphicalItems: graphicalItems.filter(function (item) {
        return item.props[axisIdKey] === axisId;
      }),
      dataStartIndex: dataStartIndex,
      dataEndIndex: dataEndIndex
    });
    var len = displayedData.length;

    if (!result[axisId]) {
      var domain, duplicateDomain, categoricalDomain;

      if (dataKey) {
        // has dataKey in <Axis />
        domain = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getDomainOfDataByKey */ "m"])(displayedData, dataKey, type);

        if (type === 'category' && isCategorical) {
          // the field type is category data and this axis is catrgorical axis
          var duplicate = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* hasDuplicate */ "e"])(domain);

          if (allowDuplicatedCategory && duplicate) {
            duplicateDomain = domain; // When category axis has duplicated text, serial numbers are used to generate scale

            domain = lodash_range__WEBPACK_IMPORTED_MODULE_6___default()(0, len);
          } else if (!allowDuplicatedCategory) {
            // remove duplicated category
            domain = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* parseDomainOfCategoryAxis */ "y"])(child.props.domain, domain, child).reduce(function (finalDomain, entry) {
              return finalDomain.indexOf(entry) >= 0 ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);
            }, []);
          }
        } else if (type === 'category') {
          // the field type is category data and this axis is numerical axis
          if (!allowDuplicatedCategory) {
            domain = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* parseDomainOfCategoryAxis */ "y"])(child.props.domain, domain, child).reduce(function (finalDomain, entry) {
              return finalDomain.indexOf(entry) >= 0 || entry === '' || lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(entry) ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);
            }, []);
          } else {
            // eliminate undefined or null or empty string
            domain = domain.filter(function (entry) {
              return entry !== '' && !lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(entry);
            });
          }
        } else if (type === 'number') {
          // the field type is numerical
          var errorBarsDomain = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* parseErrorBarsOfAxis */ "z"])(displayedData, graphicalItems.filter(function (item) {
            return item.props[axisIdKey] === axisId && !item.props.hide;
          }), dataKey, axisType);

          if (errorBarsDomain) {
            domain = errorBarsDomain;
          }
        }

        if (isCategorical && (type === 'number' || scale !== 'auto')) {
          categoricalDomain = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getDomainOfDataByKey */ "m"])(displayedData, dataKey, 'category');
        }
      } else if (isCategorical) {
        // the axis is a categorical axis
        domain = lodash_range__WEBPACK_IMPORTED_MODULE_6___default()(0, len);
      } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {
        // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]
        domain = stackOffset === 'expand' ? [0, 1] : Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getDomainOfStackGroups */ "o"])(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);
      } else {
        domain = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getDomainOfItemsWithSameAxis */ "n"])(displayedData, graphicalItems.filter(function (item) {
          return item.props[axisIdKey] === axisId && !item.props.hide;
        }), type, true);
      }

      if (type === 'number') {
        // To detect wether there is any reference lines whose props alwaysShow is true
        domain = Object(_util_DetectReferenceElementsDomain__WEBPACK_IMPORTED_MODULE_27__[/* detectReferenceElementsDomain */ "a"])(children, domain, axisId, axisType, ticks);

        if (child.props.domain) {
          domain = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* parseSpecifiedDomain */ "B"])(child.props.domain, domain, allowDataOverflow);
        }
      } else if (type === 'category' && child.props.domain) {
        var axisDomain = child.props.domain;
        var isDomainValidate = domain.every(function (entry) {
          return axisDomain.indexOf(entry) >= 0;
        });

        if (isDomainValidate) {
          domain = axisDomain;
        }
      }

      return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({}, child.props), {}, {
        axisType: axisType,
        domain: domain,
        categoricalDomain: categoricalDomain,
        duplicateDomain: duplicateDomain,
        originalDomain: child.props.domain,
        isCategorical: isCategorical,
        layout: layout
      })));
    }

    return result;
  }, {});
  return axisMap;
};
/**
 * Get the configuration of axis by the options of item,
 * this kind of axis does not display in chart
 * @param  {Object} props         Latest props
 * @param  {Array} graphicalItems The instances of item
 * @param  {ReactElement} Axis    Axis Component
 * @param  {String} axisType      The type of axis, xAxis - x-axis, yAxis - y-axis
 * @param  {String} axisIdKey     The unique id of an axis
 * @param  {Object} stackGroups   The items grouped by axisId and stackId
 * @param {Number} dataStartIndex The start index of the data series when a brush is applied
 * @param {Number} dataEndIndex   The end index of the data series when a brush is applied
 * @return {Object}               Configuration
 */


var getAxisMapByItems = function getAxisMapByItems(props, _ref3) {
  var graphicalItems = _ref3.graphicalItems,
      Axis = _ref3.Axis,
      axisType = _ref3.axisType,
      axisIdKey = _ref3.axisIdKey,
      stackGroups = _ref3.stackGroups,
      dataStartIndex = _ref3.dataStartIndex,
      dataEndIndex = _ref3.dataEndIndex;
  var layout = props.layout,
      children = props.children;
  var displayedData = getDisplayedData(props.data, {
    graphicalItems: graphicalItems,
    dataStartIndex: dataStartIndex,
    dataEndIndex: dataEndIndex
  });
  var len = displayedData.length;
  var isCategorical = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* isCategoricalAxis */ "x"])(layout, axisType);
  var index = -1; // The default type of x-axis is category axis,
  // The default contents of x-axis is the serial numbers of data
  // The default type of y-axis is number axis
  // The default contents of y-axis is the domain of data

  var axisMap = graphicalItems.reduce(function (result, child) {
    var axisId = child.props[axisIdKey];

    if (!result[axisId]) {
      index++;
      var domain;

      if (isCategorical) {
        domain = lodash_range__WEBPACK_IMPORTED_MODULE_6___default()(0, len);
      } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {
        domain = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getDomainOfStackGroups */ "o"])(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);
        domain = Object(_util_DetectReferenceElementsDomain__WEBPACK_IMPORTED_MODULE_27__[/* detectReferenceElementsDomain */ "a"])(children, domain, axisId, axisType);
      } else {
        domain = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* parseSpecifiedDomain */ "B"])(Axis.defaultProps.domain, Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getDomainOfItemsWithSameAxis */ "n"])(displayedData, graphicalItems.filter(function (item) {
          return item.props[axisIdKey] === axisId && !item.props.hide;
        }), 'number'), Axis.defaultProps.allowDataOverflow);
        domain = Object(_util_DetectReferenceElementsDomain__WEBPACK_IMPORTED_MODULE_27__[/* detectReferenceElementsDomain */ "a"])(children, domain, axisId, axisType);
      }

      return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({
        axisType: axisType
      }, Axis.defaultProps), {}, {
        hide: true,
        orientation: lodash_get__WEBPACK_IMPORTED_MODULE_5___default()(ORIENT_MAP, "".concat(axisType, ".").concat(index % 2), null),
        domain: domain,
        originalDomain: Axis.defaultProps.domain,
        isCategorical: isCategorical,
        layout: layout // specify scale when no Axis
        // scale: isCategorical ? 'band' : 'linear',

      })));
    }

    return result;
  }, {});
  return axisMap;
};
/**
 * Get the configuration of all x-axis or y-axis
 * @param  {Object} props          Latest props
 * @param  {String} axisType       The type of axis
 * @param  {Array}  graphicalItems The instances of item
 * @param  {Object} stackGroups    The items grouped by axisId and stackId
 * @param {Number} dataStartIndex  The start index of the data series when a brush is applied
 * @param {Number} dataEndIndex    The end index of the data series when a brush is applied
 * @return {Object}          Configuration
 */


var getAxisMap = function getAxisMap(props, _ref4) {
  var _ref4$axisType = _ref4.axisType,
      axisType = _ref4$axisType === void 0 ? 'xAxis' : _ref4$axisType,
      AxisComp = _ref4.AxisComp,
      graphicalItems = _ref4.graphicalItems,
      stackGroups = _ref4.stackGroups,
      dataStartIndex = _ref4.dataStartIndex,
      dataEndIndex = _ref4.dataEndIndex;
  var children = props.children;
  var axisIdKey = "".concat(axisType, "Id"); // Get all the instance of Axis

  var axes = Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__[/* findAllByType */ "a"])(children, AxisComp);
  var axisMap = {};

  if (axes && axes.length) {
    axisMap = getAxisMapByAxes(props, {
      axes: axes,
      graphicalItems: graphicalItems,
      axisType: axisType,
      axisIdKey: axisIdKey,
      stackGroups: stackGroups,
      dataStartIndex: dataStartIndex,
      dataEndIndex: dataEndIndex
    });
  } else if (graphicalItems && graphicalItems.length) {
    axisMap = getAxisMapByItems(props, {
      Axis: AxisComp,
      graphicalItems: graphicalItems,
      axisType: axisType,
      axisIdKey: axisIdKey,
      stackGroups: stackGroups,
      dataStartIndex: dataStartIndex,
      dataEndIndex: dataEndIndex
    });
  }

  return axisMap;
};

var tooltipTicksGenerator = function tooltipTicksGenerator(axisMap) {
  var axis = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* getAnyElementOfObject */ "b"])(axisMap);
  var tooltipTicks = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getTicksOfAxis */ "t"])(axis, false, true);
  return {
    tooltipTicks: tooltipTicks,
    orderedTooltipTicks: lodash_sortBy__WEBPACK_IMPORTED_MODULE_4___default()(tooltipTicks, function (o) {
      return o.coordinate;
    }),
    tooltipAxis: axis,
    tooltipAxisBandSize: Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getBandSizeOfAxis */ "f"])(axis)
  };
};
/**
 * Returns default, reset state for the categorical chart.
 * @param {Object} props Props object to use when creating the default state
 * @return {Object} Whole new state
 */


var createDefaultState = function createDefaultState(props) {
  var children = props.children,
      defaultShowTooltip = props.defaultShowTooltip;
  var brushItem = Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__[/* findChildByType */ "b"])(children, _cartesian_Brush__WEBPACK_IMPORTED_MODULE_23__[/* Brush */ "a"].displayName);
  var startIndex = brushItem && brushItem.props && brushItem.props.startIndex || 0;
  var endIndex = brushItem && brushItem.props && brushItem.props.endIndex || props.data && props.data.length - 1 || 0;
  return {
    chartX: 0,
    chartY: 0,
    dataStartIndex: startIndex,
    dataEndIndex: endIndex,
    activeTooltipIndex: -1,
    isTooltipActive: !lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(defaultShowTooltip) ? defaultShowTooltip : false
  };
};

var hasGraphicalBarItem = function hasGraphicalBarItem(graphicalItems) {
  if (!graphicalItems || !graphicalItems.length) {
    return false;
  }

  return graphicalItems.some(function (item) {
    var name = Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__[/* getDisplayName */ "c"])(item && item.type);
    return name && name.indexOf('Bar') >= 0;
  });
};

var getAxisNameByLayout = function getAxisNameByLayout(layout) {
  if (layout === 'horizontal') {
    return {
      numericAxisName: 'yAxis',
      cateAxisName: 'xAxis'
    };
  }

  if (layout === 'vertical') {
    return {
      numericAxisName: 'xAxis',
      cateAxisName: 'yAxis'
    };
  }

  if (layout === 'centric') {
    return {
      numericAxisName: 'radiusAxis',
      cateAxisName: 'angleAxis'
    };
  }

  return {
    numericAxisName: 'angleAxis',
    cateAxisName: 'radiusAxis'
  };
};
/**
 * Calculate the offset of main part in the svg element
 * @param  {Object} props          Latest props
 * graphicalItems The instances of item
 * xAxisMap       The configuration of x-axis
 * yAxisMap       The configuration of y-axis
 * @param  {Object} prevLegendBBox          the boundary box of legend
 * @return {Object} The offset of main part in the svg element
 */


var calculateOffset = function calculateOffset(_ref5, prevLegendBBox) {
  var props = _ref5.props,
      graphicalItems = _ref5.graphicalItems,
      _ref5$xAxisMap = _ref5.xAxisMap,
      xAxisMap = _ref5$xAxisMap === void 0 ? {} : _ref5$xAxisMap,
      _ref5$yAxisMap = _ref5.yAxisMap,
      yAxisMap = _ref5$yAxisMap === void 0 ? {} : _ref5$yAxisMap;
  var width = props.width,
      height = props.height,
      children = props.children;
  var margin = props.margin || {};
  var brushItem = Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__[/* findChildByType */ "b"])(children, _cartesian_Brush__WEBPACK_IMPORTED_MODULE_23__[/* Brush */ "a"].displayName);
  var legendItem = Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__[/* findChildByType */ "b"])(children, _component_Legend__WEBPACK_IMPORTED_MODULE_15__[/* Legend */ "a"].displayName);
  var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {
    var entry = yAxisMap[id];
    var orientation = entry.orientation;

    if (!entry.mirror && !entry.hide) {
      return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, result[orientation] + entry.width));
    }

    return result;
  }, {
    left: margin.left || 0,
    right: margin.right || 0
  });
  var offsetV = Object.keys(xAxisMap).reduce(function (result, id) {
    var entry = xAxisMap[id];
    var orientation = entry.orientation;

    if (!entry.mirror && !entry.hide) {
      return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, lodash_get__WEBPACK_IMPORTED_MODULE_5___default()(result, "".concat(orientation)) + entry.height));
    }

    return result;
  }, {
    top: margin.top || 0,
    bottom: margin.bottom || 0
  });

  var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);

  var brushBottom = offset.bottom;

  if (brushItem) {
    offset.bottom += brushItem.props.height || _cartesian_Brush__WEBPACK_IMPORTED_MODULE_23__[/* Brush */ "a"].defaultProps.height;
  }

  if (legendItem && prevLegendBBox) {
    offset = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* appendOffsetOfLegend */ "a"])(offset, graphicalItems, props, prevLegendBBox);
  }

  return _objectSpread(_objectSpread({
    brushBottom: brushBottom
  }, offset), {}, {
    width: width - offset.left - offset.right,
    height: height - offset.top - offset.bottom
  });
};

var generateCategoricalChart = function generateCategoricalChart(_ref6) {
  var _class, _temp;

  var chartName = _ref6.chartName,
      GraphicalChild = _ref6.GraphicalChild,
      _ref6$defaultTooltipE = _ref6.defaultTooltipEventType,
      defaultTooltipEventType = _ref6$defaultTooltipE === void 0 ? 'axis' : _ref6$defaultTooltipE,
      _ref6$validateTooltip = _ref6.validateTooltipEventTypes,
      validateTooltipEventTypes = _ref6$validateTooltip === void 0 ? ['axis'] : _ref6$validateTooltip,
      axisComponents = _ref6.axisComponents,
      legendContent = _ref6.legendContent,
      formatAxisMap = _ref6.formatAxisMap,
      defaultProps = _ref6.defaultProps;

  var getFormatItems = function getFormatItems(props, currentState) {
    var graphicalItems = currentState.graphicalItems,
        stackGroups = currentState.stackGroups,
        offset = currentState.offset,
        updateId = currentState.updateId,
        dataStartIndex = currentState.dataStartIndex,
        dataEndIndex = currentState.dataEndIndex;
    var barSize = props.barSize,
        layout = props.layout,
        barGap = props.barGap,
        barCategoryGap = props.barCategoryGap,
        globalMaxBarSize = props.maxBarSize;

    var _getAxisNameByLayout = getAxisNameByLayout(layout),
        numericAxisName = _getAxisNameByLayout.numericAxisName,
        cateAxisName = _getAxisNameByLayout.cateAxisName;

    var hasBar = hasGraphicalBarItem(graphicalItems);
    var sizeList = hasBar && Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getBarSizeList */ "h"])({
      barSize: barSize,
      stackGroups: stackGroups
    });
    var formatedItems = [];
    graphicalItems.forEach(function (item, index) {
      var displayedData = getDisplayedData(props.data, {
        dataStartIndex: dataStartIndex,
        dataEndIndex: dataEndIndex
      }, item);
      var _item$props = item.props,
          dataKey = _item$props.dataKey,
          childMaxBarSize = _item$props.maxBarSize;
      var numericAxisId = item.props["".concat(numericAxisName, "Id")];
      var cateAxisId = item.props["".concat(cateAxisName, "Id")];
      var axisObj = axisComponents.reduce(function (result, entry) {
        var _objectSpread6;

        var axisMap = currentState["".concat(entry.axisType, "Map")];
        var id = item.props["".concat(entry.axisType, "Id")];
        var axis = axisMap && axisMap[id];
        return _objectSpread(_objectSpread({}, result), {}, (_objectSpread6 = {}, _defineProperty(_objectSpread6, entry.axisType, axis), _defineProperty(_objectSpread6, "".concat(entry.axisType, "Ticks"), Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getTicksOfAxis */ "t"])(axis)), _objectSpread6));
      }, {});
      var cateAxis = axisObj[cateAxisName];
      var cateTicks = axisObj["".concat(cateAxisName, "Ticks")];
      var stackedData = stackGroups && stackGroups[numericAxisId] && stackGroups[numericAxisId].hasStack && Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getStackedDataOfItem */ "s"])(item, stackGroups[numericAxisId].stackGroups);
      var itemIsBar = Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__[/* getDisplayName */ "c"])(item.type).indexOf('Bar') >= 0;
      var bandSize = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getBandSizeOfAxis */ "f"])(cateAxis, cateTicks);
      var barPosition = [];

      if (itemIsBar) {
        var barBandSize = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getBandSizeOfAxis */ "f"])(cateAxis, cateTicks, true); // 如果是bar，计算bar的位置

        var maxBarSize = lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;
        barPosition = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getBarPosition */ "g"])({
          barGap: barGap,
          barCategoryGap: barCategoryGap,
          bandSize: barBandSize !== bandSize ? barBandSize : bandSize,
          sizeList: sizeList[cateAxisId],
          maxBarSize: maxBarSize
        });

        if (barBandSize !== bandSize) {
          barPosition = barPosition.map(function (pos) {
            return _objectSpread(_objectSpread({}, pos), {}, {
              position: _objectSpread(_objectSpread({}, pos.position), {}, {
                offset: pos.position.offset - barBandSize / 2
              })
            });
          });
        }
      }

      var componsedFn = item && item.type && item.type.getComposedData;

      if (componsedFn) {
        var _objectSpread7;

        formatedItems.push({
          props: _objectSpread(_objectSpread({}, componsedFn(_objectSpread(_objectSpread({}, axisObj), {}, {
            displayedData: displayedData,
            props: props,
            dataKey: dataKey,
            item: item,
            bandSize: bandSize,
            barPosition: barPosition,
            offset: offset,
            stackedData: stackedData,
            layout: layout,
            dataStartIndex: dataStartIndex,
            dataEndIndex: dataEndIndex
          }))), {}, (_objectSpread7 = {
            key: item.key || "item-".concat(index)
          }, _defineProperty(_objectSpread7, numericAxisName, axisObj[numericAxisName]), _defineProperty(_objectSpread7, cateAxisName, axisObj[cateAxisName]), _defineProperty(_objectSpread7, "animationId", updateId), _objectSpread7)),
          childIndex: Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__[/* parseChildIndex */ "f"])(item, props.children),
          item: item
        });
      }
    });
    return formatedItems;
  };
  /**
   * The AxisMaps are expensive to render on large data sets
   * so provide the ability to store them in state and only update them when necessary
   * they are dependent upon the start and end index of
   * the brush so it's important that this method is called _after_
   * the state is updated with any new start/end indices
   *
   * @param {Object} props          The props object to be used for updating the axismaps
   * dataStartIndex: The start index of the data series when a brush is applied
   * dataEndIndex: The end index of the data series when a brush is applied
   * updateId: The update id
   * @param {Object} prevState      Prev state
   * @return {Object} state New state to set
   */


  var updateStateOfAxisMapsOffsetAndStackGroups = function updateStateOfAxisMapsOffsetAndStackGroups(_ref7, prevState) {
    var props = _ref7.props,
        dataStartIndex = _ref7.dataStartIndex,
        dataEndIndex = _ref7.dataEndIndex,
        updateId = _ref7.updateId;

    if (!Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__[/* validateWidthHeight */ "h"])({
      props: props
    })) {
      return null;
    }

    var children = props.children,
        layout = props.layout,
        stackOffset = props.stackOffset,
        data = props.data,
        reverseStackOrder = props.reverseStackOrder;

    var _getAxisNameByLayout2 = getAxisNameByLayout(layout),
        numericAxisName = _getAxisNameByLayout2.numericAxisName,
        cateAxisName = _getAxisNameByLayout2.cateAxisName;

    var graphicalItems = Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__[/* findAllByType */ "a"])(children, GraphicalChild);
    var stackGroups = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getStackGroupsByAxisId */ "r"])(data, graphicalItems, "".concat(numericAxisName, "Id"), "".concat(cateAxisName, "Id"), stackOffset, reverseStackOrder);
    var axisObj = axisComponents.reduce(function (result, entry) {
      var name = "".concat(entry.axisType, "Map");
      return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, name, getAxisMap(props, _objectSpread(_objectSpread({}, entry), {}, {
        graphicalItems: graphicalItems,
        stackGroups: entry.axisType === numericAxisName && stackGroups,
        dataStartIndex: dataStartIndex,
        dataEndIndex: dataEndIndex
      }))));
    }, {});
    var offset = calculateOffset(_objectSpread(_objectSpread({}, axisObj), {}, {
      props: props,
      graphicalItems: graphicalItems
    }), prevState === null || prevState === void 0 ? void 0 : prevState.legendBBox);
    Object.keys(axisObj).forEach(function (key) {
      axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);
    });
    var cateAxisMap = axisObj["".concat(cateAxisName, "Map")];
    var ticksObj = tooltipTicksGenerator(cateAxisMap);
    var formatedGraphicalItems = getFormatItems(props, _objectSpread(_objectSpread({}, axisObj), {}, {
      dataStartIndex: dataStartIndex,
      dataEndIndex: dataEndIndex,
      updateId: updateId,
      graphicalItems: graphicalItems,
      stackGroups: stackGroups,
      offset: offset
    }));
    return _objectSpread(_objectSpread({
      formatedGraphicalItems: formatedGraphicalItems,
      graphicalItems: graphicalItems,
      offset: offset,
      stackGroups: stackGroups
    }, ticksObj), axisObj);
  };

  return _temp = _class = /*#__PURE__*/function (_Component) {
    _inherits(CategoricalChartWrapper, _Component);

    var _super = _createSuper(CategoricalChartWrapper);

    // todo join specific chart propTypes
    function CategoricalChartWrapper(_props) {
      var _this;

      _classCallCheck(this, CategoricalChartWrapper);

      _this = _super.call(this, _props);
      _this.uniqueChartId = void 0;
      _this.clipPathId = void 0;
      _this.legendInstance = void 0;
      _this.deferId = void 0;
      _this.container = void 0;

      _this.clearDeferId = function () {
        if (!lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(_this.deferId) && deferClear) {
          deferClear(_this.deferId);
        }

        _this.deferId = null;
      };

      _this.handleLegendBBoxUpdate = function (box) {
        if (box && _this.legendInstance) {
          var _this$state = _this.state,
              dataStartIndex = _this$state.dataStartIndex,
              dataEndIndex = _this$state.dataEndIndex,
              updateId = _this$state.updateId;

          _this.setState(_objectSpread({
            legendBBox: box
          }, updateStateOfAxisMapsOffsetAndStackGroups({
            props: _this.props,
            dataStartIndex: dataStartIndex,
            dataEndIndex: dataEndIndex,
            updateId: updateId
          }, _objectSpread(_objectSpread({}, _this.state), {}, {
            legendBBox: box
          }))));
        }
      };

      _this.handleReceiveSyncEvent = function (cId, chartId, data) {
        var syncId = _this.props.syncId;

        if (syncId === cId && chartId !== _this.uniqueChartId) {
          _this.clearDeferId();

          _this.deferId = defer && defer(_this.applySyncEvent.bind(_assertThisInitialized(_this), data));
        }
      };

      _this.handleBrushChange = function (_ref8) {
        var startIndex = _ref8.startIndex,
            endIndex = _ref8.endIndex;

        // Only trigger changes if the extents of the brush have actually changed
        if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {
          var updateId = _this.state.updateId;

          _this.setState(function () {
            return _objectSpread({
              dataStartIndex: startIndex,
              dataEndIndex: endIndex
            }, updateStateOfAxisMapsOffsetAndStackGroups({
              props: _this.props,
              dataStartIndex: startIndex,
              dataEndIndex: endIndex,
              updateId: updateId
            }, _this.state));
          });

          _this.triggerSyncEvent({
            dataStartIndex: startIndex,
            dataEndIndex: endIndex
          });
        }
      };

      _this.handleMouseEnter = function (e) {
        var onMouseEnter = _this.props.onMouseEnter;

        var mouse = _this.getMouseInfo(e);

        if (mouse) {
          var nextState = _objectSpread(_objectSpread({}, mouse), {}, {
            isTooltipActive: true
          });

          _this.setState(nextState);

          _this.triggerSyncEvent(nextState);

          if (lodash_isFunction__WEBPACK_IMPORTED_MODULE_2___default()(onMouseEnter)) {
            onMouseEnter(nextState, e);
          }
        }
      };

      _this.triggeredAfterMouseMove = function (e) {
        var onMouseMove = _this.props.onMouseMove;

        var mouse = _this.getMouseInfo(e);

        var nextState = mouse ? _objectSpread(_objectSpread({}, mouse), {}, {
          isTooltipActive: true
        }) : {
          isTooltipActive: false
        };

        _this.setState(nextState);

        _this.triggerSyncEvent(nextState);

        if (lodash_isFunction__WEBPACK_IMPORTED_MODULE_2___default()(onMouseMove)) {
          onMouseMove(nextState, e);
        }
      };

      _this.handleItemMouseEnter = function (el) {
        _this.setState(function () {
          return {
            isTooltipActive: true,
            activeItem: el,
            activePayload: el.tooltipPayload,
            activeCoordinate: el.tooltipPosition || {
              x: el.cx,
              y: el.cy
            }
          };
        });
      };

      _this.handleItemMouseLeave = function () {
        _this.setState(function () {
          return {
            isTooltipActive: false
          };
        });
      };

      _this.handleMouseMove = function (e) {
        if (e && lodash_isFunction__WEBPACK_IMPORTED_MODULE_2___default()(e.persist)) {
          e.persist();
        }

        _this.triggeredAfterMouseMove(e);
      };

      _this.handleMouseLeave = function (e) {
        var onMouseLeave = _this.props.onMouseLeave;
        var nextState = {
          isTooltipActive: false
        };

        _this.setState(nextState);

        _this.triggerSyncEvent(nextState);

        if (lodash_isFunction__WEBPACK_IMPORTED_MODULE_2___default()(onMouseLeave)) {
          onMouseLeave(nextState, e);
        }

        _this.cancelThrottledTriggerAfterMouseMove();
      };

      _this.handleOuterEvent = function (e) {
        var eventName = Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__[/* getReactEventByType */ "d"])(e);

        var event = lodash_get__WEBPACK_IMPORTED_MODULE_5___default()(_this.props, "".concat(eventName));

        if (eventName && lodash_isFunction__WEBPACK_IMPORTED_MODULE_2___default()(event)) {
          var mouse;

          if (/.*touch.*/i.test(eventName)) {
            mouse = _this.getMouseInfo(e.changedTouches[0]);
          } else {
            mouse = _this.getMouseInfo(e);
          }

          var handler = event;
          handler(mouse, e);
        }
      };

      _this.handleClick = function (e) {
        var onClick = _this.props.onClick;

        var mouse = _this.getMouseInfo(e);

        if (mouse) {
          var nextState = _objectSpread(_objectSpread({}, mouse), {}, {
            isTooltipActive: true
          });

          _this.setState(nextState);

          _this.triggerSyncEvent(nextState);

          if (lodash_isFunction__WEBPACK_IMPORTED_MODULE_2___default()(onClick)) {
            onClick(nextState, e);
          }
        }
      };

      _this.handleMouseDown = function (e) {
        var onMouseDown = _this.props.onMouseDown;

        if (lodash_isFunction__WEBPACK_IMPORTED_MODULE_2___default()(onMouseDown)) {
          var mouse = _this.getMouseInfo(e);

          onMouseDown(mouse, e);
        }
      };

      _this.handleMouseUp = function (e) {
        var onMouseUp = _this.props.onMouseUp;

        if (lodash_isFunction__WEBPACK_IMPORTED_MODULE_2___default()(onMouseUp)) {
          var mouse = _this.getMouseInfo(e);

          onMouseUp(mouse, e);
        }
      };

      _this.handleTouchMove = function (e) {
        if (e.changedTouches != null && e.changedTouches.length > 0) {
          _this.handleMouseMove(e.changedTouches[0]);
        }
      };

      _this.handleTouchStart = function (e) {
        if (e.changedTouches != null && e.changedTouches.length > 0) {
          _this.handleMouseDown(e.changedTouches[0]);
        }
      };

      _this.handleTouchEnd = function (e) {
        if (e.changedTouches != null && e.changedTouches.length > 0) {
          _this.handleMouseUp(e.changedTouches[0]);
        }
      };

      _this.verticalCoordinatesGenerator = function (_ref9) {
        var xAxis = _ref9.xAxis,
            width = _ref9.width,
            height = _ref9.height,
            offset = _ref9.offset;
        return Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getCoordinatesOfGrid */ "l"])(_cartesian_CartesianAxis__WEBPACK_IMPORTED_MODULE_22__[/* CartesianAxis */ "a"].getTicks(_objectSpread(_objectSpread(_objectSpread({}, _cartesian_CartesianAxis__WEBPACK_IMPORTED_MODULE_22__[/* CartesianAxis */ "a"].defaultProps), xAxis), {}, {
          ticks: Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getTicksOfAxis */ "t"])(xAxis, true),
          viewBox: {
            x: 0,
            y: 0,
            width: width,
            height: height
          }
        })), offset.left, offset.left + offset.width);
      };

      _this.horizontalCoordinatesGenerator = function (_ref10) {
        var yAxis = _ref10.yAxis,
            width = _ref10.width,
            height = _ref10.height,
            offset = _ref10.offset;
        return Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getCoordinatesOfGrid */ "l"])(_cartesian_CartesianAxis__WEBPACK_IMPORTED_MODULE_22__[/* CartesianAxis */ "a"].getTicks(_objectSpread(_objectSpread(_objectSpread({}, _cartesian_CartesianAxis__WEBPACK_IMPORTED_MODULE_22__[/* CartesianAxis */ "a"].defaultProps), yAxis), {}, {
          ticks: Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getTicksOfAxis */ "t"])(yAxis, true),
          viewBox: {
            x: 0,
            y: 0,
            width: width,
            height: height
          }
        })), offset.top, offset.top + offset.height);
      };

      _this.axesTicksGenerator = function (axis) {
        return Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getTicksOfAxis */ "t"])(axis, true);
      };

      _this.renderCursor = function (element) {
        var _this$state2 = _this.state,
            isTooltipActive = _this$state2.isTooltipActive,
            activeCoordinate = _this$state2.activeCoordinate,
            activePayload = _this$state2.activePayload,
            offset = _this$state2.offset,
            activeTooltipIndex = _this$state2.activeTooltipIndex;

        var tooltipEventType = _this.getTooltipEventType();

        if (!element || !element.props.cursor || !isTooltipActive || !activeCoordinate || tooltipEventType !== 'axis') {
          return null;
        }

        var layout = _this.props.layout;
        var restProps;
        var cursorComp = _shape_Curve__WEBPACK_IMPORTED_MODULE_16__[/* Curve */ "a"];

        if (chartName === 'ScatterChart') {
          restProps = activeCoordinate;
          cursorComp = _shape_Cross__WEBPACK_IMPORTED_MODULE_17__[/* Cross */ "a"];
        } else if (chartName === 'BarChart') {
          restProps = _this.getCursorRectangle();
          cursorComp = _shape_Rectangle__WEBPACK_IMPORTED_MODULE_20__[/* Rectangle */ "a"];
        } else if (layout === 'radial') {
          var _this$getCursorPoints = _this.getCursorPoints(),
              cx = _this$getCursorPoints.cx,
              cy = _this$getCursorPoints.cy,
              radius = _this$getCursorPoints.radius,
              startAngle = _this$getCursorPoints.startAngle,
              endAngle = _this$getCursorPoints.endAngle;

          restProps = {
            cx: cx,
            cy: cy,
            startAngle: startAngle,
            endAngle: endAngle,
            innerRadius: radius,
            outerRadius: radius
          };
          cursorComp = _shape_Sector__WEBPACK_IMPORTED_MODULE_18__[/* Sector */ "a"];
        } else {
          restProps = {
            points: _this.getCursorPoints()
          };
          cursorComp = _shape_Curve__WEBPACK_IMPORTED_MODULE_16__[/* Curve */ "a"];
        }

        var key = element.key || '_recharts-cursor';

        var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({
          stroke: '#ccc',
          pointerEvents: 'none'
        }, offset), restProps), Object(_util_types__WEBPACK_IMPORTED_MODULE_31__[/* filterProps */ "c"])(element.props.cursor)), {}, {
          payload: activePayload,
          payloadIndex: activeTooltipIndex,
          key: key,
          className: 'recharts-tooltip-cursor'
        });

        return /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_10__["isValidElement"])(element.props.cursor) ? /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_10__["cloneElement"])(element.props.cursor, cursorProps) : /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_10__["createElement"])(cursorComp, cursorProps);
      };

      _this.renderPolarAxis = function (element, displayName, index) {
        var axisType = lodash_get__WEBPACK_IMPORTED_MODULE_5___default()(element, 'type.axisType');

        var axisMap = lodash_get__WEBPACK_IMPORTED_MODULE_5___default()(_this.state, "".concat(axisType, "Map"));

        var axisOption = axisMap[element.props["".concat(axisType, "Id")]];
        return /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_10__["cloneElement"])(element, _objectSpread(_objectSpread({}, axisOption), {}, {
          className: axisType,
          key: element.key || "".concat(displayName, "-").concat(index),
          ticks: Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getTicksOfAxis */ "t"])(axisOption, true)
        }));
      };

      _this.renderXAxis = function (element, displayName, index) {
        var xAxisMap = _this.state.xAxisMap;
        var axisObj = xAxisMap[element.props.xAxisId];
        return _this.renderAxis(axisObj, element, displayName, index);
      };

      _this.renderYAxis = function (element, displayName, index) {
        var yAxisMap = _this.state.yAxisMap;
        var axisObj = yAxisMap[element.props.yAxisId];
        return _this.renderAxis(axisObj, element, displayName, index);
      };

      _this.renderGrid = function (element) {
        var _this$state3 = _this.state,
            xAxisMap = _this$state3.xAxisMap,
            yAxisMap = _this$state3.yAxisMap,
            offset = _this$state3.offset;
        var _this$props = _this.props,
            width = _this$props.width,
            height = _this$props.height;
        var xAxis = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* getAnyElementOfObject */ "b"])(xAxisMap);

        var yAxisWithFiniteDomain = lodash_find__WEBPACK_IMPORTED_MODULE_1___default()(yAxisMap, function (axis) {
          return lodash_every__WEBPACK_IMPORTED_MODULE_0___default()(axis.domain, isFinit);
        });

        var yAxis = yAxisWithFiniteDomain || Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* getAnyElementOfObject */ "b"])(yAxisMap);
        var props = element.props || {};
        return /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_10__["cloneElement"])(element, {
          key: element.key || 'grid',
          x: Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* isNumber */ "h"])(props.x) ? props.x : offset.left,
          y: Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* isNumber */ "h"])(props.y) ? props.y : offset.top,
          width: Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* isNumber */ "h"])(props.width) ? props.width : offset.width,
          height: Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* isNumber */ "h"])(props.height) ? props.height : offset.height,
          xAxis: xAxis,
          yAxis: yAxis,
          offset: offset,
          chartWidth: width,
          chartHeight: height,
          verticalCoordinatesGenerator: props.verticalCoordinatesGenerator || _this.verticalCoordinatesGenerator,
          horizontalCoordinatesGenerator: props.horizontalCoordinatesGenerator || _this.horizontalCoordinatesGenerator
        });
      };

      _this.renderPolarGrid = function (element) {
        var _element$props = element.props,
            radialLines = _element$props.radialLines,
            polarAngles = _element$props.polarAngles,
            polarRadius = _element$props.polarRadius;
        var _this$state4 = _this.state,
            radiusAxisMap = _this$state4.radiusAxisMap,
            angleAxisMap = _this$state4.angleAxisMap;
        var radiusAxis = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* getAnyElementOfObject */ "b"])(radiusAxisMap);
        var angleAxis = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* getAnyElementOfObject */ "b"])(angleAxisMap);
        var cx = angleAxis.cx,
            cy = angleAxis.cy,
            innerRadius = angleAxis.innerRadius,
            outerRadius = angleAxis.outerRadius;
        var props = element.props || {};
        return /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_10__["cloneElement"])(element, {
          polarAngles: lodash_isArray__WEBPACK_IMPORTED_MODULE_9___default()(polarAngles) ? polarAngles : Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getTicksOfAxis */ "t"])(angleAxis, true).map(function (entry) {
            return entry.coordinate;
          }),
          polarRadius: lodash_isArray__WEBPACK_IMPORTED_MODULE_9___default()(polarRadius) ? polarRadius : Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getTicksOfAxis */ "t"])(radiusAxis, true).map(function (entry) {
            return entry.coordinate;
          }),
          cx: cx,
          cy: cy,
          innerRadius: innerRadius,
          outerRadius: outerRadius,
          key: element.key || 'polar-grid',
          radialLines: radialLines
        });
      };

      _this.renderLegend = function () {
        var formatedGraphicalItems = _this.state.formatedGraphicalItems;
        var _this$props2 = _this.props,
            children = _this$props2.children,
            width = _this$props2.width,
            height = _this$props2.height;
        var margin = _this.props.margin || {};
        var legendWidth = width - (margin.left || 0) - (margin.right || 0);
        var props = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getLegendProps */ "p"])({
          children: children,
          formatedGraphicalItems: formatedGraphicalItems,
          legendWidth: legendWidth,
          legendContent: legendContent
        });

        if (!props) {
          return null;
        }

        var item = props.item,
            otherProps = _objectWithoutProperties(props, ["item"]);

        return /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_10__["cloneElement"])(item, _objectSpread(_objectSpread({}, otherProps), {}, {
          chartWidth: width,
          chartHeight: height,
          margin: margin,
          ref: function ref(legend) {
            _this.legendInstance = legend;
          },
          onBBoxUpdate: _this.handleLegendBBoxUpdate
        }));
      };

      _this.renderTooltip = function () {
        var children = _this.props.children;
        var tooltipItem = Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__[/* findChildByType */ "b"])(children, _component_Tooltip__WEBPACK_IMPORTED_MODULE_14__[/* Tooltip */ "a"].displayName);

        if (!tooltipItem) {
          return null;
        }

        var _this$state5 = _this.state,
            isTooltipActive = _this$state5.isTooltipActive,
            activeCoordinate = _this$state5.activeCoordinate,
            activePayload = _this$state5.activePayload,
            activeLabel = _this$state5.activeLabel,
            offset = _this$state5.offset;
        return /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_10__["cloneElement"])(tooltipItem, {
          viewBox: _objectSpread(_objectSpread({}, offset), {}, {
            x: offset.left,
            y: offset.top
          }),
          active: isTooltipActive,
          label: activeLabel,
          payload: isTooltipActive ? activePayload : [],
          coordinate: activeCoordinate
        });
      };

      _this.renderBrush = function (element) {
        var _this$props3 = _this.props,
            margin = _this$props3.margin,
            data = _this$props3.data;
        var _this$state6 = _this.state,
            offset = _this$state6.offset,
            dataStartIndex = _this$state6.dataStartIndex,
            dataEndIndex = _this$state6.dataEndIndex,
            updateId = _this$state6.updateId; // TODO: update brush when children update

        return /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_10__["cloneElement"])(element, {
          key: element.key || '_recharts-brush',
          onChange: Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* combineEventHandlers */ "d"])(_this.handleBrushChange, null, element.props.onChange),
          data: data,
          x: Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* isNumber */ "h"])(element.props.x) ? element.props.x : offset.left,
          y: Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* isNumber */ "h"])(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),
          width: Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* isNumber */ "h"])(element.props.width) ? element.props.width : offset.width,
          startIndex: dataStartIndex,
          endIndex: dataEndIndex,
          updateId: "brush-".concat(updateId)
        });
      };

      _this.renderReferenceElement = function (element, displayName, index) {
        if (!element) {
          return null;
        }

        var _assertThisInitialize = _assertThisInitialized(_this),
            clipPathId = _assertThisInitialize.clipPathId;

        var _this$state7 = _this.state,
            xAxisMap = _this$state7.xAxisMap,
            yAxisMap = _this$state7.yAxisMap,
            offset = _this$state7.offset;
        var _element$props2 = element.props,
            xAxisId = _element$props2.xAxisId,
            yAxisId = _element$props2.yAxisId;
        return /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_10__["cloneElement"])(element, {
          key: element.key || "".concat(displayName, "-").concat(index),
          xAxis: xAxisMap[xAxisId],
          yAxis: yAxisMap[yAxisId],
          viewBox: {
            x: offset.left,
            y: offset.top,
            width: offset.width,
            height: offset.height
          },
          clipPathId: clipPathId
        });
      };

      _this.renderActivePoints = function (_ref11) {
        var item = _ref11.item,
            activePoint = _ref11.activePoint,
            basePoint = _ref11.basePoint,
            childIndex = _ref11.childIndex,
            isRange = _ref11.isRange;
        var result = [];
        var key = item.props.key;
        var _item$item$props = item.item.props,
            activeDot = _item$item$props.activeDot,
            dataKey = _item$item$props.dataKey;

        var dotProps = _objectSpread(_objectSpread({
          index: childIndex,
          dataKey: dataKey,
          cx: activePoint.x,
          cy: activePoint.y,
          r: 4,
          fill: Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* getMainColorOfGraphicItem */ "q"])(item.item),
          strokeWidth: 2,
          stroke: '#fff',
          payload: activePoint.payload,
          value: activePoint.value,
          key: "".concat(key, "-activePoint-").concat(childIndex)
        }, Object(_util_types__WEBPACK_IMPORTED_MODULE_31__[/* filterProps */ "c"])(activeDot)), Object(_util_types__WEBPACK_IMPORTED_MODULE_31__[/* adaptEventHandlers */ "a"])(activeDot));

        result.push(CategoricalChartWrapper.renderActiveDot(activeDot, dotProps));

        if (basePoint) {
          result.push(CategoricalChartWrapper.renderActiveDot(activeDot, _objectSpread(_objectSpread({}, dotProps), {}, {
            cx: basePoint.x,
            cy: basePoint.y,
            key: "".concat(key, "-basePoint-").concat(childIndex)
          })));
        } else if (isRange) {
          result.push(null);
        }

        return result;
      };

      _this.renderGraphicChild = function (element, displayName, index) {
        var item = _this.filterFormatItem(element, displayName, index);

        if (!item) {
          return null;
        }

        var tooltipEventType = _this.getTooltipEventType();

        var _this$state8 = _this.state,
            isTooltipActive = _this$state8.isTooltipActive,
            tooltipAxis = _this$state8.tooltipAxis,
            activeTooltipIndex = _this$state8.activeTooltipIndex,
            activeLabel = _this$state8.activeLabel;
        var children = _this.props.children;
        var tooltipItem = Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__[/* findChildByType */ "b"])(children, _component_Tooltip__WEBPACK_IMPORTED_MODULE_14__[/* Tooltip */ "a"].displayName);
        var _item$props2 = item.props,
            points = _item$props2.points,
            isRange = _item$props2.isRange,
            baseLine = _item$props2.baseLine;
        var _item$item$props2 = item.item.props,
            activeDot = _item$item$props2.activeDot,
            hide = _item$item$props2.hide;
        var hasActive = !hide && isTooltipActive && tooltipItem && activeDot && activeTooltipIndex >= 0;
        var itemEvents = {};

        if (tooltipEventType !== 'axis' && tooltipItem && tooltipItem.props.trigger === 'click') {
          itemEvents = {
            onClick: Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* combineEventHandlers */ "d"])(_this.handleItemMouseEnter, null, element.props.onCLick)
          };
        } else if (tooltipEventType !== 'axis') {
          itemEvents = {
            onMouseLeave: Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* combineEventHandlers */ "d"])(_this.handleItemMouseLeave, null, element.props.onMouseLeave),
            onMouseEnter: Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_26__[/* combineEventHandlers */ "d"])(_this.handleItemMouseEnter, null, element.props.onMouseEnter)
          };
        }

        var graphicalItem = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_10__["cloneElement"])(element, _objectSpread(_objectSpread({}, item.props), itemEvents));

        function findWithPayload(entry) {
          // TODO needs to verify dataKey is Function
          return typeof tooltipAxis.dataKey === 'function' ? tooltipAxis.dataKey(entry.payload) : null;
        }

        if (hasActive) {
          var activePoint, basePoint;

          if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {
            // number transform to string
            var specifiedKey = typeof tooltipAxis.dataKey === 'function' ? findWithPayload : 'payload.'.concat(tooltipAxis.dataKey.toString());
            activePoint = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* findEntryInArray */ "a"])(points, specifiedKey, activeLabel);
            basePoint = isRange && baseLine && Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* findEntryInArray */ "a"])(baseLine, specifiedKey, activeLabel);
          } else {
            activePoint = points[activeTooltipIndex];
            basePoint = isRange && baseLine && baseLine[activeTooltipIndex];
          }

          if (!lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(activePoint)) {
            return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({
              item: item,
              activePoint: activePoint,
              basePoint: basePoint,
              childIndex: activeTooltipIndex,
              isRange: isRange
            })));
          }
        }

        if (isRange) {
          return [graphicalItem, null, null];
        }

        return [graphicalItem, null];
      };

      _this.renderCustomized = function (element) {
        return /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_10__["cloneElement"])(element, _objectSpread(_objectSpread({}, _this.props), _this.state));
      };

      _this.uniqueChartId = lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(_props.id) ? Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* uniqueId */ "k"])('recharts') : _props.id;
      _this.clipPathId = "".concat(_this.uniqueChartId, "-clip");

      if (_props.throttleDelay) {
        _this.triggeredAfterMouseMove = lodash_throttle__WEBPACK_IMPORTED_MODULE_3___default()(_this.triggeredAfterMouseMove, _props.throttleDelay);
      }

      _this.state = {};
      return _this;
    }
    /* eslint-disable  react/no-did-mount-set-state */


    _createClass(CategoricalChartWrapper, [{
      key: "componentDidMount",
      value: function componentDidMount() {
        if (!lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(this.props.syncId)) {
          this.addListener();
        }
      }
    }, {
      key: "componentDidUpdate",
      value: function componentDidUpdate(prevProps) {
        // add syncId
        if (lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(prevProps.syncId) && !lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(this.props.syncId)) {
          this.addListener();
        } // remove syncId


        if (!lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(prevProps.syncId) && lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(this.props.syncId)) {
          this.removeListener();
        }
      }
    }, {
      key: "componentWillUnmount",
      value: function componentWillUnmount() {
        this.clearDeferId();

        if (!lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(this.props.syncId)) {
          this.removeListener();
        }

        this.cancelThrottledTriggerAfterMouseMove();
      }
    }, {
      key: "cancelThrottledTriggerAfterMouseMove",
      value: function cancelThrottledTriggerAfterMouseMove() {
        if (typeof this.triggeredAfterMouseMove.cancel === 'function') {
          this.triggeredAfterMouseMove.cancel();
        }
      }
    }, {
      key: "getTooltipEventType",
      value: function getTooltipEventType() {
        var tooltipItem = Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__[/* findChildByType */ "b"])(this.props.children, _component_Tooltip__WEBPACK_IMPORTED_MODULE_14__[/* Tooltip */ "a"].displayName);

        if (tooltipItem && lodash_isBoolean__WEBPACK_IMPORTED_MODULE_8___default()(tooltipItem.props.shared)) {
          var eventType = tooltipItem.props.shared ? 'axis' : 'item';
          return validateTooltipEventTypes.indexOf(eventType) >= 0 ? eventType : defaultTooltipEventType;
        }

        return defaultTooltipEventType;
      }
      /**
       * Get the information of mouse in chart, return null when the mouse is not in the chart
       * @param  {Object} event    The event object
       * @return {Object}          Mouse data
       */

    }, {
      key: "getMouseInfo",
      value: function getMouseInfo(event) {
        if (!this.container) {
          return null;
        }

        var containerOffset = Object(_util_DOMUtils__WEBPACK_IMPORTED_MODULE_24__[/* getOffset */ "b"])(this.container);
        var e = Object(_util_DOMUtils__WEBPACK_IMPORTED_MODULE_24__[/* calculateChartCoordinate */ "a"])(event, containerOffset);
        var rangeObj = this.inRange(e.chartX, e.chartY);

        if (!rangeObj) {
          return null;
        }

        var _this$state9 = this.state,
            xAxisMap = _this$state9.xAxisMap,
            yAxisMap = _this$state9.yAxisMap;
        var tooltipEventType = this.getTooltipEventType();

        if (tooltipEventType !== 'axis' && xAxisMap && yAxisMap) {
          var xScale = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* getAnyElementOfObject */ "b"])(xAxisMap).scale;
          var yScale = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* getAnyElementOfObject */ "b"])(yAxisMap).scale;
          var xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;
          var yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;
          return _objectSpread(_objectSpread({}, e), {}, {
            xValue: xValue,
            yValue: yValue
          });
        }

        var toolTipData = getTooltipData(this.state, this.props.data, this.props.layout, rangeObj);

        if (toolTipData) {
          return _objectSpread(_objectSpread({}, e), toolTipData);
        }

        return null;
      }
    }, {
      key: "getCursorRectangle",
      value: function getCursorRectangle() {
        var layout = this.props.layout;
        var _this$state10 = this.state,
            activeCoordinate = _this$state10.activeCoordinate,
            offset = _this$state10.offset,
            tooltipAxisBandSize = _this$state10.tooltipAxisBandSize;
        var halfSize = tooltipAxisBandSize / 2;
        return {
          stroke: 'none',
          fill: '#ccc',
          x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,
          y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,
          width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,
          height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize
        };
      }
    }, {
      key: "getCursorPoints",
      value: function getCursorPoints() {
        var layout = this.props.layout;
        var _this$state11 = this.state,
            activeCoordinate = _this$state11.activeCoordinate,
            offset = _this$state11.offset;
        var x1, y1, x2, y2;

        if (layout === 'horizontal') {
          x1 = activeCoordinate.x;
          x2 = x1;
          y1 = offset.top;
          y2 = offset.top + offset.height;
        } else if (layout === 'vertical') {
          y1 = activeCoordinate.y;
          y2 = y1;
          x1 = offset.left;
          x2 = offset.left + offset.width;
        } else if (!lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(activeCoordinate.cx) || !lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(activeCoordinate.cy)) {
          if (layout === 'centric') {
            var cx = activeCoordinate.cx,
                cy = activeCoordinate.cy,
                innerRadius = activeCoordinate.innerRadius,
                outerRadius = activeCoordinate.outerRadius,
                angle = activeCoordinate.angle;
            var innerPoint = Object(_util_PolarUtils__WEBPACK_IMPORTED_MODULE_28__[/* polarToCartesian */ "e"])(cx, cy, innerRadius, angle);
            var outerPoint = Object(_util_PolarUtils__WEBPACK_IMPORTED_MODULE_28__[/* polarToCartesian */ "e"])(cx, cy, outerRadius, angle);
            x1 = innerPoint.x;
            y1 = innerPoint.y;
            x2 = outerPoint.x;
            y2 = outerPoint.y;
          } else {
            var _cx = activeCoordinate.cx,
                _cy = activeCoordinate.cy,
                radius = activeCoordinate.radius,
                startAngle = activeCoordinate.startAngle,
                endAngle = activeCoordinate.endAngle;
            var startPoint = Object(_util_PolarUtils__WEBPACK_IMPORTED_MODULE_28__[/* polarToCartesian */ "e"])(_cx, _cy, radius, startAngle);
            var endPoint = Object(_util_PolarUtils__WEBPACK_IMPORTED_MODULE_28__[/* polarToCartesian */ "e"])(_cx, _cy, radius, endAngle);
            return {
              points: [startPoint, endPoint],
              cx: _cx,
              cy: _cy,
              radius: radius,
              startAngle: startAngle,
              endAngle: endAngle
            };
          }
        }

        return [{
          x: x1,
          y: y1
        }, {
          x: x2,
          y: y2
        }];
      }
    }, {
      key: "inRange",
      value: function inRange(x, y) {
        var layout = this.props.layout;

        if (layout === 'horizontal' || layout === 'vertical') {
          var offset = this.state.offset;
          var isInRange = x >= offset.left && x <= offset.left + offset.width && y >= offset.top && y <= offset.top + offset.height;
          return isInRange ? {
            x: x,
            y: y
          } : null;
        }

        var _this$state12 = this.state,
            angleAxisMap = _this$state12.angleAxisMap,
            radiusAxisMap = _this$state12.radiusAxisMap;

        if (angleAxisMap && radiusAxisMap) {
          var angleAxis = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_25__[/* getAnyElementOfObject */ "b"])(angleAxisMap);
          return Object(_util_PolarUtils__WEBPACK_IMPORTED_MODULE_28__[/* inRangeOfSector */ "d"])({
            x: x,
            y: y
          }, angleAxis);
        }

        return null;
      }
    }, {
      key: "parseEventsOfWrapper",
      value: function parseEventsOfWrapper() {
        var children = this.props.children;
        var tooltipEventType = this.getTooltipEventType();
        var tooltipItem = Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__[/* findChildByType */ "b"])(children, _component_Tooltip__WEBPACK_IMPORTED_MODULE_14__[/* Tooltip */ "a"].displayName);
        var tooltipEvents = {};

        if (tooltipItem && tooltipEventType === 'axis') {
          if (tooltipItem.props.trigger === 'click') {
            tooltipEvents = {
              onClick: this.handleClick
            };
          } else {
            tooltipEvents = {
              onMouseEnter: this.handleMouseEnter,
              onMouseMove: this.handleMouseMove,
              onMouseLeave: this.handleMouseLeave,
              onTouchMove: this.handleTouchMove,
              onTouchStart: this.handleTouchStart,
              onTouchEnd: this.handleTouchEnd
            };
          }
        }

        var outerEvents = Object(_util_types__WEBPACK_IMPORTED_MODULE_31__[/* adaptEventHandlers */ "a"])(this.props, this.handleOuterEvent);
        return _objectSpread(_objectSpread({}, outerEvents), tooltipEvents);
      }
      /* eslint-disable  no-underscore-dangle */

    }, {
      key: "addListener",
      value: function addListener() {
        _util_Events__WEBPACK_IMPORTED_MODULE_30__[/* eventCenter */ "b"].on(_util_Events__WEBPACK_IMPORTED_MODULE_30__[/* SYNC_EVENT */ "a"], this.handleReceiveSyncEvent);

        if (_util_Events__WEBPACK_IMPORTED_MODULE_30__[/* eventCenter */ "b"].setMaxListeners && _util_Events__WEBPACK_IMPORTED_MODULE_30__[/* eventCenter */ "b"]._maxListeners) {
          _util_Events__WEBPACK_IMPORTED_MODULE_30__[/* eventCenter */ "b"].setMaxListeners(_util_Events__WEBPACK_IMPORTED_MODULE_30__[/* eventCenter */ "b"]._maxListeners + 1);
        }
      }
    }, {
      key: "removeListener",
      value: function removeListener() {
        _util_Events__WEBPACK_IMPORTED_MODULE_30__[/* eventCenter */ "b"].removeListener(_util_Events__WEBPACK_IMPORTED_MODULE_30__[/* SYNC_EVENT */ "a"], this.handleReceiveSyncEvent);

        if (_util_Events__WEBPACK_IMPORTED_MODULE_30__[/* eventCenter */ "b"].setMaxListeners && _util_Events__WEBPACK_IMPORTED_MODULE_30__[/* eventCenter */ "b"]._maxListeners) {
          _util_Events__WEBPACK_IMPORTED_MODULE_30__[/* eventCenter */ "b"].setMaxListeners(_util_Events__WEBPACK_IMPORTED_MODULE_30__[/* eventCenter */ "b"]._maxListeners - 1);
        }
      }
    }, {
      key: "triggerSyncEvent",
      value: function triggerSyncEvent(data) {
        var syncId = this.props.syncId;

        if (!lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(syncId)) {
          _util_Events__WEBPACK_IMPORTED_MODULE_30__[/* eventCenter */ "b"].emit(_util_Events__WEBPACK_IMPORTED_MODULE_30__[/* SYNC_EVENT */ "a"], syncId, this.uniqueChartId, data);
        }
      }
    }, {
      key: "applySyncEvent",
      value: function applySyncEvent(data) {
        var _this$props4 = this.props,
            layout = _this$props4.layout,
            syncMethod = _this$props4.syncMethod;
        var updateId = this.state.updateId;
        var dataStartIndex = data.dataStartIndex,
            dataEndIndex = data.dataEndIndex;

        if (!lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(data.dataStartIndex) || !lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(data.dataEndIndex)) {
          this.setState(_objectSpread({
            dataStartIndex: dataStartIndex,
            dataEndIndex: dataEndIndex
          }, updateStateOfAxisMapsOffsetAndStackGroups({
            props: this.props,
            dataStartIndex: dataStartIndex,
            dataEndIndex: dataEndIndex,
            updateId: updateId
          }, this.state)));
        } else if (!lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(data.activeTooltipIndex)) {
          var chartX = data.chartX,
              chartY = data.chartY;
          var activeTooltipIndex = data.activeTooltipIndex;
          var _this$state13 = this.state,
              offset = _this$state13.offset,
              tooltipTicks = _this$state13.tooltipTicks;

          if (!offset) {
            return;
          }

          if (typeof syncMethod === 'function') {
            // Call a callback function. If there is an application specific algorithm
            activeTooltipIndex = syncMethod(tooltipTicks, data);
          } else if (syncMethod === 'value') {
            // Set activeTooltipIndex to the index with the same value as data.activeLabel
            // For loop instead of findIndex because the latter is very slow in some browsers
            activeTooltipIndex = -1; // in case we cannot find the element

            for (var i = 0; i < tooltipTicks.length; i++) {
              if (tooltipTicks[i].value === data.activeLabel) {
                activeTooltipIndex = i;
                break;
              }
            }
          }

          var viewBox = _objectSpread(_objectSpread({}, offset), {}, {
            x: offset.left,
            y: offset.top
          }); // When a categotical chart is combined with another chart, the value of chartX
          // and chartY may beyond the boundaries.


          var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);
          var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);
          var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;
          var activePayload = getTooltipContent(this.state, this.props.data, activeTooltipIndex);
          var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {
            x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,
            y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate
          } : originCoordinate;
          this.setState(_objectSpread(_objectSpread({}, data), {}, {
            activeLabel: activeLabel,
            activeCoordinate: activeCoordinate,
            activePayload: activePayload,
            activeTooltipIndex: activeTooltipIndex
          }));
        } else {
          this.setState(data);
        }
      }
    }, {
      key: "filterFormatItem",
      value: function filterFormatItem(item, displayName, childIndex) {
        var formatedGraphicalItems = this.state.formatedGraphicalItems;

        for (var i = 0, len = formatedGraphicalItems.length; i < len; i++) {
          var entry = formatedGraphicalItems[i];

          if (entry.item === item || entry.props.key === item.key || displayName === Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__[/* getDisplayName */ "c"])(entry.item.type) && childIndex === entry.childIndex) {
            return entry;
          }
        }

        return null;
      }
    }, {
      key: "renderAxis",
      value:
      /**
       * Draw axis
       * @param {Object} axisOptions The options of axis
       * @param {Object} element      The axis element
       * @param {String} displayName  The display name of axis
       * @param {Number} index        The index of element
       * @return {ReactElement}       The instance of x-axes
       */
      function renderAxis(axisOptions, element, displayName, index) {
        var _this$props5 = this.props,
            width = _this$props5.width,
            height = _this$props5.height;
        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_10___default.a.createElement(_cartesian_CartesianAxis__WEBPACK_IMPORTED_MODULE_22__[/* CartesianAxis */ "a"], _extends({}, axisOptions, {
          className: "recharts-".concat(axisOptions.axisType, " ").concat(axisOptions.axisType),
          key: element.key || "".concat(displayName, "-").concat(index),
          viewBox: {
            x: 0,
            y: 0,
            width: width,
            height: height
          },
          ticksGenerator: this.axesTicksGenerator
        }));
      }
      /**
       * Draw grid
       * @param  {ReactElement} element the grid item
       * @return {ReactElement} The instance of grid
       */

    }, {
      key: "renderClipPath",
      value: function renderClipPath() {
        var clipPathId = this.clipPathId;
        var _this$state$offset = this.state.offset,
            left = _this$state$offset.left,
            top = _this$state$offset.top,
            height = _this$state$offset.height,
            width = _this$state$offset.width;
        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_10___default.a.createElement("defs", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_10___default.a.createElement("clipPath", {
          id: clipPathId
        }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_10___default.a.createElement("rect", {
          x: left,
          y: top,
          height: height,
          width: width
        })));
      }
    }, {
      key: "getXScales",
      value: function getXScales() {
        var xAxisMap = this.state.xAxisMap;
        return xAxisMap ? Object.entries(xAxisMap).reduce(function (res, _ref12) {
          var _ref13 = _slicedToArray(_ref12, 2),
              axisId = _ref13[0],
              axisProps = _ref13[1];

          return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));
        }, {}) : null;
      }
    }, {
      key: "getYScales",
      value: function getYScales() {
        var yAxisMap = this.state.yAxisMap;
        return yAxisMap ? Object.entries(yAxisMap).reduce(function (res, _ref14) {
          var _ref15 = _slicedToArray(_ref14, 2),
              axisId = _ref15[0],
              axisProps = _ref15[1];

          return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));
        }, {}) : null;
      }
    }, {
      key: "getXScaleByAxisId",
      value: function getXScaleByAxisId(axisId) {
        var _this$state$xAxisMap, _this$state$xAxisMap$;

        return (_this$state$xAxisMap = this.state.xAxisMap) === null || _this$state$xAxisMap === void 0 ? void 0 : (_this$state$xAxisMap$ = _this$state$xAxisMap[axisId]) === null || _this$state$xAxisMap$ === void 0 ? void 0 : _this$state$xAxisMap$.scale;
      }
    }, {
      key: "getYScaleByAxisId",
      value: function getYScaleByAxisId(axisId) {
        var _this$state$yAxisMap, _this$state$yAxisMap$;

        return (_this$state$yAxisMap = this.state.yAxisMap) === null || _this$state$yAxisMap === void 0 ? void 0 : (_this$state$yAxisMap$ = _this$state$yAxisMap[axisId]) === null || _this$state$yAxisMap$ === void 0 ? void 0 : _this$state$yAxisMap$.scale;
      }
    }, {
      key: "getItemByXY",
      value: function getItemByXY(chartXY) {
        var formatedGraphicalItems = this.state.formatedGraphicalItems;

        if (formatedGraphicalItems && formatedGraphicalItems.length) {
          for (var i = 0, len = formatedGraphicalItems.length; i < len; i++) {
            var graphicalItem = formatedGraphicalItems[i];
            var props = graphicalItem.props,
                item = graphicalItem.item;
            var itemDisplayName = Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__[/* getDisplayName */ "c"])(item.type);

            if (itemDisplayName === 'Bar') {
              var activeBarItem = (props.data || []).find(function (entry) {
                return Object(_shape_Rectangle__WEBPACK_IMPORTED_MODULE_20__[/* isInRectangle */ "b"])(chartXY, entry);
              });

              if (activeBarItem) {
                return {
                  graphicalItem: graphicalItem,
                  payload: activeBarItem
                };
              }
            } else if (itemDisplayName === 'RadialBar') {
              var _activeBarItem = (props.data || []).find(function (entry) {
                return Object(_util_PolarUtils__WEBPACK_IMPORTED_MODULE_28__[/* inRangeOfSector */ "d"])(chartXY, entry);
              });

              if (_activeBarItem) {
                return {
                  graphicalItem: graphicalItem,
                  payload: _activeBarItem
                };
              }
            }
          }
        }

        return null;
      }
    }, {
      key: "render",
      value: function render() {
        var _this2 = this;

        if (!Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__[/* validateWidthHeight */ "h"])(this)) {
          return null;
        }

        var _this$props6 = this.props,
            children = _this$props6.children,
            className = _this$props6.className,
            width = _this$props6.width,
            height = _this$props6.height,
            style = _this$props6.style,
            compact = _this$props6.compact,
            others = _objectWithoutProperties(_this$props6, ["children", "className", "width", "height", "style", "compact"]);

        var attrs = Object(_util_types__WEBPACK_IMPORTED_MODULE_31__[/* filterProps */ "c"])(others);
        var map = {
          CartesianGrid: {
            handler: this.renderGrid,
            once: true
          },
          ReferenceArea: {
            handler: this.renderReferenceElement
          },
          ReferenceLine: {
            handler: this.renderReferenceElement
          },
          ReferenceDot: {
            handler: this.renderReferenceElement
          },
          XAxis: {
            handler: this.renderXAxis
          },
          YAxis: {
            handler: this.renderYAxis
          },
          Brush: {
            handler: this.renderBrush,
            once: true
          },
          Bar: {
            handler: this.renderGraphicChild
          },
          Line: {
            handler: this.renderGraphicChild
          },
          Area: {
            handler: this.renderGraphicChild
          },
          Radar: {
            handler: this.renderGraphicChild
          },
          RadialBar: {
            handler: this.renderGraphicChild
          },
          Scatter: {
            handler: this.renderGraphicChild
          },
          Pie: {
            handler: this.renderGraphicChild
          },
          Funnel: {
            handler: this.renderGraphicChild
          },
          Tooltip: {
            handler: this.renderCursor,
            once: true
          },
          PolarGrid: {
            handler: this.renderPolarGrid,
            once: true
          },
          PolarAngleAxis: {
            handler: this.renderPolarAxis
          },
          PolarRadiusAxis: {
            handler: this.renderPolarAxis
          },
          Customized: {
            handler: this.renderCustomized
          }
        }; // The "compact" mode is mainly used as the panorama within Brush

        if (compact) {
          return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_10___default.a.createElement(_container_Surface__WEBPACK_IMPORTED_MODULE_12__[/* Surface */ "a"], _extends({}, attrs, {
            width: width,
            height: height
          }), this.renderClipPath(), Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__[/* renderByOrder */ "g"])(children, map));
        }

        var events = this.parseEventsOfWrapper();
        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_10___default.a.createElement("div", _extends({
          className: classnames__WEBPACK_IMPORTED_MODULE_11___default()('recharts-wrapper', className),
          style: _objectSpread({
            position: 'relative',
            cursor: 'default',
            width: width,
            height: height
          }, style)
        }, events, {
          ref: function ref(node) {
            _this2.container = node;
          }
        }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_10___default.a.createElement(_container_Surface__WEBPACK_IMPORTED_MODULE_12__[/* Surface */ "a"], _extends({}, attrs, {
          width: width,
          height: height
        }), this.renderClipPath(), Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__[/* renderByOrder */ "g"])(children, map)), this.renderLegend(), this.renderTooltip());
      }
    }]);

    return CategoricalChartWrapper;
  }(react__WEBPACK_IMPORTED_MODULE_10__["Component"]), _class.displayName = chartName, _class.defaultProps = _objectSpread({
    layout: 'horizontal',
    stackOffset: 'none',
    barCategoryGap: '10%',
    barGap: 4,
    margin: {
      top: 5,
      right: 5,
      bottom: 5,
      left: 5
    },
    reverseStackOrder: false,
    syncMethod: 'index'
  }, defaultProps), _class.getDerivedStateFromProps = function (nextProps, prevState) {
    var data = nextProps.data,
        children = nextProps.children,
        width = nextProps.width,
        height = nextProps.height,
        layout = nextProps.layout,
        stackOffset = nextProps.stackOffset,
        margin = nextProps.margin;

    if (lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(prevState.updateId)) {
      var defaultState = createDefaultState(nextProps);
      return _objectSpread(_objectSpread(_objectSpread({}, defaultState), {}, {
        updateId: 0
      }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({
        props: nextProps
      }, defaultState), {}, {
        updateId: 0
      }), prevState)), {}, {
        prevData: data,
        prevWidth: width,
        prevHeight: height,
        prevLayout: layout,
        prevStackOffset: stackOffset,
        prevMargin: margin,
        prevChildren: children
      });
    }

    if (data !== prevState.prevData || width !== prevState.prevWidth || height !== prevState.prevHeight || layout !== prevState.prevLayout || stackOffset !== prevState.prevStackOffset || !Object(_util_ShallowEqual__WEBPACK_IMPORTED_MODULE_29__[/* shallowEqual */ "a"])(margin, prevState.prevMargin)) {
      var _defaultState = createDefaultState(nextProps); // Fixes https://github.com/recharts/recharts/issues/2143


      var keepFromPrevState = {
        // (chartX, chartY) are (0,0) in default state, but we want to keep the last mouse position to avoid
        // any flickering
        chartX: prevState.chartX,
        chartY: prevState.chartY,
        // The tooltip should stay active when it was active in the previous render. If this is not
        // the case, the tooltip disappears and immediately re-appears, causing a flickering effect
        isTooltipActive: prevState.isTooltipActive
      };

      var updatesToState = _objectSpread(_objectSpread({}, getTooltipData(prevState, data, layout)), {}, {
        updateId: prevState.updateId + 1
      });

      var newState = _objectSpread(_objectSpread(_objectSpread({}, _defaultState), keepFromPrevState), updatesToState);

      return _objectSpread(_objectSpread(_objectSpread({}, newState), updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({
        props: nextProps
      }, newState), prevState)), {}, {
        prevData: data,
        prevWidth: width,
        prevHeight: height,
        prevLayout: layout,
        prevStackOffset: stackOffset,
        prevMargin: margin,
        prevChildren: children
      });
    }

    if (!Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_21__[/* isChildrenEqual */ "e"])(children, prevState.prevChildren)) {
      // update configuration in chilren
      var hasGlobalData = !lodash_isNil__WEBPACK_IMPORTED_MODULE_7___default()(data);
      var newUpdateId = hasGlobalData ? prevState.updateId : prevState.updateId + 1;
      return _objectSpread(_objectSpread({
        updateId: newUpdateId
      }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({
        props: nextProps
      }, prevState), {}, {
        updateId: newUpdateId
      }), prevState)), {}, {
        prevChildren: children
      });
    }

    return null;
  }, _class.renderActiveDot = function (option, props) {
    var dot;

    if ( /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_10__["isValidElement"])(option)) {
      dot = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_10__["cloneElement"])(option, props);
    } else if (lodash_isFunction__WEBPACK_IMPORTED_MODULE_2___default()(option)) {
      dot = option(props);
    } else {
      dot = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_10___default.a.createElement(_shape_Dot__WEBPACK_IMPORTED_MODULE_19__[/* Dot */ "a"], props);
    }

    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_10___default.a.createElement(_container_Layer__WEBPACK_IMPORTED_MODULE_13__[/* Layer */ "a"], {
      className: "recharts-active-dot",
      key: props.key
    }, dot);
  }, _temp;
};
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(409).setImmediate, __webpack_require__(409).clearImmediate))var arrayEvery = __webpack_require__(861),
    baseEvery = __webpack_require__(862),
    baseIteratee = __webpack_require__(216),
    isArray = __webpack_require__(71),
    isIterateeCall = __webpack_require__(400);

/**
 * Checks if `predicate` returns truthy for **all** elements of `collection`.
 * Iteration is stopped once `predicate` returns falsey. The predicate is
 * invoked with three arguments: (value, index|key, collection).
 *
 * **Note:** This method returns `true` for
 * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because
 * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of
 * elements of empty collections.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Collection
 * @param {Array|Object} collection The collection to iterate over.
 * @param {Function} [predicate=_.identity] The function invoked per iteration.
 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
 * @returns {boolean} Returns `true` if all elements pass the predicate check,
 *  else `false`.
 * @example
 *
 * _.every([true, 1, null, 'yes'], Boolean);
 * // => false
 *
 * var users = [
 *   { 'user': 'barney', 'age': 36, 'active': false },
 *   { 'user': 'fred',   'age': 40, 'active': false }
 * ];
 *
 * // The `_.matches` iteratee shorthand.
 * _.every(users, { 'user': 'barney', 'active': false });
 * // => false
 *
 * // The `_.matchesProperty` iteratee shorthand.
 * _.every(users, ['active', false]);
 * // => true
 *
 * // The `_.property` iteratee shorthand.
 * _.every(users, 'active');
 * // => false
 */
function every(collection, predicate, guard) {
  var func = isArray(collection) ? arrayEvery : baseEvery;
  if (guard && isIterateeCall(collection, predicate, guard)) {
    predicate = undefined;
  }
  return func(collection, baseIteratee(predicate, 3));
}

module.exports = every;
/**
 * A specialized version of `_.every` for arrays without support for
 * iteratee shorthands.
 *
 * @private
 * @param {Array} [array] The array to iterate over.
 * @param {Function} predicate The function invoked per iteration.
 * @returns {boolean} Returns `true` if all elements pass the predicate check,
 *  else `false`.
 */
function arrayEvery(array, predicate) {
  var index = -1,
      length = array == null ? 0 : array.length;

  while (++index < length) {
    if (!predicate(array[index], index, array)) {
      return false;
    }
  }
  return true;
}

module.exports = arrayEvery;
var baseEach = __webpack_require__(481);

/**
 * The base implementation of `_.every` without support for iteratee shorthands.
 *
 * @private
 * @param {Array|Object} collection The collection to iterate over.
 * @param {Function} predicate The function invoked per iteration.
 * @returns {boolean} Returns `true` if all elements pass the predicate check,
 *  else `false`
 */
function baseEvery(collection, predicate) {
  var result = true;
  baseEach(collection, function(value, index, collection) {
    result = !!predicate(value, index, collection);
    return result;
  });
  return result;
}

module.exports = baseEvery;
var baseForOwn = __webpack_require__(588),
    createBaseEach = __webpack_require__(876);

/**
 * The base implementation of `_.forEach` without support for iteratee shorthands.
 *
 * @private
 * @param {Array|Object} collection The collection to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Array|Object} Returns `collection`.
 */
var baseEach = createBaseEach(baseForOwn);

module.exports = baseEach;
var baseFor = __webpack_require__(863),
    keys = __webpack_require__(394);

/**
 * The base implementation of `_.forOwn` without support for iteratee shorthands.
 *
 * @private
 * @param {Object} object The object to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Object} Returns `object`.
 */
function baseForOwn(object, iteratee) {
  return object && baseFor(object, iteratee, keys);
}

module.exports = baseForOwn;
var createBaseFor = __webpack_require__(864);

/**
 * The base implementation of `baseForOwn` which iterates over `object`
 * properties returned by `keysFunc` and invokes `iteratee` for each property.
 * Iteratee functions may exit iteration early by explicitly returning `false`.
 *
 * @private
 * @param {Object} object The object to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @param {Function} keysFunc The function to get the keys of `object`.
 * @returns {Object} Returns `object`.
 */
var baseFor = createBaseFor();

module.exports = baseFor;
/**
 * Creates a base function for methods like `_.forIn` and `_.forOwn`.
 *
 * @private
 * @param {boolean} [fromRight] Specify iterating from right to left.
 * @returns {Function} Returns the new base function.
 */
function createBaseFor(fromRight) {
  return function(object, iteratee, keysFunc) {
    var index = -1,
        iterable = Object(object),
        props = keysFunc(object),
        length = props.length;

    while (length--) {
      var key = props[fromRight ? length : ++index];
      if (iteratee(iterable[key], key, iterable) === false) {
        break;
      }
    }
    return object;
  };
}

module.exports = createBaseFor;
var arrayLikeKeys = __webpack_require__(865),
    baseKeys = __webpack_require__(873),
    isArrayLike = __webpack_require__(360);

/**
 * Creates an array of the own enumerable property names of `object`.
 *
 * **Note:** Non-object values are coerced to objects. See the
 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
 * for more details.
 *
 * @static
 * @since 0.1.0
 * @memberOf _
 * @category Object
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 * @example
 *
 * function Foo() {
 *   this.a = 1;
 *   this.b = 2;
 * }
 *
 * Foo.prototype.c = 3;
 *
 * _.keys(new Foo);
 * // => ['a', 'b'] (iteration order is not guaranteed)
 *
 * _.keys('hi');
 * // => ['0', '1']
 */
function keys(object) {
  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
}

module.exports = keys;
var baseTimes = __webpack_require__(866),
    isArguments = __webpack_require__(482),
    isArray = __webpack_require__(71),
    isBuffer = __webpack_require__(590),
    isIndex = __webpack_require__(483),
    isTypedArray = __webpack_require__(591);

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * Creates an array of the enumerable property names of the array-like `value`.
 *
 * @private
 * @param {*} value The value to query.
 * @param {boolean} inherited Specify returning inherited property names.
 * @returns {Array} Returns the array of property names.
 */
function arrayLikeKeys(value, inherited) {
  var isArr = isArray(value),
      isArg = !isArr && isArguments(value),
      isBuff = !isArr && !isArg && isBuffer(value),
      isType = !isArr && !isArg && !isBuff && isTypedArray(value),
      skipIndexes = isArr || isArg || isBuff || isType,
      result = skipIndexes ? baseTimes(value.length, String) : [],
      length = result.length;

  for (var key in value) {
    if ((inherited || hasOwnProperty.call(value, key)) &&
        !(skipIndexes && (
           // Safari 9 has enumerable `arguments.length` in strict mode.
           key == 'length' ||
           // Node.js 0.10 has enumerable non-index properties on buffers.
           (isBuff && (key == 'offset' || key == 'parent')) ||
           // PhantomJS 2 has enumerable non-index properties on typed arrays.
           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
           // Skip index properties.
           isIndex(key, length)
        ))) {
      result.push(key);
    }
  }
  return result;
}

module.exports = arrayLikeKeys;
/**
 * The base implementation of `_.times` without support for iteratee shorthands
 * or max array length checks.
 *
 * @private
 * @param {number} n The number of times to invoke `iteratee`.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Array} Returns the array of results.
 */
function baseTimes(n, iteratee) {
  var index = -1,
      result = Array(n);

  while (++index < n) {
    result[index] = iteratee(index);
  }
  return result;
}

module.exports = baseTimes;
var baseIsArguments = __webpack_require__(867),
    isObjectLike = __webpack_require__(234);

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/** Built-in value references. */
var propertyIsEnumerable = objectProto.propertyIsEnumerable;

/**
 * Checks if `value` is likely an `arguments` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 *  else `false`.
 * @example
 *
 * _.isArguments(function() { return arguments; }());
 * // => true
 *
 * _.isArguments([1, 2, 3]);
 * // => false
 */
var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
    !propertyIsEnumerable.call(value, 'callee');
};

module.exports = isArguments;
var baseGetTag = __webpack_require__(233),
    isObjectLike = __webpack_require__(234);

/** `Object#toString` result references. */
var argsTag = '[object Arguments]';

/**
 * The base implementation of `_.isArguments`.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 */
function baseIsArguments(value) {
  return isObjectLike(value) && baseGetTag(value) == argsTag;
}

module.exports = baseIsArguments;
var Symbol = __webpack_require__(359),
    getRawTag = __webpack_require__(868),
    objectToString = __webpack_require__(869);

/** `Object#toString` result references. */
var nullTag = '[object Null]',
    undefinedTag = '[object Undefined]';

/** Built-in value references. */
var symToStringTag = Symbol ? Symbol.toStringTag : undefined;

/**
 * The base implementation of `getTag` without fallbacks for buggy environments.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the `toStringTag`.
 */
function baseGetTag(value) {
  if (value == null) {
    return value === undefined ? undefinedTag : nullTag;
  }
  return (symToStringTag && symToStringTag in Object(value))
    ? getRawTag(value)
    : objectToString(value);
}

module.exports = baseGetTag;
var root = __webpack_require__(215);

/** Built-in value references. */
var Symbol = root.Symbol;

module.exports = Symbol;
var freeGlobal = __webpack_require__(589);

/** Detect free variable `self`. */
var freeSelf = typeof self == 'object' && self && self.Object === Object && self;

/** Used as a reference to the global object. */
var root = freeGlobal || freeSelf || Function('return this')();

module.exports = root;
/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;

module.exports = freeGlobal;

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(108)))var Symbol = __webpack_require__(359);

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */
var nativeObjectToString = objectProto.toString;

/** Built-in value references. */
var symToStringTag = Symbol ? Symbol.toStringTag : undefined;

/**
 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the raw `toStringTag`.
 */
function getRawTag(value) {
  var isOwn = hasOwnProperty.call(value, symToStringTag),
      tag = value[symToStringTag];

  try {
    value[symToStringTag] = undefined;
    var unmasked = true;
  } catch (e) {}

  var result = nativeObjectToString.call(value);
  if (unmasked) {
    if (isOwn) {
      value[symToStringTag] = tag;
    } else {
      delete value[symToStringTag];
    }
  }
  return result;
}

module.exports = getRawTag;
/** Used for built-in method references. */
var objectProto = Object.prototype;

/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */
var nativeObjectToString = objectProto.toString;

/**
 * Converts `value` to a string using `Object.prototype.toString`.
 *
 * @private
 * @param {*} value The value to convert.
 * @returns {string} Returns the converted string.
 */
function objectToString(value) {
  return nativeObjectToString.call(value);
}

module.exports = objectToString;
/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */
function isObjectLike(value) {
  return value != null && typeof value == 'object';
}

module.exports = isObjectLike;
/**
 * Checks if `value` is classified as an `Array` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
 * @example
 *
 * _.isArray([1, 2, 3]);
 * // => true
 *
 * _.isArray(document.body.children);
 * // => false
 *
 * _.isArray('abc');
 * // => false
 *
 * _.isArray(_.noop);
 * // => false
 */
var isArray = Array.isArray;

module.exports = isArray;
/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(215),
    stubFalse = __webpack_require__(870);

/** Detect free variable `exports`. */
var freeExports =  true && exports && !exports.nodeType && exports;

/** Detect free variable `module`. */
var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;

/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;

/** Built-in value references. */
var Buffer = moduleExports ? root.Buffer : undefined;

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;

/**
 * Checks if `value` is a buffer.
 *
 * @static
 * @memberOf _
 * @since 4.3.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
 * @example
 *
 * _.isBuffer(new Buffer(2));
 * // => true
 *
 * _.isBuffer(new Uint8Array(2));
 * // => false
 */
var isBuffer = nativeIsBuffer || stubFalse;

module.exports = isBuffer;

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(250)(module)))/**
 * This method returns `false`.
 *
 * @static
 * @memberOf _
 * @since 4.13.0
 * @category Util
 * @returns {boolean} Returns `false`.
 * @example
 *
 * _.times(2, _.stubFalse);
 * // => [false, false]
 */
function stubFalse() {
  return false;
}

module.exports = stubFalse;
/** Used as references for various `Number` constants. */
var MAX_SAFE_INTEGER = 9007199254740991;

/** Used to detect unsigned integer values. */
var reIsUint = /^(?:0|[1-9]\d*)$/;

/**
 * Checks if `value` is a valid array-like index.
 *
 * @private
 * @param {*} value The value to check.
 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
 */
function isIndex(value, length) {
  var type = typeof value;
  length = length == null ? MAX_SAFE_INTEGER : length;

  return !!length &&
    (type == 'number' ||
      (type != 'symbol' && reIsUint.test(value))) &&
        (value > -1 && value % 1 == 0 && value < length);
}

module.exports = isIndex;
var baseIsTypedArray = __webpack_require__(871),
    baseUnary = __webpack_require__(592),
    nodeUtil = __webpack_require__(872);

/* Node.js helper references. */
var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;

/**
 * Checks if `value` is classified as a typed array.
 *
 * @static
 * @memberOf _
 * @since 3.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
 * @example
 *
 * _.isTypedArray(new Uint8Array);
 * // => true
 *
 * _.isTypedArray([]);
 * // => false
 */
var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;

module.exports = isTypedArray;
var baseGetTag = __webpack_require__(233),
    isLength = __webpack_require__(484),
    isObjectLike = __webpack_require__(234);

/** `Object#toString` result references. */
var argsTag = '[object Arguments]',
    arrayTag = '[object Array]',
    boolTag = '[object Boolean]',
    dateTag = '[object Date]',
    errorTag = '[object Error]',
    funcTag = '[object Function]',
    mapTag = '[object Map]',
    numberTag = '[object Number]',
    objectTag = '[object Object]',
    regexpTag = '[object RegExp]',
    setTag = '[object Set]',
    stringTag = '[object String]',
    weakMapTag = '[object WeakMap]';

var arrayBufferTag = '[object ArrayBuffer]',
    dataViewTag = '[object DataView]',
    float32Tag = '[object Float32Array]',
    float64Tag = '[object Float64Array]',
    int8Tag = '[object Int8Array]',
    int16Tag = '[object Int16Array]',
    int32Tag = '[object Int32Array]',
    uint8Tag = '[object Uint8Array]',
    uint8ClampedTag = '[object Uint8ClampedArray]',
    uint16Tag = '[object Uint16Array]',
    uint32Tag = '[object Uint32Array]';

/** Used to identify `toStringTag` values of typed arrays. */
var typedArrayTags = {};
typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
typedArrayTags[uint32Tag] = true;
typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
typedArrayTags[errorTag] = typedArrayTags[funcTag] =
typedArrayTags[mapTag] = typedArrayTags[numberTag] =
typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
typedArrayTags[setTag] = typedArrayTags[stringTag] =
typedArrayTags[weakMapTag] = false;

/**
 * The base implementation of `_.isTypedArray` without Node.js optimizations.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
 */
function baseIsTypedArray(value) {
  return isObjectLike(value) &&
    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
}

module.exports = baseIsTypedArray;
/** Used as references for various `Number` constants. */
var MAX_SAFE_INTEGER = 9007199254740991;

/**
 * Checks if `value` is a valid array-like length.
 *
 * **Note:** This method is loosely based on
 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
 * @example
 *
 * _.isLength(3);
 * // => true
 *
 * _.isLength(Number.MIN_VALUE);
 * // => false
 *
 * _.isLength(Infinity);
 * // => false
 *
 * _.isLength('3');
 * // => false
 */
function isLength(value) {
  return typeof value == 'number' &&
    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}

module.exports = isLength;
/**
 * The base implementation of `_.unary` without support for storing metadata.
 *
 * @private
 * @param {Function} func The function to cap arguments for.
 * @returns {Function} Returns the new capped function.
 */
function baseUnary(func) {
  return function(value) {
    return func(value);
  };
}

module.exports = baseUnary;
/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(589);

/** Detect free variable `exports`. */
var freeExports =  true && exports && !exports.nodeType && exports;

/** Detect free variable `module`. */
var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;

/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;

/** Detect free variable `process` from Node.js. */
var freeProcess = moduleExports && freeGlobal.process;

/** Used to access faster Node.js helpers. */
var nodeUtil = (function() {
  try {
    // Use `util.types` for Node.js 10+.
    var types = freeModule && freeModule.require && freeModule.require('util').types;

    if (types) {
      return types;
    }

    // Legacy `process.binding('util')` for Node.js < 10.
    return freeProcess && freeProcess.binding && freeProcess.binding('util');
  } catch (e) {}
}());

module.exports = nodeUtil;

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(250)(module)))var isPrototype = __webpack_require__(874),
    nativeKeys = __webpack_require__(875);

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 */
function baseKeys(object) {
  if (!isPrototype(object)) {
    return nativeKeys(object);
  }
  var result = [];
  for (var key in Object(object)) {
    if (hasOwnProperty.call(object, key) && key != 'constructor') {
      result.push(key);
    }
  }
  return result;
}

module.exports = baseKeys;
/** Used for built-in method references. */
var objectProto = Object.prototype;

/**
 * Checks if `value` is likely a prototype object.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
 */
function isPrototype(value) {
  var Ctor = value && value.constructor,
      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;

  return value === proto;
}

module.exports = isPrototype;
var overArg = __webpack_require__(593);

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeKeys = overArg(Object.keys, Object);

module.exports = nativeKeys;
/**
 * Creates a unary function that invokes `func` with its argument transformed.
 *
 * @private
 * @param {Function} func The function to wrap.
 * @param {Function} transform The argument transform.
 * @returns {Function} Returns the new function.
 */
function overArg(func, transform) {
  return function(arg) {
    return func(transform(arg));
  };
}

module.exports = overArg;
var isFunction = __webpack_require__(51),
    isLength = __webpack_require__(484);

/**
 * Checks if `value` is array-like. A value is considered array-like if it's
 * not a function and has a `value.length` that's an integer greater than or
 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
 * @example
 *
 * _.isArrayLike([1, 2, 3]);
 * // => true
 *
 * _.isArrayLike(document.body.children);
 * // => true
 *
 * _.isArrayLike('abc');
 * // => true
 *
 * _.isArrayLike(_.noop);
 * // => false
 */
function isArrayLike(value) {
  return value != null && isLength(value.length) && !isFunction(value);
}

module.exports = isArrayLike;
var baseGetTag = __webpack_require__(233),
    isObject = __webpack_require__(143);

/** `Object#toString` result references. */
var asyncTag = '[object AsyncFunction]',
    funcTag = '[object Function]',
    genTag = '[object GeneratorFunction]',
    proxyTag = '[object Proxy]';

/**
 * Checks if `value` is classified as a `Function` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
 * @example
 *
 * _.isFunction(_);
 * // => true
 *
 * _.isFunction(/abc/);
 * // => false
 */
function isFunction(value) {
  if (!isObject(value)) {
    return false;
  }
  // The use of `Object#toString` avoids issues with the `typeof` operator
  // in Safari 9 which returns 'object' for typed arrays and other constructors.
  var tag = baseGetTag(value);
  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
}

module.exports = isFunction;
/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */
function isObject(value) {
  var type = typeof value;
  return value != null && (type == 'object' || type == 'function');
}

module.exports = isObject;
var isArrayLike = __webpack_require__(360);

/**
 * Creates a `baseEach` or `baseEachRight` function.
 *
 * @private
 * @param {Function} eachFunc The function to iterate over a collection.
 * @param {boolean} [fromRight] Specify iterating from right to left.
 * @returns {Function} Returns the new base function.
 */
function createBaseEach(eachFunc, fromRight) {
  return function(collection, iteratee) {
    if (collection == null) {
      return collection;
    }
    if (!isArrayLike(collection)) {
      return eachFunc(collection, iteratee);
    }
    var length = collection.length,
        index = fromRight ? length : -1,
        iterable = Object(collection);

    while ((fromRight ? index-- : ++index < length)) {
      if (iteratee(iterable[index], index, iterable) === false) {
        break;
      }
    }
    return collection;
  };
}

module.exports = createBaseEach;
var baseMatches = __webpack_require__(877),
    baseMatchesProperty = __webpack_require__(922),
    identity = __webpack_require__(303),
    isArray = __webpack_require__(71),
    property = __webpack_require__(930);

/**
 * The base implementation of `_.iteratee`.
 *
 * @private
 * @param {*} [value=_.identity] The value to convert to an iteratee.
 * @returns {Function} Returns the iteratee.
 */
function baseIteratee(value) {
  // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.
  // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.
  if (typeof value == 'function') {
    return value;
  }
  if (value == null) {
    return identity;
  }
  if (typeof value == 'object') {
    return isArray(value)
      ? baseMatchesProperty(value[0], value[1])
      : baseMatches(value);
  }
  return property(value);
}

module.exports = baseIteratee;
var baseIsMatch = __webpack_require__(878),
    getMatchData = __webpack_require__(921),
    matchesStrictComparable = __webpack_require__(603);

/**
 * The base implementation of `_.matches` which doesn't clone `source`.
 *
 * @private
 * @param {Object} source The object of property values to match.
 * @returns {Function} Returns the new spec function.
 */
function baseMatches(source) {
  var matchData = getMatchData(source);
  if (matchData.length == 1 && matchData[0][2]) {
    return matchesStrictComparable(matchData[0][0], matchData[0][1]);
  }
  return function(object) {
    return object === source || baseIsMatch(object, source, matchData);
  };
}

module.exports = baseMatches;
var Stack = __webpack_require__(594),
    baseIsEqual = __webpack_require__(488);

/** Used to compose bitmasks for value comparisons. */
var COMPARE_PARTIAL_FLAG = 1,
    COMPARE_UNORDERED_FLAG = 2;

/**
 * The base implementation of `_.isMatch` without support for iteratee shorthands.
 *
 * @private
 * @param {Object} object The object to inspect.
 * @param {Object} source The object of property values to match.
 * @param {Array} matchData The property names, values, and compare flags to match.
 * @param {Function} [customizer] The function to customize comparisons.
 * @returns {boolean} Returns `true` if `object` is a match, else `false`.
 */
function baseIsMatch(object, source, matchData, customizer) {
  var index = matchData.length,
      length = index,
      noCustomizer = !customizer;

  if (object == null) {
    return !length;
  }
  object = Object(object);
  while (index--) {
    var data = matchData[index];
    if ((noCustomizer && data[2])
          ? data[1] !== object[data[0]]
          : !(data[0] in object)
        ) {
      return false;
    }
  }
  while (++index < length) {
    data = matchData[index];
    var key = data[0],
        objValue = object[key],
        srcValue = data[1];

    if (noCustomizer && data[2]) {
      if (objValue === undefined && !(key in object)) {
        return false;
      }
    } else {
      var stack = new Stack;
      if (customizer) {
        var result = customizer(objValue, srcValue, key, object, source, stack);
      }
      if (!(result === undefined
            ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)
            : result
          )) {
        return false;
      }
    }
  }
  return true;
}

module.exports = baseIsMatch;
var ListCache = __webpack_require__(395),
    stackClear = __webpack_require__(884),
    stackDelete = __webpack_require__(885),
    stackGet = __webpack_require__(886),
    stackHas = __webpack_require__(887),
    stackSet = __webpack_require__(888);

/**
 * Creates a stack cache object to store key-value pairs.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */
function Stack(entries) {
  var data = this.__data__ = new ListCache(entries);
  this.size = data.size;
}

// Add methods to `Stack`.
Stack.prototype.clear = stackClear;
Stack.prototype['delete'] = stackDelete;
Stack.prototype.get = stackGet;
Stack.prototype.has = stackHas;
Stack.prototype.set = stackSet;

module.exports = Stack;
var listCacheClear = __webpack_require__(879),
    listCacheDelete = __webpack_require__(880),
    listCacheGet = __webpack_require__(881),
    listCacheHas = __webpack_require__(882),
    listCacheSet = __webpack_require__(883);

/**
 * Creates an list cache object.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */
function ListCache(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;

  this.clear();
  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}

// Add methods to `ListCache`.
ListCache.prototype.clear = listCacheClear;
ListCache.prototype['delete'] = listCacheDelete;
ListCache.prototype.get = listCacheGet;
ListCache.prototype.has = listCacheHas;
ListCache.prototype.set = listCacheSet;

module.exports = ListCache;
/**
 * Removes all key-value entries from the list cache.
 *
 * @private
 * @name clear
 * @memberOf ListCache
 */
function listCacheClear() {
  this.__data__ = [];
  this.size = 0;
}

module.exports = listCacheClear;
var assocIndexOf = __webpack_require__(396);

/** Used for built-in method references. */
var arrayProto = Array.prototype;

/** Built-in value references. */
var splice = arrayProto.splice;

/**
 * Removes `key` and its value from the list cache.
 *
 * @private
 * @name delete
 * @memberOf ListCache
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */
function listCacheDelete(key) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  if (index < 0) {
    return false;
  }
  var lastIndex = data.length - 1;
  if (index == lastIndex) {
    data.pop();
  } else {
    splice.call(data, index, 1);
  }
  --this.size;
  return true;
}

module.exports = listCacheDelete;
var eq = __webpack_require__(485);

/**
 * Gets the index at which the `key` is found in `array` of key-value pairs.
 *
 * @private
 * @param {Array} array The array to inspect.
 * @param {*} key The key to search for.
 * @returns {number} Returns the index of the matched value, else `-1`.
 */
function assocIndexOf(array, key) {
  var length = array.length;
  while (length--) {
    if (eq(array[length][0], key)) {
      return length;
    }
  }
  return -1;
}

module.exports = assocIndexOf;
/**
 * Performs a
 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
 * comparison between two values to determine if they are equivalent.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
 * @example
 *
 * var object = { 'a': 1 };
 * var other = { 'a': 1 };
 *
 * _.eq(object, object);
 * // => true
 *
 * _.eq(object, other);
 * // => false
 *
 * _.eq('a', 'a');
 * // => true
 *
 * _.eq('a', Object('a'));
 * // => false
 *
 * _.eq(NaN, NaN);
 * // => true
 */
function eq(value, other) {
  return value === other || (value !== value && other !== other);
}

module.exports = eq;
var assocIndexOf = __webpack_require__(396);

/**
 * Gets the list cache value for `key`.
 *
 * @private
 * @name get
 * @memberOf ListCache
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */
function listCacheGet(key) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  return index < 0 ? undefined : data[index][1];
}

module.exports = listCacheGet;
var assocIndexOf = __webpack_require__(396);

/**
 * Checks if a list cache value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf ListCache
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */
function listCacheHas(key) {
  return assocIndexOf(this.__data__, key) > -1;
}

module.exports = listCacheHas;
var assocIndexOf = __webpack_require__(396);

/**
 * Sets the list cache `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf ListCache
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the list cache instance.
 */
function listCacheSet(key, value) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  if (index < 0) {
    ++this.size;
    data.push([key, value]);
  } else {
    data[index][1] = value;
  }
  return this;
}

module.exports = listCacheSet;
var ListCache = __webpack_require__(395);

/**
 * Removes all key-value entries from the stack.
 *
 * @private
 * @name clear
 * @memberOf Stack
 */
function stackClear() {
  this.__data__ = new ListCache;
  this.size = 0;
}

module.exports = stackClear;
/**
 * Removes `key` and its value from the stack.
 *
 * @private
 * @name delete
 * @memberOf Stack
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */
function stackDelete(key) {
  var data = this.__data__,
      result = data['delete'](key);

  this.size = data.size;
  return result;
}

module.exports = stackDelete;
/**
 * Gets the stack value for `key`.
 *
 * @private
 * @name get
 * @memberOf Stack
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */
function stackGet(key) {
  return this.__data__.get(key);
}

module.exports = stackGet;
/**
 * Checks if a stack value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf Stack
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */
function stackHas(key) {
  return this.__data__.has(key);
}

module.exports = stackHas;
var ListCache = __webpack_require__(395),
    Map = __webpack_require__(486),
    MapCache = __webpack_require__(487);

/** Used as the size to enable large array optimizations. */
var LARGE_ARRAY_SIZE = 200;

/**
 * Sets the stack `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf Stack
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the stack cache instance.
 */
function stackSet(key, value) {
  var data = this.__data__;
  if (data instanceof ListCache) {
    var pairs = data.__data__;
    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
      pairs.push([key, value]);
      this.size = ++data.size;
      return this;
    }
    data = this.__data__ = new MapCache(pairs);
  }
  data.set(key, value);
  this.size = data.size;
  return this;
}

module.exports = stackSet;
var getNative = __webpack_require__(272),
    root = __webpack_require__(215);

/* Built-in method references that are verified to be native. */
var Map = getNative(root, 'Map');

module.exports = Map;
var baseIsNative = __webpack_require__(889),
    getValue = __webpack_require__(892);

/**
 * Gets the native function at `key` of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @param {string} key The key of the method to get.
 * @returns {*} Returns the function if it's native, else `undefined`.
 */
function getNative(object, key) {
  var value = getValue(object, key);
  return baseIsNative(value) ? value : undefined;
}

module.exports = getNative;
var isFunction = __webpack_require__(51),
    isMasked = __webpack_require__(890),
    isObject = __webpack_require__(143),
    toSource = __webpack_require__(595);

/**
 * Used to match `RegExp`
 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
 */
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;

/** Used to detect host constructors (Safari). */
var reIsHostCtor = /^\[object .+?Constructor\]$/;

/** Used for built-in method references. */
var funcProto = Function.prototype,
    objectProto = Object.prototype;

/** Used to resolve the decompiled source of functions. */
var funcToString = funcProto.toString;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/** Used to detect if a method is native. */
var reIsNative = RegExp('^' +
  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
  .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
);

/**
 * The base implementation of `_.isNative` without bad shim checks.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a native function,
 *  else `false`.
 */
function baseIsNative(value) {
  if (!isObject(value) || isMasked(value)) {
    return false;
  }
  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
  return pattern.test(toSource(value));
}

module.exports = baseIsNative;
var coreJsData = __webpack_require__(891);

/** Used to detect methods masquerading as native. */
var maskSrcKey = (function() {
  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
  return uid ? ('Symbol(src)_1.' + uid) : '';
}());

/**
 * Checks if `func` has its source masked.
 *
 * @private
 * @param {Function} func The function to check.
 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
 */
function isMasked(func) {
  return !!maskSrcKey && (maskSrcKey in func);
}

module.exports = isMasked;
var root = __webpack_require__(215);

/** Used to detect overreaching core-js shims. */
var coreJsData = root['__core-js_shared__'];

module.exports = coreJsData;
/** Used for built-in method references. */
var funcProto = Function.prototype;

/** Used to resolve the decompiled source of functions. */
var funcToString = funcProto.toString;

/**
 * Converts `func` to its source code.
 *
 * @private
 * @param {Function} func The function to convert.
 * @returns {string} Returns the source code.
 */
function toSource(func) {
  if (func != null) {
    try {
      return funcToString.call(func);
    } catch (e) {}
    try {
      return (func + '');
    } catch (e) {}
  }
  return '';
}

module.exports = toSource;
/**
 * Gets the value at `key` of `object`.
 *
 * @private
 * @param {Object} [object] The object to query.
 * @param {string} key The key of the property to get.
 * @returns {*} Returns the property value.
 */
function getValue(object, key) {
  return object == null ? undefined : object[key];
}

module.exports = getValue;
var mapCacheClear = __webpack_require__(893),
    mapCacheDelete = __webpack_require__(900),
    mapCacheGet = __webpack_require__(902),
    mapCacheHas = __webpack_require__(903),
    mapCacheSet = __webpack_require__(904);

/**
 * Creates a map cache object to store key-value pairs.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */
function MapCache(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;

  this.clear();
  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}

// Add methods to `MapCache`.
MapCache.prototype.clear = mapCacheClear;
MapCache.prototype['delete'] = mapCacheDelete;
MapCache.prototype.get = mapCacheGet;
MapCache.prototype.has = mapCacheHas;
MapCache.prototype.set = mapCacheSet;

module.exports = MapCache;
var Hash = __webpack_require__(894),
    ListCache = __webpack_require__(395),
    Map = __webpack_require__(486);

/**
 * Removes all key-value entries from the map.
 *
 * @private
 * @name clear
 * @memberOf MapCache
 */
function mapCacheClear() {
  this.size = 0;
  this.__data__ = {
    'hash': new Hash,
    'map': new (Map || ListCache),
    'string': new Hash
  };
}

module.exports = mapCacheClear;
var hashClear = __webpack_require__(895),
    hashDelete = __webpack_require__(896),
    hashGet = __webpack_require__(897),
    hashHas = __webpack_require__(898),
    hashSet = __webpack_require__(899);

/**
 * Creates a hash object.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */
function Hash(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;

  this.clear();
  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}

// Add methods to `Hash`.
Hash.prototype.clear = hashClear;
Hash.prototype['delete'] = hashDelete;
Hash.prototype.get = hashGet;
Hash.prototype.has = hashHas;
Hash.prototype.set = hashSet;

module.exports = Hash;
var nativeCreate = __webpack_require__(397);

/**
 * Removes all key-value entries from the hash.
 *
 * @private
 * @name clear
 * @memberOf Hash
 */
function hashClear() {
  this.__data__ = nativeCreate ? nativeCreate(null) : {};
  this.size = 0;
}

module.exports = hashClear;
var getNative = __webpack_require__(272);

/* Built-in method references that are verified to be native. */
var nativeCreate = getNative(Object, 'create');

module.exports = nativeCreate;
/**
 * Removes `key` and its value from the hash.
 *
 * @private
 * @name delete
 * @memberOf Hash
 * @param {Object} hash The hash to modify.
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */
function hashDelete(key) {
  var result = this.has(key) && delete this.__data__[key];
  this.size -= result ? 1 : 0;
  return result;
}

module.exports = hashDelete;
var nativeCreate = __webpack_require__(397);

/** Used to stand-in for `undefined` hash values. */
var HASH_UNDEFINED = '__lodash_hash_undefined__';

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * Gets the hash value for `key`.
 *
 * @private
 * @name get
 * @memberOf Hash
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */
function hashGet(key) {
  var data = this.__data__;
  if (nativeCreate) {
    var result = data[key];
    return result === HASH_UNDEFINED ? undefined : result;
  }
  return hasOwnProperty.call(data, key) ? data[key] : undefined;
}

module.exports = hashGet;
var nativeCreate = __webpack_require__(397);

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * Checks if a hash value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf Hash
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */
function hashHas(key) {
  var data = this.__data__;
  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);
}

module.exports = hashHas;
var nativeCreate = __webpack_require__(397);

/** Used to stand-in for `undefined` hash values. */
var HASH_UNDEFINED = '__lodash_hash_undefined__';

/**
 * Sets the hash `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf Hash
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the hash instance.
 */
function hashSet(key, value) {
  var data = this.__data__;
  this.size += this.has(key) ? 0 : 1;
  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
  return this;
}

module.exports = hashSet;
var getMapData = __webpack_require__(398);

/**
 * Removes `key` and its value from the map.
 *
 * @private
 * @name delete
 * @memberOf MapCache
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */
function mapCacheDelete(key) {
  var result = getMapData(this, key)['delete'](key);
  this.size -= result ? 1 : 0;
  return result;
}

module.exports = mapCacheDelete;
var isKeyable = __webpack_require__(901);

/**
 * Gets the data for `map`.
 *
 * @private
 * @param {Object} map The map to query.
 * @param {string} key The reference key.
 * @returns {*} Returns the map data.
 */
function getMapData(map, key) {
  var data = map.__data__;
  return isKeyable(key)
    ? data[typeof key == 'string' ? 'string' : 'hash']
    : data.map;
}

module.exports = getMapData;
/**
 * Checks if `value` is suitable for use as unique object key.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
 */
function isKeyable(value) {
  var type = typeof value;
  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
    ? (value !== '__proto__')
    : (value === null);
}

module.exports = isKeyable;
var getMapData = __webpack_require__(398);

/**
 * Gets the map value for `key`.
 *
 * @private
 * @name get
 * @memberOf MapCache
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */
function mapCacheGet(key) {
  return getMapData(this, key).get(key);
}

module.exports = mapCacheGet;
var getMapData = __webpack_require__(398);

/**
 * Checks if a map value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf MapCache
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */
function mapCacheHas(key) {
  return getMapData(this, key).has(key);
}

module.exports = mapCacheHas;
var getMapData = __webpack_require__(398);

/**
 * Sets the map `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf MapCache
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the map cache instance.
 */
function mapCacheSet(key, value) {
  var data = getMapData(this, key),
      size = data.size;

  data.set(key, value);
  this.size += data.size == size ? 0 : 1;
  return this;
}

module.exports = mapCacheSet;
var baseIsEqualDeep = __webpack_require__(905),
    isObjectLike = __webpack_require__(234);

/**
 * The base implementation of `_.isEqual` which supports partial comparisons
 * and tracks traversed objects.
 *
 * @private
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @param {boolean} bitmask The bitmask flags.
 *  1 - Unordered comparison
 *  2 - Partial comparison
 * @param {Function} [customizer] The function to customize comparisons.
 * @param {Object} [stack] Tracks traversed `value` and `other` objects.
 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
 */
function baseIsEqual(value, other, bitmask, customizer, stack) {
  if (value === other) {
    return true;
  }
  if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
    return value !== value && other !== other;
  }
  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
}

module.exports = baseIsEqual;
var Stack = __webpack_require__(594),
    equalArrays = __webpack_require__(596),
    equalByTag = __webpack_require__(908),
    equalObjects = __webpack_require__(911),
    getTag = __webpack_require__(917),
    isArray = __webpack_require__(71),
    isBuffer = __webpack_require__(590),
    isTypedArray = __webpack_require__(591);

/** Used to compose bitmasks for value comparisons. */
var COMPARE_PARTIAL_FLAG = 1;

/** `Object#toString` result references. */
var argsTag = '[object Arguments]',
    arrayTag = '[object Array]',
    objectTag = '[object Object]';

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * A specialized version of `baseIsEqual` for arrays and objects which performs
 * deep comparisons and tracks traversed objects enabling objects with circular
 * references to be compared.
 *
 * @private
 * @param {Object} object The object to compare.
 * @param {Object} other The other object to compare.
 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 * @param {Function} customizer The function to customize comparisons.
 * @param {Function} equalFunc The function to determine equivalents of values.
 * @param {Object} [stack] Tracks traversed `object` and `other` objects.
 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
 */
function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
  var objIsArr = isArray(object),
      othIsArr = isArray(other),
      objTag = objIsArr ? arrayTag : getTag(object),
      othTag = othIsArr ? arrayTag : getTag(other);

  objTag = objTag == argsTag ? objectTag : objTag;
  othTag = othTag == argsTag ? objectTag : othTag;

  var objIsObj = objTag == objectTag,
      othIsObj = othTag == objectTag,
      isSameTag = objTag == othTag;

  if (isSameTag && isBuffer(object)) {
    if (!isBuffer(other)) {
      return false;
    }
    objIsArr = true;
    objIsObj = false;
  }
  if (isSameTag && !objIsObj) {
    stack || (stack = new Stack);
    return (objIsArr || isTypedArray(object))
      ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
      : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
  }
  if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
    var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
        othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');

    if (objIsWrapped || othIsWrapped) {
      var objUnwrapped = objIsWrapped ? object.value() : object,
          othUnwrapped = othIsWrapped ? other.value() : other;

      stack || (stack = new Stack);
      return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
    }
  }
  if (!isSameTag) {
    return false;
  }
  stack || (stack = new Stack);
  return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
}

module.exports = baseIsEqualDeep;
var SetCache = __webpack_require__(597),
    arraySome = __webpack_require__(598),
    cacheHas = __webpack_require__(599);

/** Used to compose bitmasks for value comparisons. */
var COMPARE_PARTIAL_FLAG = 1,
    COMPARE_UNORDERED_FLAG = 2;

/**
 * A specialized version of `baseIsEqualDeep` for arrays with support for
 * partial deep comparisons.
 *
 * @private
 * @param {Array} array The array to compare.
 * @param {Array} other The other array to compare.
 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 * @param {Function} customizer The function to customize comparisons.
 * @param {Function} equalFunc The function to determine equivalents of values.
 * @param {Object} stack Tracks traversed `array` and `other` objects.
 * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
 */
function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
      arrLength = array.length,
      othLength = other.length;

  if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
    return false;
  }
  // Check that cyclic values are equal.
  var arrStacked = stack.get(array);
  var othStacked = stack.get(other);
  if (arrStacked && othStacked) {
    return arrStacked == other && othStacked == array;
  }
  var index = -1,
      result = true,
      seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;

  stack.set(array, other);
  stack.set(other, array);

  // Ignore non-index properties.
  while (++index < arrLength) {
    var arrValue = array[index],
        othValue = other[index];

    if (customizer) {
      var compared = isPartial
        ? customizer(othValue, arrValue, index, other, array, stack)
        : customizer(arrValue, othValue, index, array, other, stack);
    }
    if (compared !== undefined) {
      if (compared) {
        continue;
      }
      result = false;
      break;
    }
    // Recursively compare arrays (susceptible to call stack limits).
    if (seen) {
      if (!arraySome(other, function(othValue, othIndex) {
            if (!cacheHas(seen, othIndex) &&
                (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
              return seen.push(othIndex);
            }
          })) {
        result = false;
        break;
      }
    } else if (!(
          arrValue === othValue ||
            equalFunc(arrValue, othValue, bitmask, customizer, stack)
        )) {
      result = false;
      break;
    }
  }
  stack['delete'](array);
  stack['delete'](other);
  return result;
}

module.exports = equalArrays;
var MapCache = __webpack_require__(487),
    setCacheAdd = __webpack_require__(906),
    setCacheHas = __webpack_require__(907);

/**
 *
 * Creates an array cache object to store unique values.
 *
 * @private
 * @constructor
 * @param {Array} [values] The values to cache.
 */
function SetCache(values) {
  var index = -1,
      length = values == null ? 0 : values.length;

  this.__data__ = new MapCache;
  while (++index < length) {
    this.add(values[index]);
  }
}

// Add methods to `SetCache`.
SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
SetCache.prototype.has = setCacheHas;

module.exports = SetCache;
/** Used to stand-in for `undefined` hash values. */
var HASH_UNDEFINED = '__lodash_hash_undefined__';

/**
 * Adds `value` to the array cache.
 *
 * @private
 * @name add
 * @memberOf SetCache
 * @alias push
 * @param {*} value The value to cache.
 * @returns {Object} Returns the cache instance.
 */
function setCacheAdd(value) {
  this.__data__.set(value, HASH_UNDEFINED);
  return this;
}

module.exports = setCacheAdd;
/**
 * Checks if `value` is in the array cache.
 *
 * @private
 * @name has
 * @memberOf SetCache
 * @param {*} value The value to search for.
 * @returns {number} Returns `true` if `value` is found, else `false`.
 */
function setCacheHas(value) {
  return this.__data__.has(value);
}

module.exports = setCacheHas;
/**
 * A specialized version of `_.some` for arrays without support for iteratee
 * shorthands.
 *
 * @private
 * @param {Array} [array] The array to iterate over.
 * @param {Function} predicate The function invoked per iteration.
 * @returns {boolean} Returns `true` if any element passes the predicate check,
 *  else `false`.
 */
function arraySome(array, predicate) {
  var index = -1,
      length = array == null ? 0 : array.length;

  while (++index < length) {
    if (predicate(array[index], index, array)) {
      return true;
    }
  }
  return false;
}

module.exports = arraySome;
/**
 * Checks if a `cache` value for `key` exists.
 *
 * @private
 * @param {Object} cache The cache to query.
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */
function cacheHas(cache, key) {
  return cache.has(key);
}

module.exports = cacheHas;
var Symbol = __webpack_require__(359),
    Uint8Array = __webpack_require__(909),
    eq = __webpack_require__(485),
    equalArrays = __webpack_require__(596),
    mapToArray = __webpack_require__(910),
    setToArray = __webpack_require__(489);

/** Used to compose bitmasks for value comparisons. */
var COMPARE_PARTIAL_FLAG = 1,
    COMPARE_UNORDERED_FLAG = 2;

/** `Object#toString` result references. */
var boolTag = '[object Boolean]',
    dateTag = '[object Date]',
    errorTag = '[object Error]',
    mapTag = '[object Map]',
    numberTag = '[object Number]',
    regexpTag = '[object RegExp]',
    setTag = '[object Set]',
    stringTag = '[object String]',
    symbolTag = '[object Symbol]';

var arrayBufferTag = '[object ArrayBuffer]',
    dataViewTag = '[object DataView]';

/** Used to convert symbols to primitives and strings. */
var symbolProto = Symbol ? Symbol.prototype : undefined,
    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;

/**
 * A specialized version of `baseIsEqualDeep` for comparing objects of
 * the same `toStringTag`.
 *
 * **Note:** This function only supports comparing values with tags of
 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
 *
 * @private
 * @param {Object} object The object to compare.
 * @param {Object} other The other object to compare.
 * @param {string} tag The `toStringTag` of the objects to compare.
 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 * @param {Function} customizer The function to customize comparisons.
 * @param {Function} equalFunc The function to determine equivalents of values.
 * @param {Object} stack Tracks traversed `object` and `other` objects.
 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
 */
function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
  switch (tag) {
    case dataViewTag:
      if ((object.byteLength != other.byteLength) ||
          (object.byteOffset != other.byteOffset)) {
        return false;
      }
      object = object.buffer;
      other = other.buffer;

    case arrayBufferTag:
      if ((object.byteLength != other.byteLength) ||
          !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
        return false;
      }
      return true;

    case boolTag:
    case dateTag:
    case numberTag:
      // Coerce booleans to `1` or `0` and dates to milliseconds.
      // Invalid dates are coerced to `NaN`.
      return eq(+object, +other);

    case errorTag:
      return object.name == other.name && object.message == other.message;

    case regexpTag:
    case stringTag:
      // Coerce regexes to strings and treat strings, primitives and objects,
      // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
      // for more details.
      return object == (other + '');

    case mapTag:
      var convert = mapToArray;

    case setTag:
      var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
      convert || (convert = setToArray);

      if (object.size != other.size && !isPartial) {
        return false;
      }
      // Assume cyclic values are equal.
      var stacked = stack.get(object);
      if (stacked) {
        return stacked == other;
      }
      bitmask |= COMPARE_UNORDERED_FLAG;

      // Recursively compare objects (susceptible to call stack limits).
      stack.set(object, other);
      var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
      stack['delete'](object);
      return result;

    case symbolTag:
      if (symbolValueOf) {
        return symbolValueOf.call(object) == symbolValueOf.call(other);
      }
  }
  return false;
}

module.exports = equalByTag;
var root = __webpack_require__(215);

/** Built-in value references. */
var Uint8Array = root.Uint8Array;

module.exports = Uint8Array;
/**
 * Converts `map` to its key-value pairs.
 *
 * @private
 * @param {Object} map The map to convert.
 * @returns {Array} Returns the key-value pairs.
 */
function mapToArray(map) {
  var index = -1,
      result = Array(map.size);

  map.forEach(function(value, key) {
    result[++index] = [key, value];
  });
  return result;
}

module.exports = mapToArray;
/**
 * Converts `set` to an array of its values.
 *
 * @private
 * @param {Object} set The set to convert.
 * @returns {Array} Returns the values.
 */
function setToArray(set) {
  var index = -1,
      result = Array(set.size);

  set.forEach(function(value) {
    result[++index] = value;
  });
  return result;
}

module.exports = setToArray;
var getAllKeys = __webpack_require__(912);

/** Used to compose bitmasks for value comparisons. */
var COMPARE_PARTIAL_FLAG = 1;

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/**
 * A specialized version of `baseIsEqualDeep` for objects with support for
 * partial deep comparisons.
 *
 * @private
 * @param {Object} object The object to compare.
 * @param {Object} other The other object to compare.
 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 * @param {Function} customizer The function to customize comparisons.
 * @param {Function} equalFunc The function to determine equivalents of values.
 * @param {Object} stack Tracks traversed `object` and `other` objects.
 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
 */
function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
      objProps = getAllKeys(object),
      objLength = objProps.length,
      othProps = getAllKeys(other),
      othLength = othProps.length;

  if (objLength != othLength && !isPartial) {
    return false;
  }
  var index = objLength;
  while (index--) {
    var key = objProps[index];
    if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
      return false;
    }
  }
  // Check that cyclic values are equal.
  var objStacked = stack.get(object);
  var othStacked = stack.get(other);
  if (objStacked && othStacked) {
    return objStacked == other && othStacked == object;
  }
  var result = true;
  stack.set(object, other);
  stack.set(other, object);

  var skipCtor = isPartial;
  while (++index < objLength) {
    key = objProps[index];
    var objValue = object[key],
        othValue = other[key];

    if (customizer) {
      var compared = isPartial
        ? customizer(othValue, objValue, key, other, object, stack)
        : customizer(objValue, othValue, key, object, other, stack);
    }
    // Recursively compare objects (susceptible to call stack limits).
    if (!(compared === undefined
          ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))
          : compared
        )) {
      result = false;
      break;
    }
    skipCtor || (skipCtor = key == 'constructor');
  }
  if (result && !skipCtor) {
    var objCtor = object.constructor,
        othCtor = other.constructor;

    // Non `Object` object instances with different constructors are not equal.
    if (objCtor != othCtor &&
        ('constructor' in object && 'constructor' in other) &&
        !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
          typeof othCtor == 'function' && othCtor instanceof othCtor)) {
      result = false;
    }
  }
  stack['delete'](object);
  stack['delete'](other);
  return result;
}

module.exports = equalObjects;
var baseGetAllKeys = __webpack_require__(913),
    getSymbols = __webpack_require__(914),
    keys = __webpack_require__(394);

/**
 * Creates an array of own enumerable property names and symbols of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names and symbols.
 */
function getAllKeys(object) {
  return baseGetAllKeys(object, keys, getSymbols);
}

module.exports = getAllKeys;
var arrayPush = __webpack_require__(600),
    isArray = __webpack_require__(71);

/**
 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
 * `keysFunc` and `symbolsFunc` to get the enumerable property names and
 * symbols of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @param {Function} keysFunc The function to get the keys of `object`.
 * @param {Function} symbolsFunc The function to get the symbols of `object`.
 * @returns {Array} Returns the array of property names and symbols.
 */
function baseGetAllKeys(object, keysFunc, symbolsFunc) {
  var result = keysFunc(object);
  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
}

module.exports = baseGetAllKeys;
/**
 * Appends the elements of `values` to `array`.
 *
 * @private
 * @param {Array} array The array to modify.
 * @param {Array} values The values to append.
 * @returns {Array} Returns `array`.
 */
function arrayPush(array, values) {
  var index = -1,
      length = values.length,
      offset = array.length;

  while (++index < length) {
    array[offset + index] = values[index];
  }
  return array;
}

module.exports = arrayPush;
var arrayFilter = __webpack_require__(915),
    stubArray = __webpack_require__(916);

/** Used for built-in method references. */
var objectProto = Object.prototype;

/** Built-in value references. */
var propertyIsEnumerable = objectProto.propertyIsEnumerable;

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeGetSymbols = Object.getOwnPropertySymbols;

/**
 * Creates an array of the own enumerable symbols of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of symbols.
 */
var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
  if (object == null) {
    return [];
  }
  object = Object(object);
  return arrayFilter(nativeGetSymbols(object), function(symbol) {
    return propertyIsEnumerable.call(object, symbol);
  });
};

module.exports = getSymbols;
/**
 * A specialized version of `_.filter` for arrays without support for
 * iteratee shorthands.
 *
 * @private
 * @param {Array} [array] The array to iterate over.
 * @param {Function} predicate The function invoked per iteration.
 * @returns {Array} Returns the new filtered array.
 */
function arrayFilter(array, predicate) {
  var index = -1,
      length = array == null ? 0 : array.length,
      resIndex = 0,
      result = [];

  while (++index < length) {
    var value = array[index];
    if (predicate(value, index, array)) {
      result[resIndex++] = value;
    }
  }
  return result;
}

module.exports = arrayFilter;
/**
 * This method returns a new empty array.
 *
 * @static
 * @memberOf _
 * @since 4.13.0
 * @category Util
 * @returns {Array} Returns the new empty array.
 * @example
 *
 * var arrays = _.times(2, _.stubArray);
 *
 * console.log(arrays);
 * // => [[], []]
 *
 * console.log(arrays[0] === arrays[1]);
 * // => false
 */
function stubArray() {
  return [];
}

module.exports = stubArray;
var DataView = __webpack_require__(918),
    Map = __webpack_require__(486),
    Promise = __webpack_require__(919),
    Set = __webpack_require__(601),
    WeakMap = __webpack_require__(920),
    baseGetTag = __webpack_require__(233),
    toSource = __webpack_require__(595);

/** `Object#toString` result references. */
var mapTag = '[object Map]',
    objectTag = '[object Object]',
    promiseTag = '[object Promise]',
    setTag = '[object Set]',
    weakMapTag = '[object WeakMap]';

var dataViewTag = '[object DataView]';

/** Used to detect maps, sets, and weakmaps. */
var dataViewCtorString = toSource(DataView),
    mapCtorString = toSource(Map),
    promiseCtorString = toSource(Promise),
    setCtorString = toSource(Set),
    weakMapCtorString = toSource(WeakMap);

/**
 * Gets the `toStringTag` of `value`.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the `toStringTag`.
 */
var getTag = baseGetTag;

// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
    (Map && getTag(new Map) != mapTag) ||
    (Promise && getTag(Promise.resolve()) != promiseTag) ||
    (Set && getTag(new Set) != setTag) ||
    (WeakMap && getTag(new WeakMap) != weakMapTag)) {
  getTag = function(value) {
    var result = baseGetTag(value),
        Ctor = result == objectTag ? value.constructor : undefined,
        ctorString = Ctor ? toSource(Ctor) : '';

    if (ctorString) {
      switch (ctorString) {
        case dataViewCtorString: return dataViewTag;
        case mapCtorString: return mapTag;
        case promiseCtorString: return promiseTag;
        case setCtorString: return setTag;
        case weakMapCtorString: return weakMapTag;
      }
    }
    return result;
  };
}

module.exports = getTag;
var getNative = __webpack_require__(272),
    root = __webpack_require__(215);

/* Built-in method references that are verified to be native. */
var DataView = getNative(root, 'DataView');

module.exports = DataView;
var getNative = __webpack_require__(272),
    root = __webpack_require__(215);

/* Built-in method references that are verified to be native. */
var Promise = getNative(root, 'Promise');

module.exports = Promise;
var getNative = __webpack_require__(272),
    root = __webpack_require__(215);

/* Built-in method references that are verified to be native. */
var Set = getNative(root, 'Set');

module.exports = Set;
var getNative = __webpack_require__(272),
    root = __webpack_require__(215);

/* Built-in method references that are verified to be native. */
var WeakMap = getNative(root, 'WeakMap');

module.exports = WeakMap;
var isStrictComparable = __webpack_require__(602),
    keys = __webpack_require__(394);

/**
 * Gets the property names, values, and compare flags of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the match data of `object`.
 */
function getMatchData(object) {
  var result = keys(object),
      length = result.length;

  while (length--) {
    var key = result[length],
        value = object[key];

    result[length] = [key, value, isStrictComparable(value)];
  }
  return result;
}

module.exports = getMatchData;
var isObject = __webpack_require__(143);

/**
 * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` if suitable for strict
 *  equality comparisons, else `false`.
 */
function isStrictComparable(value) {
  return value === value && !isObject(value);
}

module.exports = isStrictComparable;
/**
 * A specialized version of `matchesProperty` for source values suitable
 * for strict equality comparisons, i.e. `===`.
 *
 * @private
 * @param {string} key The key of the property to get.
 * @param {*} srcValue The value to match.
 * @returns {Function} Returns the new spec function.
 */
function matchesStrictComparable(key, srcValue) {
  return function(object) {
    if (object == null) {
      return false;
    }
    return object[key] === srcValue &&
      (srcValue !== undefined || (key in Object(object)));
  };
}

module.exports = matchesStrictComparable;
var baseIsEqual = __webpack_require__(488),
    get = __webpack_require__(113),
    hasIn = __webpack_require__(927),
    isKey = __webpack_require__(491),
    isStrictComparable = __webpack_require__(602),
    matchesStrictComparable = __webpack_require__(603),
    toKey = __webpack_require__(399);

/** Used to compose bitmasks for value comparisons. */
var COMPARE_PARTIAL_FLAG = 1,
    COMPARE_UNORDERED_FLAG = 2;

/**
 * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.
 *
 * @private
 * @param {string} path The path of the property to get.
 * @param {*} srcValue The value to match.
 * @returns {Function} Returns the new spec function.
 */
function baseMatchesProperty(path, srcValue) {
  if (isKey(path) && isStrictComparable(srcValue)) {
    return matchesStrictComparable(toKey(path), srcValue);
  }
  return function(object) {
    var objValue = get(object, path);
    return (objValue === undefined && objValue === srcValue)
      ? hasIn(object, path)
      : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
  };
}

module.exports = baseMatchesProperty;
var baseGet = __webpack_require__(490);

/**
 * Gets the value at `path` of `object`. If the resolved value is
 * `undefined`, the `defaultValue` is returned in its place.
 *
 * @static
 * @memberOf _
 * @since 3.7.0
 * @category Object
 * @param {Object} object The object to query.
 * @param {Array|string} path The path of the property to get.
 * @param {*} [defaultValue] The value returned for `undefined` resolved values.
 * @returns {*} Returns the resolved value.
 * @example
 *
 * var object = { 'a': [{ 'b': { 'c': 3 } }] };
 *
 * _.get(object, 'a[0].b.c');
 * // => 3
 *
 * _.get(object, ['a', '0', 'b', 'c']);
 * // => 3
 *
 * _.get(object, 'a.b.c', 'default');
 * // => 'default'
 */
function get(object, path, defaultValue) {
  var result = object == null ? undefined : baseGet(object, path);
  return result === undefined ? defaultValue : result;
}

module.exports = get;
var castPath = __webpack_require__(604),
    toKey = __webpack_require__(399);

/**
 * The base implementation of `_.get` without support for default values.
 *
 * @private
 * @param {Object} object The object to query.
 * @param {Array|string} path The path of the property to get.
 * @returns {*} Returns the resolved value.
 */
function baseGet(object, path) {
  path = castPath(path, object);

  var index = 0,
      length = path.length;

  while (object != null && index < length) {
    object = object[toKey(path[index++])];
  }
  return (index && index == length) ? object : undefined;
}

module.exports = baseGet;
var isArray = __webpack_require__(71),
    isKey = __webpack_require__(491),
    stringToPath = __webpack_require__(923),
    toString = __webpack_require__(605);

/**
 * Casts `value` to a path array if it's not one.
 *
 * @private
 * @param {*} value The value to inspect.
 * @param {Object} [object] The object to query keys on.
 * @returns {Array} Returns the cast property path array.
 */
function castPath(value, object) {
  if (isArray(value)) {
    return value;
  }
  return isKey(value, object) ? [value] : stringToPath(toString(value));
}

module.exports = castPath;
var isArray = __webpack_require__(71),
    isSymbol = __webpack_require__(302);

/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
    reIsPlainProp = /^\w*$/;

/**
 * Checks if `value` is a property name and not a property path.
 *
 * @private
 * @param {*} value The value to check.
 * @param {Object} [object] The object to query keys on.
 * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
 */
function isKey(value, object) {
  if (isArray(value)) {
    return false;
  }
  var type = typeof value;
  if (type == 'number' || type == 'symbol' || type == 'boolean' ||
      value == null || isSymbol(value)) {
    return true;
  }
  return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
    (object != null && value in Object(object));
}

module.exports = isKey;
var baseGetTag = __webpack_require__(233),
    isObjectLike = __webpack_require__(234);

/** `Object#toString` result references. */
var symbolTag = '[object Symbol]';

/**
 * Checks if `value` is classified as a `Symbol` primitive or object.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
 * @example
 *
 * _.isSymbol(Symbol.iterator);
 * // => true
 *
 * _.isSymbol('abc');
 * // => false
 */
function isSymbol(value) {
  return typeof value == 'symbol' ||
    (isObjectLike(value) && baseGetTag(value) == symbolTag);
}

module.exports = isSymbol;
var memoizeCapped = __webpack_require__(924);

/** Used to match property names within property paths. */
var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;

/** Used to match backslashes in property paths. */
var reEscapeChar = /\\(\\)?/g;

/**
 * Converts `string` to a property path array.
 *
 * @private
 * @param {string} string The string to convert.
 * @returns {Array} Returns the property path array.
 */
var stringToPath = memoizeCapped(function(string) {
  var result = [];
  if (string.charCodeAt(0) === 46 /* . */) {
    result.push('');
  }
  string.replace(rePropName, function(match, number, quote, subString) {
    result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));
  });
  return result;
});

module.exports = stringToPath;
var memoize = __webpack_require__(925);

/** Used as the maximum memoize cache size. */
var MAX_MEMOIZE_SIZE = 500;

/**
 * A specialized version of `_.memoize` which clears the memoized function's
 * cache when it exceeds `MAX_MEMOIZE_SIZE`.
 *
 * @private
 * @param {Function} func The function to have its output memoized.
 * @returns {Function} Returns the new memoized function.
 */
function memoizeCapped(func) {
  var result = memoize(func, function(key) {
    if (cache.size === MAX_MEMOIZE_SIZE) {
      cache.clear();
    }
    return key;
  });

  var cache = result.cache;
  return result;
}

module.exports = memoizeCapped;
var MapCache = __webpack_require__(487);

/** Error message constants. */
var FUNC_ERROR_TEXT = 'Expected a function';

/**
 * Creates a function that memoizes the result of `func`. If `resolver` is
 * provided, it determines the cache key for storing the result based on the
 * arguments provided to the memoized function. By default, the first argument
 * provided to the memoized function is used as the map cache key. The `func`
 * is invoked with the `this` binding of the memoized function.
 *
 * **Note:** The cache is exposed as the `cache` property on the memoized
 * function. Its creation may be customized by replacing the `_.memoize.Cache`
 * constructor with one whose instances implement the
 * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
 * method interface of `clear`, `delete`, `get`, `has`, and `set`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to have its output memoized.
 * @param {Function} [resolver] The function to resolve the cache key.
 * @returns {Function} Returns the new memoized function.
 * @example
 *
 * var object = { 'a': 1, 'b': 2 };
 * var other = { 'c': 3, 'd': 4 };
 *
 * var values = _.memoize(_.values);
 * values(object);
 * // => [1, 2]
 *
 * values(other);
 * // => [3, 4]
 *
 * object.a = 2;
 * values(object);
 * // => [1, 2]
 *
 * // Modify the result cache.
 * values.cache.set(object, ['a', 'b']);
 * values(object);
 * // => ['a', 'b']
 *
 * // Replace `_.memoize.Cache`.
 * _.memoize.Cache = WeakMap;
 */
function memoize(func, resolver) {
  if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {
    throw new TypeError(FUNC_ERROR_TEXT);
  }
  var memoized = function() {
    var args = arguments,
        key = resolver ? resolver.apply(this, args) : args[0],
        cache = memoized.cache;

    if (cache.has(key)) {
      return cache.get(key);
    }
    var result = func.apply(this, args);
    memoized.cache = cache.set(key, result) || cache;
    return result;
  };
  memoized.cache = new (memoize.Cache || MapCache);
  return memoized;
}

// Expose `MapCache`.
memoize.Cache = MapCache;

module.exports = memoize;
var baseToString = __webpack_require__(926);

/**
 * Converts `value` to a string. An empty string is returned for `null`
 * and `undefined` values. The sign of `-0` is preserved.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to convert.
 * @returns {string} Returns the converted string.
 * @example
 *
 * _.toString(null);
 * // => ''
 *
 * _.toString(-0);
 * // => '-0'
 *
 * _.toString([1, 2, 3]);
 * // => '1,2,3'
 */
function toString(value) {
  return value == null ? '' : baseToString(value);
}

module.exports = toString;
var Symbol = __webpack_require__(359),
    arrayMap = __webpack_require__(492),
    isArray = __webpack_require__(71),
    isSymbol = __webpack_require__(302);

/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0;

/** Used to convert symbols to primitives and strings. */
var symbolProto = Symbol ? Symbol.prototype : undefined,
    symbolToString = symbolProto ? symbolProto.toString : undefined;

/**
 * The base implementation of `_.toString` which doesn't convert nullish
 * values to empty strings.
 *
 * @private
 * @param {*} value The value to process.
 * @returns {string} Returns the string.
 */
function baseToString(value) {
  // Exit early for strings to avoid a performance hit in some environments.
  if (typeof value == 'string') {
    return value;
  }
  if (isArray(value)) {
    // Recursively convert values (susceptible to call stack limits).
    return arrayMap(value, baseToString) + '';
  }
  if (isSymbol(value)) {
    return symbolToString ? symbolToString.call(value) : '';
  }
  var result = (value + '');
  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
}

module.exports = baseToString;
/**
 * A specialized version of `_.map` for arrays without support for iteratee
 * shorthands.
 *
 * @private
 * @param {Array} [array] The array to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Array} Returns the new mapped array.
 */
function arrayMap(array, iteratee) {
  var index = -1,
      length = array == null ? 0 : array.length,
      result = Array(length);

  while (++index < length) {
    result[index] = iteratee(array[index], index, array);
  }
  return result;
}

module.exports = arrayMap;
var isSymbol = __webpack_require__(302);

/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0;

/**
 * Converts `value` to a string key if it's not a string or symbol.
 *
 * @private
 * @param {*} value The value to inspect.
 * @returns {string|symbol} Returns the key.
 */
function toKey(value) {
  if (typeof value == 'string' || isSymbol(value)) {
    return value;
  }
  var result = (value + '');
  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
}

module.exports = toKey;
var baseHasIn = __webpack_require__(928),
    hasPath = __webpack_require__(929);

/**
 * Checks if `path` is a direct or inherited property of `object`.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Object
 * @param {Object} object The object to query.
 * @param {Array|string} path The path to check.
 * @returns {boolean} Returns `true` if `path` exists, else `false`.
 * @example
 *
 * var object = _.create({ 'a': _.create({ 'b': 2 }) });
 *
 * _.hasIn(object, 'a');
 * // => true
 *
 * _.hasIn(object, 'a.b');
 * // => true
 *
 * _.hasIn(object, ['a', 'b']);
 * // => true
 *
 * _.hasIn(object, 'b');
 * // => false
 */
function hasIn(object, path) {
  return object != null && hasPath(object, path, baseHasIn);
}

module.exports = hasIn;
/**
 * The base implementation of `_.hasIn` without support for deep paths.
 *
 * @private
 * @param {Object} [object] The object to query.
 * @param {Array|string} key The key to check.
 * @returns {boolean} Returns `true` if `key` exists, else `false`.
 */
function baseHasIn(object, key) {
  return object != null && key in Object(object);
}

module.exports = baseHasIn;
var castPath = __webpack_require__(604),
    isArguments = __webpack_require__(482),
    isArray = __webpack_require__(71),
    isIndex = __webpack_require__(483),
    isLength = __webpack_require__(484),
    toKey = __webpack_require__(399);

/**
 * Checks if `path` exists on `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @param {Array|string} path The path to check.
 * @param {Function} hasFunc The function to check properties.
 * @returns {boolean} Returns `true` if `path` exists, else `false`.
 */
function hasPath(object, path, hasFunc) {
  path = castPath(path, object);

  var index = -1,
      length = path.length,
      result = false;

  while (++index < length) {
    var key = toKey(path[index]);
    if (!(result = object != null && hasFunc(object, key))) {
      break;
    }
    object = object[key];
  }
  if (result || ++index != length) {
    return result;
  }
  length = object == null ? 0 : object.length;
  return !!length && isLength(length) && isIndex(key, length) &&
    (isArray(object) || isArguments(object));
}

module.exports = hasPath;
/**
 * This method returns the first argument it receives.
 *
 * @static
 * @since 0.1.0
 * @memberOf _
 * @category Util
 * @param {*} value Any value.
 * @returns {*} Returns `value`.
 * @example
 *
 * var object = { 'a': 1 };
 *
 * console.log(_.identity(object) === object);
 * // => true
 */
function identity(value) {
  return value;
}

module.exports = identity;
var baseProperty = __webpack_require__(931),
    basePropertyDeep = __webpack_require__(932),
    isKey = __webpack_require__(491),
    toKey = __webpack_require__(399);

/**
 * Creates a function that returns the value at `path` of a given object.
 *
 * @static
 * @memberOf _
 * @since 2.4.0
 * @category Util
 * @param {Array|string} path The path of the property to get.
 * @returns {Function} Returns the new accessor function.
 * @example
 *
 * var objects = [
 *   { 'a': { 'b': 2 } },
 *   { 'a': { 'b': 1 } }
 * ];
 *
 * _.map(objects, _.property('a.b'));
 * // => [2, 1]
 *
 * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');
 * // => [1, 2]
 */
function property(path) {
  return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);
}

module.exports = property;
/**
 * The base implementation of `_.property` without support for deep paths.
 *
 * @private
 * @param {string} key The key of the property to get.
 * @returns {Function} Returns the new accessor function.
 */
function baseProperty(key) {
  return function(object) {
    return object == null ? undefined : object[key];
  };
}

module.exports = baseProperty;
var baseGet = __webpack_require__(490);

/**
 * A specialized version of `baseProperty` which supports deep paths.
 *
 * @private
 * @param {Array|string} path The path of the property to get.
 * @returns {Function} Returns the new accessor function.
 */
function basePropertyDeep(path) {
  return function(object) {
    return baseGet(object, path);
  };
}

module.exports = basePropertyDeep;
var eq = __webpack_require__(485),
    isArrayLike = __webpack_require__(360),
    isIndex = __webpack_require__(483),
    isObject = __webpack_require__(143);

/**
 * Checks if the given arguments are from an iteratee call.
 *
 * @private
 * @param {*} value The potential iteratee value argument.
 * @param {*} index The potential iteratee index or key argument.
 * @param {*} object The potential iteratee object argument.
 * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
 *  else `false`.
 */
function isIterateeCall(value, index, object) {
  if (!isObject(object)) {
    return false;
  }
  var type = typeof index;
  if (type == 'number'
        ? (isArrayLike(object) && isIndex(index, object.length))
        : (type == 'string' && index in object)
      ) {
    return eq(object[index], value);
  }
  return false;
}

module.exports = isIterateeCall;
var createFind = __webpack_require__(933),
    findIndex = __webpack_require__(934);

/**
 * Iterates over elements of `collection`, returning the first element
 * `predicate` returns truthy for. The predicate is invoked with three
 * arguments: (value, index|key, collection).
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Collection
 * @param {Array|Object} collection The collection to inspect.
 * @param {Function} [predicate=_.identity] The function invoked per iteration.
 * @param {number} [fromIndex=0] The index to search from.
 * @returns {*} Returns the matched element, else `undefined`.
 * @example
 *
 * var users = [
 *   { 'user': 'barney',  'age': 36, 'active': true },
 *   { 'user': 'fred',    'age': 40, 'active': false },
 *   { 'user': 'pebbles', 'age': 1,  'active': true }
 * ];
 *
 * _.find(users, function(o) { return o.age < 40; });
 * // => object for 'barney'
 *
 * // The `_.matches` iteratee shorthand.
 * _.find(users, { 'age': 1, 'active': true });
 * // => object for 'pebbles'
 *
 * // The `_.matchesProperty` iteratee shorthand.
 * _.find(users, ['active', false]);
 * // => object for 'fred'
 *
 * // The `_.property` iteratee shorthand.
 * _.find(users, 'active');
 * // => object for 'barney'
 */
var find = createFind(findIndex);

module.exports = find;
var baseIteratee = __webpack_require__(216),
    isArrayLike = __webpack_require__(360),
    keys = __webpack_require__(394);

/**
 * Creates a `_.find` or `_.findLast` function.
 *
 * @private
 * @param {Function} findIndexFunc The function to find the collection index.
 * @returns {Function} Returns the new find function.
 */
function createFind(findIndexFunc) {
  return function(collection, predicate, fromIndex) {
    var iterable = Object(collection);
    if (!isArrayLike(collection)) {
      var iteratee = baseIteratee(predicate, 3);
      collection = keys(collection);
      predicate = function(key) { return iteratee(iterable[key], key, iterable); };
    }
    var index = findIndexFunc(collection, predicate, fromIndex);
    return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;
  };
}

module.exports = createFind;
var baseFindIndex = __webpack_require__(606),
    baseIteratee = __webpack_require__(216),
    toInteger = __webpack_require__(935);

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeMax = Math.max;

/**
 * This method is like `_.find` except that it returns the index of the first
 * element `predicate` returns truthy for instead of the element itself.
 *
 * @static
 * @memberOf _
 * @since 1.1.0
 * @category Array
 * @param {Array} array The array to inspect.
 * @param {Function} [predicate=_.identity] The function invoked per iteration.
 * @param {number} [fromIndex=0] The index to search from.
 * @returns {number} Returns the index of the found element, else `-1`.
 * @example
 *
 * var users = [
 *   { 'user': 'barney',  'active': false },
 *   { 'user': 'fred',    'active': false },
 *   { 'user': 'pebbles', 'active': true }
 * ];
 *
 * _.findIndex(users, function(o) { return o.user == 'barney'; });
 * // => 0
 *
 * // The `_.matches` iteratee shorthand.
 * _.findIndex(users, { 'user': 'fred', 'active': false });
 * // => 1
 *
 * // The `_.matchesProperty` iteratee shorthand.
 * _.findIndex(users, ['active', false]);
 * // => 0
 *
 * // The `_.property` iteratee shorthand.
 * _.findIndex(users, 'active');
 * // => 2
 */
function findIndex(array, predicate, fromIndex) {
  var length = array == null ? 0 : array.length;
  if (!length) {
    return -1;
  }
  var index = fromIndex == null ? 0 : toInteger(fromIndex);
  if (index < 0) {
    index = nativeMax(length + index, 0);
  }
  return baseFindIndex(array, baseIteratee(predicate, 3), index);
}

module.exports = findIndex;
/**
 * The base implementation of `_.findIndex` and `_.findLastIndex` without
 * support for iteratee shorthands.
 *
 * @private
 * @param {Array} array The array to inspect.
 * @param {Function} predicate The function invoked per iteration.
 * @param {number} fromIndex The index to search from.
 * @param {boolean} [fromRight] Specify iterating from right to left.
 * @returns {number} Returns the index of the matched value, else `-1`.
 */
function baseFindIndex(array, predicate, fromIndex, fromRight) {
  var length = array.length,
      index = fromIndex + (fromRight ? 1 : -1);

  while ((fromRight ? index-- : ++index < length)) {
    if (predicate(array[index], index, array)) {
      return index;
    }
  }
  return -1;
}

module.exports = baseFindIndex;
var toFinite = __webpack_require__(607);

/**
 * Converts `value` to an integer.
 *
 * **Note:** This method is loosely based on
 * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to convert.
 * @returns {number} Returns the converted integer.
 * @example
 *
 * _.toInteger(3.2);
 * // => 3
 *
 * _.toInteger(Number.MIN_VALUE);
 * // => 0
 *
 * _.toInteger(Infinity);
 * // => 1.7976931348623157e+308
 *
 * _.toInteger('3.2');
 * // => 3
 */
function toInteger(value) {
  var result = toFinite(value),
      remainder = result % 1;

  return result === result ? (remainder ? result - remainder : result) : 0;
}

module.exports = toInteger;
var toNumber = __webpack_require__(608);

/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0,
    MAX_INTEGER = 1.7976931348623157e+308;

/**
 * Converts `value` to a finite number.
 *
 * @static
 * @memberOf _
 * @since 4.12.0
 * @category Lang
 * @param {*} value The value to convert.
 * @returns {number} Returns the converted number.
 * @example
 *
 * _.toFinite(3.2);
 * // => 3.2
 *
 * _.toFinite(Number.MIN_VALUE);
 * // => 5e-324
 *
 * _.toFinite(Infinity);
 * // => 1.7976931348623157e+308
 *
 * _.toFinite('3.2');
 * // => 3.2
 */
function toFinite(value) {
  if (!value) {
    return value === 0 ? value : 0;
  }
  value = toNumber(value);
  if (value === INFINITY || value === -INFINITY) {
    var sign = (value < 0 ? -1 : 1);
    return sign * MAX_INTEGER;
  }
  return value === value ? value : 0;
}

module.exports = toFinite;
var baseTrim = __webpack_require__(936),
    isObject = __webpack_require__(143),
    isSymbol = __webpack_require__(302);

/** Used as references for various `Number` constants. */
var NAN = 0 / 0;

/** Used to detect bad signed hexadecimal string values. */
var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;

/** Used to detect binary string values. */
var reIsBinary = /^0b[01]+$/i;

/** Used to detect octal string values. */
var reIsOctal = /^0o[0-7]+$/i;

/** Built-in method references without a dependency on `root`. */
var freeParseInt = parseInt;

/**
 * Converts `value` to a number.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to process.
 * @returns {number} Returns the number.
 * @example
 *
 * _.toNumber(3.2);
 * // => 3.2
 *
 * _.toNumber(Number.MIN_VALUE);
 * // => 5e-324
 *
 * _.toNumber(Infinity);
 * // => Infinity
 *
 * _.toNumber('3.2');
 * // => 3.2
 */
function toNumber(value) {
  if (typeof value == 'number') {
    return value;
  }
  if (isSymbol(value)) {
    return NAN;
  }
  if (isObject(value)) {
    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
    value = isObject(other) ? (other + '') : other;
  }
  if (typeof value != 'string') {
    return value === 0 ? value : +value;
  }
  value = baseTrim(value);
  var isBinary = reIsBinary.test(value);
  return (isBinary || reIsOctal.test(value))
    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
    : (reIsBadHex.test(value) ? NAN : +value);
}

module.exports = toNumber;
var trimmedEndIndex = __webpack_require__(937);

/** Used to match leading whitespace. */
var reTrimStart = /^\s+/;

/**
 * The base implementation of `_.trim`.
 *
 * @private
 * @param {string} string The string to trim.
 * @returns {string} Returns the trimmed string.
 */
function baseTrim(string) {
  return string
    ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')
    : string;
}

module.exports = baseTrim;
/** Used to match a single whitespace character. */
var reWhitespace = /\s/;

/**
 * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace
 * character of `string`.
 *
 * @private
 * @param {string} string The string to inspect.
 * @returns {number} Returns the index of the last non-whitespace character.
 */
function trimmedEndIndex(string) {
  var index = string.length;

  while (index-- && reWhitespace.test(string.charAt(index))) {}
  return index;
}

module.exports = trimmedEndIndex;
var debounce = __webpack_require__(503),
    isObject = __webpack_require__(143);

/** Error message constants. */
var FUNC_ERROR_TEXT = 'Expected a function';

/**
 * Creates a throttled function that only invokes `func` at most once per
 * every `wait` milliseconds. The throttled function comes with a `cancel`
 * method to cancel delayed `func` invocations and a `flush` method to
 * immediately invoke them. Provide `options` to indicate whether `func`
 * should be invoked on the leading and/or trailing edge of the `wait`
 * timeout. The `func` is invoked with the last arguments provided to the
 * throttled function. Subsequent calls to the throttled function return the
 * result of the last `func` invocation.
 *
 * **Note:** If `leading` and `trailing` options are `true`, `func` is
 * invoked on the trailing edge of the timeout only if the throttled function
 * is invoked more than once during the `wait` timeout.
 *
 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
 *
 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
 * for details over the differences between `_.throttle` and `_.debounce`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to throttle.
 * @param {number} [wait=0] The number of milliseconds to throttle invocations to.
 * @param {Object} [options={}] The options object.
 * @param {boolean} [options.leading=true]
 *  Specify invoking on the leading edge of the timeout.
 * @param {boolean} [options.trailing=true]
 *  Specify invoking on the trailing edge of the timeout.
 * @returns {Function} Returns the new throttled function.
 * @example
 *
 * // Avoid excessively updating the position while scrolling.
 * jQuery(window).on('scroll', _.throttle(updatePosition, 100));
 *
 * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
 * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });
 * jQuery(element).on('click', throttled);
 *
 * // Cancel the trailing throttled invocation.
 * jQuery(window).on('popstate', throttled.cancel);
 */
function throttle(func, wait, options) {
  var leading = true,
      trailing = true;

  if (typeof func != 'function') {
    throw new TypeError(FUNC_ERROR_TEXT);
  }
  if (isObject(options)) {
    leading = 'leading' in options ? !!options.leading : leading;
    trailing = 'trailing' in options ? !!options.trailing : trailing;
  }
  return debounce(func, wait, {
    'leading': leading,
    'maxWait': wait,
    'trailing': trailing
  });
}

module.exports = throttle;
var isObject = __webpack_require__(143),
    now = __webpack_require__(938),
    toNumber = __webpack_require__(608);

/** Error message constants. */
var FUNC_ERROR_TEXT = 'Expected a function';

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeMax = Math.max,
    nativeMin = Math.min;

/**
 * Creates a debounced function that delays invoking `func` until after `wait`
 * milliseconds have elapsed since the last time the debounced function was
 * invoked. The debounced function comes with a `cancel` method to cancel
 * delayed `func` invocations and a `flush` method to immediately invoke them.
 * Provide `options` to indicate whether `func` should be invoked on the
 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
 * with the last arguments provided to the debounced function. Subsequent
 * calls to the debounced function return the result of the last `func`
 * invocation.
 *
 * **Note:** If `leading` and `trailing` options are `true`, `func` is
 * invoked on the trailing edge of the timeout only if the debounced function
 * is invoked more than once during the `wait` timeout.
 *
 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
 *
 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
 * for details over the differences between `_.debounce` and `_.throttle`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to debounce.
 * @param {number} [wait=0] The number of milliseconds to delay.
 * @param {Object} [options={}] The options object.
 * @param {boolean} [options.leading=false]
 *  Specify invoking on the leading edge of the timeout.
 * @param {number} [options.maxWait]
 *  The maximum time `func` is allowed to be delayed before it's invoked.
 * @param {boolean} [options.trailing=true]
 *  Specify invoking on the trailing edge of the timeout.
 * @returns {Function} Returns the new debounced function.
 * @example
 *
 * // Avoid costly calculations while the window size is in flux.
 * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
 *
 * // Invoke `sendMail` when clicked, debouncing subsequent calls.
 * jQuery(element).on('click', _.debounce(sendMail, 300, {
 *   'leading': true,
 *   'trailing': false
 * }));
 *
 * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
 * var source = new EventSource('/stream');
 * jQuery(source).on('message', debounced);
 *
 * // Cancel the trailing debounced invocation.
 * jQuery(window).on('popstate', debounced.cancel);
 */
function debounce(func, wait, options) {
  var lastArgs,
      lastThis,
      maxWait,
      result,
      timerId,
      lastCallTime,
      lastInvokeTime = 0,
      leading = false,
      maxing = false,
      trailing = true;

  if (typeof func != 'function') {
    throw new TypeError(FUNC_ERROR_TEXT);
  }
  wait = toNumber(wait) || 0;
  if (isObject(options)) {
    leading = !!options.leading;
    maxing = 'maxWait' in options;
    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
    trailing = 'trailing' in options ? !!options.trailing : trailing;
  }

  function invokeFunc(time) {
    var args = lastArgs,
        thisArg = lastThis;

    lastArgs = lastThis = undefined;
    lastInvokeTime = time;
    result = func.apply(thisArg, args);
    return result;
  }

  function leadingEdge(time) {
    // Reset any `maxWait` timer.
    lastInvokeTime = time;
    // Start the timer for the trailing edge.
    timerId = setTimeout(timerExpired, wait);
    // Invoke the leading edge.
    return leading ? invokeFunc(time) : result;
  }

  function remainingWait(time) {
    var timeSinceLastCall = time - lastCallTime,
        timeSinceLastInvoke = time - lastInvokeTime,
        timeWaiting = wait - timeSinceLastCall;

    return maxing
      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)
      : timeWaiting;
  }

  function shouldInvoke(time) {
    var timeSinceLastCall = time - lastCallTime,
        timeSinceLastInvoke = time - lastInvokeTime;

    // Either this is the first call, activity has stopped and we're at the
    // trailing edge, the system time has gone backwards and we're treating
    // it as the trailing edge, or we've hit the `maxWait` limit.
    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
  }

  function timerExpired() {
    var time = now();
    if (shouldInvoke(time)) {
      return trailingEdge(time);
    }
    // Restart the timer.
    timerId = setTimeout(timerExpired, remainingWait(time));
  }

  function trailingEdge(time) {
    timerId = undefined;

    // Only invoke if we have `lastArgs` which means `func` has been
    // debounced at least once.
    if (trailing && lastArgs) {
      return invokeFunc(time);
    }
    lastArgs = lastThis = undefined;
    return result;
  }

  function cancel() {
    if (timerId !== undefined) {
      clearTimeout(timerId);
    }
    lastInvokeTime = 0;
    lastArgs = lastCallTime = lastThis = timerId = undefined;
  }

  function flush() {
    return timerId === undefined ? result : trailingEdge(now());
  }

  function debounced() {
    var time = now(),
        isInvoking = shouldInvoke(time);

    lastArgs = arguments;
    lastThis = this;
    lastCallTime = time;

    if (isInvoking) {
      if (timerId === undefined) {
        return leadingEdge(lastCallTime);
      }
      if (maxing) {
        // Handle invocations in a tight loop.
        clearTimeout(timerId);
        timerId = setTimeout(timerExpired, wait);
        return invokeFunc(lastCallTime);
      }
    }
    if (timerId === undefined) {
      timerId = setTimeout(timerExpired, wait);
    }
    return result;
  }
  debounced.cancel = cancel;
  debounced.flush = flush;
  return debounced;
}

module.exports = debounce;
var root = __webpack_require__(215);

/**
 * Gets the timestamp of the number of milliseconds that have elapsed since
 * the Unix epoch (1 January 1970 00:00:00 UTC).
 *
 * @static
 * @memberOf _
 * @since 2.4.0
 * @category Date
 * @returns {number} Returns the timestamp.
 * @example
 *
 * _.defer(function(stamp) {
 *   console.log(_.now() - stamp);
 * }, _.now());
 * // => Logs the number of milliseconds it took for the deferred invocation.
 */
var now = function() {
  return root.Date.now();
};

module.exports = now;
var baseFlatten = __webpack_require__(493),
    baseOrderBy = __webpack_require__(940),
    baseRest = __webpack_require__(944),
    isIterateeCall = __webpack_require__(400);

/**
 * Creates an array of elements, sorted in ascending order by the results of
 * running each element in a collection thru each iteratee. This method
 * performs a stable sort, that is, it preserves the original sort order of
 * equal elements. The iteratees are invoked with one argument: (value).
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Collection
 * @param {Array|Object} collection The collection to iterate over.
 * @param {...(Function|Function[])} [iteratees=[_.identity]]
 *  The iteratees to sort by.
 * @returns {Array} Returns the new sorted array.
 * @example
 *
 * var users = [
 *   { 'user': 'fred',   'age': 48 },
 *   { 'user': 'barney', 'age': 36 },
 *   { 'user': 'fred',   'age': 30 },
 *   { 'user': 'barney', 'age': 34 }
 * ];
 *
 * _.sortBy(users, [function(o) { return o.user; }]);
 * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]
 *
 * _.sortBy(users, ['user', 'age']);
 * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]
 */
var sortBy = baseRest(function(collection, iteratees) {
  if (collection == null) {
    return [];
  }
  var length = iteratees.length;
  if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {
    iteratees = [];
  } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {
    iteratees = [iteratees[0]];
  }
  return baseOrderBy(collection, baseFlatten(iteratees, 1), []);
});

module.exports = sortBy;
var arrayPush = __webpack_require__(600),
    isFlattenable = __webpack_require__(939);

/**
 * The base implementation of `_.flatten` with support for restricting flattening.
 *
 * @private
 * @param {Array} array The array to flatten.
 * @param {number} depth The maximum recursion depth.
 * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.
 * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.
 * @param {Array} [result=[]] The initial result value.
 * @returns {Array} Returns the new flattened array.
 */
function baseFlatten(array, depth, predicate, isStrict, result) {
  var index = -1,
      length = array.length;

  predicate || (predicate = isFlattenable);
  result || (result = []);

  while (++index < length) {
    var value = array[index];
    if (depth > 0 && predicate(value)) {
      if (depth > 1) {
        // Recursively flatten arrays (susceptible to call stack limits).
        baseFlatten(value, depth - 1, predicate, isStrict, result);
      } else {
        arrayPush(result, value);
      }
    } else if (!isStrict) {
      result[result.length] = value;
    }
  }
  return result;
}

module.exports = baseFlatten;
var Symbol = __webpack_require__(359),
    isArguments = __webpack_require__(482),
    isArray = __webpack_require__(71);

/** Built-in value references. */
var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;

/**
 * Checks if `value` is a flattenable `arguments` object or array.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.
 */
function isFlattenable(value) {
  return isArray(value) || isArguments(value) ||
    !!(spreadableSymbol && value && value[spreadableSymbol]);
}

module.exports = isFlattenable;
var arrayMap = __webpack_require__(492),
    baseGet = __webpack_require__(490),
    baseIteratee = __webpack_require__(216),
    baseMap = __webpack_require__(609),
    baseSortBy = __webpack_require__(941),
    baseUnary = __webpack_require__(592),
    compareMultiple = __webpack_require__(942),
    identity = __webpack_require__(303),
    isArray = __webpack_require__(71);

/**
 * The base implementation of `_.orderBy` without param guards.
 *
 * @private
 * @param {Array|Object} collection The collection to iterate over.
 * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.
 * @param {string[]} orders The sort orders of `iteratees`.
 * @returns {Array} Returns the new sorted array.
 */
function baseOrderBy(collection, iteratees, orders) {
  if (iteratees.length) {
    iteratees = arrayMap(iteratees, function(iteratee) {
      if (isArray(iteratee)) {
        return function(value) {
          return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);
        }
      }
      return iteratee;
    });
  } else {
    iteratees = [identity];
  }

  var index = -1;
  iteratees = arrayMap(iteratees, baseUnary(baseIteratee));

  var result = baseMap(collection, function(value, key, collection) {
    var criteria = arrayMap(iteratees, function(iteratee) {
      return iteratee(value);
    });
    return { 'criteria': criteria, 'index': ++index, 'value': value };
  });

  return baseSortBy(result, function(object, other) {
    return compareMultiple(object, other, orders);
  });
}

module.exports = baseOrderBy;
var baseEach = __webpack_require__(481),
    isArrayLike = __webpack_require__(360);

/**
 * The base implementation of `_.map` without support for iteratee shorthands.
 *
 * @private
 * @param {Array|Object} collection The collection to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Array} Returns the new mapped array.
 */
function baseMap(collection, iteratee) {
  var index = -1,
      result = isArrayLike(collection) ? Array(collection.length) : [];

  baseEach(collection, function(value, key, collection) {
    result[++index] = iteratee(value, key, collection);
  });
  return result;
}

module.exports = baseMap;
/**
 * The base implementation of `_.sortBy` which uses `comparer` to define the
 * sort order of `array` and replaces criteria objects with their corresponding
 * values.
 *
 * @private
 * @param {Array} array The array to sort.
 * @param {Function} comparer The function to define sort order.
 * @returns {Array} Returns `array`.
 */
function baseSortBy(array, comparer) {
  var length = array.length;

  array.sort(comparer);
  while (length--) {
    array[length] = array[length].value;
  }
  return array;
}

module.exports = baseSortBy;
var compareAscending = __webpack_require__(943);

/**
 * Used by `_.orderBy` to compare multiple properties of a value to another
 * and stable sort them.
 *
 * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,
 * specify an order of "desc" for descending or "asc" for ascending sort order
 * of corresponding values.
 *
 * @private
 * @param {Object} object The object to compare.
 * @param {Object} other The other object to compare.
 * @param {boolean[]|string[]} orders The order to sort by for each property.
 * @returns {number} Returns the sort order indicator for `object`.
 */
function compareMultiple(object, other, orders) {
  var index = -1,
      objCriteria = object.criteria,
      othCriteria = other.criteria,
      length = objCriteria.length,
      ordersLength = orders.length;

  while (++index < length) {
    var result = compareAscending(objCriteria[index], othCriteria[index]);
    if (result) {
      if (index >= ordersLength) {
        return result;
      }
      var order = orders[index];
      return result * (order == 'desc' ? -1 : 1);
    }
  }
  // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications
  // that causes it, under certain circumstances, to provide the same value for
  // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247
  // for more details.
  //
  // This also ensures a stable sort in V8 and other engines.
  // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.
  return object.index - other.index;
}

module.exports = compareMultiple;
var isSymbol = __webpack_require__(302);

/**
 * Compares values to sort them in ascending order.
 *
 * @private
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @returns {number} Returns the sort order indicator for `value`.
 */
function compareAscending(value, other) {
  if (value !== other) {
    var valIsDefined = value !== undefined,
        valIsNull = value === null,
        valIsReflexive = value === value,
        valIsSymbol = isSymbol(value);

    var othIsDefined = other !== undefined,
        othIsNull = other === null,
        othIsReflexive = other === other,
        othIsSymbol = isSymbol(other);

    if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||
        (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||
        (valIsNull && othIsDefined && othIsReflexive) ||
        (!valIsDefined && othIsReflexive) ||
        !valIsReflexive) {
      return 1;
    }
    if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||
        (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||
        (othIsNull && valIsDefined && valIsReflexive) ||
        (!othIsDefined && valIsReflexive) ||
        !othIsReflexive) {
      return -1;
    }
  }
  return 0;
}

module.exports = compareAscending;
var identity = __webpack_require__(303),
    overRest = __webpack_require__(945),
    setToString = __webpack_require__(947);

/**
 * The base implementation of `_.rest` which doesn't validate or coerce arguments.
 *
 * @private
 * @param {Function} func The function to apply a rest parameter to.
 * @param {number} [start=func.length-1] The start position of the rest parameter.
 * @returns {Function} Returns the new function.
 */
function baseRest(func, start) {
  return setToString(overRest(func, start, identity), func + '');
}

module.exports = baseRest;
var apply = __webpack_require__(946);

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeMax = Math.max;

/**
 * A specialized version of `baseRest` which transforms the rest array.
 *
 * @private
 * @param {Function} func The function to apply a rest parameter to.
 * @param {number} [start=func.length-1] The start position of the rest parameter.
 * @param {Function} transform The rest array transform.
 * @returns {Function} Returns the new function.
 */
function overRest(func, start, transform) {
  start = nativeMax(start === undefined ? (func.length - 1) : start, 0);
  return function() {
    var args = arguments,
        index = -1,
        length = nativeMax(args.length - start, 0),
        array = Array(length);

    while (++index < length) {
      array[index] = args[start + index];
    }
    index = -1;
    var otherArgs = Array(start + 1);
    while (++index < start) {
      otherArgs[index] = args[index];
    }
    otherArgs[start] = transform(array);
    return apply(func, this, otherArgs);
  };
}

module.exports = overRest;
/**
 * A faster alternative to `Function#apply`, this function invokes `func`
 * with the `this` binding of `thisArg` and the arguments of `args`.
 *
 * @private
 * @param {Function} func The function to invoke.
 * @param {*} thisArg The `this` binding of `func`.
 * @param {Array} args The arguments to invoke `func` with.
 * @returns {*} Returns the result of `func`.
 */
function apply(func, thisArg, args) {
  switch (args.length) {
    case 0: return func.call(thisArg);
    case 1: return func.call(thisArg, args[0]);
    case 2: return func.call(thisArg, args[0], args[1]);
    case 3: return func.call(thisArg, args[0], args[1], args[2]);
  }
  return func.apply(thisArg, args);
}

module.exports = apply;
var baseSetToString = __webpack_require__(948),
    shortOut = __webpack_require__(950);

/**
 * Sets the `toString` method of `func` to return `string`.
 *
 * @private
 * @param {Function} func The function to modify.
 * @param {Function} string The `toString` result.
 * @returns {Function} Returns `func`.
 */
var setToString = shortOut(baseSetToString);

module.exports = setToString;
var constant = __webpack_require__(949),
    defineProperty = __webpack_require__(610),
    identity = __webpack_require__(303);

/**
 * The base implementation of `setToString` without support for hot loop shorting.
 *
 * @private
 * @param {Function} func The function to modify.
 * @param {Function} string The `toString` result.
 * @returns {Function} Returns `func`.
 */
var baseSetToString = !defineProperty ? identity : function(func, string) {
  return defineProperty(func, 'toString', {
    'configurable': true,
    'enumerable': false,
    'value': constant(string),
    'writable': true
  });
};

module.exports = baseSetToString;
/**
 * Creates a function that returns `value`.
 *
 * @static
 * @memberOf _
 * @since 2.4.0
 * @category Util
 * @param {*} value The value to return from the new function.
 * @returns {Function} Returns the new constant function.
 * @example
 *
 * var objects = _.times(2, _.constant({ 'a': 1 }));
 *
 * console.log(objects);
 * // => [{ 'a': 1 }, { 'a': 1 }]
 *
 * console.log(objects[0] === objects[1]);
 * // => true
 */
function constant(value) {
  return function() {
    return value;
  };
}

module.exports = constant;
var getNative = __webpack_require__(272);

var defineProperty = (function() {
  try {
    var func = getNative(Object, 'defineProperty');
    func({}, '', {});
    return func;
  } catch (e) {}
}());

module.exports = defineProperty;
/** Used to detect hot functions by number of calls within a span of milliseconds. */
var HOT_COUNT = 800,
    HOT_SPAN = 16;

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeNow = Date.now;

/**
 * Creates a function that'll short out and invoke `identity` instead
 * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
 * milliseconds.
 *
 * @private
 * @param {Function} func The function to restrict.
 * @returns {Function} Returns the new shortable function.
 */
function shortOut(func) {
  var count = 0,
      lastCalled = 0;

  return function() {
    var stamp = nativeNow(),
        remaining = HOT_SPAN - (stamp - lastCalled);

    lastCalled = stamp;
    if (remaining > 0) {
      if (++count >= HOT_COUNT) {
        return arguments[0];
      }
    } else {
      count = 0;
    }
    return func.apply(undefined, arguments);
  };
}

module.exports = shortOut;
var createRange = __webpack_require__(951);

/**
 * Creates an array of numbers (positive and/or negative) progressing from
 * `start` up to, but not including, `end`. A step of `-1` is used if a negative
 * `start` is specified without an `end` or `step`. If `end` is not specified,
 * it's set to `start` with `start` then set to `0`.
 *
 * **Note:** JavaScript follows the IEEE-754 standard for resolving
 * floating-point values which can produce unexpected results.
 *
 * @static
 * @since 0.1.0
 * @memberOf _
 * @category Util
 * @param {number} [start=0] The start of the range.
 * @param {number} end The end of the range.
 * @param {number} [step=1] The value to increment or decrement by.
 * @returns {Array} Returns the range of numbers.
 * @see _.inRange, _.rangeRight
 * @example
 *
 * _.range(4);
 * // => [0, 1, 2, 3]
 *
 * _.range(-4);
 * // => [0, -1, -2, -3]
 *
 * _.range(1, 5);
 * // => [1, 2, 3, 4]
 *
 * _.range(0, 20, 5);
 * // => [0, 5, 10, 15]
 *
 * _.range(0, -4, -1);
 * // => [0, -1, -2, -3]
 *
 * _.range(1, 4, 0);
 * // => [1, 1, 1]
 *
 * _.range(0);
 * // => []
 */
var range = createRange();

module.exports = range;
var baseRange = __webpack_require__(952),
    isIterateeCall = __webpack_require__(400),
    toFinite = __webpack_require__(607);

/**
 * Creates a `_.range` or `_.rangeRight` function.
 *
 * @private
 * @param {boolean} [fromRight] Specify iterating from right to left.
 * @returns {Function} Returns the new range function.
 */
function createRange(fromRight) {
  return function(start, end, step) {
    if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {
      end = step = undefined;
    }
    // Ensure the sign of `-0` is preserved.
    start = toFinite(start);
    if (end === undefined) {
      end = start;
      start = 0;
    } else {
      end = toFinite(end);
    }
    step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);
    return baseRange(start, end, step, fromRight);
  };
}

module.exports = createRange;
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeCeil = Math.ceil,
    nativeMax = Math.max;

/**
 * The base implementation of `_.range` and `_.rangeRight` which doesn't
 * coerce arguments.
 *
 * @private
 * @param {number} start The start of the range.
 * @param {number} end The end of the range.
 * @param {number} step The value to increment or decrement by.
 * @param {boolean} [fromRight] Specify iterating from right to left.
 * @returns {Array} Returns the range of numbers.
 */
function baseRange(start, end, step, fromRight) {
  var index = -1,
      length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),
      result = Array(length);

  while (length--) {
    result[fromRight ? length : ++index] = start;
    start += step;
  }
  return result;
}

module.exports = baseRange;
/**
 * Checks if `value` is `null` or `undefined`.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is nullish, else `false`.
 * @example
 *
 * _.isNil(null);
 * // => true
 *
 * _.isNil(void 0);
 * // => true
 *
 * _.isNil(NaN);
 * // => false
 */
function isNil(value) {
  return value == null;
}

module.exports = isNil;
var baseGetTag = __webpack_require__(233),
    isObjectLike = __webpack_require__(234);

/** `Object#toString` result references. */
var boolTag = '[object Boolean]';

/**
 * Checks if `value` is classified as a boolean primitive or object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.
 * @example
 *
 * _.isBoolean(false);
 * // => true
 *
 * _.isBoolean(null);
 * // => false
 */
function isBoolean(value) {
  return value === true || value === false ||
    (isObjectLike(value) && baseGetTag(value) == boolTag);
}

module.exports = isBoolean;
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return RADIAN; });
/* unused harmony export degreeToRadian */
/* unused harmony export radianToDegree */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return polarToCartesian; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getMaxRadius; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return formatAxisMap; });
/* unused harmony export distanceBetweenPoints */
/* unused harmony export getAngleOfPoint */
/* unused harmony export formatAngleOfSector */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return inRangeOfSector; });
/* harmony import */ var lodash_isNil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48);
/* harmony import */ var lodash_isNil__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_isNil__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _DataUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(24);
/* harmony import */ var _ChartUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49);


function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _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."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _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 _arrayLikeToArray(o, minLen); }

function _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; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }



var RADIAN = Math.PI / 180;
var degreeToRadian = function degreeToRadian(angle) {
  return angle * Math.PI / 180;
};
var radianToDegree = function radianToDegree(angleInRadian) {
  return angleInRadian * 180 / Math.PI;
};
var polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {
  return {
    x: cx + Math.cos(-RADIAN * angle) * radius,
    y: cy + Math.sin(-RADIAN * angle) * radius
  };
};
var getMaxRadius = function getMaxRadius(width, height) {
  var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
    top: 0,
    right: 0,
    bottom: 0,
    left: 0
  };
  return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;
};
/**
 * Calculate the scale function, position, width, height of axes
 * @param  {Object} props     Latest props
 * @param  {Object} axisMap   The configuration of axes
 * @param  {Object} offset    The offset of main part in the svg element
 * @param  {Object} axisType  The type of axes, radius-axis or angle-axis
 * @param  {String} chartName The name of chart
 * @return {Object} Configuration
 */

var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {
  var width = props.width,
      height = props.height;
  var startAngle = props.startAngle,
      endAngle = props.endAngle;
  var cx = Object(_DataUtils__WEBPACK_IMPORTED_MODULE_1__[/* getPercentValue */ "d"])(props.cx, width, width / 2);
  var cy = Object(_DataUtils__WEBPACK_IMPORTED_MODULE_1__[/* getPercentValue */ "d"])(props.cy, height, height / 2);
  var maxRadius = getMaxRadius(width, height, offset);
  var innerRadius = Object(_DataUtils__WEBPACK_IMPORTED_MODULE_1__[/* getPercentValue */ "d"])(props.innerRadius, maxRadius, 0);
  var outerRadius = Object(_DataUtils__WEBPACK_IMPORTED_MODULE_1__[/* getPercentValue */ "d"])(props.outerRadius, maxRadius, maxRadius * 0.8);
  var ids = Object.keys(axisMap);
  return ids.reduce(function (result, id) {
    var axis = axisMap[id];
    var domain = axis.domain,
        reversed = axis.reversed;
    var range;

    if (lodash_isNil__WEBPACK_IMPORTED_MODULE_0___default()(axis.range)) {
      if (axisType === 'angleAxis') {
        range = [startAngle, endAngle];
      } else if (axisType === 'radiusAxis') {
        range = [innerRadius, outerRadius];
      }

      if (reversed) {
        range = [range[1], range[0]];
      }
    } else {
      range = axis.range;
      var _range = range;

      var _range2 = _slicedToArray(_range, 2);

      startAngle = _range2[0];
      endAngle = _range2[1];
    }

    var _parseScale = Object(_ChartUtils__WEBPACK_IMPORTED_MODULE_2__[/* parseScale */ "A"])(axis, chartName),
        realScaleType = _parseScale.realScaleType,
        scale = _parseScale.scale;

    scale.domain(domain).range(range);
    Object(_ChartUtils__WEBPACK_IMPORTED_MODULE_2__[/* checkDomainOfScale */ "c"])(scale);
    var ticks = Object(_ChartUtils__WEBPACK_IMPORTED_MODULE_2__[/* getTicksOfScale */ "u"])(scale, _objectSpread(_objectSpread({}, axis), {}, {
      realScaleType: realScaleType
    }));

    var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {
      range: range,
      radius: outerRadius,
      realScaleType: realScaleType,
      scale: scale,
      cx: cx,
      cy: cy,
      innerRadius: innerRadius,
      outerRadius: outerRadius,
      startAngle: startAngle,
      endAngle: endAngle
    });

    return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));
  }, {});
};
var distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {
  var x1 = point.x,
      y1 = point.y;
  var x2 = anotherPoint.x,
      y2 = anotherPoint.y;
  return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));
};
var getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {
  var x = _ref.x,
      y = _ref.y;
  var cx = _ref2.cx,
      cy = _ref2.cy;
  var radius = distanceBetweenPoints({
    x: x,
    y: y
  }, {
    x: cx,
    y: cy
  });

  if (radius <= 0) {
    return {
      radius: radius
    };
  }

  var cos = (x - cx) / radius;
  var angleInRadian = Math.acos(cos);

  if (y > cy) {
    angleInRadian = 2 * Math.PI - angleInRadian;
  }

  return {
    radius: radius,
    angle: radianToDegree(angleInRadian),
    angleInRadian: angleInRadian
  };
};
var formatAngleOfSector = function formatAngleOfSector(_ref3) {
  var startAngle = _ref3.startAngle,
      endAngle = _ref3.endAngle;
  var startCnt = Math.floor(startAngle / 360);
  var endCnt = Math.floor(endAngle / 360);
  var min = Math.min(startCnt, endCnt);
  return {
    startAngle: startAngle - min * 360,
    endAngle: endAngle - min * 360
  };
};

var reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {
  var startAngle = _ref4.startAngle,
      endAngle = _ref4.endAngle;
  var startCnt = Math.floor(startAngle / 360);
  var endCnt = Math.floor(endAngle / 360);
  var min = Math.min(startCnt, endCnt);
  return angle + min * 360;
};

var inRangeOfSector = function inRangeOfSector(_ref5, sector) {
  var x = _ref5.x,
      y = _ref5.y;

  var _getAngleOfPoint = getAngleOfPoint({
    x: x,
    y: y
  }, sector),
      radius = _getAngleOfPoint.radius,
      angle = _getAngleOfPoint.angle;

  var innerRadius = sector.innerRadius,
      outerRadius = sector.outerRadius;

  if (radius < innerRadius || radius > outerRadius) {
    return false;
  }

  if (radius === 0) {
    return true;
  }

  var _formatAngleOfSector = formatAngleOfSector(sector),
      startAngle = _formatAngleOfSector.startAngle,
      endAngle = _formatAngleOfSector.endAngle;

  var formatAngle = angle;
  var inRange;

  if (startAngle <= endAngle) {
    while (formatAngle > endAngle) {
      formatAngle -= 360;
    }

    while (formatAngle < startAngle) {
      formatAngle += 360;
    }

    inRange = formatAngle >= startAngle && formatAngle <= endAngle;
  } else {
    while (formatAngle > startAngle) {
      formatAngle -= 360;
    }

    while (formatAngle < endAngle) {
      formatAngle += 360;
    }

    inRange = formatAngle >= endAngle && formatAngle <= startAngle;
  }

  if (inRange) {
    return _objectSpread(_objectSpread({}, sector), {}, {
      radius: radius,
      angle: reverseFormatAngleOfSetor(formatAngle, sector)
    });
  }

  return null;
};/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return mathSign; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return isPercent; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return isNumber; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return isNumOrStr; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return uniqueId; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return getPercentValue; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getAnyElementOfObject; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return hasDuplicate; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return interpolateNumber; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return findEntryInArray; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getLinearRegression; });
/* harmony import */ var lodash_get__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(113);
/* harmony import */ var lodash_get__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_get__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71);
/* harmony import */ var lodash_isArray__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isArray__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var lodash_isNaN__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(261);
/* harmony import */ var lodash_isNaN__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isNaN__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var lodash_isNumber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(504);
/* harmony import */ var lodash_isNumber__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash_isNumber__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var lodash_isString__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(262);
/* harmony import */ var lodash_isString__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_isString__WEBPACK_IMPORTED_MODULE_4__);





var mathSign = function mathSign(value) {
  if (value === 0) {
    return 0;
  }

  if (value > 0) {
    return 1;
  }

  return -1;
};
var isPercent = function isPercent(value) {
  return lodash_isString__WEBPACK_IMPORTED_MODULE_4___default()(value) && value.indexOf('%') === value.length - 1;
};
var isNumber = function isNumber(value) {
  return lodash_isNumber__WEBPACK_IMPORTED_MODULE_3___default()(value) && !lodash_isNaN__WEBPACK_IMPORTED_MODULE_2___default()(value);
};
var isNumOrStr = function isNumOrStr(value) {
  return isNumber(value) || lodash_isString__WEBPACK_IMPORTED_MODULE_4___default()(value);
};
var idCounter = 0;
var uniqueId = function uniqueId(prefix) {
  var id = ++idCounter;
  return "".concat(prefix || '').concat(id);
};
/**
 * Get percent value of a total value
 * @param {Number|String} percent A percent
 * @param {Number} totalValue     Total value
 * @param {NUmber} defaultValue   The value returned when percent is undefined or invalid
 * @param {Boolean} validate      If set to be true, the result will be validated
 * @return {Number} value
 */

var getPercentValue = function getPercentValue(percent, totalValue) {
  var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
  var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;

  if (!isNumber(percent) && !lodash_isString__WEBPACK_IMPORTED_MODULE_4___default()(percent)) {
    return defaultValue;
  }

  var value;

  if (isPercent(percent)) {
    var index = percent.indexOf('%');
    value = totalValue * parseFloat(percent.slice(0, index)) / 100;
  } else {
    value = +percent;
  }

  if (lodash_isNaN__WEBPACK_IMPORTED_MODULE_2___default()(value)) {
    value = defaultValue;
  }

  if (validate && value > totalValue) {
    value = totalValue;
  }

  return value;
};
var getAnyElementOfObject = function getAnyElementOfObject(obj) {
  if (!obj) {
    return null;
  }

  var keys = Object.keys(obj);

  if (keys && keys.length) {
    return obj[keys[0]];
  }

  return null;
};
var hasDuplicate = function hasDuplicate(ary) {
  if (!lodash_isArray__WEBPACK_IMPORTED_MODULE_1___default()(ary)) {
    return false;
  }

  var len = ary.length;
  var cache = {};

  for (var i = 0; i < len; i++) {
    if (!cache[ary[i]]) {
      cache[ary[i]] = true;
    } else {
      return true;
    }
  }

  return false;
};
var interpolateNumber = function interpolateNumber(numberA, numberB) {
  if (isNumber(numberA) && isNumber(numberB)) {
    return function (t) {
      return numberA + t * (numberB - numberA);
    };
  }

  return function () {
    return numberB;
  };
};
function findEntryInArray(ary, specifiedKey, specifiedValue) {
  if (!ary || !ary.length) {
    return null;
  }

  return ary.find(function (entry) {
    return entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : lodash_get__WEBPACK_IMPORTED_MODULE_0___default()(entry, specifiedKey)) === specifiedValue;
  });
}
/**
 * The least square linear regression
 * @param {Array} data The array of points
 * @returns {Object} The domain of x, and the parameter of linear function
 */

var getLinearRegression = function getLinearRegression(data) {
  if (!data || !data.length) {
    return null;
  }

  var len = data.length;
  var xsum = 0;
  var ysum = 0;
  var xysum = 0;
  var xxsum = 0;
  var xmin = Infinity;
  var xmax = -Infinity;

  for (var i = 0; i < len; i++) {
    xsum += data[i].cx;
    ysum += data[i].cy;
    xysum += data[i].cx * data[i].cy;
    xxsum += data[i].cx * data[i].cx;
    xmin = Math.min(xmin, data[i].cx);
    xmax = Math.max(xmax, data[i].cx);
  }

  var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;
  return {
    xmin: xmin,
    xmax: xmax,
    a: a,
    b: (ysum - a * xsum) / len
  };
};var isNumber = __webpack_require__(504);

/**
 * Checks if `value` is `NaN`.
 *
 * **Note:** This method is based on
 * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as
 * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for
 * `undefined` and other non-number values.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.
 * @example
 *
 * _.isNaN(NaN);
 * // => true
 *
 * _.isNaN(new Number(NaN));
 * // => true
 *
 * isNaN(undefined);
 * // => true
 *
 * _.isNaN(undefined);
 * // => false
 */
function isNaN(value) {
  // An `NaN` primitive is the only value that is not equal to itself.
  // Perform the `toStringTag` check first to avoid errors with some
  // ActiveX objects in IE.
  return isNumber(value) && value != +value;
}

module.exports = isNaN;
var baseGetTag = __webpack_require__(233),
    isObjectLike = __webpack_require__(234);

/** `Object#toString` result references. */
var numberTag = '[object Number]';

/**
 * Checks if `value` is classified as a `Number` primitive or object.
 *
 * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are
 * classified as numbers, use the `_.isFinite` method.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a number, else `false`.
 * @example
 *
 * _.isNumber(3);
 * // => true
 *
 * _.isNumber(Number.MIN_VALUE);
 * // => true
 *
 * _.isNumber(Infinity);
 * // => true
 *
 * _.isNumber('3');
 * // => false
 */
function isNumber(value) {
  return typeof value == 'number' ||
    (isObjectLike(value) && baseGetTag(value) == numberTag);
}

module.exports = isNumber;
var baseGetTag = __webpack_require__(233),
    isArray = __webpack_require__(71),
    isObjectLike = __webpack_require__(234);

/** `Object#toString` result references. */
var stringTag = '[object String]';

/**
 * Checks if `value` is classified as a `String` primitive or object.
 *
 * @static
 * @since 0.1.0
 * @memberOf _
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a string, else `false`.
 * @example
 *
 * _.isString('abc');
 * // => true
 *
 * _.isString(1);
 * // => false
 */
function isString(value) {
  return typeof value == 'string' ||
    (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
}

module.exports = isString;
var baseIsEqual = __webpack_require__(488);

/**
 * Performs a deep comparison between two values to determine if they are
 * equivalent.
 *
 * **Note:** This method supports comparing arrays, array buffers, booleans,
 * date objects, error objects, maps, numbers, `Object` objects, regexes,
 * sets, strings, symbols, and typed arrays. `Object` objects are compared
 * by their own, not inherited, enumerable properties. Functions and DOM
 * nodes are compared by strict equality, i.e. `===`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
 * @example
 *
 * var object = { 'a': 1 };
 * var other = { 'a': 1 };
 *
 * _.isEqual(object, other);
 * // => true
 *
 * object === other;
 * // => false
 */
function isEqual(value, other) {
  return baseIsEqual(value, other);
}

module.exports = isEqual;
var createCaseFirst = __webpack_require__(953);

/**
 * Converts the first character of `string` to upper case.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category String
 * @param {string} [string=''] The string to convert.
 * @returns {string} Returns the converted string.
 * @example
 *
 * _.upperFirst('fred');
 * // => 'Fred'
 *
 * _.upperFirst('FRED');
 * // => 'FRED'
 */
var upperFirst = createCaseFirst('toUpperCase');

module.exports = upperFirst;
var castSlice = __webpack_require__(954),
    hasUnicode = __webpack_require__(611),
    stringToArray = __webpack_require__(956),
    toString = __webpack_require__(605);

/**
 * Creates a function like `_.lowerFirst`.
 *
 * @private
 * @param {string} methodName The name of the `String` case method to use.
 * @returns {Function} Returns the new case function.
 */
function createCaseFirst(methodName) {
  return function(string) {
    string = toString(string);

    var strSymbols = hasUnicode(string)
      ? stringToArray(string)
      : undefined;

    var chr = strSymbols
      ? strSymbols[0]
      : string.charAt(0);

    var trailing = strSymbols
      ? castSlice(strSymbols, 1).join('')
      : string.slice(1);

    return chr[methodName]() + trailing;
  };
}

module.exports = createCaseFirst;
var baseSlice = __webpack_require__(955);

/**
 * Casts `array` to a slice if it's needed.
 *
 * @private
 * @param {Array} array The array to inspect.
 * @param {number} start The start position.
 * @param {number} [end=array.length] The end position.
 * @returns {Array} Returns the cast slice.
 */
function castSlice(array, start, end) {
  var length = array.length;
  end = end === undefined ? length : end;
  return (!start && end >= length) ? array : baseSlice(array, start, end);
}

module.exports = castSlice;
/**
 * The base implementation of `_.slice` without an iteratee call guard.
 *
 * @private
 * @param {Array} array The array to slice.
 * @param {number} [start=0] The start position.
 * @param {number} [end=array.length] The end position.
 * @returns {Array} Returns the slice of `array`.
 */
function baseSlice(array, start, end) {
  var index = -1,
      length = array.length;

  if (start < 0) {
    start = -start > length ? 0 : (length + start);
  }
  end = end > length ? length : end;
  if (end < 0) {
    end += length;
  }
  length = start > end ? 0 : ((end - start) >>> 0);
  start >>>= 0;

  var result = Array(length);
  while (++index < length) {
    result[index] = array[index + start];
  }
  return result;
}

module.exports = baseSlice;
/** Used to compose unicode character classes. */
var rsAstralRange = '\\ud800-\\udfff',
    rsComboMarksRange = '\\u0300-\\u036f',
    reComboHalfMarksRange = '\\ufe20-\\ufe2f',
    rsComboSymbolsRange = '\\u20d0-\\u20ff',
    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
    rsVarRange = '\\ufe0e\\ufe0f';

/** Used to compose unicode capture groups. */
var rsZWJ = '\\u200d';

/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange  + rsComboRange + rsVarRange + ']');

/**
 * Checks if `string` contains Unicode symbols.
 *
 * @private
 * @param {string} string The string to inspect.
 * @returns {boolean} Returns `true` if a symbol is found, else `false`.
 */
function hasUnicode(string) {
  return reHasUnicode.test(string);
}

module.exports = hasUnicode;
var asciiToArray = __webpack_require__(957),
    hasUnicode = __webpack_require__(611),
    unicodeToArray = __webpack_require__(958);

/**
 * Converts `string` to an array.
 *
 * @private
 * @param {string} string The string to convert.
 * @returns {Array} Returns the converted array.
 */
function stringToArray(string) {
  return hasUnicode(string)
    ? unicodeToArray(string)
    : asciiToArray(string);
}

module.exports = stringToArray;
/**
 * Converts an ASCII `string` to an array.
 *
 * @private
 * @param {string} string The string to convert.
 * @returns {Array} Returns the converted array.
 */
function asciiToArray(string) {
  return string.split('');
}

module.exports = asciiToArray;
/** Used to compose unicode character classes. */
var rsAstralRange = '\\ud800-\\udfff',
    rsComboMarksRange = '\\u0300-\\u036f',
    reComboHalfMarksRange = '\\ufe20-\\ufe2f',
    rsComboSymbolsRange = '\\u20d0-\\u20ff',
    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
    rsVarRange = '\\ufe0e\\ufe0f';

/** Used to compose unicode capture groups. */
var rsAstral = '[' + rsAstralRange + ']',
    rsCombo = '[' + rsComboRange + ']',
    rsFitz = '\\ud83c[\\udffb-\\udfff]',
    rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
    rsNonAstral = '[^' + rsAstralRange + ']',
    rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
    rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
    rsZWJ = '\\u200d';

/** Used to compose unicode regexes. */
var reOptMod = rsModifier + '?',
    rsOptVar = '[' + rsVarRange + ']?',
    rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
    rsSeq = rsOptVar + reOptMod + rsOptJoin,
    rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';

/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');

/**
 * Converts a Unicode `string` to an array.
 *
 * @private
 * @param {string} string The string to convert.
 * @returns {Array} Returns the converted array.
 */
function unicodeToArray(string) {
  return string.match(reUnicode) || [];
}

module.exports = unicodeToArray;
var baseExtremum = __webpack_require__(401),
    baseGt = __webpack_require__(612),
    identity = __webpack_require__(303);

/**
 * Computes the maximum value of `array`. If `array` is empty or falsey,
 * `undefined` is returned.
 *
 * @static
 * @since 0.1.0
 * @memberOf _
 * @category Math
 * @param {Array} array The array to iterate over.
 * @returns {*} Returns the maximum value.
 * @example
 *
 * _.max([4, 2, 8, 6]);
 * // => 8
 *
 * _.max([]);
 * // => undefined
 */
function max(array) {
  return (array && array.length)
    ? baseExtremum(array, identity, baseGt)
    : undefined;
}

module.exports = max;
var isSymbol = __webpack_require__(302);

/**
 * The base implementation of methods like `_.max` and `_.min` which accepts a
 * `comparator` to determine the extremum value.
 *
 * @private
 * @param {Array} array The array to iterate over.
 * @param {Function} iteratee The iteratee invoked per iteration.
 * @param {Function} comparator The comparator used to compare values.
 * @returns {*} Returns the extremum value.
 */
function baseExtremum(array, iteratee, comparator) {
  var index = -1,
      length = array.length;

  while (++index < length) {
    var value = array[index],
        current = iteratee(value);

    if (current != null && (computed === undefined
          ? (current === current && !isSymbol(current))
          : comparator(current, computed)
        )) {
      var computed = current,
          result = value;
    }
  }
  return result;
}

module.exports = baseExtremum;
/**
 * The base implementation of `_.gt` which doesn't coerce arguments.
 *
 * @private
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @returns {boolean} Returns `true` if `value` is greater than `other`,
 *  else `false`.
 */
function baseGt(value, other) {
  return value > other;
}

module.exports = baseGt;
var baseExtremum = __webpack_require__(401),
    baseLt = __webpack_require__(613),
    identity = __webpack_require__(303);

/**
 * Computes the minimum value of `array`. If `array` is empty or falsey,
 * `undefined` is returned.
 *
 * @static
 * @since 0.1.0
 * @memberOf _
 * @category Math
 * @param {Array} array The array to iterate over.
 * @returns {*} Returns the minimum value.
 * @example
 *
 * _.min([4, 2, 8, 6]);
 * // => 2
 *
 * _.min([]);
 * // => undefined
 */
function min(array) {
  return (array && array.length)
    ? baseExtremum(array, identity, baseLt)
    : undefined;
}

module.exports = min;
/**
 * The base implementation of `_.lt` which doesn't coerce arguments.
 *
 * @private
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @returns {boolean} Returns `true` if `value` is less than `other`,
 *  else `false`.
 */
function baseLt(value, other) {
  return value < other;
}

module.exports = baseLt;
var baseFlatten = __webpack_require__(493),
    map = __webpack_require__(959);

/**
 * Creates a flattened array of values by running each element in `collection`
 * thru `iteratee` and flattening the mapped results. The iteratee is invoked
 * with three arguments: (value, index|key, collection).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Collection
 * @param {Array|Object} collection The collection to iterate over.
 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
 * @returns {Array} Returns the new flattened array.
 * @example
 *
 * function duplicate(n) {
 *   return [n, n];
 * }
 *
 * _.flatMap([1, 2], duplicate);
 * // => [1, 1, 2, 2]
 */
function flatMap(collection, iteratee) {
  return baseFlatten(map(collection, iteratee), 1);
}

module.exports = flatMap;
var arrayMap = __webpack_require__(492),
    baseIteratee = __webpack_require__(216),
    baseMap = __webpack_require__(609),
    isArray = __webpack_require__(71);

/**
 * Creates an array of values by running each element in `collection` thru
 * `iteratee`. The iteratee is invoked with three arguments:
 * (value, index|key, collection).
 *
 * Many lodash methods are guarded to work as iteratees for methods like
 * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.
 *
 * The guarded methods are:
 * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,
 * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,
 * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,
 * `template`, `trim`, `trimEnd`, `trimStart`, and `words`
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Collection
 * @param {Array|Object} collection The collection to iterate over.
 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
 * @returns {Array} Returns the new mapped array.
 * @example
 *
 * function square(n) {
 *   return n * n;
 * }
 *
 * _.map([4, 8], square);
 * // => [16, 64]
 *
 * _.map({ 'a': 4, 'b': 8 }, square);
 * // => [16, 64] (iteration order is not guaranteed)
 *
 * var users = [
 *   { 'user': 'barney' },
 *   { 'user': 'fred' }
 * ];
 *
 * // The `_.property` iteratee shorthand.
 * _.map(users, 'user');
 * // => ['barney', 'fred']
 */
function map(collection, iteratee) {
  var func = isArray(collection) ? arrayMap : baseMap;
  return func(collection, baseIteratee(iteratee, 3));
}

module.exports = map;
var __WEBPACK_AMD_DEFINE_RESULT__;/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */
;(function (globalScope) {
  'use strict';


  /*
   *  decimal.js-light v2.5.1
   *  An arbitrary-precision Decimal type for JavaScript.
   *  https://github.com/MikeMcl/decimal.js-light
   *  Copyright (c) 2020 Michael Mclaughlin <M8ch88l@gmail.com>
   *  MIT Expat Licence
   */


  // -----------------------------------  EDITABLE DEFAULTS  ------------------------------------ //


    // The limit on the value of `precision`, and on the value of the first argument to
    // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.
  var MAX_DIGITS = 1e9,                        // 0 to 1e9


    // The initial configuration properties of the Decimal constructor.
    Decimal = {

      // These values must be integers within the stated ranges (inclusive).
      // Most of these values can be changed during run-time using `Decimal.config`.

      // The maximum number of significant digits of the result of a calculation or base conversion.
      // E.g. `Decimal.config({ precision: 20 });`
      precision: 20,                         // 1 to MAX_DIGITS

      // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,
      // `toFixed`, `toPrecision` and `toSignificantDigits`.
      //
      // ROUND_UP         0 Away from zero.
      // ROUND_DOWN       1 Towards zero.
      // ROUND_CEIL       2 Towards +Infinity.
      // ROUND_FLOOR      3 Towards -Infinity.
      // ROUND_HALF_UP    4 Towards nearest neighbour. If equidistant, up.
      // ROUND_HALF_DOWN  5 Towards nearest neighbour. If equidistant, down.
      // ROUND_HALF_EVEN  6 Towards nearest neighbour. If equidistant, towards even neighbour.
      // ROUND_HALF_CEIL  7 Towards nearest neighbour. If equidistant, towards +Infinity.
      // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.
      //
      // E.g.
      // `Decimal.rounding = 4;`
      // `Decimal.rounding = Decimal.ROUND_HALF_UP;`
      rounding: 4,                           // 0 to 8

      // The exponent value at and beneath which `toString` returns exponential notation.
      // JavaScript numbers: -7
      toExpNeg: -7,                          // 0 to -MAX_E

      // The exponent value at and above which `toString` returns exponential notation.
      // JavaScript numbers: 21
      toExpPos:  21,                         // 0 to MAX_E

      // The natural logarithm of 10.
      // 115 digits
      LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'
    },


  // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //


    external = true,

    decimalError = '[DecimalError] ',
    invalidArgument = decimalError + 'Invalid argument: ',
    exponentOutOfRange = decimalError + 'Exponent out of range: ',

    mathfloor = Math.floor,
    mathpow = Math.pow,

    isDecimal = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,

    ONE,
    BASE = 1e7,
    LOG_BASE = 7,
    MAX_SAFE_INTEGER = 9007199254740991,
    MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE),    // 1286742750677284

    // Decimal.prototype object
    P = {};


  // Decimal prototype methods


  /*
   *  absoluteValue                       abs
   *  comparedTo                          cmp
   *  decimalPlaces                       dp
   *  dividedBy                           div
   *  dividedToIntegerBy                  idiv
   *  equals                              eq
   *  exponent
   *  greaterThan                         gt
   *  greaterThanOrEqualTo                gte
   *  isInteger                           isint
   *  isNegative                          isneg
   *  isPositive                          ispos
   *  isZero
   *  lessThan                            lt
   *  lessThanOrEqualTo                   lte
   *  logarithm                           log
   *  minus                               sub
   *  modulo                              mod
   *  naturalExponential                  exp
   *  naturalLogarithm                    ln
   *  negated                             neg
   *  plus                                add
   *  precision                           sd
   *  squareRoot                          sqrt
   *  times                               mul
   *  toDecimalPlaces                     todp
   *  toExponential
   *  toFixed
   *  toInteger                           toint
   *  toNumber
   *  toPower                             pow
   *  toPrecision
   *  toSignificantDigits                 tosd
   *  toString
   *  valueOf                             val
   */


  /*
   * Return a new Decimal whose value is the absolute value of this Decimal.
   *
   */
  P.absoluteValue = P.abs = function () {
    var x = new this.constructor(this);
    if (x.s) x.s = 1;
    return x;
  };


  /*
   * Return
   *   1    if the value of this Decimal is greater than the value of `y`,
   *  -1    if the value of this Decimal is less than the value of `y`,
   *   0    if they have the same value
   *
   */
  P.comparedTo = P.cmp = function (y) {
    var i, j, xdL, ydL,
      x = this;

    y = new x.constructor(y);

    // Signs differ?
    if (x.s !== y.s) return x.s || -y.s;

    // Compare exponents.
    if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;

    xdL = x.d.length;
    ydL = y.d.length;

    // Compare digit by digit.
    for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {
      if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;
    }

    // Compare lengths.
    return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;
  };


  /*
   * Return the number of decimal places of the value of this Decimal.
   *
   */
  P.decimalPlaces = P.dp = function () {
    var x = this,
      w = x.d.length - 1,
      dp = (w - x.e) * LOG_BASE;

    // Subtract the number of trailing zeros of the last word.
    w = x.d[w];
    if (w) for (; w % 10 == 0; w /= 10) dp--;

    return dp < 0 ? 0 : dp;
  };


  /*
   * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to
   * `precision` significant digits.
   *
   */
  P.dividedBy = P.div = function (y) {
    return divide(this, new this.constructor(y));
  };


  /*
   * Return a new Decimal whose value is the integer part of dividing the value of this Decimal
   * by the value of `y`, truncated to `precision` significant digits.
   *
   */
  P.dividedToIntegerBy = P.idiv = function (y) {
    var x = this,
      Ctor = x.constructor;
    return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);
  };


  /*
   * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.
   *
   */
  P.equals = P.eq = function (y) {
    return !this.cmp(y);
  };


  /*
   * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).
   *
   */
  P.exponent = function () {
    return getBase10Exponent(this);
  };


  /*
   * Return true if the value of this Decimal is greater than the value of `y`, otherwise return
   * false.
   *
   */
  P.greaterThan = P.gt = function (y) {
    return this.cmp(y) > 0;
  };


  /*
   * Return true if the value of this Decimal is greater than or equal to the value of `y`,
   * otherwise return false.
   *
   */
  P.greaterThanOrEqualTo = P.gte = function (y) {
    return this.cmp(y) >= 0;
  };


  /*
   * Return true if the value of this Decimal is an integer, otherwise return false.
   *
   */
  P.isInteger = P.isint = function () {
    return this.e > this.d.length - 2;
  };


  /*
   * Return true if the value of this Decimal is negative, otherwise return false.
   *
   */
  P.isNegative = P.isneg = function () {
    return this.s < 0;
  };


  /*
   * Return true if the value of this Decimal is positive, otherwise return false.
   *
   */
  P.isPositive = P.ispos = function () {
    return this.s > 0;
  };


  /*
   * Return true if the value of this Decimal is 0, otherwise return false.
   *
   */
  P.isZero = function () {
    return this.s === 0;
  };


  /*
   * Return true if the value of this Decimal is less than `y`, otherwise return false.
   *
   */
  P.lessThan = P.lt = function (y) {
    return this.cmp(y) < 0;
  };


  /*
   * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.
   *
   */
  P.lessThanOrEqualTo = P.lte = function (y) {
    return this.cmp(y) < 1;
  };


  /*
   * Return the logarithm of the value of this Decimal to the specified base, truncated to
   * `precision` significant digits.
   *
   * If no base is specified, return log[10](x).
   *
   * log[base](x) = ln(x) / ln(base)
   *
   * The maximum error of the result is 1 ulp (unit in the last place).
   *
   * [base] {number|string|Decimal} The base of the logarithm.
   *
   */
  P.logarithm = P.log = function (base) {
    var r,
      x = this,
      Ctor = x.constructor,
      pr = Ctor.precision,
      wpr = pr + 5;

    // Default base is 10.
    if (base === void 0) {
      base = new Ctor(10);
    } else {
      base = new Ctor(base);

      // log[-b](x) = NaN
      // log[0](x)  = NaN
      // log[1](x)  = NaN
      if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');
    }

    // log[b](-x) = NaN
    // log[b](0) = -Infinity
    if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));

    // log[b](1) = 0
    if (x.eq(ONE)) return new Ctor(0);

    external = false;
    r = divide(ln(x, wpr), ln(base, wpr), wpr);
    external = true;

    return round(r, pr);
  };


  /*
   * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to
   * `precision` significant digits.
   *
   */
  P.minus = P.sub = function (y) {
    var x = this;
    y = new x.constructor(y);
    return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));
  };


  /*
   * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to
   * `precision` significant digits.
   *
   */
  P.modulo = P.mod = function (y) {
    var q,
      x = this,
      Ctor = x.constructor,
      pr = Ctor.precision;

    y = new Ctor(y);

    // x % 0 = NaN
    if (!y.s) throw Error(decimalError + 'NaN');

    // Return x if x is 0.
    if (!x.s) return round(new Ctor(x), pr);

    // Prevent rounding of intermediate calculations.
    external = false;
    q = divide(x, y, 0, 1).times(y);
    external = true;

    return x.minus(q);
  };


  /*
   * Return a new Decimal whose value is the natural exponential of the value of this Decimal,
   * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`
   * significant digits.
   *
   */
  P.naturalExponential = P.exp = function () {
    return exp(this);
  };


  /*
   * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,
   * truncated to `precision` significant digits.
   *
   */
  P.naturalLogarithm = P.ln = function () {
    return ln(this);
  };


  /*
   * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by
   * -1.
   *
   */
  P.negated = P.neg = function () {
    var x = new this.constructor(this);
    x.s = -x.s || 0;
    return x;
  };


  /*
   * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to
   * `precision` significant digits.
   *
   */
  P.plus = P.add = function (y) {
    var x = this;
    y = new x.constructor(y);
    return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));
  };


  /*
   * Return the number of significant digits of the value of this Decimal.
   *
   * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.
   *
   */
  P.precision = P.sd = function (z) {
    var e, sd, w,
      x = this;

    if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);

    e = getBase10Exponent(x) + 1;
    w = x.d.length - 1;
    sd = w * LOG_BASE + 1;
    w = x.d[w];

    // If non-zero...
    if (w) {

      // Subtract the number of trailing zeros of the last word.
      for (; w % 10 == 0; w /= 10) sd--;

      // Add the number of digits of the first word.
      for (w = x.d[0]; w >= 10; w /= 10) sd++;
    }

    return z && e > sd ? e : sd;
  };


  /*
   * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`
   * significant digits.
   *
   */
  P.squareRoot = P.sqrt = function () {
    var e, n, pr, r, s, t, wpr,
      x = this,
      Ctor = x.constructor;

    // Negative or zero?
    if (x.s < 1) {
      if (!x.s) return new Ctor(0);

      // sqrt(-x) = NaN
      throw Error(decimalError + 'NaN');
    }

    e = getBase10Exponent(x);
    external = false;

    // Initial estimate.
    s = Math.sqrt(+x);

    // Math.sqrt underflow/overflow?
    // Pass x to Math.sqrt as integer, then adjust the exponent of the result.
    if (s == 0 || s == 1 / 0) {
      n = digitsToString(x.d);
      if ((n.length + e) % 2 == 0) n += '0';
      s = Math.sqrt(n);
      e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);

      if (s == 1 / 0) {
        n = '5e' + e;
      } else {
        n = s.toExponential();
        n = n.slice(0, n.indexOf('e') + 1) + e;
      }

      r = new Ctor(n);
    } else {
      r = new Ctor(s.toString());
    }

    pr = Ctor.precision;
    s = wpr = pr + 3;

    // Newton-Raphson iteration.
    for (;;) {
      t = r;
      r = t.plus(divide(x, t, wpr + 2)).times(0.5);

      if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {
        n = n.slice(wpr - 3, wpr + 1);

        // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or
        // 4999, i.e. approaching a rounding boundary, continue the iteration.
        if (s == wpr && n == '4999') {

          // On the first iteration only, check to see if rounding up gives the exact result as the
          // nines may infinitely repeat.
          round(t, pr + 1, 0);

          if (t.times(t).eq(x)) {
            r = t;
            break;
          }
        } else if (n != '9999') {
          break;
        }

        wpr += 4;
      }
    }

    external = true;

    return round(r, pr);
  };


  /*
   * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to
   * `precision` significant digits.
   *
   */
  P.times = P.mul = function (y) {
    var carry, e, i, k, r, rL, t, xdL, ydL,
      x = this,
      Ctor = x.constructor,
      xd = x.d,
      yd = (y = new Ctor(y)).d;

    // Return 0 if either is 0.
    if (!x.s || !y.s) return new Ctor(0);

    y.s *= x.s;
    e = x.e + y.e;
    xdL = xd.length;
    ydL = yd.length;

    // Ensure xd points to the longer array.
    if (xdL < ydL) {
      r = xd;
      xd = yd;
      yd = r;
      rL = xdL;
      xdL = ydL;
      ydL = rL;
    }

    // Initialise the result array with zeros.
    r = [];
    rL = xdL + ydL;
    for (i = rL; i--;) r.push(0);

    // Multiply!
    for (i = ydL; --i >= 0;) {
      carry = 0;
      for (k = xdL + i; k > i;) {
        t = r[k] + yd[i] * xd[k - i - 1] + carry;
        r[k--] = t % BASE | 0;
        carry = t / BASE | 0;
      }

      r[k] = (r[k] + carry) % BASE | 0;
    }

    // Remove trailing zeros.
    for (; !r[--rL];) r.pop();

    if (carry) ++e;
    else r.shift();

    y.d = r;
    y.e = e;

    return external ? round(y, Ctor.precision) : y;
  };


  /*
   * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`
   * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.
   *
   * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.
   *
   * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.
   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
   *
   */
  P.toDecimalPlaces = P.todp = function (dp, rm) {
    var x = this,
      Ctor = x.constructor;

    x = new Ctor(x);
    if (dp === void 0) return x;

    checkInt32(dp, 0, MAX_DIGITS);

    if (rm === void 0) rm = Ctor.rounding;
    else checkInt32(rm, 0, 8);

    return round(x, dp + getBase10Exponent(x) + 1, rm);
  };


  /*
   * Return a string representing the value of this Decimal in exponential notation rounded to
   * `dp` fixed decimal places using rounding mode `rounding`.
   *
   * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.
   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
   *
   */
  P.toExponential = function (dp, rm) {
    var str,
      x = this,
      Ctor = x.constructor;

    if (dp === void 0) {
      str = toString(x, true);
    } else {
      checkInt32(dp, 0, MAX_DIGITS);

      if (rm === void 0) rm = Ctor.rounding;
      else checkInt32(rm, 0, 8);

      x = round(new Ctor(x), dp + 1, rm);
      str = toString(x, true, dp + 1);
    }

    return str;
  };


  /*
   * Return a string representing the value of this Decimal in normal (fixed-point) notation to
   * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is
   * omitted.
   *
   * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.
   *
   * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.
   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
   *
   * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.
   * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.
   * (-0).toFixed(3) is '0.000'.
   * (-0.5).toFixed(0) is '-0'.
   *
   */
  P.toFixed = function (dp, rm) {
    var str, y,
      x = this,
      Ctor = x.constructor;

    if (dp === void 0) return toString(x);

    checkInt32(dp, 0, MAX_DIGITS);

    if (rm === void 0) rm = Ctor.rounding;
    else checkInt32(rm, 0, 8);

    y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);
    str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);

    // To determine whether to add the minus sign look at the value before it was rounded,
    // i.e. look at `x` rather than `y`.
    return x.isneg() && !x.isZero() ? '-' + str : str;
  };


  /*
   * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using
   * rounding mode `rounding`.
   *
   */
  P.toInteger = P.toint = function () {
    var x = this,
      Ctor = x.constructor;
    return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);
  };


  /*
   * Return the value of this Decimal converted to a number primitive.
   *
   */
  P.toNumber = function () {
    return +this;
  };


  /*
   * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,
   * truncated to `precision` significant digits.
   *
   * For non-integer or very large exponents pow(x, y) is calculated using
   *
   *   x^y = exp(y*ln(x))
   *
   * The maximum error is 1 ulp (unit in last place).
   *
   * y {number|string|Decimal} The power to which to raise this Decimal.
   *
   */
  P.toPower = P.pow = function (y) {
    var e, k, pr, r, sign, yIsInt,
      x = this,
      Ctor = x.constructor,
      guard = 12,
      yn = +(y = new Ctor(y));

    // pow(x, 0) = 1
    if (!y.s) return new Ctor(ONE);

    x = new Ctor(x);

    // pow(0, y > 0) = 0
    // pow(0, y < 0) = Infinity
    if (!x.s) {
      if (y.s < 1) throw Error(decimalError + 'Infinity');
      return x;
    }

    // pow(1, y) = 1
    if (x.eq(ONE)) return x;

    pr = Ctor.precision;

    // pow(x, 1) = x
    if (y.eq(ONE)) return round(x, pr);

    e = y.e;
    k = y.d.length - 1;
    yIsInt = e >= k;
    sign = x.s;

    if (!yIsInt) {

      // pow(x < 0, y non-integer) = NaN
      if (sign < 0) throw Error(decimalError + 'NaN');

    // If y is a small integer use the 'exponentiation by squaring' algorithm.
    } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {
      r = new Ctor(ONE);

      // Max k of 9007199254740991 takes 53 loop iterations.
      // Maximum digits array length; leaves [28, 34] guard digits.
      e = Math.ceil(pr / LOG_BASE + 4);

      external = false;

      for (;;) {
        if (k % 2) {
          r = r.times(x);
          truncate(r.d, e);
        }

        k = mathfloor(k / 2);
        if (k === 0) break;

        x = x.times(x);
        truncate(x.d, e);
      }

      external = true;

      return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);
    }

    // Result is negative if x is negative and the last digit of integer y is odd.
    sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;

    x.s = 1;
    external = false;
    r = y.times(ln(x, pr + guard));
    external = true;
    r = exp(r);
    r.s = sign;

    return r;
  };


  /*
   * Return a string representing the value of this Decimal rounded to `sd` significant digits
   * using rounding mode `rounding`.
   *
   * Return exponential notation if `sd` is less than the number of digits necessary to represent
   * the integer part of the value in normal notation.
   *
   * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.
   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
   *
   */
  P.toPrecision = function (sd, rm) {
    var e, str,
      x = this,
      Ctor = x.constructor;

    if (sd === void 0) {
      e = getBase10Exponent(x);
      str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);
    } else {
      checkInt32(sd, 1, MAX_DIGITS);

      if (rm === void 0) rm = Ctor.rounding;
      else checkInt32(rm, 0, 8);

      x = round(new Ctor(x), sd, rm);
      e = getBase10Exponent(x);
      str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);
    }

    return str;
  };


  /*
   * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`
   * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if
   * omitted.
   *
   * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.
   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
   *
   */
  P.toSignificantDigits = P.tosd = function (sd, rm) {
    var x = this,
      Ctor = x.constructor;

    if (sd === void 0) {
      sd = Ctor.precision;
      rm = Ctor.rounding;
    } else {
      checkInt32(sd, 1, MAX_DIGITS);

      if (rm === void 0) rm = Ctor.rounding;
      else checkInt32(rm, 0, 8);
    }

    return round(new Ctor(x), sd, rm);
  };


  /*
   * Return a string representing the value of this Decimal.
   *
   * Return exponential notation if this Decimal has a positive exponent equal to or greater than
   * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.
   *
   */
  P.toString = P.valueOf = P.val = P.toJSON = function () {
    var x = this,
      e = getBase10Exponent(x),
      Ctor = x.constructor;

    return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);
  };


  // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.


  /*
   *  add                 P.minus, P.plus
   *  checkInt32          P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd
   *  digitsToString      P.log, P.sqrt, P.pow, toString, exp, ln
   *  divide              P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln
   *  exp                 P.exp, P.pow
   *  getBase10Exponent   P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,
   *                      P.toString, divide, round, toString, exp, ln
   *  getLn10             P.log, ln
   *  getZeroString       digitsToString, toString
   *  ln                  P.log, P.ln, P.pow, exp
   *  parseDecimal        Decimal
   *  round               P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,
   *                      P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,
   *                      divide, getLn10, exp, ln
   *  subtract            P.minus, P.plus
   *  toString            P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf
   *  truncate            P.pow
   *
   *  Throws:             P.log, P.mod, P.sd, P.sqrt, P.pow,  checkInt32, divide, round,
   *                      getLn10, exp, ln, parseDecimal, Decimal, config
   */


  function add(x, y) {
    var carry, d, e, i, k, len, xd, yd,
      Ctor = x.constructor,
      pr = Ctor.precision;

    // If either is zero...
    if (!x.s || !y.s) {

      // Return x if y is zero.
      // Return y if y is non-zero.
      if (!y.s) y = new Ctor(x);
      return external ? round(y, pr) : y;
    }

    xd = x.d;
    yd = y.d;

    // x and y are finite, non-zero numbers with the same sign.

    k = x.e;
    e = y.e;
    xd = xd.slice();
    i = k - e;

    // If base 1e7 exponents differ...
    if (i) {
      if (i < 0) {
        d = xd;
        i = -i;
        len = yd.length;
      } else {
        d = yd;
        e = k;
        len = xd.length;
      }

      // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.
      k = Math.ceil(pr / LOG_BASE);
      len = k > len ? k + 1 : len + 1;

      if (i > len) {
        i = len;
        d.length = 1;
      }

      // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.
      d.reverse();
      for (; i--;) d.push(0);
      d.reverse();
    }

    len = xd.length;
    i = yd.length;

    // If yd is longer than xd, swap xd and yd so xd points to the longer array.
    if (len - i < 0) {
      i = len;
      d = yd;
      yd = xd;
      xd = d;
    }

    // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.
    for (carry = 0; i;) {
      carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;
      xd[i] %= BASE;
    }

    if (carry) {
      xd.unshift(carry);
      ++e;
    }

    // Remove trailing zeros.
    // No need to check for zero, as +x + +y != 0 && -x + -y != 0
    for (len = xd.length; xd[--len] == 0;) xd.pop();

    y.d = xd;
    y.e = e;

    return external ? round(y, pr) : y;
  }


  function checkInt32(i, min, max) {
    if (i !== ~~i || i < min || i > max) {
      throw Error(invalidArgument + i);
    }
  }


  function digitsToString(d) {
    var i, k, ws,
      indexOfLastWord = d.length - 1,
      str = '',
      w = d[0];

    if (indexOfLastWord > 0) {
      str += w;
      for (i = 1; i < indexOfLastWord; i++) {
        ws = d[i] + '';
        k = LOG_BASE - ws.length;
        if (k) str += getZeroString(k);
        str += ws;
      }

      w = d[i];
      ws = w + '';
      k = LOG_BASE - ws.length;
      if (k) str += getZeroString(k);
    } else if (w === 0) {
      return '0';
    }

    // Remove trailing zeros of last w.
    for (; w % 10 === 0;) w /= 10;

    return str + w;
  }


  var divide = (function () {

    // Assumes non-zero x and k, and hence non-zero result.
    function multiplyInteger(x, k) {
      var temp,
        carry = 0,
        i = x.length;

      for (x = x.slice(); i--;) {
        temp = x[i] * k + carry;
        x[i] = temp % BASE | 0;
        carry = temp / BASE | 0;
      }

      if (carry) x.unshift(carry);

      return x;
    }

    function compare(a, b, aL, bL) {
      var i, r;

      if (aL != bL) {
        r = aL > bL ? 1 : -1;
      } else {
        for (i = r = 0; i < aL; i++) {
          if (a[i] != b[i]) {
            r = a[i] > b[i] ? 1 : -1;
            break;
          }
        }
      }

      return r;
    }

    function subtract(a, b, aL) {
      var i = 0;

      // Subtract b from a.
      for (; aL--;) {
        a[aL] -= i;
        i = a[aL] < b[aL] ? 1 : 0;
        a[aL] = i * BASE + a[aL] - b[aL];
      }

      // Remove leading zeros.
      for (; !a[0] && a.length > 1;) a.shift();
    }

    return function (x, y, pr, dp) {
      var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,
        Ctor = x.constructor,
        sign = x.s == y.s ? 1 : -1,
        xd = x.d,
        yd = y.d;

      // Either 0?
      if (!x.s) return new Ctor(x);
      if (!y.s) throw Error(decimalError + 'Division by zero');

      e = x.e - y.e;
      yL = yd.length;
      xL = xd.length;
      q = new Ctor(sign);
      qd = q.d = [];

      // Result exponent may be one less than e.
      for (i = 0; yd[i] == (xd[i] || 0); ) ++i;
      if (yd[i] > (xd[i] || 0)) --e;

      if (pr == null) {
        sd = pr = Ctor.precision;
      } else if (dp) {
        sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;
      } else {
        sd = pr;
      }

      if (sd < 0) return new Ctor(0);

      // Convert precision in number of base 10 digits to base 1e7 digits.
      sd = sd / LOG_BASE + 2 | 0;
      i = 0;

      // divisor < 1e7
      if (yL == 1) {
        k = 0;
        yd = yd[0];
        sd++;

        // k is the carry.
        for (; (i < xL || k) && sd--; i++) {
          t = k * BASE + (xd[i] || 0);
          qd[i] = t / yd | 0;
          k = t % yd | 0;
        }

      // divisor >= 1e7
      } else {

        // Normalise xd and yd so highest order digit of yd is >= BASE/2
        k = BASE / (yd[0] + 1) | 0;

        if (k > 1) {
          yd = multiplyInteger(yd, k);
          xd = multiplyInteger(xd, k);
          yL = yd.length;
          xL = xd.length;
        }

        xi = yL;
        rem = xd.slice(0, yL);
        remL = rem.length;

        // Add zeros to make remainder as long as divisor.
        for (; remL < yL;) rem[remL++] = 0;

        yz = yd.slice();
        yz.unshift(0);
        yd0 = yd[0];

        if (yd[1] >= BASE / 2) ++yd0;

        do {
          k = 0;

          // Compare divisor and remainder.
          cmp = compare(yd, rem, yL, remL);

          // If divisor < remainder.
          if (cmp < 0) {

            // Calculate trial digit, k.
            rem0 = rem[0];
            if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);

            // k will be how many times the divisor goes into the current remainder.
            k = rem0 / yd0 | 0;

            //  Algorithm:
            //  1. product = divisor * trial digit (k)
            //  2. if product > remainder: product -= divisor, k--
            //  3. remainder -= product
            //  4. if product was < remainder at 2:
            //    5. compare new remainder and divisor
            //    6. If remainder > divisor: remainder -= divisor, k++

            if (k > 1) {
              if (k >= BASE) k = BASE - 1;

              // product = divisor * trial digit.
              prod = multiplyInteger(yd, k);
              prodL = prod.length;
              remL = rem.length;

              // Compare product and remainder.
              cmp = compare(prod, rem, prodL, remL);

              // product > remainder.
              if (cmp == 1) {
                k--;

                // Subtract divisor from product.
                subtract(prod, yL < prodL ? yz : yd, prodL);
              }
            } else {

              // cmp is -1.
              // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1
              // to avoid it. If k is 1 there is a need to compare yd and rem again below.
              if (k == 0) cmp = k = 1;
              prod = yd.slice();
            }

            prodL = prod.length;
            if (prodL < remL) prod.unshift(0);

            // Subtract product from remainder.
            subtract(rem, prod, remL);

            // If product was < previous remainder.
            if (cmp == -1) {
              remL = rem.length;

              // Compare divisor and new remainder.
              cmp = compare(yd, rem, yL, remL);

              // If divisor < new remainder, subtract divisor from remainder.
              if (cmp < 1) {
                k++;

                // Subtract divisor from remainder.
                subtract(rem, yL < remL ? yz : yd, remL);
              }
            }

            remL = rem.length;
          } else if (cmp === 0) {
            k++;
            rem = [0];
          }    // if cmp === 1, k will be 0

          // Add the next digit, k, to the result array.
          qd[i++] = k;

          // Update the remainder.
          if (cmp && rem[0]) {
            rem[remL++] = xd[xi] || 0;
          } else {
            rem = [xd[xi]];
            remL = 1;
          }

        } while ((xi++ < xL || rem[0] !== void 0) && sd--);
      }

      // Leading zero?
      if (!qd[0]) qd.shift();

      q.e = e;

      return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);
    };
  })();


  /*
   * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`
   * significant digits.
   *
   * Taylor/Maclaurin series.
   *
   * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...
   *
   * Argument reduction:
   *   Repeat x = x / 32, k += 5, until |x| < 0.1
   *   exp(x) = exp(x / 2^k)^(2^k)
   *
   * Previously, the argument was initially reduced by
   * exp(x) = exp(r) * 10^k  where r = x - k * ln10, k = floor(x / ln10)
   * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was
   * found to be slower than just dividing repeatedly by 32 as above.
   *
   * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)
   *
   *  exp(x) is non-terminating for any finite, non-zero x.
   *
   */
  function exp(x, sd) {
    var denominator, guard, pow, sum, t, wpr,
      i = 0,
      k = 0,
      Ctor = x.constructor,
      pr = Ctor.precision;

    if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));

    // exp(0) = 1
    if (!x.s) return new Ctor(ONE);

    if (sd == null) {
      external = false;
      wpr = pr;
    } else {
      wpr = sd;
    }

    t = new Ctor(0.03125);

    while (x.abs().gte(0.1)) {
      x = x.times(t);    // x = x / 2^5
      k += 5;
    }

    // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.
    guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;
    wpr += guard;
    denominator = pow = sum = new Ctor(ONE);
    Ctor.precision = wpr;

    for (;;) {
      pow = round(pow.times(x), wpr);
      denominator = denominator.times(++i);
      t = sum.plus(divide(pow, denominator, wpr));

      if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {
        while (k--) sum = round(sum.times(sum), wpr);
        Ctor.precision = pr;
        return sd == null ? (external = true, round(sum, pr)) : sum;
      }

      sum = t;
    }
  }


  // Calculate the base 10 exponent from the base 1e7 exponent.
  function getBase10Exponent(x) {
    var e = x.e * LOG_BASE,
      w = x.d[0];

    // Add the number of digits of the first word of the digits array.
    for (; w >= 10; w /= 10) e++;
    return e;
  }


  function getLn10(Ctor, sd, pr) {

    if (sd > Ctor.LN10.sd()) {


      // Reset global state in case the exception is caught.
      external = true;
      if (pr) Ctor.precision = pr;
      throw Error(decimalError + 'LN10 precision limit exceeded');
    }

    return round(new Ctor(Ctor.LN10), sd);
  }


  function getZeroString(k) {
    var zs = '';
    for (; k--;) zs += '0';
    return zs;
  }


  /*
   * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant
   * digits.
   *
   *  ln(n) is non-terminating (n != 1)
   *
   */
  function ln(y, sd) {
    var c, c0, denominator, e, numerator, sum, t, wpr, x2,
      n = 1,
      guard = 10,
      x = y,
      xd = x.d,
      Ctor = x.constructor,
      pr = Ctor.precision;

    // ln(-x) = NaN
    // ln(0) = -Infinity
    if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));

    // ln(1) = 0
    if (x.eq(ONE)) return new Ctor(0);

    if (sd == null) {
      external = false;
      wpr = pr;
    } else {
      wpr = sd;
    }

    if (x.eq(10)) {
      if (sd == null) external = true;
      return getLn10(Ctor, wpr);
    }

    wpr += guard;
    Ctor.precision = wpr;
    c = digitsToString(xd);
    c0 = c.charAt(0);
    e = getBase10Exponent(x);

    if (Math.abs(e) < 1.5e15) {

      // Argument reduction.
      // The series converges faster the closer the argument is to 1, so using
      // ln(a^b) = b * ln(a),   ln(a) = ln(a^b) / b
      // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,
      // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can
      // later be divided by this number, then separate out the power of 10 using
      // ln(a*10^b) = ln(a) + b*ln(10).

      // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).
      //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {
      // max n is 6 (gives 0.7 - 1.3)
      while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {
        x = x.times(y);
        c = digitsToString(x.d);
        c0 = c.charAt(0);
        n++;
      }

      e = getBase10Exponent(x);

      if (c0 > 1) {
        x = new Ctor('0.' + c);
        e++;
      } else {
        x = new Ctor(c0 + '.' + c.slice(1));
      }
    } else {

      // The argument reduction method above may result in overflow if the argument y is a massive
      // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this
      // function using ln(x*10^e) = ln(x) + e*ln(10).
      t = getLn10(Ctor, wpr + 2, pr).times(e + '');
      x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);

      Ctor.precision = pr;
      return sd == null ? (external = true, round(x, pr)) : x;
    }

    // x is reduced to a value near 1.

    // Taylor series.
    // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)
    // where x = (y - 1)/(y + 1)    (|x| < 1)
    sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);
    x2 = round(x.times(x), wpr);
    denominator = 3;

    for (;;) {
      numerator = round(numerator.times(x2), wpr);
      t = sum.plus(divide(numerator, new Ctor(denominator), wpr));

      if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {
        sum = sum.times(2);

        // Reverse the argument reduction.
        if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));
        sum = divide(sum, new Ctor(n), wpr);

        Ctor.precision = pr;
        return sd == null ? (external = true, round(sum, pr)) : sum;
      }

      sum = t;
      denominator += 2;
    }
  }


  /*
   * Parse the value of a new Decimal `x` from string `str`.
   */
  function parseDecimal(x, str) {
    var e, i, len;

    // Decimal point?
    if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');

    // Exponential form?
    if ((i = str.search(/e/i)) > 0) {

      // Determine exponent.
      if (e < 0) e = i;
      e += +str.slice(i + 1);
      str = str.substring(0, i);
    } else if (e < 0) {

      // Integer.
      e = str.length;
    }

    // Determine leading zeros.
    for (i = 0; str.charCodeAt(i) === 48;) ++i;

    // Determine trailing zeros.
    for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;
    str = str.slice(i, len);

    if (str) {
      len -= i;
      e = e - i - 1;
      x.e = mathfloor(e / LOG_BASE);
      x.d = [];

      // Transform base

      // e is the base 10 exponent.
      // i is where to slice str to get the first word of the digits array.
      i = (e + 1) % LOG_BASE;
      if (e < 0) i += LOG_BASE;

      if (i < len) {
        if (i) x.d.push(+str.slice(0, i));
        for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));
        str = str.slice(i);
        i = LOG_BASE - str.length;
      } else {
        i -= len;
      }

      for (; i--;) str += '0';
      x.d.push(+str);

      if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);
    } else {

      // Zero.
      x.s = 0;
      x.e = 0;
      x.d = [0];
    }

    return x;
  }


  /*
   * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).
   */
   function round(x, sd, rm) {
    var i, j, k, n, rd, doRound, w, xdi,
      xd = x.d;

    // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.
    // w: the word of xd which contains the rounding digit, a base 1e7 number.
    // xdi: the index of w within xd.
    // n: the number of digits of w.
    // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if
    // they had leading zeros)
    // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).

    // Get the length of the first word of the digits array xd.
    for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;
    i = sd - n;

    // Is the rounding digit in the first word of xd?
    if (i < 0) {
      i += LOG_BASE;
      j = sd;
      w = xd[xdi = 0];
    } else {
      xdi = Math.ceil((i + 1) / LOG_BASE);
      k = xd.length;
      if (xdi >= k) return x;
      w = k = xd[xdi];

      // Get the number of digits of w.
      for (n = 1; k >= 10; k /= 10) n++;

      // Get the index of rd within w.
      i %= LOG_BASE;

      // Get the index of rd within w, adjusted for leading zeros.
      // The number of leading zeros of w is given by LOG_BASE - n.
      j = i - LOG_BASE + n;
    }

    if (rm !== void 0) {
      k = mathpow(10, n - j - 1);

      // Get the rounding digit at index j of w.
      rd = w / k % 10 | 0;

      // Are there any non-zero digits after the rounding digit?
      doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;

      // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the
      // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give
      // 714.

      doRound = rm < 4
        ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))
        : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&

          // Check whether the digit to the left of the rounding digit is odd.
          ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||
            rm == (x.s < 0 ? 8 : 7));
    }

    if (sd < 1 || !xd[0]) {
      if (doRound) {
        k = getBase10Exponent(x);
        xd.length = 1;

        // Convert sd to decimal places.
        sd = sd - k - 1;

        // 1, 0.1, 0.01, 0.001, 0.0001 etc.
        xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);
        x.e = mathfloor(-sd / LOG_BASE) || 0;
      } else {
        xd.length = 1;

        // Zero.
        xd[0] = x.e = x.s = 0;
      }

      return x;
    }

    // Remove excess digits.
    if (i == 0) {
      xd.length = xdi;
      k = 1;
      xdi--;
    } else {
      xd.length = xdi + 1;
      k = mathpow(10, LOG_BASE - i);

      // E.g. 56700 becomes 56000 if 7 is the rounding digit.
      // j > 0 means i > number of leading zeros of w.
      xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;
    }

    if (doRound) {
      for (;;) {

        // Is the digit to be rounded up in the first word of xd?
        if (xdi == 0) {
          if ((xd[0] += k) == BASE) {
            xd[0] = 1;
            ++x.e;
          }

          break;
        } else {
          xd[xdi] += k;
          if (xd[xdi] != BASE) break;
          xd[xdi--] = 0;
          k = 1;
        }
      }
    }

    // Remove trailing zeros.
    for (i = xd.length; xd[--i] === 0;) xd.pop();

    if (external && (x.e > MAX_E || x.e < -MAX_E)) {
      throw Error(exponentOutOfRange + getBase10Exponent(x));
    }

    return x;
  }


  function subtract(x, y) {
    var d, e, i, j, k, len, xd, xe, xLTy, yd,
      Ctor = x.constructor,
      pr = Ctor.precision;

    // Return y negated if x is zero.
    // Return x if y is zero and x is non-zero.
    if (!x.s || !y.s) {
      if (y.s) y.s = -y.s;
      else y = new Ctor(x);
      return external ? round(y, pr) : y;
    }

    xd = x.d;
    yd = y.d;

    // x and y are non-zero numbers with the same sign.

    e = y.e;
    xe = x.e;
    xd = xd.slice();
    k = xe - e;

    // If exponents differ...
    if (k) {
      xLTy = k < 0;

      if (xLTy) {
        d = xd;
        k = -k;
        len = yd.length;
      } else {
        d = yd;
        e = xe;
        len = xd.length;
      }

      // Numbers with massively different exponents would result in a very high number of zeros
      // needing to be prepended, but this can be avoided while still ensuring correct rounding by
      // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.
      i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;

      if (k > i) {
        k = i;
        d.length = 1;
      }

      // Prepend zeros to equalise exponents.
      d.reverse();
      for (i = k; i--;) d.push(0);
      d.reverse();

    // Base 1e7 exponents equal.
    } else {

      // Check digits to determine which is the bigger number.

      i = xd.length;
      len = yd.length;
      xLTy = i < len;
      if (xLTy) len = i;

      for (i = 0; i < len; i++) {
        if (xd[i] != yd[i]) {
          xLTy = xd[i] < yd[i];
          break;
        }
      }

      k = 0;
    }

    if (xLTy) {
      d = xd;
      xd = yd;
      yd = d;
      y.s = -y.s;
    }

    len = xd.length;

    // Append zeros to xd if shorter.
    // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.
    for (i = yd.length - len; i > 0; --i) xd[len++] = 0;

    // Subtract yd from xd.
    for (i = yd.length; i > k;) {
      if (xd[--i] < yd[i]) {
        for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;
        --xd[j];
        xd[i] += BASE;
      }

      xd[i] -= yd[i];
    }

    // Remove trailing zeros.
    for (; xd[--len] === 0;) xd.pop();

    // Remove leading zeros and adjust exponent accordingly.
    for (; xd[0] === 0; xd.shift()) --e;

    // Zero?
    if (!xd[0]) return new Ctor(0);

    y.d = xd;
    y.e = e;

    //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;
    return external ? round(y, pr) : y;
  }


  function toString(x, isExp, sd) {
    var k,
      e = getBase10Exponent(x),
      str = digitsToString(x.d),
      len = str.length;

    if (isExp) {
      if (sd && (k = sd - len) > 0) {
        str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);
      } else if (len > 1) {
        str = str.charAt(0) + '.' + str.slice(1);
      }

      str = str + (e < 0 ? 'e' : 'e+') + e;
    } else if (e < 0) {
      str = '0.' + getZeroString(-e - 1) + str;
      if (sd && (k = sd - len) > 0) str += getZeroString(k);
    } else if (e >= len) {
      str += getZeroString(e + 1 - len);
      if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);
    } else {
      if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);
      if (sd && (k = sd - len) > 0) {
        if (e + 1 === len) str += '.';
        str += getZeroString(k);
      }
    }

    return x.s < 0 ? '-' + str : str;
  }


  // Does not strip trailing zeros.
  function truncate(arr, len) {
    if (arr.length > len) {
      arr.length = len;
      return true;
    }
  }


  // Decimal methods


  /*
   *  clone
   *  config/set
   */


  /*
   * Create and return a Decimal constructor with the same configuration properties as this Decimal
   * constructor.
   *
   */
  function clone(obj) {
    var i, p, ps;

    /*
     * The Decimal constructor and exported function.
     * Return a new Decimal instance.
     *
     * value {number|string|Decimal} A numeric value.
     *
     */
    function Decimal(value) {
      var x = this;

      // Decimal called without new.
      if (!(x instanceof Decimal)) return new Decimal(value);

      // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor
      // which points to Object.
      x.constructor = Decimal;

      // Duplicate.
      if (value instanceof Decimal) {
        x.s = value.s;
        x.e = value.e;
        x.d = (value = value.d) ? value.slice() : value;
        return;
      }

      if (typeof value === 'number') {

        // Reject Infinity/NaN.
        if (value * 0 !== 0) {
          throw Error(invalidArgument + value);
        }

        if (value > 0) {
          x.s = 1;
        } else if (value < 0) {
          value = -value;
          x.s = -1;
        } else {
          x.s = 0;
          x.e = 0;
          x.d = [0];
          return;
        }

        // Fast path for small integers.
        if (value === ~~value && value < 1e7) {
          x.e = 0;
          x.d = [value];
          return;
        }

        return parseDecimal(x, value.toString());
      } else if (typeof value !== 'string') {
        throw Error(invalidArgument + value);
      }

      // Minus sign?
      if (value.charCodeAt(0) === 45) {
        value = value.slice(1);
        x.s = -1;
      } else {
        x.s = 1;
      }

      if (isDecimal.test(value)) parseDecimal(x, value);
      else throw Error(invalidArgument + value);
    }

    Decimal.prototype = P;

    Decimal.ROUND_UP = 0;
    Decimal.ROUND_DOWN = 1;
    Decimal.ROUND_CEIL = 2;
    Decimal.ROUND_FLOOR = 3;
    Decimal.ROUND_HALF_UP = 4;
    Decimal.ROUND_HALF_DOWN = 5;
    Decimal.ROUND_HALF_EVEN = 6;
    Decimal.ROUND_HALF_CEIL = 7;
    Decimal.ROUND_HALF_FLOOR = 8;

    Decimal.clone = clone;
    Decimal.config = Decimal.set = config;

    if (obj === void 0) obj = {};
    if (obj) {
      ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];
      for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];
    }

    Decimal.config(obj);

    return Decimal;
  }


  /*
   * Configure global settings for a Decimal constructor.
   *
   * `obj` is an object with one or more of the following properties,
   *
   *   precision  {number}
   *   rounding   {number}
   *   toExpNeg   {number}
   *   toExpPos   {number}
   *
   * E.g. Decimal.config({ precision: 20, rounding: 4 })
   *
   */
  function config(obj) {
    if (!obj || typeof obj !== 'object') {
      throw Error(decimalError + 'Object expected');
    }
    var i, p, v,
      ps = [
        'precision', 1, MAX_DIGITS,
        'rounding', 0, 8,
        'toExpNeg', -1 / 0, 0,
        'toExpPos', 0, 1 / 0
      ];

    for (i = 0; i < ps.length; i += 3) {
      if ((v = obj[p = ps[i]]) !== void 0) {
        if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;
        else throw Error(invalidArgument + p + ': ' + v);
      }
    }

    if ((v = obj[p = 'LN10']) !== void 0) {
        if (v == Math.LN10) this[p] = new this(v);
        else throw Error(invalidArgument + p + ': ' + v);
    }

    return this;
  }


  // Create and configure initial Decimal constructor.
  Decimal = clone(Decimal);

  Decimal['default'] = Decimal.Decimal = Decimal;

  // Internal constant.
  ONE = new Decimal(1);


  // Export.


  // AMD.
  if (true) {
    !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {
      return Decimal;
    }).call(exports, __webpack_require__, exports, module),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

  // Node and other environments that support module.exports.
  } else {}
})(this);
/* unused harmony export SCALE_TYPES */
/* unused harmony export LEGEND_TYPES */
/* unused harmony export TOOLTIP_TYPES */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getDisplayName; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return findAllByType; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return findChildByType; });
/* unused harmony export withoutType */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return validateWidthHeight; });
/* unused harmony export filterSvgElements */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return isChildrenEqual; });
/* unused harmony export isSingleChildEqual */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return renderByOrder; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return getReactEventByType; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return parseChildIndex; });
/* harmony import */ var lodash_flatten__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(658);
/* harmony import */ var lodash_flatten__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_flatten__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash_isNil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48);
/* harmony import */ var lodash_isNil__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isNil__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var lodash_isString__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(262);
/* harmony import */ var lodash_isString__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isString__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var lodash_get__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(113);
/* harmony import */ var lodash_get__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash_get__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var lodash_isArray__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(71);
/* harmony import */ var lodash_isArray__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_isArray__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(659);
/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react_is__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _DataUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(24);
/* harmony import */ var _ShallowEqual__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(263);






function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _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; }

function _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; }





var REACT_BROWSER_EVENT_MAP = {
  click: 'onClick',
  mousedown: 'onMouseDown',
  mouseup: 'onMouseUp',
  mouseover: 'onMouseOver',
  mousemove: 'onMouseMove',
  mouseout: 'onMouseOut',
  mouseenter: 'onMouseEnter',
  mouseleave: 'onMouseLeave',
  touchcancel: 'onTouchCancel',
  touchend: 'onTouchEnd',
  touchmove: 'onTouchMove',
  touchstart: 'onTouchStart'
};
var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];
var LEGEND_TYPES = ['plainline', 'line', 'square', 'rect', 'circle', 'cross', 'diamond', 'star', 'triangle', 'wye', 'none'];
var TOOLTIP_TYPES = ['none'];
/**
 * Get the display name of a component
 * @param  {Object} Comp Specified Component
 * @return {String}      Display name of Component
 */

var getDisplayName = function getDisplayName(Comp) {
  if (typeof Comp === 'string') {
    return Comp;
  }

  if (!Comp) {
    return '';
  }

  return Comp.displayName || Comp.name || 'Component';
};
/*
 * Find and return all matched children by type. `type` can be a React element class or
 * string
 */

var findAllByType = function findAllByType(children, type) {
  var result = [];
  var types = [];

  if (lodash_isArray__WEBPACK_IMPORTED_MODULE_4___default()(type)) {
    types = type.map(function (t) {
      return getDisplayName(t);
    });
  } else {
    types = [getDisplayName(type)];
  }

  react__WEBPACK_IMPORTED_MODULE_5___default.a.Children.forEach(children, function (child) {
    if (Object(react_is__WEBPACK_IMPORTED_MODULE_6__["isFragment"])(child)) {
      result = result.concat(findAllByType(child.props.children, type));
    }

    var childType = lodash_get__WEBPACK_IMPORTED_MODULE_3___default()(child, 'type.displayName') || lodash_get__WEBPACK_IMPORTED_MODULE_3___default()(child, 'type.name');

    if (types.indexOf(childType) !== -1) {
      result.push(child);
    }
  });
  return result;
};
/*
 * Return the first matched child by type, return null otherwise.
 * `type` can be a React element class or string.
 */

var findChildByType = function findChildByType(children, type) {
  var result = findAllByType(children, type);
  return result && result[0];
};
/*
 * Create a new array of children excluding the ones matched the type
 */

var withoutType = function withoutType(children, type) {
  var newChildren = [];
  var types;

  if (lodash_isArray__WEBPACK_IMPORTED_MODULE_4___default()(type)) {
    types = type.map(function (t) {
      return getDisplayName(t);
    });
  } else {
    types = [getDisplayName(type)];
  }

  react__WEBPACK_IMPORTED_MODULE_5___default.a.Children.forEach(children, function (child) {
    var displayName = lodash_get__WEBPACK_IMPORTED_MODULE_3___default()(child, 'type.displayName');

    if (displayName && types.indexOf(displayName) !== -1) {
      return;
    }

    newChildren.push(child);
  });
  return newChildren;
};
/**
 * validate the width and height props of a chart element
 * @param  {Object} el A chart element
 * @return {Boolean}   true If the props width and height are number, and greater than 0
 */

var validateWidthHeight = function validateWidthHeight(el) {
  if (!el || !el.props) {
    return false;
  }

  var _el$props = el.props,
      width = _el$props.width,
      height = _el$props.height;

  if (!Object(_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* isNumber */ "h"])(width) || width <= 0 || !Object(_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* isNumber */ "h"])(height) || height <= 0) {
    return false;
  }

  return true;
};
var SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'];

var isSvgElement = function isSvgElement(child) {
  return child && child.type && lodash_isString__WEBPACK_IMPORTED_MODULE_2___default()(child.type) && SVG_TAGS.indexOf(child.type) >= 0;
};
/**
 * Filter all the svg elements of children
 * @param  {Array} children The children of a react element
 * @return {Array}          All the svg elements
 */


var filterSvgElements = function filterSvgElements(children) {
  var svgElements = [];
  react__WEBPACK_IMPORTED_MODULE_5___default.a.Children.forEach(children, function (entry) {
    if (isSvgElement(entry)) {
      svgElements.push(entry);
    }
  });
  return svgElements;
};
/**
 * Wether props of children changed
 * @param  {Object} nextChildren The latest children
 * @param  {Object} prevChildren The prev children
 * @return {Boolean}             equal or not
 */

var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {
  if (nextChildren === prevChildren) {
    return true;
  }

  if (react__WEBPACK_IMPORTED_MODULE_5__["Children"].count(nextChildren) !== react__WEBPACK_IMPORTED_MODULE_5__["Children"].count(prevChildren)) {
    return false;
  }

  var count = react__WEBPACK_IMPORTED_MODULE_5__["Children"].count(nextChildren);

  if (count === 0) {
    return true;
  }

  if (count === 1) {
    // eslint-disable-next-line no-use-before-define,@typescript-eslint/no-use-before-define
    return isSingleChildEqual(lodash_isArray__WEBPACK_IMPORTED_MODULE_4___default()(nextChildren) ? nextChildren[0] : nextChildren, lodash_isArray__WEBPACK_IMPORTED_MODULE_4___default()(prevChildren) ? prevChildren[0] : prevChildren);
  }

  for (var i = 0; i < count; i++) {
    var nextChild = nextChildren[i];
    var prevChild = prevChildren[i];

    if (lodash_isArray__WEBPACK_IMPORTED_MODULE_4___default()(nextChild) || lodash_isArray__WEBPACK_IMPORTED_MODULE_4___default()(prevChild)) {
      if (!isChildrenEqual(nextChild, prevChild)) {
        return false;
      } // eslint-disable-next-line no-use-before-define,@typescript-eslint/no-use-before-define

    } else if (!isSingleChildEqual(nextChild, prevChild)) {
      return false;
    }
  }

  return true;
};
var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {
  if (lodash_isNil__WEBPACK_IMPORTED_MODULE_1___default()(nextChild) && lodash_isNil__WEBPACK_IMPORTED_MODULE_1___default()(prevChild)) {
    return true;
  }

  if (!lodash_isNil__WEBPACK_IMPORTED_MODULE_1___default()(nextChild) && !lodash_isNil__WEBPACK_IMPORTED_MODULE_1___default()(prevChild)) {
    var _ref = nextChild.props || {},
        nextChildren = _ref.children,
        nextProps = _objectWithoutProperties(_ref, ["children"]);

    var _ref2 = prevChild.props || {},
        prevChildren = _ref2.children,
        prevProps = _objectWithoutProperties(_ref2, ["children"]);

    if (nextChildren && prevChildren) {
      // eslint-disable-next-line no-use-before-define
      return Object(_ShallowEqual__WEBPACK_IMPORTED_MODULE_8__[/* shallowEqual */ "a"])(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);
    }

    if (!nextChildren && !prevChildren) {
      return Object(_ShallowEqual__WEBPACK_IMPORTED_MODULE_8__[/* shallowEqual */ "a"])(nextProps, prevProps);
    }

    return false;
  }

  return false;
};
var renderByOrder = function renderByOrder(children, renderMap) {
  var elements = [];
  var record = {};
  react__WEBPACK_IMPORTED_MODULE_5__["Children"].forEach(children, function (child, index) {
    if (isSvgElement(child)) {
      elements.push(child);
    } else if (child) {
      var displayName = getDisplayName(child.type);

      var _ref3 = renderMap[displayName] || {},
          handler = _ref3.handler,
          once = _ref3.once;

      if (handler && (!once || !record[displayName])) {
        var results = handler(child, displayName, index);
        elements.push(results);
        record[displayName] = true;
      }
    }
  });
  return lodash_flatten__WEBPACK_IMPORTED_MODULE_0___default()(elements).filter(function (element) {
    return !lodash_isNil__WEBPACK_IMPORTED_MODULE_1___default()(element);
  });
};
var getReactEventByType = function getReactEventByType(e) {
  var type = e && e.type;

  if (type && REACT_BROWSER_EVENT_MAP[type]) {
    return REACT_BROWSER_EVENT_MAP[type];
  }

  return null;
};
var parseChildIndex = function parseChildIndex(child, children) {
  var result = -1;
  react__WEBPACK_IMPORTED_MODULE_5__["Children"].forEach(children, function (entry, index) {
    if (entry === child) {
      result = index;
    }
  });
  return result;
};var baseFlatten = __webpack_require__(493);

/**
 * Flattens `array` a single level deep.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Array
 * @param {Array} array The array to flatten.
 * @returns {Array} Returns the new flattened array.
 * @example
 *
 * _.flatten([1, [2, [3, [4]], 5]]);
 * // => [1, 2, [3, [4]], 5]
 */
function flatten(array) {
  var length = array == null ? 0 : array.length;
  return length ? baseFlatten(array, 1) : [];
}

module.exports = flatten;


if (true) {
  module.exports = __webpack_require__(960);
} else {}
/** @license React v16.10.2
 * react-is.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

Object.defineProperty(exports,"__esModule",{value:!0});
var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?Symbol.for("react.suspense_list"):
60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.fundamental"):60117,w=b?Symbol.for("react.responder"):60118,x=b?Symbol.for("react.scope"):60119;function y(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case t:case r:case d:return u}}}function z(a){return y(a)===m}
exports.typeOf=y;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;
exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===v||a.$$typeof===w||a.$$typeof===x)};exports.isAsyncMode=function(a){return z(a)||y(a)===l};exports.isConcurrentMode=z;exports.isContextConsumer=function(a){return y(a)===k};exports.isContextProvider=function(a){return y(a)===h};
exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return y(a)===n};exports.isFragment=function(a){return y(a)===e};exports.isLazy=function(a){return y(a)===t};exports.isMemo=function(a){return y(a)===r};exports.isPortal=function(a){return y(a)===d};exports.isProfiler=function(a){return y(a)===g};exports.isStrictMode=function(a){return y(a)===f};exports.isSuspense=function(a){return y(a)===p};
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return shallowEqual; });
function shallowEqual(a, b) {
  /* eslint-disable no-restricted-syntax */
  for (var key in a) {
    if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {
      return false;
    }
  }

  for (var _key in b) {
    if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {
      return false;
    }
  }

  return true;
}var baseIteratee = __webpack_require__(216),
    baseUniq = __webpack_require__(961);

/**
 * This method is like `_.uniq` except that it accepts `iteratee` which is
 * invoked for each element in `array` to generate the criterion by which
 * uniqueness is computed. The order of result values is determined by the
 * order they occur in the array. The iteratee is invoked with one argument:
 * (value).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Array
 * @param {Array} array The array to inspect.
 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
 * @returns {Array} Returns the new duplicate free array.
 * @example
 *
 * _.uniqBy([2.1, 1.2, 2.3], Math.floor);
 * // => [2.1, 1.2]
 *
 * // The `_.property` iteratee shorthand.
 * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
 * // => [{ 'x': 1 }, { 'x': 2 }]
 */
function uniqBy(array, iteratee) {
  return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];
}

module.exports = uniqBy;
var SetCache = __webpack_require__(597),
    arrayIncludes = __webpack_require__(962),
    arrayIncludesWith = __webpack_require__(966),
    cacheHas = __webpack_require__(599),
    createSet = __webpack_require__(967),
    setToArray = __webpack_require__(489);

/** Used as the size to enable large array optimizations. */
var LARGE_ARRAY_SIZE = 200;

/**
 * The base implementation of `_.uniqBy` without support for iteratee shorthands.
 *
 * @private
 * @param {Array} array The array to inspect.
 * @param {Function} [iteratee] The iteratee invoked per element.
 * @param {Function} [comparator] The comparator invoked per element.
 * @returns {Array} Returns the new duplicate free array.
 */
function baseUniq(array, iteratee, comparator) {
  var index = -1,
      includes = arrayIncludes,
      length = array.length,
      isCommon = true,
      result = [],
      seen = result;

  if (comparator) {
    isCommon = false;
    includes = arrayIncludesWith;
  }
  else if (length >= LARGE_ARRAY_SIZE) {
    var set = iteratee ? null : createSet(array);
    if (set) {
      return setToArray(set);
    }
    isCommon = false;
    includes = cacheHas;
    seen = new SetCache;
  }
  else {
    seen = iteratee ? [] : result;
  }
  outer:
  while (++index < length) {
    var value = array[index],
        computed = iteratee ? iteratee(value) : value;

    value = (comparator || value !== 0) ? value : 0;
    if (isCommon && computed === computed) {
      var seenIndex = seen.length;
      while (seenIndex--) {
        if (seen[seenIndex] === computed) {
          continue outer;
        }
      }
      if (iteratee) {
        seen.push(computed);
      }
      result.push(value);
    }
    else if (!includes(seen, computed, comparator)) {
      if (seen !== result) {
        seen.push(computed);
      }
      result.push(value);
    }
  }
  return result;
}

module.exports = baseUniq;
var baseIndexOf = __webpack_require__(963);

/**
 * A specialized version of `_.includes` for arrays without support for
 * specifying an index to search from.
 *
 * @private
 * @param {Array} [array] The array to inspect.
 * @param {*} target The value to search for.
 * @returns {boolean} Returns `true` if `target` is found, else `false`.
 */
function arrayIncludes(array, value) {
  var length = array == null ? 0 : array.length;
  return !!length && baseIndexOf(array, value, 0) > -1;
}

module.exports = arrayIncludes;
var baseFindIndex = __webpack_require__(606),
    baseIsNaN = __webpack_require__(964),
    strictIndexOf = __webpack_require__(965);

/**
 * The base implementation of `_.indexOf` without `fromIndex` bounds checks.
 *
 * @private
 * @param {Array} array The array to inspect.
 * @param {*} value The value to search for.
 * @param {number} fromIndex The index to search from.
 * @returns {number} Returns the index of the matched value, else `-1`.
 */
function baseIndexOf(array, value, fromIndex) {
  return value === value
    ? strictIndexOf(array, value, fromIndex)
    : baseFindIndex(array, baseIsNaN, fromIndex);
}

module.exports = baseIndexOf;
/**
 * The base implementation of `_.isNaN` without support for number objects.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.
 */
function baseIsNaN(value) {
  return value !== value;
}

module.exports = baseIsNaN;
/**
 * A specialized version of `_.indexOf` which performs strict equality
 * comparisons of values, i.e. `===`.
 *
 * @private
 * @param {Array} array The array to inspect.
 * @param {*} value The value to search for.
 * @param {number} fromIndex The index to search from.
 * @returns {number} Returns the index of the matched value, else `-1`.
 */
function strictIndexOf(array, value, fromIndex) {
  var index = fromIndex - 1,
      length = array.length;

  while (++index < length) {
    if (array[index] === value) {
      return index;
    }
  }
  return -1;
}

module.exports = strictIndexOf;
/**
 * This function is like `arrayIncludes` except that it accepts a comparator.
 *
 * @private
 * @param {Array} [array] The array to inspect.
 * @param {*} target The value to search for.
 * @param {Function} comparator The comparator invoked per element.
 * @returns {boolean} Returns `true` if `target` is found, else `false`.
 */
function arrayIncludesWith(array, value, comparator) {
  var index = -1,
      length = array == null ? 0 : array.length;

  while (++index < length) {
    if (comparator(value, array[index])) {
      return true;
    }
  }
  return false;
}

module.exports = arrayIncludesWith;
var Set = __webpack_require__(601),
    noop = __webpack_require__(968),
    setToArray = __webpack_require__(489);

/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0;

/**
 * Creates a set object of `values`.
 *
 * @private
 * @param {Array} values The values to add to the set.
 * @returns {Object} Returns the new set.
 */
var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {
  return new Set(values);
};

module.exports = createSet;
/**
 * This method returns `undefined`.
 *
 * @static
 * @memberOf _
 * @since 2.3.0
 * @category Util
 * @example
 *
 * _.times(2, _.noop);
 * // => [undefined, undefined]
 */
function noop() {
  // No operation performed.
}

module.exports = noop;
/* harmony default export */ __webpack_exports__["a"] = (function(x) {
  return function constant() {
    return x;
  };
});
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return filterProps; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return adaptEventHandlers; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return adaptEventsOfChild; });
/* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(143);
/* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_isObject__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);


function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }


var SVGContainerPropKeys = ['viewBox', 'children'];
var SVGElementPropKeys = ['className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style', 'target', 'type', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'points', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];
var EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture']; // Animation Types => TODO: Should be moved when react-smooth is typescriptified.

var filterProps = function filterProps(props, includeEvents, isSvg) {
  if (!props || typeof props === 'function' || typeof props === 'boolean') {
    return null;
  }

  var inputProps = props;

  if ( /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_1__["isValidElement"])(props)) {
    inputProps = props.props;
  }

  if (!lodash_isObject__WEBPACK_IMPORTED_MODULE_0___default()(inputProps)) {
    return null;
  }

  var out = {};
  Object.keys(inputProps).forEach(function (key) {
    // viewBox only exist in <svg />
    if (SVGElementPropKeys.includes(key) || isSvg && SVGContainerPropKeys.includes(key) || includeEvents && EventKeys.includes(key)) {
      out[key] = inputProps[key];
    }
  });
  return out;
};
var adaptEventHandlers = function adaptEventHandlers(props, newHandler) {
  if (!props || typeof props === 'function' || typeof props === 'boolean') {
    return null;
  }

  var inputProps = props;

  if ( /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_1__["isValidElement"])(props)) {
    inputProps = props.props;
  }

  if (!lodash_isObject__WEBPACK_IMPORTED_MODULE_0___default()(inputProps)) {
    return null;
  }

  var out = {};
  Object.keys(inputProps).forEach(function (key) {
    if (EventKeys.includes(key)) {
      out[key] = newHandler || function (e) {
        return inputProps[key](inputProps, e);
      };
    }
  });
  return out;
};

var getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {
  return function (e) {
    originalHandler(data, index, e);
    return null;
  };
};

var adaptEventsOfChild = function adaptEventsOfChild(props, data, index) {
  if (!lodash_isObject__WEBPACK_IMPORTED_MODULE_0___default()(props) || _typeof(props) !== 'object') {
    return null;
  }

  var out = null;
  Object.keys(props).forEach(function (key) {
    var item = props[key];

    if (EventKeys.includes(key) && typeof item === 'function') {
      if (!out) out = {};
      out[key] = getEventHandlerOfChild(item, data, index);
    }
  });
  return out;
};/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Surface; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _util_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42);
function _extends() { _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 _extends.apply(this, arguments); }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _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; }

function _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; }

/**
 * @fileOverview Surface
 */



function Surface(props) {
  var children = props.children,
      width = props.width,
      height = props.height,
      viewBox = props.viewBox,
      className = props.className,
      style = props.style,
      others = _objectWithoutProperties(props, ["children", "width", "height", "viewBox", "className", "style"]);

  var svgView = viewBox || {
    width: width,
    height: height,
    x: 0,
    y: 0
  };
  var layerClass = classnames__WEBPACK_IMPORTED_MODULE_1___default()('recharts-surface', className);
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({}, Object(_util_types__WEBPACK_IMPORTED_MODULE_2__[/* filterProps */ "c"])(others, true, true), {
    className: layerClass,
    width: width,
    height: height,
    style: style,
    viewBox: "".concat(svgView.x, " ").concat(svgView.y, " ").concat(svgView.width, " ").concat(svgView.height),
    version: "1.1"
  }), children);
}/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return implicit; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ordinal; });
/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86);


const implicit = Symbol("implicit");

function ordinal() {
  var index = new Map(),
      domain = [],
      range = [],
      unknown = implicit;

  function scale(d) {
    var key = d + "", i = index.get(key);
    if (!i) {
      if (unknown !== implicit) return unknown;
      index.set(key, i = domain.push(d));
    }
    return range[(i - 1) % range.length];
  }

  scale.domain = function(_) {
    if (!arguments.length) return domain.slice();
    domain = [], index = new Map();
    for (const value of _) {
      const key = value + "";
      if (index.has(key)) continue;
      index.set(key, domain.push(value));
    }
    return scale;
  };

  scale.range = function(_) {
    return arguments.length ? (range = Array.from(_), scale) : range.slice();
  };

  scale.unknown = function(_) {
    return arguments.length ? (unknown = _, scale) : unknown;
  };

  scale.copy = function() {
    return ordinal(domain, range).unknown(unknown);
  };

  _init_js__WEBPACK_IMPORTED_MODULE_0__[/* initRange */ "b"].apply(scale, arguments);

  return scale;
}
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return initRange; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return initInterpolator; });
function initRange(domain, range) {
  switch (arguments.length) {
    case 0: break;
    case 1: this.range(domain); break;
    default: this.range(range).domain(domain); break;
  }
  return this;
}

function initInterpolator(domain, interpolator) {
  switch (arguments.length) {
    case 0: break;
    case 1: {
      if (typeof domain === "function") this.interpolator(domain);
      else this.range(domain);
      break;
    }
    default: {
      this.domain(domain);
      if (typeof interpolator === "function") this.interpolator(interpolator);
      else this.range(interpolator);
      break;
    }
  }
  return this;
}
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return linearish; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return linear; });
/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(581);
/* harmony import */ var _continuous_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(109);
/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(86);
/* harmony import */ var _tickFormat_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(407);





function linearish(scale) {
  var domain = scale.domain;

  scale.ticks = function(count) {
    var d = domain();
    return Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(d[0], d[d.length - 1], count == null ? 10 : count);
  };

  scale.tickFormat = function(count, specifier) {
    var d = domain();
    return Object(_tickFormat_js__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(d[0], d[d.length - 1], count == null ? 10 : count, specifier);
  };

  scale.nice = function(count) {
    if (count == null) count = 10;

    var d = domain();
    var i0 = 0;
    var i1 = d.length - 1;
    var start = d[i0];
    var stop = d[i1];
    var prestep;
    var step;
    var maxIter = 10;

    if (stop < start) {
      step = start, start = stop, stop = step;
      step = i0, i0 = i1, i1 = step;
    }
    
    while (maxIter-- > 0) {
      step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* tickIncrement */ "b"])(start, stop, count);
      if (step === prestep) {
        d[i0] = start
        d[i1] = stop
        return domain(d);
      } else if (step > 0) {
        start = Math.floor(start / step) * step;
        stop = Math.ceil(stop / step) * step;
      } else if (step < 0) {
        start = Math.ceil(start * step) / step;
        stop = Math.floor(stop * step) / step;
      } else {
        break;
      }
      prestep = step;
    }

    return scale;
  };

  return scale;
}

function linear() {
  var scale = Object(_continuous_js__WEBPACK_IMPORTED_MODULE_1__[/* default */ "b"])();

  scale.copy = function() {
    return Object(_continuous_js__WEBPACK_IMPORTED_MODULE_1__[/* copy */ "a"])(scale, linear());
  };

  _init_js__WEBPACK_IMPORTED_MODULE_2__[/* initRange */ "b"].apply(scale, arguments);

  return linearish(scale);
}
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return tickIncrement; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return tickStep; });
var e10 = Math.sqrt(50),
    e5 = Math.sqrt(10),
    e2 = Math.sqrt(2);

/* harmony default export */ __webpack_exports__["a"] = (function(start, stop, count) {
  var reverse,
      i = -1,
      n,
      ticks,
      step;

  stop = +stop, start = +start, count = +count;
  if (start === stop && count > 0) return [start];
  if (reverse = stop < start) n = start, start = stop, stop = n;
  if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];

  if (step > 0) {
    let r0 = Math.round(start / step), r1 = Math.round(stop / step);
    if (r0 * step < start) ++r0;
    if (r1 * step > stop) --r1;
    ticks = new Array(n = r1 - r0 + 1);
    while (++i < n) ticks[i] = (r0 + i) * step;
  } else {
    step = -step;
    let r0 = Math.round(start * step), r1 = Math.round(stop * step);
    if (r0 / step < start) ++r0;
    if (r1 / step > stop) --r1;
    ticks = new Array(n = r1 - r0 + 1);
    while (++i < n) ticks[i] = (r0 + i) / step;
  }

  if (reverse) ticks.reverse();

  return ticks;
});

function tickIncrement(start, stop, count) {
  var step = (stop - start) / Math.max(0, count),
      power = Math.floor(Math.log(step) / Math.LN10),
      error = step / Math.pow(10, power);
  return power >= 0
      ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)
      : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);
}

function tickStep(start, stop, count) {
  var step0 = Math.abs(stop - start) / Math.max(0, count),
      step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
      error = step0 / step1;
  if (error >= e10) step1 *= 10;
  else if (error >= e5) step1 *= 5;
  else if (error >= e2) step1 *= 2;
  return stop < start ? -step1 : step1;
}
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return tickFormat; });
/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(581);
/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(131);



function tickFormat(start, stop, count, specifier) {
  var step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* tickStep */ "c"])(start, stop, count),
      precision;
  specifier = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__[/* formatSpecifier */ "e"])(specifier == null ? ",f" : specifier);
  switch (specifier.type) {
    case "s": {
      var value = Math.max(Math.abs(start), Math.abs(stop));
      if (specifier.precision == null && !isNaN(precision = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__[/* precisionPrefix */ "g"])(step, value))) specifier.precision = precision;
      return Object(d3_format__WEBPACK_IMPORTED_MODULE_1__[/* formatPrefix */ "d"])(specifier, value);
    }
    case "":
    case "e":
    case "g":
    case "p":
    case "r": {
      if (specifier.precision == null && !isNaN(precision = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__[/* precisionRound */ "h"])(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === "e");
      break;
    }
    case "f":
    case "%": {
      if (specifier.precision == null && !isNaN(precision = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__[/* precisionFixed */ "f"])(step))) specifier.precision = precision - (specifier.type === "%") * 2;
      break;
    }
  }
  return Object(d3_format__WEBPACK_IMPORTED_MODULE_1__[/* format */ "a"])(specifier);
}
/* unused harmony export bisectRight */
/* unused harmony export bisectLeft */
/* unused harmony export bisectCenter */
/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(315);
/* harmony import */ var _bisector_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(567);
/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(379);




const ascendingBisect = Object(_bisector_js__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_ascending_js__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"]);
const bisectRight = ascendingBisect.right;
const bisectLeft = ascendingBisect.left;
const bisectCenter = Object(_bisector_js__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_number_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"]).center;
/* harmony default export */ __webpack_exports__["a"] = (bisectRight);
/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(315);


/* harmony default export */ __webpack_exports__["a"] = (function(f) {
  let delta = f;
  let compare = f;

  if (f.length === 1) {
    delta = (d, x) => f(d) - x;
    compare = ascendingComparator(f);
  }

  function left(a, x, lo, hi) {
    if (lo == null) lo = 0;
    if (hi == null) hi = a.length;
    while (lo < hi) {
      const mid = (lo + hi) >>> 1;
      if (compare(a[mid], x) < 0) lo = mid + 1;
      else hi = mid;
    }
    return lo;
  }

  function right(a, x, lo, hi) {
    if (lo == null) lo = 0;
    if (hi == null) hi = a.length;
    while (lo < hi) {
      const mid = (lo + hi) >>> 1;
      if (compare(a[mid], x) > 0) hi = mid;
      else lo = mid + 1;
    }
    return lo;
  }

  function center(a, x, lo, hi) {
    if (lo == null) lo = 0;
    if (hi == null) hi = a.length;
    const i = left(a, x, lo, hi - 1);
    return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;
  }

  return {left, center, right};
});

function ascendingComparator(f) {
  return (d, x) => Object(_ascending_js__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(f(d), x);
}
/* harmony default export */ __webpack_exports__["a"] = (function(a, b) {
  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
});
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; });
/* harmony default export */ __webpack_exports__["a"] = (function(x) {
  return x === null ? NaN : +x;
});

function* numbers(values, valueof) {
  if (valueof === undefined) {
    for (let value of values) {
      if (value != null && (value = +value) >= value) {
        yield value;
      }
    }
  } else {
    let index = -1;
    for (let value of values) {
      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
        yield value;
      }
    }
  }
}
/* harmony default export */ __webpack_exports__["a"] = (function(a, b) {
  return a = +a, b = +b, function(t) {
    return a * (1 - t) + b * t;
  };
});
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return number; });
function number(x) {
  return +x;
}
/* harmony default export */ __webpack_exports__["a"] = (function(a, b) {
  return a = +a, b = +b, function(t) {
    return Math.round(a * (1 - t) + b * t);
  };
});
/* unused harmony export slice */
var slice = Array.prototype.slice;

/* harmony default export */ __webpack_exports__["a"] = (function(x) {
  return typeof x === "object" && "length" in x
    ? x // Array, TypedArray, NodeList, array-like
    : Array.from(x); // Map, Set, iterable, string, or anything else
});
var arraySome = __webpack_require__(598),
    baseIteratee = __webpack_require__(216),
    baseSome = __webpack_require__(969),
    isArray = __webpack_require__(71),
    isIterateeCall = __webpack_require__(400);

/**
 * Checks if `predicate` returns truthy for **any** element of `collection`.
 * Iteration is stopped once `predicate` returns truthy. The predicate is
 * invoked with three arguments: (value, index|key, collection).
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Collection
 * @param {Array|Object} collection The collection to iterate over.
 * @param {Function} [predicate=_.identity] The function invoked per iteration.
 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
 * @returns {boolean} Returns `true` if any element passes the predicate check,
 *  else `false`.
 * @example
 *
 * _.some([null, 0, 'yes', false], Boolean);
 * // => true
 *
 * var users = [
 *   { 'user': 'barney', 'active': true },
 *   { 'user': 'fred',   'active': false }
 * ];
 *
 * // The `_.matches` iteratee shorthand.
 * _.some(users, { 'user': 'barney', 'active': false });
 * // => false
 *
 * // The `_.matchesProperty` iteratee shorthand.
 * _.some(users, ['active', false]);
 * // => true
 *
 * // The `_.property` iteratee shorthand.
 * _.some(users, 'active');
 * // => true
 */
function some(collection, predicate, guard) {
  var func = isArray(collection) ? arraySome : baseSome;
  if (guard && isIterateeCall(collection, predicate, guard)) {
    predicate = undefined;
  }
  return func(collection, baseIteratee(predicate, 3));
}

module.exports = some;
var baseEach = __webpack_require__(481);

/**
 * The base implementation of `_.some` without support for iteratee shorthands.
 *
 * @private
 * @param {Array|Object} collection The collection to iterate over.
 * @param {Function} predicate The function invoked per iteration.
 * @returns {boolean} Returns `true` if any element passes the predicate check,
 *  else `false`.
 */
function baseSome(collection, predicate) {
  var result;

  baseEach(collection, function(value, index, collection) {
    result = predicate(value, index, collection);
    return !result;
  });
  return !!result;
}

module.exports = baseSome;
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return warn; });
/* eslint no-console: 0 */
var isDev = "production" !== 'production';
var warn = function warn(condition, format) {
  for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
    args[_key - 2] = arguments[_key];
  }

  if (isDev && typeof console !== 'undefined' && console.warn) {
    if (format === undefined) {
      console.warn('LogUtils requires an error message argument');
    }

    if (!condition) {
      if (format === undefined) {
        console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
      } else {
        var argIndex = 0;
        console.warn(format.replace(/%s/g, function () {
          return args[argIndex++];
        }));
      }
    }
  }
};/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return formatAxisMap; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return rectWithPoints; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return rectWithCoords; });
/* unused harmony export ScaleHelper */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createLabeledScales; });
/* harmony import */ var lodash_every__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(414);
/* harmony import */ var lodash_every__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_every__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash_mapValues__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(661);
/* harmony import */ var lodash_mapValues__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_mapValues__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _ChartUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49);
/* harmony import */ var _ReactUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(68);



function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }




/**
 * Calculate the scale function, position, width, height of axes
 * @param  {Object} props     Latest props
 * @param  {Object} axisMap   The configuration of axes
 * @param  {Object} offset    The offset of main part in the svg element
 * @param  {String} axisType  The type of axes, x-axis or y-axis
 * @param  {String} chartName The name of chart
 * @return {Object} Configuration
 */
var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {
  var width = props.width,
      height = props.height,
      layout = props.layout,
      children = props.children;
  var ids = Object.keys(axisMap);
  var steps = {
    left: offset.left,
    leftMirror: offset.left,
    right: width - offset.right,
    rightMirror: width - offset.right,
    top: offset.top,
    topMirror: offset.top,
    bottom: height - offset.bottom,
    bottomMirror: height - offset.bottom
  };
  var hasBar = !!Object(_ReactUtils__WEBPACK_IMPORTED_MODULE_3__[/* findChildByType */ "b"])(children, 'Bar');
  return ids.reduce(function (result, id) {
    var axis = axisMap[id];
    var orientation = axis.orientation,
        domain = axis.domain,
        _axis$padding = axis.padding,
        padding = _axis$padding === void 0 ? {} : _axis$padding,
        mirror = axis.mirror,
        reversed = axis.reversed;
    var offsetKey = "".concat(orientation).concat(mirror ? 'Mirror' : '');
    var range, x, y, needSpace;

    if (axisType === 'xAxis') {
      range = [offset.left + (padding.left || 0), offset.left + offset.width - (padding.right || 0)];
    } else if (axisType === 'yAxis') {
      range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0), offset.top + offset.height - (padding.bottom || 0)];
    } else {
      range = axis.range;
    }

    if (reversed) {
      range = [range[1], range[0]];
    }

    var _parseScale = Object(_ChartUtils__WEBPACK_IMPORTED_MODULE_2__[/* parseScale */ "A"])(axis, chartName, hasBar),
        scale = _parseScale.scale,
        realScaleType = _parseScale.realScaleType;

    scale.domain(domain).range(range);
    Object(_ChartUtils__WEBPACK_IMPORTED_MODULE_2__[/* checkDomainOfScale */ "c"])(scale);
    var ticks = Object(_ChartUtils__WEBPACK_IMPORTED_MODULE_2__[/* getTicksOfScale */ "u"])(scale, _objectSpread(_objectSpread({}, axis), {}, {
      realScaleType: realScaleType
    }));

    if (axisType === 'xAxis') {
      needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;
      x = offset.left;
      y = steps[offsetKey] - needSpace * axis.height;
    } else if (axisType === 'yAxis') {
      needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;
      x = steps[offsetKey] - needSpace * axis.width;
      y = offset.top;
    }

    var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {
      realScaleType: realScaleType,
      x: x,
      y: y,
      scale: scale,
      width: axisType === 'xAxis' ? offset.width : axis.width,
      height: axisType === 'yAxis' ? offset.height : axis.height
    });

    finalAxis.bandSize = Object(_ChartUtils__WEBPACK_IMPORTED_MODULE_2__[/* getBandSizeOfAxis */ "f"])(finalAxis, ticks);

    if (!axis.hide && axisType === 'xAxis') {
      steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;
    } else if (!axis.hide) {
      steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;
    }

    return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));
  }, {});
};
var rectWithPoints = function rectWithPoints(_ref, _ref2) {
  var x1 = _ref.x,
      y1 = _ref.y;
  var x2 = _ref2.x,
      y2 = _ref2.y;
  return {
    x: Math.min(x1, x2),
    y: Math.min(y1, y2),
    width: Math.abs(x2 - x1),
    height: Math.abs(y2 - y1)
  };
};
/**
 * Compute the x, y, width, and height of a box from two reference points.
 * @param  {Object} coords     x1, x2, y1, and y2
 * @return {Object} object
 */

var rectWithCoords = function rectWithCoords(_ref3) {
  var x1 = _ref3.x1,
      y1 = _ref3.y1,
      x2 = _ref3.x2,
      y2 = _ref3.y2;
  return rectWithPoints({
    x: x1,
    y: y1
  }, {
    x: x2,
    y: y2
  });
};
var ScaleHelper = /*#__PURE__*/function () {
  function ScaleHelper(scale) {
    _classCallCheck(this, ScaleHelper);

    this.scale = void 0;
    this.scale = scale;
  }

  _createClass(ScaleHelper, [{
    key: "domain",
    get: function get() {
      return this.scale.domain;
    }
  }, {
    key: "range",
    get: function get() {
      return this.scale.range;
    }
  }, {
    key: "rangeMin",
    get: function get() {
      return this.range()[0];
    }
  }, {
    key: "rangeMax",
    get: function get() {
      return this.range()[1];
    }
  }, {
    key: "bandwidth",
    get: function get() {
      return this.scale.bandwidth;
    }
  }, {
    key: "apply",
    value: function apply(value) {
      var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
          bandAware = _ref4.bandAware,
          position = _ref4.position;

      if (value === undefined) {
        return undefined;
      }

      if (position) {
        switch (position) {
          case 'start':
            {
              return this.scale(value);
            }

          case 'middle':
            {
              var offset = this.bandwidth ? this.bandwidth() / 2 : 0;
              return this.scale(value) + offset;
            }

          case 'end':
            {
              var _offset = this.bandwidth ? this.bandwidth() : 0;

              return this.scale(value) + _offset;
            }

          default:
            {
              return this.scale(value);
            }
        }
      }

      if (bandAware) {
        var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;

        return this.scale(value) + _offset2;
      }

      return this.scale(value);
    }
  }, {
    key: "isInRange",
    value: function isInRange(value) {
      var range = this.range();
      var first = range[0];
      var last = range[range.length - 1];
      return first <= last ? value >= first && value <= last : value >= last && value <= first;
    }
  }], [{
    key: "create",
    value: function create(obj) {
      return new ScaleHelper(obj);
    }
  }]);

  return ScaleHelper;
}();
ScaleHelper.EPS = 1e-4;
var createLabeledScales = function createLabeledScales(options) {
  var scales = Object.keys(options).reduce(function (res, key) {
    return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, ScaleHelper.create(options[key])));
  }, {});
  return _objectSpread(_objectSpread({}, scales), {}, {
    apply: function apply(coord) {
      var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
          bandAware = _ref5.bandAware;

      return lodash_mapValues__WEBPACK_IMPORTED_MODULE_1___default()(coord, function (value, label) {
        return scales[label].apply(value, {
          bandAware: bandAware
        });
      });
    },
    isInRange: function isInRange(coord) {
      return lodash_every__WEBPACK_IMPORTED_MODULE_0___default()(coord, function (value, label) {
        return scales[label].isInRange(value);
      });
    }
  });
};var baseAssignValue = __webpack_require__(970),
    baseForOwn = __webpack_require__(588),
    baseIteratee = __webpack_require__(216);

/**
 * Creates an object with the same keys as `object` and values generated
 * by running each own enumerable string keyed property of `object` thru
 * `iteratee`. The iteratee is invoked with three arguments:
 * (value, key, object).
 *
 * @static
 * @memberOf _
 * @since 2.4.0
 * @category Object
 * @param {Object} object The object to iterate over.
 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
 * @returns {Object} Returns the new mapped object.
 * @see _.mapKeys
 * @example
 *
 * var users = {
 *   'fred':    { 'user': 'fred',    'age': 40 },
 *   'pebbles': { 'user': 'pebbles', 'age': 1 }
 * };
 *
 * _.mapValues(users, function(o) { return o.age; });
 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
 *
 * // The `_.property` iteratee shorthand.
 * _.mapValues(users, 'age');
 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
 */
function mapValues(object, iteratee) {
  var result = {};
  iteratee = baseIteratee(iteratee, 3);

  baseForOwn(object, function(value, key, object) {
    baseAssignValue(result, key, iteratee(value, key, object));
  });
  return result;
}

module.exports = mapValues;
var defineProperty = __webpack_require__(610);

/**
 * The base implementation of `assignValue` and `assignMergeValue` without
 * value checks.
 *
 * @private
 * @param {Object} object The object to modify.
 * @param {string} key The key of the property to assign.
 * @param {*} value The value to assign.
 */
function baseAssignValue(object, key, value) {
  if (key == '__proto__' && defineProperty) {
    defineProperty(object, key, {
      'configurable': true,
      'enumerable': true,
      'value': value,
      'writable': true
    });
  } else {
    object[key] = value;
  }
}

module.exports = baseAssignValue;
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Layer; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _util_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42);
function _extends() { _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 _extends.apply(this, arguments); }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _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; }

function _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; }

/**
 * @fileOverview Layer
 */



function Layer(props) {
  var children = props.children,
      className = props.className,
      others = _objectWithoutProperties(props, ["children", "className"]);

  var layerClass = classnames__WEBPACK_IMPORTED_MODULE_1___default()('recharts-layer', className);
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", _extends({
    className: layerClass
  }, Object(_util_types__WEBPACK_IMPORTED_MODULE_2__[/* filterProps */ "c"])(others, true)), children);
}/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Label; });
/* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(143);
/* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_isObject__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51);
/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isFunction__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var lodash_isNil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48);
/* harmony import */ var lodash_isNil__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isNil__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(25);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _Text__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(173);
/* harmony import */ var _util_ReactUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(68);
/* harmony import */ var _util_DataUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(24);
/* harmony import */ var _util_PolarUtils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(78);
/* harmony import */ var _util_types__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(42);




function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }

function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _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 _arrayLikeToArray(o, minLen); }

function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }

function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }

function _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; }

function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }

function _extends() { _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 _extends.apply(this, arguments); }









var getLabel = function getLabel(props) {
  var value = props.value,
      formatter = props.formatter;
  var label = lodash_isNil__WEBPACK_IMPORTED_MODULE_2___default()(props.children) ? value : props.children;

  if (lodash_isFunction__WEBPACK_IMPORTED_MODULE_1___default()(formatter)) {
    return formatter(label);
  }

  return label;
};

var getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {
  var sign = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* mathSign */ "j"])(endAngle - startAngle);
  var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);
  return sign * deltaAngle;
};

var renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {
  var position = labelProps.position,
      viewBox = labelProps.viewBox,
      offset = labelProps.offset,
      className = labelProps.className;
  var _ref = viewBox,
      cx = _ref.cx,
      cy = _ref.cy,
      innerRadius = _ref.innerRadius,
      outerRadius = _ref.outerRadius,
      startAngle = _ref.startAngle,
      endAngle = _ref.endAngle,
      clockWise = _ref.clockWise;
  var radius = (innerRadius + outerRadius) / 2;
  var deltaAngle = getDeltaAngle(startAngle, endAngle);
  var sign = deltaAngle >= 0 ? 1 : -1;
  var labelAngle, direction;

  if (position === 'insideStart') {
    labelAngle = startAngle + sign * offset;
    direction = clockWise;
  } else if (position === 'insideEnd') {
    labelAngle = endAngle - sign * offset;
    direction = !clockWise;
  } else if (position === 'end') {
    labelAngle = endAngle + sign * offset;
    direction = clockWise;
  }

  direction = deltaAngle <= 0 ? direction : !direction;
  var startPoint = Object(_util_PolarUtils__WEBPACK_IMPORTED_MODULE_8__[/* polarToCartesian */ "e"])(cx, cy, radius, labelAngle);
  var endPoint = Object(_util_PolarUtils__WEBPACK_IMPORTED_MODULE_8__[/* polarToCartesian */ "e"])(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);
  var path = "M".concat(startPoint.x, ",").concat(startPoint.y, "\n    A").concat(radius, ",").concat(radius, ",0,1,").concat(direction ? 0 : 1, ",\n    ").concat(endPoint.x, ",").concat(endPoint.y);
  var id = lodash_isNil__WEBPACK_IMPORTED_MODULE_2___default()(labelProps.id) ? Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* uniqueId */ "k"])('recharts-radial-line-') : labelProps.id;
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement("text", _extends({}, attrs, {
    dominantBaseline: "central",
    className: classnames__WEBPACK_IMPORTED_MODULE_4___default()('recharts-radial-bar-label', className)
  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement("defs", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement("path", {
    id: id,
    d: path
  })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement("textPath", {
    xlinkHref: "#".concat(id)
  }, label));
};

var getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {
  var viewBox = props.viewBox,
      offset = props.offset,
      position = props.position;
  var _ref2 = viewBox,
      cx = _ref2.cx,
      cy = _ref2.cy,
      innerRadius = _ref2.innerRadius,
      outerRadius = _ref2.outerRadius,
      startAngle = _ref2.startAngle,
      endAngle = _ref2.endAngle;
  var midAngle = (startAngle + endAngle) / 2;

  if (position === 'outside') {
    var _polarToCartesian = Object(_util_PolarUtils__WEBPACK_IMPORTED_MODULE_8__[/* polarToCartesian */ "e"])(cx, cy, outerRadius + offset, midAngle),
        _x = _polarToCartesian.x,
        _y = _polarToCartesian.y;

    return {
      x: _x,
      y: _y,
      textAnchor: _x >= cx ? 'start' : 'end',
      verticalAnchor: 'middle'
    };
  }

  if (position === 'center') {
    return {
      x: cx,
      y: cy,
      textAnchor: 'middle',
      verticalAnchor: 'middle'
    };
  }

  if (position === 'centerTop') {
    return {
      x: cx,
      y: cy,
      textAnchor: 'middle',
      verticalAnchor: 'start'
    };
  }

  if (position === 'centerBottom') {
    return {
      x: cx,
      y: cy,
      textAnchor: 'middle',
      verticalAnchor: 'end'
    };
  }

  var r = (innerRadius + outerRadius) / 2;

  var _polarToCartesian2 = Object(_util_PolarUtils__WEBPACK_IMPORTED_MODULE_8__[/* polarToCartesian */ "e"])(cx, cy, r, midAngle),
      x = _polarToCartesian2.x,
      y = _polarToCartesian2.y;

  return {
    x: x,
    y: y,
    textAnchor: 'middle',
    verticalAnchor: 'middle'
  };
};

var getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {
  var viewBox = props.viewBox,
      parentViewBox = props.parentViewBox,
      offset = props.offset,
      position = props.position;
  var _ref3 = viewBox,
      x = _ref3.x,
      y = _ref3.y,
      width = _ref3.width,
      height = _ref3.height; // Define vertical offsets and position inverts based on the value being positive or negative

  var verticalSign = height >= 0 ? 1 : -1;
  var verticalOffset = verticalSign * offset;
  var verticalEnd = verticalSign > 0 ? 'end' : 'start';
  var verticalStart = verticalSign > 0 ? 'start' : 'end'; // Define horizontal offsets and position inverts based on the value being positive or negative

  var horizontalSign = width >= 0 ? 1 : -1;
  var horizontalOffset = horizontalSign * offset;
  var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';
  var horizontalStart = horizontalSign > 0 ? 'start' : 'end';

  if (position === 'top') {
    var attrs = {
      x: x + width / 2,
      y: y - verticalSign * offset,
      textAnchor: 'middle',
      verticalAnchor: verticalEnd
    };
    return _objectSpread(_objectSpread({}, attrs), parentViewBox ? {
      height: Math.max(y - parentViewBox.y, 0),
      width: width
    } : {});
  }

  if (position === 'bottom') {
    var _attrs = {
      x: x + width / 2,
      y: y + height + verticalOffset,
      textAnchor: 'middle',
      verticalAnchor: verticalStart
    };
    return _objectSpread(_objectSpread({}, _attrs), parentViewBox ? {
      height: Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0),
      width: width
    } : {});
  }

  if (position === 'left') {
    var _attrs2 = {
      x: x - horizontalOffset,
      y: y + height / 2,
      textAnchor: horizontalEnd,
      verticalAnchor: 'middle'
    };
    return _objectSpread(_objectSpread({}, _attrs2), parentViewBox ? {
      width: Math.max(_attrs2.x - parentViewBox.x, 0),
      height: height
    } : {});
  }

  if (position === 'right') {
    var _attrs3 = {
      x: x + width + horizontalOffset,
      y: y + height / 2,
      textAnchor: horizontalStart,
      verticalAnchor: 'middle'
    };
    return _objectSpread(_objectSpread({}, _attrs3), parentViewBox ? {
      width: Math.max(parentViewBox.x + parentViewBox.width - _attrs3.x, 0),
      height: height
    } : {});
  }

  var sizeAttrs = parentViewBox ? {
    width: width,
    height: height
  } : {};

  if (position === 'insideLeft') {
    return _objectSpread({
      x: x + horizontalOffset,
      y: y + height / 2,
      textAnchor: horizontalStart,
      verticalAnchor: 'middle'
    }, sizeAttrs);
  }

  if (position === 'insideRight') {
    return _objectSpread({
      x: x + width - horizontalOffset,
      y: y + height / 2,
      textAnchor: horizontalEnd,
      verticalAnchor: 'middle'
    }, sizeAttrs);
  }

  if (position === 'insideTop') {
    return _objectSpread({
      x: x + width / 2,
      y: y + verticalOffset,
      textAnchor: 'middle',
      verticalAnchor: verticalStart
    }, sizeAttrs);
  }

  if (position === 'insideBottom') {
    return _objectSpread({
      x: x + width / 2,
      y: y + height - verticalOffset,
      textAnchor: 'middle',
      verticalAnchor: verticalEnd
    }, sizeAttrs);
  }

  if (position === 'insideTopLeft') {
    return _objectSpread({
      x: x + horizontalOffset,
      y: y + verticalOffset,
      textAnchor: horizontalStart,
      verticalAnchor: verticalStart
    }, sizeAttrs);
  }

  if (position === 'insideTopRight') {
    return _objectSpread({
      x: x + width - horizontalOffset,
      y: y + verticalOffset,
      textAnchor: horizontalEnd,
      verticalAnchor: verticalStart
    }, sizeAttrs);
  }

  if (position === 'insideBottomLeft') {
    return _objectSpread({
      x: x + horizontalOffset,
      y: y + height - verticalOffset,
      textAnchor: horizontalStart,
      verticalAnchor: verticalEnd
    }, sizeAttrs);
  }

  if (position === 'insideBottomRight') {
    return _objectSpread({
      x: x + width - horizontalOffset,
      y: y + height - verticalOffset,
      textAnchor: horizontalEnd,
      verticalAnchor: verticalEnd
    }, sizeAttrs);
  }

  if (lodash_isObject__WEBPACK_IMPORTED_MODULE_0___default()(position) && (Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* isNumber */ "h"])(position.x) || Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* isPercent */ "i"])(position.x)) && (Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* isNumber */ "h"])(position.y) || Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* isPercent */ "i"])(position.y))) {
    return _objectSpread({
      x: x + Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* getPercentValue */ "d"])(position.x, width),
      y: y + Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* getPercentValue */ "d"])(position.y, height),
      textAnchor: 'end',
      verticalAnchor: 'end'
    }, sizeAttrs);
  }

  return _objectSpread({
    x: x + width / 2,
    y: y + height / 2,
    textAnchor: 'middle',
    verticalAnchor: 'middle'
  }, sizeAttrs);
};

var isPolar = function isPolar(viewBox) {
  return Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* isNumber */ "h"])(viewBox.cx);
};

function Label(props) {
  var viewBox = props.viewBox,
      position = props.position,
      value = props.value,
      children = props.children,
      content = props.content,
      _props$className = props.className,
      className = _props$className === void 0 ? '' : _props$className,
      textBreakAll = props.textBreakAll;

  if (!viewBox || lodash_isNil__WEBPACK_IMPORTED_MODULE_2___default()(value) && lodash_isNil__WEBPACK_IMPORTED_MODULE_2___default()(children) && ! /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_3__["isValidElement"])(content) && !lodash_isFunction__WEBPACK_IMPORTED_MODULE_1___default()(content)) {
    return null;
  }

  if ( /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_3__["isValidElement"])(content)) {
    return /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_3__["cloneElement"])(content, props);
  }

  var label;

  if (lodash_isFunction__WEBPACK_IMPORTED_MODULE_1___default()(content)) {
    label = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_3__["createElement"])(content, props);

    if ( /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_3__["isValidElement"])(label)) {
      return label;
    }
  } else {
    label = getLabel(props);
  }

  var isPolarLabel = isPolar(viewBox);
  var attrs = Object(_util_types__WEBPACK_IMPORTED_MODULE_9__[/* filterProps */ "c"])(props, true);

  if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {
    return renderRadialLabel(props, label, attrs);
  }

  var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(_Text__WEBPACK_IMPORTED_MODULE_5__[/* Text */ "a"], _extends({
    className: classnames__WEBPACK_IMPORTED_MODULE_4___default()('recharts-label', className)
  }, attrs, positionAttrs, {
    breakAll: textBreakAll
  }), label);
}
Label.displayName = 'Label';
Label.defaultProps = {
  offset: 5
};

var parseViewBox = function parseViewBox(props) {
  var cx = props.cx,
      cy = props.cy,
      angle = props.angle,
      startAngle = props.startAngle,
      endAngle = props.endAngle,
      r = props.r,
      radius = props.radius,
      innerRadius = props.innerRadius,
      outerRadius = props.outerRadius,
      x = props.x,
      y = props.y,
      top = props.top,
      left = props.left,
      width = props.width,
      height = props.height,
      clockWise = props.clockWise,
      labelViewBox = props.labelViewBox;

  if (labelViewBox) {
    return labelViewBox;
  }

  if (Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* isNumber */ "h"])(width) && Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* isNumber */ "h"])(height)) {
    if (Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* isNumber */ "h"])(x) && Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* isNumber */ "h"])(y)) {
      return {
        x: x,
        y: y,
        width: width,
        height: height
      };
    }

    if (Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* isNumber */ "h"])(top) && Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* isNumber */ "h"])(left)) {
      return {
        x: top,
        y: left,
        width: width,
        height: height
      };
    }
  }

  if (Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* isNumber */ "h"])(x) && Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* isNumber */ "h"])(y)) {
    return {
      x: x,
      y: y,
      width: 0,
      height: 0
    };
  }

  if (Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* isNumber */ "h"])(cx) && Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* isNumber */ "h"])(cy)) {
    return {
      cx: cx,
      cy: cy,
      startAngle: startAngle || angle || 0,
      endAngle: endAngle || angle || 0,
      innerRadius: innerRadius || 0,
      outerRadius: outerRadius || radius || r || 0,
      clockWise: clockWise
    };
  }

  if (props.viewBox) {
    return props.viewBox;
  }

  return {};
};

var parseLabel = function parseLabel(label, viewBox) {
  if (!label) {
    return null;
  }

  if (label === true) {
    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(Label, {
      key: "label-implicit",
      viewBox: viewBox
    });
  }

  if (Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_7__[/* isNumOrStr */ "g"])(label)) {
    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(Label, {
      key: "label-implicit",
      viewBox: viewBox,
      value: label
    });
  }

  if ( /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_3__["isValidElement"])(label)) {
    if (label.type === Label) {
      return /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_3__["cloneElement"])(label, {
        key: 'label-implicit',
        viewBox: viewBox
      });
    }

    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(Label, {
      key: "label-implicit",
      content: label,
      viewBox: viewBox
    });
  }

  if (lodash_isFunction__WEBPACK_IMPORTED_MODULE_1___default()(label)) {
    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(Label, {
      key: "label-implicit",
      content: label,
      viewBox: viewBox
    });
  }

  if (lodash_isObject__WEBPACK_IMPORTED_MODULE_0___default()(label)) {
    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(Label, _extends({
      viewBox: viewBox
    }, label, {
      key: "label-implicit"
    }));
  }

  return null;
};

var renderCallByParent = function renderCallByParent(parentProps, viewBox) {
  var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;

  if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {
    return null;
  }

  var children = parentProps.children;
  var parentViewBox = parseViewBox(parentProps);
  var explicitChildren = Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_6__[/* findAllByType */ "a"])(children, Label.displayName).map(function (child, index) {
    return /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_3__["cloneElement"])(child, {
      viewBox: viewBox || parentViewBox,
      key: "label-".concat(index)
    });
  });

  if (!checkPropsLabel) {
    return explicitChildren;
  }

  var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);
  return [implicitLabel].concat(_toConsumableArray(explicitChildren));
};

Label.parseViewBox = parseViewBox;
Label.renderCallByParent = renderCallByParent;/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Text; });
/* harmony import */ var lodash_isNil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48);
/* harmony import */ var lodash_isNil__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_isNil__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var reduce_css_calc__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(455);
/* harmony import */ var reduce_css_calc__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(reduce_css_calc__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(25);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _util_DataUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(24);
/* harmony import */ var _util_Global__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(137);
/* harmony import */ var _util_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(42);
/* harmony import */ var _util_DOMUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(192);
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }



function _extends() { _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 _extends.apply(this, arguments); }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _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; }

function _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; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _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."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _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 _arrayLikeToArray(o, minLen); }

function _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; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }








var BREAKING_SPACES = /[ \f\n\r\t\v\u2028\u2029]+/;

var calculateWordWidths = function calculateWordWidths(props) {
  try {
    var words = [];

    if (!lodash_isNil__WEBPACK_IMPORTED_MODULE_0___default()(props.children)) {
      if (props.breakAll) {
        words = props.children.toString().split('');
      } else {
        words = props.children.toString().split(BREAKING_SPACES);
      }
    }

    var wordsWithComputedWidth = words.map(function (word) {
      return {
        word: word,
        width: Object(_util_DOMUtils__WEBPACK_IMPORTED_MODULE_7__[/* getStringSize */ "c"])(word, props.style).width
      };
    });
    var spaceWidth = props.breakAll ? 0 : Object(_util_DOMUtils__WEBPACK_IMPORTED_MODULE_7__[/* getStringSize */ "c"])("\xA0", props.style).width;
    return {
      wordsWithComputedWidth: wordsWithComputedWidth,
      spaceWidth: spaceWidth
    };
  } catch (e) {
    return null;
  }
};

var calculateWordsByLines = function calculateWordsByLines(props, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) {
  var shouldLimitLines = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_4__[/* isNumber */ "h"])(props.maxLines);
  var text = props.children;

  var calculate = function calculate() {
    var words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
    return words.reduce(function (result, _ref) {
      var word = _ref.word,
          width = _ref.width;
      var currentLine = result[result.length - 1];

      if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < lineWidth)) {
        // Word can be added to an existing line
        currentLine.words.push(word);
        currentLine.width += width + spaceWidth;
      } else {
        // Add first word to line or word is too long to scaleToFit on existing line
        var newLine = {
          words: [word],
          width: width
        };
        result.push(newLine);
      }

      return result;
    }, []);
  };

  var originalResult = calculate(initialWordsWithComputedWith);

  var findLongestLine = function findLongestLine(words) {
    return words.reduce(function (a, b) {
      return a.width > b.width ? a : b;
    });
  };

  if (!shouldLimitLines) {
    return originalResult;
  }

  var suffix = '…';

  var checkOverflow = function checkOverflow(index) {
    var tempText = text.slice(0, index);
    var words = calculateWordWidths(_objectSpread(_objectSpread({}, props), {}, {
      children: tempText + suffix
    })).wordsWithComputedWidth;
    var result = calculate(words);
    var doesOverflow = result.length > props.maxLines || findLongestLine(result).width > lineWidth;
    return [doesOverflow, result];
  };

  var start = 0;
  var end = text.length - 1;
  var iterations = 0;
  var trimmedResult;

  while (start <= end && iterations <= text.length - 1) {
    var middle = Math.floor((start + end) / 2);
    var prev = middle - 1;

    var _checkOverflow = checkOverflow(prev),
        _checkOverflow2 = _slicedToArray(_checkOverflow, 2),
        doesPrevOverflow = _checkOverflow2[0],
        result = _checkOverflow2[1];

    var _checkOverflow3 = checkOverflow(middle),
        _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),
        doesMiddleOverflow = _checkOverflow4[0];

    if (!doesPrevOverflow && !doesMiddleOverflow) {
      start = middle + 1;
    }

    if (doesPrevOverflow && doesMiddleOverflow) {
      end = middle - 1;
    }

    if (!doesPrevOverflow && doesMiddleOverflow) {
      trimmedResult = result;
      break;
    }

    iterations++;
  } // Fallback to originalResult (result without trimming) if we cannot find the
  // where to trim.  This should not happen :tm:


  return trimmedResult || originalResult;
};

var getWordsWithoutCalculate = function getWordsWithoutCalculate(children) {
  var words = !lodash_isNil__WEBPACK_IMPORTED_MODULE_0___default()(children) ? children.toString().split(BREAKING_SPACES) : [];
  return [{
    words: words
  }];
};

var getWordsByLines = function getWordsByLines(props, needCalculate) {
  // Only perform calculations if using features that require them (multiline, scaleToFit)
  if ((props.width || props.scaleToFit) && !_util_Global__WEBPACK_IMPORTED_MODULE_5__[/* Global */ "a"].isSsr) {
    var wordsWithComputedWidth, spaceWidth;

    if (needCalculate) {
      var wordWidths = calculateWordWidths(props);

      if (wordWidths) {
        var wcw = wordWidths.wordsWithComputedWidth,
            sw = wordWidths.spaceWidth;
        wordsWithComputedWidth = wcw;
        spaceWidth = sw;
      } else {
        return getWordsWithoutCalculate(props.children);
      }

      return calculateWordsByLines(props, wordsWithComputedWidth, spaceWidth, props.width, props.scaleToFit);
    }
  }

  return getWordsWithoutCalculate(props.children);
};

var Text = /*#__PURE__*/function (_Component) {
  _inherits(Text, _Component);

  var _super = _createSuper(Text);

  function Text() {
    var _this;

    _classCallCheck(this, Text);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _super.call.apply(_super, [this].concat(args));
    _this.state = {};
    return _this;
  }

  _createClass(Text, [{
    key: "render",
    value: function render() {
      var _this$props = this.props,
          dx = _this$props.dx,
          dy = _this$props.dy,
          textAnchor = _this$props.textAnchor,
          verticalAnchor = _this$props.verticalAnchor,
          scaleToFit = _this$props.scaleToFit,
          angle = _this$props.angle,
          lineHeight = _this$props.lineHeight,
          capHeight = _this$props.capHeight,
          className = _this$props.className,
          breakAll = _this$props.breakAll,
          textProps = _objectWithoutProperties(_this$props, ["dx", "dy", "textAnchor", "verticalAnchor", "scaleToFit", "angle", "lineHeight", "capHeight", "className", "breakAll"]);

      var wordsByLines = this.state.wordsByLines;

      if (!Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_4__[/* isNumOrStr */ "g"])(textProps.x) || !Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_4__[/* isNumOrStr */ "g"])(textProps.y)) {
        return null;
      }

      var x = textProps.x + (Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_4__[/* isNumber */ "h"])(dx) ? dx : 0);
      var y = textProps.y + (Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_4__[/* isNumber */ "h"])(dy) ? dy : 0);
      var startDy;

      switch (verticalAnchor) {
        case 'start':
          startDy = reduce_css_calc__WEBPACK_IMPORTED_MODULE_2___default()("calc(".concat(capHeight, ")"));
          break;

        case 'middle':
          startDy = reduce_css_calc__WEBPACK_IMPORTED_MODULE_2___default()("calc(".concat((wordsByLines.length - 1) / 2, " * -").concat(lineHeight, " + (").concat(capHeight, " / 2))"));
          break;

        default:
          startDy = reduce_css_calc__WEBPACK_IMPORTED_MODULE_2___default()("calc(".concat(wordsByLines.length - 1, " * -").concat(lineHeight, ")"));
          break;
      }

      var transforms = [];

      if (scaleToFit) {
        var lineWidth = wordsByLines[0].width;
        var width = this.props.width;
        transforms.push("scale(".concat((Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_4__[/* isNumber */ "h"])(width) ? width / lineWidth : 1) / lineWidth, ")"));
      }

      if (angle) {
        transforms.push("rotate(".concat(angle, ", ").concat(x, ", ").concat(y, ")"));
      }

      if (transforms.length) {
        textProps.transform = transforms.join(' ');
      }

      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("text", _extends({}, Object(_util_types__WEBPACK_IMPORTED_MODULE_6__[/* filterProps */ "c"])(textProps, true), {
        x: x,
        y: y,
        className: classnames__WEBPACK_IMPORTED_MODULE_3___default()('recharts-text', className),
        textAnchor: textAnchor
      }), wordsByLines.map(function (line, index) {
        return (
          /*#__PURE__*/
          // eslint-disable-next-line react/no-array-index-key
          react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("tspan", {
            x: x,
            dy: index === 0 ? startDy : lineHeight,
            key: index
          }, line.words.join(breakAll ? '' : ' '))
        );
      }));
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.width !== prevState.prevWidth || nextProps.scaleToFit !== prevState.prevScaleToFit || nextProps.children !== prevState.prevChildren || nextProps.style !== prevState.prevStyle || nextProps.breakAll !== prevState.prevBreakAll) {
        var needCalculate = nextProps.children !== prevState.prevChildren || nextProps.style !== prevState.prevStyle || nextProps.breakAll !== prevState.prevBreakAll;
        return {
          prevWidth: nextProps.width,
          prevScaleToFit: nextProps.scaleToFit,
          prevChildren: nextProps.children,
          prevStyle: nextProps.style,
          wordsByLines: getWordsByLines(nextProps, needCalculate)
        };
      }

      return null;
    }
  }]);

  return Text;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]);
Text.defaultProps = {
  x: 0,
  y: 0,
  lineHeight: '1em',
  capHeight: '0.71em',
  // Magic number from d3
  scaleToFit: false,
  textAnchor: 'start',
  verticalAnchor: 'end' // Maintain compat with existing charts / default SVG behavior

};

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _postcssValueParser = __webpack_require__(971);

var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);

var _parser = __webpack_require__(976);

var _reducer = __webpack_require__(614);

var _reducer2 = _interopRequireDefault(_reducer);

var _stringifier = __webpack_require__(979);

var _stringifier2 = _interopRequireDefault(_stringifier);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

// eslint-disable-line
var MATCH_CALC = /((?:\-[a-z]+\-)?calc)/;

exports.default = function (value) {
  var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;

  return (0, _postcssValueParser2.default)(value).walk(function (node) {
    // skip anything which isn't a calc() function
    if (node.type !== 'function' || !MATCH_CALC.test(node.value)) return;

    // stringify calc expression and produce an AST
    var contents = _postcssValueParser2.default.stringify(node.nodes);

    // skip constant() and env()
    if (contents.indexOf('constant') >= 0 || contents.indexOf('env') >= 0) return;

    var ast = _parser.parser.parse(contents);

    // reduce AST to its simplest form, that is, either to a single value
    // or a simplified calc expression
    var reducedAst = (0, _reducer2.default)(ast, precision);

    // stringify AST and write it back
    node.type = 'word';
    node.value = (0, _stringifier2.default)(node.value, reducedAst, precision);
  }, true).toString();
};

module.exports = exports['default'];var parse = __webpack_require__(972);
var walk = __webpack_require__(973);
var stringify = __webpack_require__(974);

function ValueParser(value) {
    if (this instanceof ValueParser) {
        this.nodes = parse(value);
        return this;
    }
    return new ValueParser(value);
}

ValueParser.prototype.toString = function () {
    return Array.isArray(this.nodes) ? stringify(this.nodes) : '';
};

ValueParser.prototype.walk = function (cb, bubble) {
    walk(this.nodes, cb, bubble);
    return this;
};

ValueParser.unit = __webpack_require__(975);

ValueParser.walk = walk;

ValueParser.stringify = stringify;

module.exports = ValueParser;
var openParentheses = '('.charCodeAt(0);
var closeParentheses = ')'.charCodeAt(0);
var singleQuote = '\''.charCodeAt(0);
var doubleQuote = '"'.charCodeAt(0);
var backslash = '\\'.charCodeAt(0);
var slash = '/'.charCodeAt(0);
var comma = ','.charCodeAt(0);
var colon = ':'.charCodeAt(0);
var star = '*'.charCodeAt(0);

module.exports = function (input) {
    var tokens = [];
    var value = input;

    var next, quote, prev, token, escape, escapePos, whitespacePos;
    var pos = 0;
    var code = value.charCodeAt(pos);
    var max = value.length;
    var stack = [{ nodes: tokens }];
    var balanced = 0;
    var parent;

    var name = '';
    var before = '';
    var after = '';

    while (pos < max) {
        // Whitespaces
        if (code <= 32) {
            next = pos;
            do {
                next += 1;
                code = value.charCodeAt(next);
            } while (code <= 32);
            token = value.slice(pos, next);

            prev = tokens[tokens.length - 1];
            if (code === closeParentheses && balanced) {
                after = token;
            } else if (prev && prev.type === 'div') {
                prev.after = token;
            } else if (code === comma || code === colon || code === slash && value.charCodeAt(next + 1) !== star) {
                before = token;
            } else {
                tokens.push({
                    type: 'space',
                    sourceIndex: pos,
                    value: token
                });
            }

            pos = next;

        // Quotes
        } else if (code === singleQuote || code === doubleQuote) {
            next = pos;
            quote = code === singleQuote ? '\'' : '"';
            token = {
                type: 'string',
                sourceIndex: pos,
                quote: quote
            };
            do {
                escape = false;
                next = value.indexOf(quote, next + 1);
                if (~next) {
                    escapePos = next;
                    while (value.charCodeAt(escapePos - 1) === backslash) {
                        escapePos -= 1;
                        escape = !escape;
                    }
                } else {
                    value += quote;
                    next = value.length - 1;
                    token.unclosed = true;
                }
            } while (escape);
            token.value = value.slice(pos + 1, next);

            tokens.push(token);
            pos = next + 1;
            code = value.charCodeAt(pos);

        // Comments
        } else if (code === slash && value.charCodeAt(pos + 1) === star) {
            token = {
                type: 'comment',
                sourceIndex: pos
            };

            next = value.indexOf('*/', pos);
            if (next === -1) {
                token.unclosed = true;
                next = value.length;
            }

            token.value = value.slice(pos + 2, next);
            tokens.push(token);

            pos = next + 2;
            code = value.charCodeAt(pos);

        // Dividers
        } else if (code === slash || code === comma || code === colon) {
            token = value[pos];

            tokens.push({
                type: 'div',
                sourceIndex: pos - before.length,
                value: token,
                before: before,
                after: ''
            });
            before = '';

            pos += 1;
            code = value.charCodeAt(pos);

        // Open parentheses
        } else if (openParentheses === code) {
            // Whitespaces after open parentheses
            next = pos;
            do {
                next += 1;
                code = value.charCodeAt(next);
            } while (code <= 32);
            token = {
                type: 'function',
                sourceIndex: pos - name.length,
                value: name,
                before: value.slice(pos + 1, next)
            };
            pos = next;

            if (name === 'url' && code !== singleQuote && code !== doubleQuote) {
                next -= 1;
                do {
                    escape = false;
                    next = value.indexOf(')', next + 1);
                    if (~next) {
                        escapePos = next;
                        while (value.charCodeAt(escapePos - 1) === backslash) {
                            escapePos -= 1;
                            escape = !escape;
                        }
                    } else {
                        value += ')';
                        next = value.length - 1;
                        token.unclosed = true;
                    }
                } while (escape);
                // Whitespaces before closed
                whitespacePos = next;
                do {
                    whitespacePos -= 1;
                    code = value.charCodeAt(whitespacePos);
                } while (code <= 32);
                if (pos !== whitespacePos + 1) {
                    token.nodes = [{
                        type: 'word',
                        sourceIndex: pos,
                        value: value.slice(pos, whitespacePos + 1)
                    }];
                } else {
                    token.nodes = [];
                }
                if (token.unclosed && whitespacePos + 1 !== next) {
                    token.after = '';
                    token.nodes.push({
                        type: 'space',
                        sourceIndex: whitespacePos + 1,
                        value: value.slice(whitespacePos + 1, next)
                    });
                } else {
                    token.after = value.slice(whitespacePos + 1, next);
                }
                pos = next + 1;
                code = value.charCodeAt(pos);
                tokens.push(token);
            } else {
                balanced += 1;
                token.after = '';
                tokens.push(token);
                stack.push(token);
                tokens = token.nodes = [];
                parent = token;
            }
            name = '';

        // Close parentheses
        } else if (closeParentheses === code && balanced) {
            pos += 1;
            code = value.charCodeAt(pos);

            parent.after = after;
            after = '';
            balanced -= 1;
            stack.pop();
            parent = stack[balanced];
            tokens = parent.nodes;

        // Words
        } else {
            next = pos;
            do {
                if (code === backslash) {
                    next += 1;
                }
                next += 1;
                code = value.charCodeAt(next);
            } while (next < max && !(
                code <= 32 ||
                code === singleQuote ||
                code === doubleQuote ||
                code === comma ||
                code === colon ||
                code === slash ||
                code === openParentheses ||
                code === closeParentheses && balanced
            ));
            token = value.slice(pos, next);

            if (openParentheses === code) {
                name = token;
            } else {
                tokens.push({
                    type: 'word',
                    sourceIndex: pos,
                    value: token
                });
            }

            pos = next;
        }
    }

    for (pos = stack.length - 1; pos; pos -= 1) {
        stack[pos].unclosed = true;
    }

    return stack[0].nodes;
};
module.exports = function walk(nodes, cb, bubble) {
    var i, max, node, result;

    for (i = 0, max = nodes.length; i < max; i += 1) {
        node = nodes[i];
        if (!bubble) {
            result = cb(node, i, nodes);
        }

        if (result !== false && node.type === 'function' && Array.isArray(node.nodes)) {
            walk(node.nodes, cb, bubble);
        }

        if (bubble) {
            cb(node, i, nodes);
        }
    }
};
function stringifyNode(node, custom) {
    var type = node.type;
    var value = node.value;
    var buf;
    var customResult;

    if (custom && (customResult = custom(node)) !== undefined) {
        return customResult;
    } else if (type === 'word' || type === 'space') {
        return value;
    } else if (type === 'string') {
        buf = node.quote || '';
        return buf + value + (node.unclosed ? '' : buf);
    } else if (type === 'comment') {
        return '/*' + value + (node.unclosed ? '' : '*/');
    } else if (type === 'div') {
        return (node.before || '') + value + (node.after || '');
    } else if (Array.isArray(node.nodes)) {
        buf = stringify(node.nodes);
        if (type !== 'function') {
            return buf;
        }
        return value + '(' + (node.before || '') + buf + (node.after || '') + (node.unclosed ? '' : ')');
    }
    return value;
}

function stringify(nodes, custom) {
    var result, i;

    if (Array.isArray(nodes)) {
        result = '';
        for (i = nodes.length - 1; ~i; i -= 1) {
            result = stringifyNode(nodes[i], custom) + result;
        }
        return result;
    }
    return stringifyNode(nodes, custom);
}

module.exports = stringify;
var minus = '-'.charCodeAt(0);
var plus  = '+'.charCodeAt(0);
var dot   = '.'.charCodeAt(0);

module.exports = function (value) {
    var pos = 0;
    var length = value.length;
    var dotted = false;
    var containsNumber = false;
    var code;
    var number = '';

    while (pos < length) {
        code = value.charCodeAt(pos);

        if (code >= 48 && code <= 57) {
            number += value[pos];
            containsNumber = true;
        } else if (code === dot) {
            if (dotted) {
                break;
            }
            dotted = true;
            number += value[pos];
        } else if (code === plus || code === minus) {
            if (pos !== 0) {
                break;
            }
            number += value[pos];
        } else {
            break;
        }

        pos += 1;
    }

    return containsNumber ? {
        number: number,
        unit: value.slice(pos)
    } : false;
};

/* parser generated by jison 0.6.1-215 */

/*
 * Returns a Parser object of the following structure:
 *
 *  Parser: {
 *    yy: {}     The so-called "shared state" or rather the *source* of it;
 *               the real "shared state" `yy` passed around to
 *               the rule actions, etc. is a derivative/copy of this one,
 *               not a direct reference!
 *  }
 *
 *  Parser.prototype: {
 *    yy: {},
 *    EOF: 1,
 *    TERROR: 2,
 *
 *    trace: function(errorMessage, ...),
 *
 *    JisonParserError: function(msg, hash),
 *
 *    quoteName: function(name),
 *               Helper function which can be overridden by user code later on: put suitable
 *               quotes around literal IDs in a description string.
 *
 *    originalQuoteName: function(name),
 *               The basic quoteName handler provided by JISON.
 *               `cleanupAfterParse()` will clean up and reset `quoteName()` to reference this function
 *               at the end of the `parse()`.
 *
 *    describeSymbol: function(symbol),
 *               Return a more-or-less human-readable description of the given symbol, when
 *               available, or the symbol itself, serving as its own 'description' for lack
 *               of something better to serve up.
 *
 *               Return NULL when the symbol is unknown to the parser.
 *
 *    symbols_: {associative list: name ==> number},
 *    terminals_: {associative list: number ==> name},
 *    nonterminals: {associative list: rule-name ==> {associative list: number ==> rule-alt}},
 *    terminal_descriptions_: (if there are any) {associative list: number ==> description},
 *    productions_: [...],
 *
 *    performAction: function parser__performAction(yytext, yyleng, yylineno, yyloc, yystate, yysp, yyvstack, yylstack, yystack, yysstack),
 *
 *               The function parameters and `this` have the following value/meaning:
 *               - `this`    : reference to the `yyval` internal object, which has members (`$` and `_$`)
 *                             to store/reference the rule value `$$` and location info `@$`.
 *
 *                 One important thing to note about `this` a.k.a. `yyval`: every *reduce* action gets
 *                 to see the same object via the `this` reference, i.e. if you wish to carry custom
 *                 data from one reduce action through to the next within a single parse run, then you
 *                 may get nasty and use `yyval` a.k.a. `this` for storing you own semi-permanent data.
 *
 *                 `this.yy` is a direct reference to the `yy` shared state object.
 *
 *                 `%parse-param`-specified additional `parse()` arguments have been added to this `yy`
 *                 object at `parse()` start and are therefore available to the action code via the
 *                 same named `yy.xxxx` attributes (where `xxxx` represents a identifier name from
 *                 the %parse-param` list.
 *
 *               - `yytext`  : reference to the lexer value which belongs to the last lexer token used
 *                             to match this rule. This is *not* the look-ahead token, but the last token
 *                             that's actually part of this rule.
 *
 *                 Formulated another way, `yytext` is the value of the token immediately preceeding
 *                 the current look-ahead token.
 *                 Caveats apply for rules which don't require look-ahead, such as epsilon rules.
 *
 *               - `yyleng`  : ditto as `yytext`, only now for the lexer.yyleng value.
 *
 *               - `yylineno`: ditto as `yytext`, only now for the lexer.yylineno value.
 *
 *               - `yyloc`   : ditto as `yytext`, only now for the lexer.yylloc lexer token location info.
 *
 *                               WARNING: since jison 0.4.18-186 this entry may be NULL/UNDEFINED instead
 *                               of an empty object when no suitable location info can be provided.
 *
 *               - `yystate` : the current parser state number, used internally for dispatching and
 *                               executing the action code chunk matching the rule currently being reduced.
 *
 *               - `yysp`    : the current state stack position (a.k.a. 'stack pointer')
 *
 *                 This one comes in handy when you are going to do advanced things to the parser
 *                 stacks, all of which are accessible from your action code (see the next entries below).
 *
 *                 Also note that you can access this and other stack index values using the new double-hash
 *                 syntax, i.e. `##$ === ##0 === yysp`, while `##1` is the stack index for all things
 *                 related to the first rule term, just like you have `$1`, `@1` and `#1`.
 *                 This is made available to write very advanced grammar action rules, e.g. when you want
 *                 to investigate the parse state stack in your action code, which would, for example,
 *                 be relevant when you wish to implement error diagnostics and reporting schemes similar
 *                 to the work described here:
 *
 *                 + Pottier, F., 2016. Reachability and error diagnosis in LR(1) automata.
 *                   In Journées Francophones des Languages Applicatifs.
 *
 *                 + Jeffery, C.L., 2003. Generating LR syntax error messages from examples.
 *                   ACM Transactions on Programming Languages and Systems (TOPLAS), 25(5), pp.631–640.
 *
 *               - `yyrulelength`: the current rule's term count, i.e. the number of entries occupied on the stack.
 *
 *                 This one comes in handy when you are going to do advanced things to the parser
 *                 stacks, all of which are accessible from your action code (see the next entries below).
 *
 *               - `yyvstack`: reference to the parser value stack. Also accessed via the `$1` etc.
 *                             constructs.
 *
 *               - `yylstack`: reference to the parser token location stack. Also accessed via
 *                             the `@1` etc. constructs.
 *
 *                             WARNING: since jison 0.4.18-186 this array MAY contain slots which are
 *                             UNDEFINED rather than an empty (location) object, when the lexer/parser
 *                             action code did not provide a suitable location info object when such a
 *                             slot was filled!
 *
 *               - `yystack` : reference to the parser token id stack. Also accessed via the
 *                             `#1` etc. constructs.
 *
 *                 Note: this is a bit of a **white lie** as we can statically decode any `#n` reference to
 *                 its numeric token id value, hence that code wouldn't need the `yystack` but *you* might
 *                 want access this array for your own purposes, such as error analysis as mentioned above!
 *
 *                 Note that this stack stores the current stack of *tokens*, that is the sequence of
 *                 already parsed=reduced *nonterminals* (tokens representing rules) and *terminals*
 *                 (lexer tokens *shifted* onto the stack until the rule they belong to is found and
 *                 *reduced*.
 *
 *               - `yysstack`: reference to the parser state stack. This one carries the internal parser
 *                             *states* such as the one in `yystate`, which are used to represent
 *                             the parser state machine in the *parse table*. *Very* *internal* stuff,
 *                             what can I say? If you access this one, you're clearly doing wicked things
 *
 *               - `...`     : the extra arguments you specified in the `%parse-param` statement in your
 *                             grammar definition file.
 *
 *    table: [...],
 *               State transition table
 *               ----------------------
 *
 *               index levels are:
 *               - `state`  --> hash table
 *               - `symbol` --> action (number or array)
 *
 *                 If the `action` is an array, these are the elements' meaning:
 *                 - index [0]: 1 = shift, 2 = reduce, 3 = accept
 *                 - index [1]: GOTO `state`
 *
 *                 If the `action` is a number, it is the GOTO `state`
 *
 *    defaultActions: {...},
 *
 *    parseError: function(str, hash, ExceptionClass),
 *    yyError: function(str, ...),
 *    yyRecovering: function(),
 *    yyErrOk: function(),
 *    yyClearIn: function(),
 *
 *    constructParseErrorInfo: function(error_message, exception_object, expected_token_set, is_recoverable),
 *               Helper function **which will be set up during the first invocation of the `parse()` method**.
 *               Produces a new errorInfo 'hash object' which can be passed into `parseError()`.
 *               See it's use in this parser kernel in many places; example usage:
 *
 *                   var infoObj = parser.constructParseErrorInfo('fail!', null,
 *                                     parser.collect_expected_token_set(state), true);
 *                   var retVal = parser.parseError(infoObj.errStr, infoObj, parser.JisonParserError);
 *
 *    originalParseError: function(str, hash, ExceptionClass),
 *               The basic `parseError` handler provided by JISON.
 *               `cleanupAfterParse()` will clean up and reset `parseError()` to reference this function
 *               at the end of the `parse()`.
 *
 *    options: { ... parser %options ... },
 *
 *    parse: function(input[, args...]),
 *               Parse the given `input` and return the parsed value (or `true` when none was provided by
 *               the root action, in which case the parser is acting as a *matcher*).
 *               You MAY use the additional `args...` parameters as per `%parse-param` spec of this grammar:
 *               these extra `args...` are added verbatim to the `yy` object reference as member variables.
 *
 *               WARNING:
 *               Parser's additional `args...` parameters (via `%parse-param`) MAY conflict with
 *               any attributes already added to `yy` by the jison run-time;
 *               when such a collision is detected an exception is thrown to prevent the generated run-time
 *               from silently accepting this confusing and potentially hazardous situation!
 *
 *               The lexer MAY add its own set of additional parameters (via the `%parse-param` line in
 *               the lexer section of the grammar spec): these will be inserted in the `yy` shared state
 *               object and any collision with those will be reported by the lexer via a thrown exception.
 *
 *    cleanupAfterParse: function(resultValue, invoke_post_methods, do_not_nuke_errorinfos),
 *               Helper function **which will be set up during the first invocation of the `parse()` method**.
 *               This helper API is invoked at the end of the `parse()` call, unless an exception was thrown
 *               and `%options no-try-catch` has been defined for this grammar: in that case this helper MAY
 *               be invoked by calling user code to ensure the `post_parse` callbacks are invoked and
 *               the internal parser gets properly garbage collected under these particular circumstances.
 *
 *    yyMergeLocationInfo: function(first_index, last_index, first_yylloc, last_yylloc, dont_look_back),
 *               Helper function **which will be set up during the first invocation of the `parse()` method**.
 *               This helper API can be invoked to calculate a spanning `yylloc` location info object.
 *
 *               Note: %epsilon rules MAY specify no `first_index` and `first_yylloc`, in which case
 *               this function will attempt to obtain a suitable location marker by inspecting the location stack
 *               backwards.
 *
 *               For more info see the documentation comment further below, immediately above this function's
 *               implementation.
 *
 *    lexer: {
 *        yy: {...},           A reference to the so-called "shared state" `yy` once
 *                             received via a call to the `.setInput(input, yy)` lexer API.
 *        EOF: 1,
 *        ERROR: 2,
 *        JisonLexerError: function(msg, hash),
 *        parseError: function(str, hash, ExceptionClass),
 *        setInput: function(input, [yy]),
 *        input: function(),
 *        unput: function(str),
 *        more: function(),
 *        reject: function(),
 *        less: function(n),
 *        pastInput: function(n),
 *        upcomingInput: function(n),
 *        showPosition: function(),
 *        test_match: function(regex_match_array, rule_index, ...),
 *        next: function(...),
 *        lex: function(...),
 *        begin: function(condition),
 *        pushState: function(condition),
 *        popState: function(),
 *        topState: function(),
 *        _currentRules: function(),
 *        stateStackSize: function(),
 *        cleanupAfterLex: function()
 *
 *        options: { ... lexer %options ... },
 *
 *        performAction: function(yy, yy_, $avoiding_name_collisions, YY_START, ...),
 *        rules: [...],
 *        conditions: {associative list: name ==> set},
 *    }
 *  }
 *
 *
 *  token location info (@$, _$, etc.): {
 *    first_line: n,
 *    last_line: n,
 *    first_column: n,
 *    last_column: n,
 *    range: [start_number, end_number]
 *               (where the numbers are indexes into the input string, zero-based)
 *  }
 *
 * ---
 *
 * The `parseError` function receives a 'hash' object with these members for lexer and
 * parser errors:
 *
 *  {
 *    text:        (matched text)
 *    token:       (the produced terminal token, if any)
 *    token_id:    (the produced terminal token numeric ID, if any)
 *    line:        (yylineno)
 *    loc:         (yylloc)
 *  }
 *
 * parser (grammar) errors will also provide these additional members:
 *
 *  {
 *    expected:    (array describing the set of expected tokens;
 *                  may be UNDEFINED when we cannot easily produce such a set)
 *    state:       (integer (or array when the table includes grammar collisions);
 *                  represents the current internal state of the parser kernel.
 *                  can, for example, be used to pass to the `collect_expected_token_set()`
 *                  API to obtain the expected token set)
 *    action:      (integer; represents the current internal action which will be executed)
 *    new_state:   (integer; represents the next/planned internal state, once the current
 *                  action has executed)
 *    recoverable: (boolean: TRUE when the parser MAY have an error recovery rule
 *                  available for this particular error)
 *    state_stack: (array: the current parser LALR/LR internal state stack; this can be used,
 *                  for instance, for advanced error analysis and reporting)
 *    value_stack: (array: the current parser LALR/LR internal `$$` value stack; this can be used,
 *                  for instance, for advanced error analysis and reporting)
 *    location_stack: (array: the current parser LALR/LR internal location stack; this can be used,
 *                  for instance, for advanced error analysis and reporting)
 *    yy:          (object: the current parser internal "shared state" `yy`
 *                  as is also available in the rule actions; this can be used,
 *                  for instance, for advanced error analysis and reporting)
 *    lexer:       (reference to the current lexer instance used by the parser)
 *    parser:      (reference to the current parser instance)
 *  }
 *
 * while `this` will reference the current parser instance.
 *
 * When `parseError` is invoked by the lexer, `this` will still reference the related *parser*
 * instance, while these additional `hash` fields will also be provided:
 *
 *  {
 *    lexer:       (reference to the current lexer instance which reported the error)
 *  }
 *
 * When `parseError` is invoked by the parser due to a **JavaScript exception** being fired
 * from either the parser or lexer, `this` will still reference the related *parser*
 * instance, while these additional `hash` fields will also be provided:
 *
 *  {
 *    exception:   (reference to the exception thrown)
 *  }
 *
 * Please do note that in the latter situation, the `expected` field will be omitted as
 * this type of failure is assumed not to be due to *parse errors* but rather due to user
 * action code in either parser or lexer failing unexpectedly.
 *
 * ---
 *
 * You can specify parser options by setting / modifying the `.yy` object of your Parser instance.
 * These options are available:
 *
 * ### options which are global for all parser instances
 *
 *  Parser.pre_parse: function(yy)
 *                 optional: you can specify a pre_parse() function in the chunk following
 *                 the grammar, i.e. after the last `%%`.
 *  Parser.post_parse: function(yy, retval, parseInfo) { return retval; }
 *                 optional: you can specify a post_parse() function in the chunk following
 *                 the grammar, i.e. after the last `%%`. When it does not return any value,
 *                 the parser will return the original `retval`.
 *
 * ### options which can be set up per parser instance
 *
 *  yy: {
 *      pre_parse:  function(yy)
 *                 optional: is invoked before the parse cycle starts (and before the first
 *                 invocation of `lex()`) but immediately after the invocation of
 *                 `parser.pre_parse()`).
 *      post_parse: function(yy, retval, parseInfo) { return retval; }
 *                 optional: is invoked when the parse terminates due to success ('accept')
 *                 or failure (even when exceptions are thrown).
 *                 `retval` contains the return value to be produced by `Parser.parse()`;
 *                 this function can override the return value by returning another.
 *                 When it does not return any value, the parser will return the original
 *                 `retval`.
 *                 This function is invoked immediately before `parser.post_parse()`.
 *
 *      parseError: function(str, hash, ExceptionClass)
 *                 optional: overrides the default `parseError` function.
 *      quoteName: function(name),
 *                 optional: overrides the default `quoteName` function.
 *  }
 *
 *  parser.lexer.options: {
 *      pre_lex:  function()
 *                 optional: is invoked before the lexer is invoked to produce another token.
 *                 `this` refers to the Lexer object.
 *      post_lex: function(token) { return token; }
 *                 optional: is invoked when the lexer has produced a token `token`;
 *                 this function can override the returned token value by returning another.
 *                 When it does not return any (truthy) value, the lexer will return
 *                 the original `token`.
 *                 `this` refers to the Lexer object.
 *
 *      ranges: boolean
 *                 optional: `true` ==> token location info will include a .range[] member.
 *      flex: boolean
 *                 optional: `true` ==> flex-like lexing behaviour where the rules are tested
 *                 exhaustively to find the longest match.
 *      backtrack_lexer: boolean
 *                 optional: `true` ==> lexer regexes are tested in order and for invoked;
 *                 the lexer terminates the scan when a token is returned by the action code.
 *      xregexp: boolean
 *                 optional: `true` ==> lexer rule regexes are "extended regex format" requiring the
 *                 `XRegExp` library. When this `%option` has not been specified at compile time, all lexer
 *                 rule regexes have been written as standard JavaScript RegExp expressions.
 *  }
 */

        
    
            var parser = (function () {


// See also:
// http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript/#35881508
// but we keep the prototype.constructor and prototype.name assignment lines too for compatibility
// with userland code which might access the derived class in a 'classic' way.
function JisonParserError(msg, hash) {
    Object.defineProperty(this, 'name', {
        enumerable: false,
        writable: false,
        value: 'JisonParserError'
    });

    if (msg == null) msg = '???';

    Object.defineProperty(this, 'message', {
        enumerable: false,
        writable: true,
        value: msg
    });

    this.hash = hash;

    var stacktrace;
    if (hash && hash.exception instanceof Error) {
        var ex2 = hash.exception;
        this.message = ex2.message || msg;
        stacktrace = ex2.stack;
    }
    if (!stacktrace) {
        if (Error.hasOwnProperty('captureStackTrace')) {        // V8/Chrome engine
            Error.captureStackTrace(this, this.constructor);
        } else {
            stacktrace = (new Error(msg)).stack;
        }
    }
    if (stacktrace) {
        Object.defineProperty(this, 'stack', {
            enumerable: false,
            writable: false,
            value: stacktrace
        });
    }
}

if (typeof Object.setPrototypeOf === 'function') {
    Object.setPrototypeOf(JisonParserError.prototype, Error.prototype);
} else {
    JisonParserError.prototype = Object.create(Error.prototype);
}
JisonParserError.prototype.constructor = JisonParserError;
JisonParserError.prototype.name = 'JisonParserError';




        // helper: reconstruct the productions[] table
        function bp(s) {
            var rv = [];
            var p = s.pop;
            var r = s.rule;
            for (var i = 0, l = p.length; i < l; i++) {
                rv.push([
                    p[i],
                    r[i]
                ]);
            }
            return rv;
        }
    


        // helper: reconstruct the defaultActions[] table
        function bda(s) {
            var rv = {};
            var d = s.idx;
            var g = s.goto;
            for (var i = 0, l = d.length; i < l; i++) {
                var j = d[i];
                rv[j] = g[i];
            }
            return rv;
        }
    


        // helper: reconstruct the 'goto' table
        function bt(s) {
            var rv = [];
            var d = s.len;
            var y = s.symbol;
            var t = s.type;
            var a = s.state;
            var m = s.mode;
            var g = s.goto;
            for (var i = 0, l = d.length; i < l; i++) {
                var n = d[i];
                var q = {};
                for (var j = 0; j < n; j++) {
                    var z = y.shift();
                    switch (t.shift()) {
                    case 2:
                        q[z] = [
                            m.shift(),
                            g.shift()
                        ];
                        break;

                    case 0:
                        q[z] = a.shift();
                        break;

                    default:
                        // type === 1: accept
                        q[z] = [
                            3
                        ];
                    }
                }
                rv.push(q);
            }
            return rv;
        }
    


        // helper: runlength encoding with increment step: code, length: step (default step = 0)
        // `this` references an array
        function s(c, l, a) {
            a = a || 0;
            for (var i = 0; i < l; i++) {
                this.push(c);
                c += a;
            }
        }

        // helper: duplicate sequence from *relative* offset and length.
        // `this` references an array
        function c(i, l) {
            i = this.length - i;
            for (l += i; i < l; i++) {
                this.push(this[i]);
            }
        }

        // helper: unpack an array using helpers and data, all passed in an array argument 'a'.
        function u(a) {
            var rv = [];
            for (var i = 0, l = a.length; i < l; i++) {
                var e = a[i];
                // Is this entry a helper function?
                if (typeof e === 'function') {
                    i++;
                    e.apply(rv, a[i]);
                } else {
                    rv.push(e);
                }
            }
            return rv;
        }
    

var parser = {
    // Code Generator Information Report
    // ---------------------------------
    //
    // Options:
    //
    //   default action mode: ............. ["classic","merge"]
    //   test-compile action mode: ........ "parser:*,lexer:*"
    //   try..catch: ...................... true
    //   default resolve on conflict: ..... true
    //   on-demand look-ahead: ............ false
    //   error recovery token skip maximum: 3
    //   yyerror in parse actions is: ..... NOT recoverable,
    //   yyerror in lexer actions and other non-fatal lexer are:
    //   .................................. NOT recoverable,
    //   debug grammar/output: ............ false
    //   has partial LR conflict upgrade:   true
    //   rudimentary token-stack support:   false
    //   parser table compression mode: ... 2
    //   export debug tables: ............. false
    //   export *all* tables: ............. false
    //   module type: ..................... commonjs
    //   parser engine type: .............. lalr
    //   output main() in the module: ..... true
    //   has user-specified main(): ....... false
    //   has user-specified require()/import modules for main():
    //   .................................. false
    //   number of expected conflicts: .... 0
    //
    //
    // Parser Analysis flags:
    //
    //   no significant actions (parser is a language matcher only):
    //   .................................. false
    //   uses yyleng: ..................... false
    //   uses yylineno: ................... false
    //   uses yytext: ..................... false
    //   uses yylloc: ..................... false
    //   uses ParseError API: ............. false
    //   uses YYERROR: .................... false
    //   uses YYRECOVERING: ............... false
    //   uses YYERROK: .................... false
    //   uses YYCLEARIN: .................. false
    //   tracks rule values: .............. true
    //   assigns rule values: ............. true
    //   uses location tracking: .......... false
    //   assigns location: ................ false
    //   uses yystack: .................... false
    //   uses yysstack: ................... false
    //   uses yysp: ....................... true
    //   uses yyrulelength: ............... false
    //   uses yyMergeLocationInfo API: .... false
    //   has error recovery: .............. false
    //   has error reporting: ............. false
    //
    // --------- END OF REPORT -----------

trace: function no_op_trace() { },
JisonParserError: JisonParserError,
yy: {},
options: {
  type: "lalr",
  hasPartialLrUpgradeOnConflict: true,
  errorRecoveryTokenDiscardCount: 3
},
symbols_: {
  "$accept": 0,
  "$end": 1,
  "ADD": 3,
  "ANGLE": 16,
  "CHS": 22,
  "COMMA": 14,
  "CSS_CPROP": 13,
  "CSS_VAR": 12,
  "DIV": 6,
  "EMS": 20,
  "EOF": 1,
  "EXS": 21,
  "FREQ": 18,
  "LENGTH": 15,
  "LPAREN": 7,
  "MUL": 5,
  "NESTED_CALC": 9,
  "NUMBER": 11,
  "PERCENTAGE": 28,
  "PREFIX": 10,
  "REMS": 23,
  "RES": 19,
  "RPAREN": 8,
  "SUB": 4,
  "TIME": 17,
  "VHS": 24,
  "VMAXS": 27,
  "VMINS": 26,
  "VWS": 25,
  "css_value": 33,
  "css_variable": 32,
  "error": 2,
  "expression": 29,
  "math_expression": 30,
  "value": 31
},
terminals_: {
  1: "EOF",
  2: "error",
  3: "ADD",
  4: "SUB",
  5: "MUL",
  6: "DIV",
  7: "LPAREN",
  8: "RPAREN",
  9: "NESTED_CALC",
  10: "PREFIX",
  11: "NUMBER",
  12: "CSS_VAR",
  13: "CSS_CPROP",
  14: "COMMA",
  15: "LENGTH",
  16: "ANGLE",
  17: "TIME",
  18: "FREQ",
  19: "RES",
  20: "EMS",
  21: "EXS",
  22: "CHS",
  23: "REMS",
  24: "VHS",
  25: "VWS",
  26: "VMINS",
  27: "VMAXS",
  28: "PERCENTAGE"
},
TERROR: 2,
    EOF: 1,

    // internals: defined here so the object *structure* doesn't get modified by parse() et al,
    // thus helping JIT compilers like Chrome V8.
    originalQuoteName: null,
    originalParseError: null,
    cleanupAfterParse: null,
    constructParseErrorInfo: null,
    yyMergeLocationInfo: null,

    __reentrant_call_depth: 0,      // INTERNAL USE ONLY
    __error_infos: [],              // INTERNAL USE ONLY: the set of parseErrorInfo objects created since the last cleanup
    __error_recovery_infos: [],     // INTERNAL USE ONLY: the set of parseErrorInfo objects created since the last cleanup

    // APIs which will be set up depending on user action code analysis:
    //yyRecovering: 0,
    //yyErrOk: 0,
    //yyClearIn: 0,

    // Helper APIs
    // -----------

    // Helper function which can be overridden by user code later on: put suitable quotes around
    // literal IDs in a description string.
    quoteName: function parser_quoteName(id_str) {
        return '"' + id_str + '"';
    },

    // Return the name of the given symbol (terminal or non-terminal) as a string, when available.
    //
    // Return NULL when the symbol is unknown to the parser.
    getSymbolName: function parser_getSymbolName(symbol) {
        if (this.terminals_[symbol]) {
            return this.terminals_[symbol];
        }

        // Otherwise... this might refer to a RULE token i.e. a non-terminal: see if we can dig that one up.
        //
        // An example of this may be where a rule's action code contains a call like this:
        //
        //      parser.getSymbolName(#$)
        //
        // to obtain a human-readable name of the current grammar rule.
        var s = this.symbols_;
        for (var key in s) {
            if (s[key] === symbol) {
                return key;
            }
        }
        return null;
    },

    // Return a more-or-less human-readable description of the given symbol, when available,
    // or the symbol itself, serving as its own 'description' for lack of something better to serve up.
    //
    // Return NULL when the symbol is unknown to the parser.
    describeSymbol: function parser_describeSymbol(symbol) {
        if (symbol !== this.EOF && this.terminal_descriptions_ && this.terminal_descriptions_[symbol]) {
            return this.terminal_descriptions_[symbol];
        }
        else if (symbol === this.EOF) {
            return 'end of input';
        }
        var id = this.getSymbolName(symbol);
        if (id) {
            return this.quoteName(id);
        }
        return null;
    },

    // Produce a (more or less) human-readable list of expected tokens at the point of failure.
    //
    // The produced list may contain token or token set descriptions instead of the tokens
    // themselves to help turning this output into something that easier to read by humans
    // unless `do_not_describe` parameter is set, in which case a list of the raw, *numeric*,
    // expected terminals and nonterminals is produced.
    //
    // The returned list (array) will not contain any duplicate entries.
    collect_expected_token_set: function parser_collect_expected_token_set(state, do_not_describe) {
        var TERROR = this.TERROR;
        var tokenset = [];
        var check = {};
        // Has this (error?) state been outfitted with a custom expectations description text for human consumption?
        // If so, use that one instead of the less palatable token set.
        if (!do_not_describe && this.state_descriptions_ && this.state_descriptions_[state]) {
            return [
                this.state_descriptions_[state]
            ];
        }
        for (var p in this.table[state]) {
            p = +p;
            if (p !== TERROR) {
                var d = do_not_describe ? p : this.describeSymbol(p);
                if (d && !check[d]) {
                    tokenset.push(d);
                    check[d] = true;        // Mark this token description as already mentioned to prevent outputting duplicate entries.
                }
            }
        }
        return tokenset;
    },
productions_: bp({
  pop: u([
  29,
  s,
  [30, 10],
  31,
  31,
  32,
  32,
  s,
  [33, 15]
]),
  rule: u([
  2,
  s,
  [3, 5],
  4,
  7,
  s,
  [1, 4],
  2,
  4,
  6,
  s,
  [1, 14],
  2
])
}),
performAction: function parser__PerformAction(yystate /* action[1] */, yysp, yyvstack) {

          /* this == yyval */

          // the JS engine itself can go and remove these statements when `yy` turns out to be unused in any action code!
          var yy = this.yy;
          var yyparser = yy.parser;
          var yylexer = yy.lexer;

          

          switch (yystate) {
case 0:
    /*! Production::    $accept : expression $end */

    // default action (generated by JISON mode classic/merge :: 1,VT,VA,-,-,-,-,-,-):
    this.$ = yyvstack[yysp - 1];
    // END of default action (generated by JISON mode classic/merge :: 1,VT,VA,-,-,-,-,-,-)
    break;

case 1:
    /*! Production::    expression : math_expression EOF */

    // default action (generated by JISON mode classic/merge :: 2,VT,VA,-,-,-,-,-,-):
    this.$ = yyvstack[yysp - 1];
    // END of default action (generated by JISON mode classic/merge :: 2,VT,VA,-,-,-,-,-,-)
    
    
    return yyvstack[yysp - 1];
    break;

case 2:
    /*! Production::    math_expression : math_expression ADD math_expression */
case 3:
    /*! Production::    math_expression : math_expression SUB math_expression */
case 4:
    /*! Production::    math_expression : math_expression MUL math_expression */
case 5:
    /*! Production::    math_expression : math_expression DIV math_expression */

    this.$ = { type: 'MathExpression', operator: yyvstack[yysp - 1], left: yyvstack[yysp - 2], right: yyvstack[yysp] };
    break;

case 6:
    /*! Production::    math_expression : LPAREN math_expression RPAREN */

    this.$ = yyvstack[yysp - 1];
    break;

case 7:
    /*! Production::    math_expression : NESTED_CALC LPAREN math_expression RPAREN */

    this.$ = { type: 'Calc', value: yyvstack[yysp - 1] };
    break;

case 8:
    /*! Production::    math_expression : SUB PREFIX SUB NESTED_CALC LPAREN math_expression RPAREN */

    this.$ = { type: 'Calc', value: yyvstack[yysp - 1], prefix: yyvstack[yysp - 5] };
    break;

case 9:
    /*! Production::    math_expression : css_variable */
case 10:
    /*! Production::    math_expression : css_value */
case 11:
    /*! Production::    math_expression : value */

    this.$ = yyvstack[yysp];
    break;

case 12:
    /*! Production::    value : NUMBER */

    this.$ = { type: 'Value', value: parseFloat(yyvstack[yysp]) };
    break;

case 13:
    /*! Production::    value : SUB NUMBER */

    this.$ = { type: 'Value', value: parseFloat(yyvstack[yysp]) * -1 };
    break;

case 14:
    /*! Production::    css_variable : CSS_VAR LPAREN CSS_CPROP RPAREN */

    this.$ = { type: 'CssVariable', value: yyvstack[yysp - 1] };
    break;

case 15:
    /*! Production::    css_variable : CSS_VAR LPAREN CSS_CPROP COMMA math_expression RPAREN */

    this.$ = { type: 'CssVariable', value: yyvstack[yysp - 3], fallback: yyvstack[yysp - 1] };
    break;

case 16:
    /*! Production::    css_value : LENGTH */

    this.$ = { type: 'LengthValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };
    break;

case 17:
    /*! Production::    css_value : ANGLE */

    this.$ = { type: 'AngleValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };
    break;

case 18:
    /*! Production::    css_value : TIME */

    this.$ = { type: 'TimeValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };
    break;

case 19:
    /*! Production::    css_value : FREQ */

    this.$ = { type: 'FrequencyValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };
    break;

case 20:
    /*! Production::    css_value : RES */

    this.$ = { type: 'ResolutionValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };
    break;

case 21:
    /*! Production::    css_value : EMS */

    this.$ = { type: 'EmValue', value: parseFloat(yyvstack[yysp]), unit: 'em' };
    break;

case 22:
    /*! Production::    css_value : EXS */

    this.$ = { type: 'ExValue', value: parseFloat(yyvstack[yysp]), unit: 'ex' };
    break;

case 23:
    /*! Production::    css_value : CHS */

    this.$ = { type: 'ChValue', value: parseFloat(yyvstack[yysp]), unit: 'ch' };
    break;

case 24:
    /*! Production::    css_value : REMS */

    this.$ = { type: 'RemValue', value: parseFloat(yyvstack[yysp]), unit: 'rem' };
    break;

case 25:
    /*! Production::    css_value : VHS */

    this.$ = { type: 'VhValue', value: parseFloat(yyvstack[yysp]), unit: 'vh' };
    break;

case 26:
    /*! Production::    css_value : VWS */

    this.$ = { type: 'VwValue', value: parseFloat(yyvstack[yysp]), unit: 'vw' };
    break;

case 27:
    /*! Production::    css_value : VMINS */

    this.$ = { type: 'VminValue', value: parseFloat(yyvstack[yysp]), unit: 'vmin' };
    break;

case 28:
    /*! Production::    css_value : VMAXS */

    this.$ = { type: 'VmaxValue', value: parseFloat(yyvstack[yysp]), unit: 'vmax' };
    break;

case 29:
    /*! Production::    css_value : PERCENTAGE */

    this.$ = { type: 'PercentageValue', value: parseFloat(yyvstack[yysp]), unit: '%' };
    break;

case 30:
    /*! Production::    css_value : SUB css_value */

    var prev = yyvstack[yysp]; prev.value *= -1; this.$ = prev;
    break;

}
},
table: bt({
  len: u([
  24,
  1,
  5,
  23,
  1,
  18,
  s,
  [0, 3],
  1,
  s,
  [0, 16],
  s,
  [23, 4],
  c,
  [28, 3],
  0,
  0,
  16,
  1,
  6,
  6,
  s,
  [0, 3],
  5,
  1,
  2,
  c,
  [37, 3],
  c,
  [20, 3],
  5,
  0,
  0
]),
  symbol: u([
  4,
  7,
  9,
  11,
  12,
  s,
  [15, 19, 1],
  1,
  1,
  s,
  [3, 4, 1],
  c,
  [30, 19],
  c,
  [29, 4],
  7,
  4,
  10,
  11,
  c,
  [22, 14],
  c,
  [19, 3],
  c,
  [43, 22],
  c,
  [23, 69],
  c,
  [139, 4],
  8,
  c,
  [51, 24],
  4,
  c,
  [138, 15],
  13,
  c,
  [186, 5],
  8,
  c,
  [6, 6],
  c,
  [5, 5],
  9,
  8,
  14,
  c,
  [159, 47],
  c,
  [60, 10]
]),
  type: u([
  s,
  [2, 19],
  s,
  [0, 5],
  1,
  s,
  [2, 24],
  s,
  [0, 4],
  c,
  [22, 19],
  c,
  [43, 42],
  c,
  [23, 70],
  c,
  [28, 25],
  c,
  [45, 25],
  c,
  [113, 54]
]),
  state: u([
  1,
  2,
  8,
  6,
  7,
  30,
  c,
  [4, 3],
  33,
  37,
  c,
  [5, 3],
  38,
  c,
  [4, 3],
  39,
  c,
  [4, 3],
  40,
  c,
  [4, 3],
  42,
  c,
  [21, 4],
  50,
  c,
  [5, 3],
  51,
  c,
  [4, 3]
]),
  mode: u([
  s,
  [1, 179],
  s,
  [2, 3],
  c,
  [5, 5],
  c,
  [6, 4],
  s,
  [1, 57]
]),
  goto: u([
  5,
  3,
  4,
  24,
  s,
  [9, 15, 1],
  s,
  [25, 5, 1],
  c,
  [24, 19],
  31,
  35,
  32,
  34,
  c,
  [18, 14],
  36,
  c,
  [38, 19],
  c,
  [19, 57],
  c,
  [118, 4],
  41,
  c,
  [24, 19],
  43,
  35,
  c,
  [16, 14],
  44,
  s,
  [2, 3],
  28,
  29,
  2,
  s,
  [3, 3],
  28,
  29,
  3,
  c,
  [53, 4],
  s,
  [45, 5, 1],
  c,
  [100, 42],
  52,
  c,
  [5, 4],
  53
])
}),
defaultActions: bda({
  idx: u([
  6,
  7,
  8,
  s,
  [10, 16, 1],
  33,
  34,
  39,
  40,
  41,
  45,
  47,
  52,
  53
]),
  goto: u([
  9,
  10,
  11,
  s,
  [16, 14, 1],
  12,
  1,
  30,
  13,
  s,
  [4, 4, 1],
  14,
  15,
  8
])
}),
parseError: function parseError(str, hash, ExceptionClass) {
    if (hash.recoverable) {
        if (typeof this.trace === 'function') {
            this.trace(str);
        }
        hash.destroy();             // destroy... well, *almost*!
    } else {
        if (typeof this.trace === 'function') {
            this.trace(str);
        }
        if (!ExceptionClass) {
            ExceptionClass = this.JisonParserError;
        }
        throw new ExceptionClass(str, hash);
    }
},
parse: function parse(input) {
    var self = this;
    var stack = new Array(128);         // token stack: stores token which leads to state at the same index (column storage)
    var sstack = new Array(128);        // state stack: stores states (column storage)

    var vstack = new Array(128);        // semantic value stack

    var table = this.table;
    var sp = 0;                         // 'stack pointer': index into the stacks


    


    var symbol = 0;



    var TERROR = this.TERROR;
    var EOF = this.EOF;
    var ERROR_RECOVERY_TOKEN_DISCARD_COUNT = (this.options.errorRecoveryTokenDiscardCount | 0) || 3;
    var NO_ACTION = [0, 54 /* === table.length :: ensures that anyone using this new state will fail dramatically! */];

    var lexer;
    if (this.__lexer__) {
        lexer = this.__lexer__;
    } else {
        lexer = this.__lexer__ = Object.create(this.lexer);
    }

    var sharedState_yy = {
        parseError: undefined,
        quoteName: undefined,
        lexer: undefined,
        parser: undefined,
        pre_parse: undefined,
        post_parse: undefined,
        pre_lex: undefined,
        post_lex: undefined      // WARNING: must be written this way for the code expanders to work correctly in both ES5 and ES6 modes!
    };

    var ASSERT;
    if (typeof assert !== 'function') {
        ASSERT = function JisonAssert(cond, msg) {
            if (!cond) {
                throw new Error('assertion failed: ' + (msg || '***'));
            }
        };
    } else {
        ASSERT = assert;
    }

    this.yyGetSharedState = function yyGetSharedState() {
        return sharedState_yy;
    };








    function shallow_copy_noclobber(dst, src) {
        for (var k in src) {
            if (typeof dst[k] === 'undefined' && Object.prototype.hasOwnProperty.call(src, k)) {
                dst[k] = src[k];
            }
        }
    }

    // copy state
    shallow_copy_noclobber(sharedState_yy, this.yy);

    sharedState_yy.lexer = lexer;
    sharedState_yy.parser = this;






    // Does the shared state override the default `parseError` that already comes with this instance?
    if (typeof sharedState_yy.parseError === 'function') {
        this.parseError = function parseErrorAlt(str, hash, ExceptionClass) {
            if (!ExceptionClass) {
                ExceptionClass = this.JisonParserError;
            }
            return sharedState_yy.parseError.call(this, str, hash, ExceptionClass);
        };
    } else {
        this.parseError = this.originalParseError;
    }

    // Does the shared state override the default `quoteName` that already comes with this instance?
    if (typeof sharedState_yy.quoteName === 'function') {
        this.quoteName = function quoteNameAlt(id_str) {
            return sharedState_yy.quoteName.call(this, id_str);
        };
    } else {
        this.quoteName = this.originalQuoteName;
    }

    // set up the cleanup function; make it an API so that external code can re-use this one in case of
    // calamities or when the `%options no-try-catch` option has been specified for the grammar, in which
    // case this parse() API method doesn't come with a `finally { ... }` block any more!
    //
    // NOTE: as this API uses parse() as a closure, it MUST be set again on every parse() invocation,
    //       or else your `sharedState`, etc. references will be *wrong*!
    this.cleanupAfterParse = function parser_cleanupAfterParse(resultValue, invoke_post_methods, do_not_nuke_errorinfos) {
        var rv;

        if (invoke_post_methods) {
            var hash;

            if (sharedState_yy.post_parse || this.post_parse) {
                // create an error hash info instance: we re-use this API in a **non-error situation**
                // as this one delivers all parser internals ready for access by userland code.
                hash = this.constructParseErrorInfo(null /* no error! */, null /* no exception! */, null, false);
            }

            if (sharedState_yy.post_parse) {
                rv = sharedState_yy.post_parse.call(this, sharedState_yy, resultValue, hash);
                if (typeof rv !== 'undefined') resultValue = rv;
            }
            if (this.post_parse) {
                rv = this.post_parse.call(this, sharedState_yy, resultValue, hash);
                if (typeof rv !== 'undefined') resultValue = rv;
            }

            // cleanup:
            if (hash && hash.destroy) {
                hash.destroy();
            }
        }

        if (this.__reentrant_call_depth > 1) return resultValue;        // do not (yet) kill the sharedState when this is a reentrant run.

        // clean up the lingering lexer structures as well:
        if (lexer.cleanupAfterLex) {
            lexer.cleanupAfterLex(do_not_nuke_errorinfos);
        }

        // prevent lingering circular references from causing memory leaks:
        if (sharedState_yy) {
            sharedState_yy.lexer = undefined;
            sharedState_yy.parser = undefined;
            if (lexer.yy === sharedState_yy) {
                lexer.yy = undefined;
            }
        }
        sharedState_yy = undefined;
        this.parseError = this.originalParseError;
        this.quoteName = this.originalQuoteName;

        // nuke the vstack[] array at least as that one will still reference obsoleted user values.
        // To be safe, we nuke the other internal stack columns as well...
        stack.length = 0;               // fastest way to nuke an array without overly bothering the GC
        sstack.length = 0;

        vstack.length = 0;
        sp = 0;

        // nuke the error hash info instances created during this run.
        // Userland code must COPY any data/references
        // in the error hash instance(s) it is more permanently interested in.
        if (!do_not_nuke_errorinfos) {
            for (var i = this.__error_infos.length - 1; i >= 0; i--) {
                var el = this.__error_infos[i];
                if (el && typeof el.destroy === 'function') {
                    el.destroy();
                }
            }
            this.__error_infos.length = 0;


        }

        return resultValue;
    };






































































































































    // NOTE: as this API uses parse() as a closure, it MUST be set again on every parse() invocation,
    //       or else your `lexer`, `sharedState`, etc. references will be *wrong*!
    this.constructParseErrorInfo = function parser_constructParseErrorInfo(msg, ex, expected, recoverable) {
        var pei = {
            errStr: msg,
            exception: ex,
            text: lexer.match,
            value: lexer.yytext,
            token: this.describeSymbol(symbol) || symbol,
            token_id: symbol,
            line: lexer.yylineno,

            expected: expected,
            recoverable: recoverable,
            state: state,
            action: action,
            new_state: newState,
            symbol_stack: stack,
            state_stack: sstack,
            value_stack: vstack,

            stack_pointer: sp,
            yy: sharedState_yy,
            lexer: lexer,
            parser: this,

            // and make sure the error info doesn't stay due to potential
            // ref cycle via userland code manipulations.
            // These would otherwise all be memory leak opportunities!
            //
            // Note that only array and object references are nuked as those
            // constitute the set of elements which can produce a cyclic ref.
            // The rest of the members is kept intact as they are harmless.
            destroy: function destructParseErrorInfo() {
                // remove cyclic references added to error info:
                // info.yy = null;
                // info.lexer = null;
                // info.value = null;
                // info.value_stack = null;
                // ...
                var rec = !!this.recoverable;
                for (var key in this) {
                    if (this.hasOwnProperty(key) && typeof key === 'object') {
                        this[key] = undefined;
                    }
                }
                this.recoverable = rec;
            }
        };
        // track this instance so we can `destroy()` it once we deem it superfluous and ready for garbage collection!
        this.__error_infos.push(pei);
        return pei;
    };













    function getNonTerminalFromCode(symbol) {
        var tokenName = self.getSymbolName(symbol);
        if (!tokenName) {
            tokenName = symbol;
        }
        return tokenName;
    }


    function stdLex() {
        var token = lexer.lex();
        // if token isn't its numeric value, convert
        if (typeof token !== 'number') {
            token = self.symbols_[token] || token;
        }

        return token || EOF;
    }

    function fastLex() {
        var token = lexer.fastLex();
        // if token isn't its numeric value, convert
        if (typeof token !== 'number') {
            token = self.symbols_[token] || token;
        }

        return token || EOF;
    }

    var lex = stdLex;


    var state, action, r, t;
    var yyval = {
        $: true,
        _$: undefined,
        yy: sharedState_yy
    };
    var p;
    var yyrulelen;
    var this_production;
    var newState;
    var retval = false;


    try {
        this.__reentrant_call_depth++;

        lexer.setInput(input, sharedState_yy);

        // NOTE: we *assume* no lexer pre/post handlers are set up *after* 
        // this initial `setInput()` call: hence we can now check and decide
        // whether we'll go with the standard, slower, lex() API or the
        // `fast_lex()` one:
        if (typeof lexer.canIUse === 'function') {
            var lexerInfo = lexer.canIUse();
            if (lexerInfo.fastLex && typeof fastLex === 'function') {
                lex = fastLex;
            }
        } 



        vstack[sp] = null;
        sstack[sp] = 0;
        stack[sp] = 0;
        ++sp;





        if (this.pre_parse) {
            this.pre_parse.call(this, sharedState_yy);
        }
        if (sharedState_yy.pre_parse) {
            sharedState_yy.pre_parse.call(this, sharedState_yy);
        }

        newState = sstack[sp - 1];
        for (;;) {
            // retrieve state number from top of stack
            state = newState;               // sstack[sp - 1];

            // use default actions if available
            if (this.defaultActions[state]) {
                action = 2;
                newState = this.defaultActions[state];
            } else {
                // The single `==` condition below covers both these `===` comparisons in a single
                // operation:
                //
                //     if (symbol === null || typeof symbol === 'undefined') ...
                if (!symbol) {
                    symbol = lex();
                }
                // read action for current state and first input
                t = (table[state] && table[state][symbol]) || NO_ACTION;
                newState = t[1];
                action = t[0];











                // handle parse error
                if (!action) {
                    var errStr;
                    var errSymbolDescr = (this.describeSymbol(symbol) || symbol);
                    var expected = this.collect_expected_token_set(state);

                    // Report error
                    if (typeof lexer.yylineno === 'number') {
                        errStr = 'Parse error on line ' + (lexer.yylineno + 1) + ': ';
                    } else {
                        errStr = 'Parse error: ';
                    }
                    if (typeof lexer.showPosition === 'function') {
                        errStr += '\n' + lexer.showPosition(79 - 10, 10) + '\n';
                    }
                    if (expected.length) {
                        errStr += 'Expecting ' + expected.join(', ') + ', got unexpected ' + errSymbolDescr;
                    } else {
                        errStr += 'Unexpected ' + errSymbolDescr;
                    }
                    // we cannot recover from the error!
                    p = this.constructParseErrorInfo(errStr, null, expected, false);
                    r = this.parseError(p.errStr, p, this.JisonParserError);
                    if (typeof r !== 'undefined') {
                        retval = r;
                    }
                    break;
                }


            }










            switch (action) {
            // catch misc. parse failures:
            default:
                // this shouldn't happen, unless resolve defaults are off
                if (action instanceof Array) {
                    p = this.constructParseErrorInfo('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol, null, null, false);
                    r = this.parseError(p.errStr, p, this.JisonParserError);
                    if (typeof r !== 'undefined') {
                        retval = r;
                    }
                    break;
                }
                // Another case of better safe than sorry: in case state transitions come out of another error recovery process
                // or a buggy LUT (LookUp Table):
                p = this.constructParseErrorInfo('Parsing halted. No viable error recovery approach available due to internal system failure.', null, null, false);
                r = this.parseError(p.errStr, p, this.JisonParserError);
                if (typeof r !== 'undefined') {
                    retval = r;
                }
                break;

            // shift:
            case 1:
                stack[sp] = symbol;
                vstack[sp] = lexer.yytext;

                sstack[sp] = newState; // push state

                ++sp;
                symbol = 0;




                // Pick up the lexer details for the current symbol as that one is not 'look-ahead' any more:




                continue;

            // reduce:
            case 2:



                this_production = this.productions_[newState - 1];  // `this.productions_[]` is zero-based indexed while states start from 1 upwards...
                yyrulelen = this_production[1];










                r = this.performAction.call(yyval, newState, sp - 1, vstack);

                if (typeof r !== 'undefined') {
                    retval = r;
                    break;
                }

                // pop off stack
                sp -= yyrulelen;

                // don't overwrite the `symbol` variable: use a local var to speed things up:
                var ntsymbol = this_production[0];    // push nonterminal (reduce)
                stack[sp] = ntsymbol;
                vstack[sp] = yyval.$;

                // goto new state = table[STATE][NONTERMINAL]
                newState = table[sstack[sp - 1]][ntsymbol];
                sstack[sp] = newState;
                ++sp;









                continue;

            // accept:
            case 3:
                if (sp !== -2) {
                    retval = true;
                    // Return the `$accept` rule's `$$` result, if available.
                    //
                    // Also note that JISON always adds this top-most `$accept` rule (with implicit,
                    // default, action):
                    //
                    //     $accept: <startSymbol> $end
                    //                  %{ $$ = $1; @$ = @1; %}
                    //
                    // which, combined with the parse kernel's `$accept` state behaviour coded below,
                    // will produce the `$$` value output of the <startSymbol> rule as the parse result,
                    // IFF that result is *not* `undefined`. (See also the parser kernel code.)
                    //
                    // In code:
                    //
                    //                  %{
                    //                      @$ = @1;            // if location tracking support is included
                    //                      if (typeof $1 !== 'undefined')
                    //                          return $1;
                    //                      else
                    //                          return true;           // the default parse result if the rule actions don't produce anything
                    //                  %}
                    sp--;
                    if (typeof vstack[sp] !== 'undefined') {
                        retval = vstack[sp];
                    }
                }
                break;
            }

            // break out of loop: we accept or fail with error
            break;
        }
    } catch (ex) {
        // report exceptions through the parseError callback too, but keep the exception intact
        // if it is a known parser or lexer error which has been thrown by parseError() already:
        if (ex instanceof this.JisonParserError) {
            throw ex;
        }
        else if (lexer && typeof lexer.JisonLexerError === 'function' && ex instanceof lexer.JisonLexerError) {
            throw ex;
        }

        p = this.constructParseErrorInfo('Parsing aborted due to exception.', ex, null, false);
        retval = false;
        r = this.parseError(p.errStr, p, this.JisonParserError);
        if (typeof r !== 'undefined') {
            retval = r;
        }
    } finally {
        retval = this.cleanupAfterParse(retval, true, true);
        this.__reentrant_call_depth--;
    }   // /finally

    return retval;
}
};
parser.originalParseError = parser.parseError;
parser.originalQuoteName = parser.quoteName;
/* lexer generated by jison-lex 0.6.1-215 */

/*
 * Returns a Lexer object of the following structure:
 *
 *  Lexer: {
 *    yy: {}     The so-called "shared state" or rather the *source* of it;
 *               the real "shared state" `yy` passed around to
 *               the rule actions, etc. is a direct reference!
 *
 *               This "shared context" object was passed to the lexer by way of 
 *               the `lexer.setInput(str, yy)` API before you may use it.
 *
 *               This "shared context" object is passed to the lexer action code in `performAction()`
 *               so userland code in the lexer actions may communicate with the outside world 
 *               and/or other lexer rules' actions in more or less complex ways.
 *
 *  }
 *
 *  Lexer.prototype: {
 *    EOF: 1,
 *    ERROR: 2,
 *
 *    yy:        The overall "shared context" object reference.
 *
 *    JisonLexerError: function(msg, hash),
 *
 *    performAction: function lexer__performAction(yy, yyrulenumber, YY_START),
 *
 *               The function parameters and `this` have the following value/meaning:
 *               - `this`    : reference to the `lexer` instance. 
 *                               `yy_` is an alias for `this` lexer instance reference used internally.
 *
 *               - `yy`      : a reference to the `yy` "shared state" object which was passed to the lexer
 *                             by way of the `lexer.setInput(str, yy)` API before.
 *
 *                             Note:
 *                             The extra arguments you specified in the `%parse-param` statement in your
 *                             **parser** grammar definition file are passed to the lexer via this object
 *                             reference as member variables.
 *
 *               - `yyrulenumber`   : index of the matched lexer rule (regex), used internally.
 *
 *               - `YY_START`: the current lexer "start condition" state.
 *
 *    parseError: function(str, hash, ExceptionClass),
 *
 *    constructLexErrorInfo: function(error_message, is_recoverable),
 *               Helper function.
 *               Produces a new errorInfo 'hash object' which can be passed into `parseError()`.
 *               See it's use in this lexer kernel in many places; example usage:
 *
 *                   var infoObj = lexer.constructParseErrorInfo('fail!', true);
 *                   var retVal = lexer.parseError(infoObj.errStr, infoObj, lexer.JisonLexerError);
 *
 *    options: { ... lexer %options ... },
 *
 *    lex: function(),
 *               Produce one token of lexed input, which was passed in earlier via the `lexer.setInput()` API.
 *               You MAY use the additional `args...` parameters as per `%parse-param` spec of the **lexer** grammar:
 *               these extra `args...` are added verbatim to the `yy` object reference as member variables.
 *
 *               WARNING:
 *               Lexer's additional `args...` parameters (via lexer's `%parse-param`) MAY conflict with
 *               any attributes already added to `yy` by the **parser** or the jison run-time; 
 *               when such a collision is detected an exception is thrown to prevent the generated run-time 
 *               from silently accepting this confusing and potentially hazardous situation! 
 *
 *    cleanupAfterLex: function(do_not_nuke_errorinfos),
 *               Helper function.
 *
 *               This helper API is invoked when the **parse process** has completed: it is the responsibility
 *               of the **parser** (or the calling userland code) to invoke this method once cleanup is desired. 
 *
 *               This helper may be invoked by user code to ensure the internal lexer gets properly garbage collected.
 *
 *    setInput: function(input, [yy]),
 *
 *
 *    input: function(),
 *
 *
 *    unput: function(str),
 *
 *
 *    more: function(),
 *
 *
 *    reject: function(),
 *
 *
 *    less: function(n),
 *
 *
 *    pastInput: function(n),
 *
 *
 *    upcomingInput: function(n),
 *
 *
 *    showPosition: function(),
 *
 *
 *    test_match: function(regex_match_array, rule_index),
 *
 *
 *    next: function(),
 *
 *
 *    begin: function(condition),
 *
 *
 *    pushState: function(condition),
 *
 *
 *    popState: function(),
 *
 *
 *    topState: function(),
 *
 *
 *    _currentRules: function(),
 *
 *
 *    stateStackSize: function(),
 *
 *
 *    performAction: function(yy, yy_, yyrulenumber, YY_START),
 *
 *
 *    rules: [...],
 *
 *
 *    conditions: {associative list: name ==> set},
 *  }
 *
 *
 *  token location info (`yylloc`): {
 *    first_line: n,
 *    last_line: n,
 *    first_column: n,
 *    last_column: n,
 *    range: [start_number, end_number]
 *               (where the numbers are indexes into the input string, zero-based)
 *  }
 *
 * ---
 *
 * The `parseError` function receives a 'hash' object with these members for lexer errors:
 *
 *  {
 *    text:        (matched text)
 *    token:       (the produced terminal token, if any)
 *    token_id:    (the produced terminal token numeric ID, if any)
 *    line:        (yylineno)
 *    loc:         (yylloc)
 *    recoverable: (boolean: TRUE when the parser MAY have an error recovery rule
 *                  available for this particular error)
 *    yy:          (object: the current parser internal "shared state" `yy`
 *                  as is also available in the rule actions; this can be used,
 *                  for instance, for advanced error analysis and reporting)
 *    lexer:       (reference to the current lexer instance used by the parser)
 *  }
 *
 * while `this` will reference the current lexer instance.
 *
 * When `parseError` is invoked by the lexer, the default implementation will
 * attempt to invoke `yy.parser.parseError()`; when this callback is not provided
 * it will try to invoke `yy.parseError()` instead. When that callback is also not
 * provided, a `JisonLexerError` exception will be thrown containing the error
 * message and `hash`, as constructed by the `constructLexErrorInfo()` API.
 *
 * Note that the lexer's `JisonLexerError` error class is passed via the
 * `ExceptionClass` argument, which is invoked to construct the exception
 * instance to be thrown, so technically `parseError` will throw the object
 * produced by the `new ExceptionClass(str, hash)` JavaScript expression.
 *
 * ---
 *
 * You can specify lexer options by setting / modifying the `.options` object of your Lexer instance.
 * These options are available:
 *
 * (Options are permanent.)
 *  
 *  yy: {
 *      parseError: function(str, hash, ExceptionClass)
 *                 optional: overrides the default `parseError` function.
 *  }
 *
 *  lexer.options: {
 *      pre_lex:  function()
 *                 optional: is invoked before the lexer is invoked to produce another token.
 *                 `this` refers to the Lexer object.
 *      post_lex: function(token) { return token; }
 *                 optional: is invoked when the lexer has produced a token `token`;
 *                 this function can override the returned token value by returning another.
 *                 When it does not return any (truthy) value, the lexer will return
 *                 the original `token`.
 *                 `this` refers to the Lexer object.
 *
 * WARNING: the next set of options are not meant to be changed. They echo the abilities of
 * the lexer as per when it was compiled!
 *
 *      ranges: boolean
 *                 optional: `true` ==> token location info will include a .range[] member.
 *      flex: boolean
 *                 optional: `true` ==> flex-like lexing behaviour where the rules are tested
 *                 exhaustively to find the longest match.
 *      backtrack_lexer: boolean
 *                 optional: `true` ==> lexer regexes are tested in order and for invoked;
 *                 the lexer terminates the scan when a token is returned by the action code.
 *      xregexp: boolean
 *                 optional: `true` ==> lexer rule regexes are "extended regex format" requiring the
 *                 `XRegExp` library. When this %option has not been specified at compile time, all lexer
 *                 rule regexes have been written as standard JavaScript RegExp expressions.
 *  }
 */


var lexer = function() {
  /**
   * See also:
   * http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript/#35881508
   * but we keep the prototype.constructor and prototype.name assignment lines too for compatibility
   * with userland code which might access the derived class in a 'classic' way.
   *
   * @public
   * @constructor
   * @nocollapse
   */
  function JisonLexerError(msg, hash) {
    Object.defineProperty(this, 'name', {
      enumerable: false,
      writable: false,
      value: 'JisonLexerError'
    });

    if (msg == null)
      msg = '???';

    Object.defineProperty(this, 'message', {
      enumerable: false,
      writable: true,
      value: msg
    });

    this.hash = hash;
    var stacktrace;

    if (hash && hash.exception instanceof Error) {
      var ex2 = hash.exception;
      this.message = ex2.message || msg;
      stacktrace = ex2.stack;
    }

    if (!stacktrace) {
      if (Error.hasOwnProperty('captureStackTrace')) {
        // V8
        Error.captureStackTrace(this, this.constructor);
      } else {
        stacktrace = new Error(msg).stack;
      }
    }

    if (stacktrace) {
      Object.defineProperty(this, 'stack', {
        enumerable: false,
        writable: false,
        value: stacktrace
      });
    }
  }

  if (typeof Object.setPrototypeOf === 'function') {
    Object.setPrototypeOf(JisonLexerError.prototype, Error.prototype);
  } else {
    JisonLexerError.prototype = Object.create(Error.prototype);
  }

  JisonLexerError.prototype.constructor = JisonLexerError;
  JisonLexerError.prototype.name = 'JisonLexerError';

  var lexer = {
    
// Code Generator Information Report
// ---------------------------------
//
// Options:
//
//   backtracking: .................... false
//   location.ranges: ................. false
//   location line+column tracking: ... true
//
//
// Forwarded Parser Analysis flags:
//
//   uses yyleng: ..................... false
//   uses yylineno: ................... false
//   uses yytext: ..................... false
//   uses yylloc: ..................... false
//   uses lexer values: ............... true / true
//   location tracking: ............... false
//   location assignment: ............. false
//
//
// Lexer Analysis flags:
//
//   uses yyleng: ..................... ???
//   uses yylineno: ................... ???
//   uses yytext: ..................... ???
//   uses yylloc: ..................... ???
//   uses ParseError API: ............. ???
//   uses yyerror: .................... ???
//   uses location tracking & editing:  ???
//   uses more() API: ................. ???
//   uses unput() API: ................ ???
//   uses reject() API: ............... ???
//   uses less() API: ................. ???
//   uses display APIs pastInput(), upcomingInput(), showPosition():
//        ............................. ???
//   uses describeYYLLOC() API: ....... ???
//
// --------- END OF REPORT -----------

EOF: 1,
    ERROR: 2,

    // JisonLexerError: JisonLexerError,        /// <-- injected by the code generator

    // options: {},                             /// <-- injected by the code generator

    // yy: ...,                                 /// <-- injected by setInput()

    __currentRuleSet__: null,                   /// INTERNAL USE ONLY: internal rule set cache for the current lexer state  

    __error_infos: [],                          /// INTERNAL USE ONLY: the set of lexErrorInfo objects created since the last cleanup  
    __decompressed: false,                      /// INTERNAL USE ONLY: mark whether the lexer instance has been 'unfolded' completely and is now ready for use  
    done: false,                                /// INTERNAL USE ONLY  
    _backtrack: false,                          /// INTERNAL USE ONLY  
    _input: '',                                 /// INTERNAL USE ONLY  
    _more: false,                               /// INTERNAL USE ONLY  
    _signaled_error_token: false,               /// INTERNAL USE ONLY  
    conditionStack: [],                         /// INTERNAL USE ONLY; managed via `pushState()`, `popState()`, `topState()` and `stateStackSize()`  
    match: '',                                  /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks input which has been matched so far for the lexer token under construction. `match` is identical to `yytext` except that this one still contains the matched input string after `lexer.performAction()` has been invoked, where userland code MAY have changed/replaced the `yytext` value entirely!  
    matched: '',                                /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks entire input which has been matched so far  
    matches: false,                             /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks RE match result for last (successful) match attempt  
    yytext: '',                                 /// ADVANCED USE ONLY: tracks input which has been matched so far for the lexer token under construction; this value is transferred to the parser as the 'token value' when the parser consumes the lexer token produced through a call to the `lex()` API.  
    offset: 0,                                  /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks the 'cursor position' in the input string, i.e. the number of characters matched so far  
    yyleng: 0,                                  /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: length of matched input for the token under construction (`yytext`)  
    yylineno: 0,                                /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: 'line number' at which the token under construction is located  
    yylloc: null,                               /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks location info (lines + columns) for the token under construction  

    /**
     * INTERNAL USE: construct a suitable error info hash object instance for `parseError`.
     * 
     * @public
     * @this {RegExpLexer}
     */
    constructLexErrorInfo: function lexer_constructLexErrorInfo(msg, recoverable, show_input_position) {
      msg = '' + msg;

      // heuristic to determine if the error message already contains a (partial) source code dump
      // as produced by either `showPosition()` or `prettyPrintRange()`:
      if (show_input_position == undefined) {
        show_input_position = !(msg.indexOf('\n') > 0 && msg.indexOf('^') > 0);
      }

      if (this.yylloc && show_input_position) {
        if (typeof this.prettyPrintRange === 'function') {
          var pretty_src = this.prettyPrintRange(this.yylloc);

          if (!/\n\s*$/.test(msg)) {
            msg += '\n';
          }

          msg += '\n  Erroneous area:\n' + this.prettyPrintRange(this.yylloc);
        } else if (typeof this.showPosition === 'function') {
          var pos_str = this.showPosition();

          if (pos_str) {
            if (msg.length && msg[msg.length - 1] !== '\n' && pos_str[0] !== '\n') {
              msg += '\n' + pos_str;
            } else {
              msg += pos_str;
            }
          }
        }
      }

      /** @constructor */
      var pei = {
        errStr: msg,
        recoverable: !!recoverable,
        text: this.match,           // This one MAY be empty; userland code should use the `upcomingInput` API to obtain more text which follows the 'lexer cursor position'...  
        token: null,
        line: this.yylineno,
        loc: this.yylloc,
        yy: this.yy,
        lexer: this,

        /**
         * and make sure the error info doesn't stay due to potential
         * ref cycle via userland code manipulations.
         * These would otherwise all be memory leak opportunities!
         * 
         * Note that only array and object references are nuked as those
         * constitute the set of elements which can produce a cyclic ref.
         * The rest of the members is kept intact as they are harmless.
         * 
         * @public
         * @this {LexErrorInfo}
         */
        destroy: function destructLexErrorInfo() {
          // remove cyclic references added to error info:
          // info.yy = null;
          // info.lexer = null;
          // ...
          var rec = !!this.recoverable;

          for (var key in this) {
            if (this.hasOwnProperty(key) && typeof key === 'object') {
              this[key] = undefined;
            }
          }

          this.recoverable = rec;
        }
      };

      // track this instance so we can `destroy()` it once we deem it superfluous and ready for garbage collection!
      this.__error_infos.push(pei);

      return pei;
    },

    /**
     * handler which is invoked when a lexer error occurs.
     * 
     * @public
     * @this {RegExpLexer}
     */
    parseError: function lexer_parseError(str, hash, ExceptionClass) {
      if (!ExceptionClass) {
        ExceptionClass = this.JisonLexerError;
      }

      if (this.yy) {
        if (this.yy.parser && typeof this.yy.parser.parseError === 'function') {
          return this.yy.parser.parseError.call(this, str, hash, ExceptionClass) || this.ERROR;
        } else if (typeof this.yy.parseError === 'function') {
          return this.yy.parseError.call(this, str, hash, ExceptionClass) || this.ERROR;
        }
      }

      throw new ExceptionClass(str, hash);
    },

    /**
     * method which implements `yyerror(str, ...args)` functionality for use inside lexer actions.
     * 
     * @public
     * @this {RegExpLexer}
     */
    yyerror: function yyError(str /*, ...args */) {
      var lineno_msg = '';

      if (this.yylloc) {
        lineno_msg = ' on line ' + (this.yylineno + 1);
      }

      var p = this.constructLexErrorInfo(
        'Lexical error' + lineno_msg + ': ' + str,
        this.options.lexerErrorsAreRecoverable
      );

      // Add any extra args to the hash under the name `extra_error_attributes`:
      var args = Array.prototype.slice.call(arguments, 1);

      if (args.length) {
        p.extra_error_attributes = args;
      }

      return this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;
    },

    /**
     * final cleanup function for when we have completed lexing the input;
     * make it an API so that external code can use this one once userland
     * code has decided it's time to destroy any lingering lexer error
     * hash object instances and the like: this function helps to clean
     * up these constructs, which *may* carry cyclic references which would
     * otherwise prevent the instances from being properly and timely
     * garbage-collected, i.e. this function helps prevent memory leaks!
     * 
     * @public
     * @this {RegExpLexer}
     */
    cleanupAfterLex: function lexer_cleanupAfterLex(do_not_nuke_errorinfos) {
      // prevent lingering circular references from causing memory leaks:
      this.setInput('', {});

      // nuke the error hash info instances created during this run.
      // Userland code must COPY any data/references
      // in the error hash instance(s) it is more permanently interested in.
      if (!do_not_nuke_errorinfos) {
        for (var i = this.__error_infos.length - 1; i >= 0; i--) {
          var el = this.__error_infos[i];

          if (el && typeof el.destroy === 'function') {
            el.destroy();
          }
        }

        this.__error_infos.length = 0;
      }

      return this;
    },

    /**
     * clear the lexer token context; intended for internal use only
     * 
     * @public
     * @this {RegExpLexer}
     */
    clear: function lexer_clear() {
      this.yytext = '';
      this.yyleng = 0;
      this.match = '';

      // - DO NOT reset `this.matched`
      this.matches = false;

      this._more = false;
      this._backtrack = false;
      var col = (this.yylloc ? this.yylloc.last_column : 0);

      this.yylloc = {
        first_line: this.yylineno + 1,
        first_column: col,
        last_line: this.yylineno + 1,
        last_column: col,
        range: [this.offset, this.offset]
      };
    },

    /**
     * resets the lexer, sets new input
     * 
     * @public
     * @this {RegExpLexer}
     */
    setInput: function lexer_setInput(input, yy) {
      this.yy = yy || this.yy || {};

      // also check if we've fully initialized the lexer instance,
      // including expansion work to be done to go from a loaded
      // lexer to a usable lexer:
      if (!this.__decompressed) {
        // step 1: decompress the regex list:
        var rules = this.rules;

        for (var i = 0, len = rules.length; i < len; i++) {
          var rule_re = rules[i];

          // compression: is the RE an xref to another RE slot in the rules[] table?
          if (typeof rule_re === 'number') {
            rules[i] = rules[rule_re];
          }
        }

        // step 2: unfold the conditions[] set to make these ready for use:
        var conditions = this.conditions;

        for (var k in conditions) {
          var spec = conditions[k];
          var rule_ids = spec.rules;
          var len = rule_ids.length;
          var rule_regexes = new Array(len + 1);             // slot 0 is unused; we use a 1-based index approach here to keep the hottest code in `lexer_next()` fast and simple! 
          var rule_new_ids = new Array(len + 1);

          for (var i = 0; i < len; i++) {
            var idx = rule_ids[i];
            var rule_re = rules[idx];
            rule_regexes[i + 1] = rule_re;
            rule_new_ids[i + 1] = idx;
          }

          spec.rules = rule_new_ids;
          spec.__rule_regexes = rule_regexes;
          spec.__rule_count = len;
        }

        this.__decompressed = true;
      }

      this._input = input || '';
      this.clear();
      this._signaled_error_token = false;
      this.done = false;
      this.yylineno = 0;
      this.matched = '';
      this.conditionStack = ['INITIAL'];
      this.__currentRuleSet__ = null;

      this.yylloc = {
        first_line: 1,
        first_column: 0,
        last_line: 1,
        last_column: 0,
        range: [0, 0]
      };

      this.offset = 0;
      return this;
    },

    /**
     * edit the remaining input via user-specified callback.
     * This can be used to forward-adjust the input-to-parse, 
     * e.g. inserting macro expansions and alike in the
     * input which has yet to be lexed.
     * The behaviour of this API contrasts the `unput()` et al
     * APIs as those act on the *consumed* input, while this
     * one allows one to manipulate the future, without impacting
     * the current `yyloc` cursor location or any history. 
     * 
     * Use this API to help implement C-preprocessor-like
     * `#include` statements, etc.
     * 
     * The provided callback must be synchronous and is
     * expected to return the edited input (string).
     *
     * The `cpsArg` argument value is passed to the callback
     * as-is.
     *
     * `callback` interface: 
     * `function callback(input, cpsArg)`
     * 
     * - `input` will carry the remaining-input-to-lex string
     *   from the lexer.
     * - `cpsArg` is `cpsArg` passed into this API.
     * 
     * The `this` reference for the callback will be set to
     * reference this lexer instance so that userland code
     * in the callback can easily and quickly access any lexer
     * API. 
     *
     * When the callback returns a non-string-type falsey value,
     * we assume the callback did not edit the input and we
     * will using the input as-is.
     *
     * When the callback returns a non-string-type value, it
     * is converted to a string for lexing via the `"" + retval`
     * operation. (See also why: http://2ality.com/2012/03/converting-to-string.html 
     * -- that way any returned object's `toValue()` and `toString()`
     * methods will be invoked in a proper/desirable order.)
     * 
     * @public
     * @this {RegExpLexer}
     */
    editRemainingInput: function lexer_editRemainingInput(callback, cpsArg) {
      var rv = callback.call(this, this._input, cpsArg);

      if (typeof rv !== 'string') {
        if (rv) {
          this._input = '' + rv;
        } 
        // else: keep `this._input` as is.  
      } else {
        this._input = rv;
      }

      return this;
    },

    /**
     * consumes and returns one char from the input
     * 
     * @public
     * @this {RegExpLexer}
     */
    input: function lexer_input() {
      if (!this._input) {
        //this.done = true;    -- don't set `done` as we want the lex()/next() API to be able to produce one custom EOF token match after this anyhow. (lexer can match special <<EOF>> tokens and perform user action code for a <<EOF>> match, but only does so *once*)
        return null;
      }

      var ch = this._input[0];
      this.yytext += ch;
      this.yyleng++;
      this.offset++;
      this.match += ch;
      this.matched += ch;

      // Count the linenumber up when we hit the LF (or a stand-alone CR).
      // On CRLF, the linenumber is incremented when you fetch the CR or the CRLF combo
      // and we advance immediately past the LF as well, returning both together as if
      // it was all a single 'character' only.
      var slice_len = 1;

      var lines = false;

      if (ch === '\n') {
        lines = true;
      } else if (ch === '\r') {
        lines = true;
        var ch2 = this._input[1];

        if (ch2 === '\n') {
          slice_len++;
          ch += ch2;
          this.yytext += ch2;
          this.yyleng++;
          this.offset++;
          this.match += ch2;
          this.matched += ch2;
          this.yylloc.range[1]++;
        }
      }

      if (lines) {
        this.yylineno++;
        this.yylloc.last_line++;
        this.yylloc.last_column = 0;
      } else {
        this.yylloc.last_column++;
      }

      this.yylloc.range[1]++;
      this._input = this._input.slice(slice_len);
      return ch;
    },

    /**
     * unshifts one char (or an entire string) into the input
     * 
     * @public
     * @this {RegExpLexer}
     */
    unput: function lexer_unput(ch) {
      var len = ch.length;
      var lines = ch.split(/(?:\r\n?|\n)/g);
      this._input = ch + this._input;
      this.yytext = this.yytext.substr(0, this.yytext.length - len);
      this.yyleng = this.yytext.length;
      this.offset -= len;
      this.match = this.match.substr(0, this.match.length - len);
      this.matched = this.matched.substr(0, this.matched.length - len);

      if (lines.length > 1) {
        this.yylineno -= lines.length - 1;
        this.yylloc.last_line = this.yylineno + 1;

        // Get last entirely matched line into the `pre_lines[]` array's
        // last index slot; we don't mind when other previously 
        // matched lines end up in the array too. 
        var pre = this.match;

        var pre_lines = pre.split(/(?:\r\n?|\n)/g);

        if (pre_lines.length === 1) {
          pre = this.matched;
          pre_lines = pre.split(/(?:\r\n?|\n)/g);
        }

        this.yylloc.last_column = pre_lines[pre_lines.length - 1].length;
      } else {
        this.yylloc.last_column -= len;
      }

      this.yylloc.range[1] = this.yylloc.range[0] + this.yyleng;
      this.done = false;
      return this;
    },

    /**
     * cache matched text and append it on next action
     * 
     * @public
     * @this {RegExpLexer}
     */
    more: function lexer_more() {
      this._more = true;
      return this;
    },

    /**
     * signal the lexer that this rule fails to match the input, so the
     * next matching rule (regex) should be tested instead.
     * 
     * @public
     * @this {RegExpLexer}
     */
    reject: function lexer_reject() {
      if (this.options.backtrack_lexer) {
        this._backtrack = true;
      } else {
        // when the `parseError()` call returns, we MUST ensure that the error is registered.
        // We accomplish this by signaling an 'error' token to be produced for the current
        // `.lex()` run.
        var lineno_msg = '';

        if (this.yylloc) {
          lineno_msg = ' on line ' + (this.yylineno + 1);
        }

        var p = this.constructLexErrorInfo(
          'Lexical error' + lineno_msg + ': You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).',
          false
        );

        this._signaled_error_token = this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;
      }

      return this;
    },

    /**
     * retain first n characters of the match
     * 
     * @public
     * @this {RegExpLexer}
     */
    less: function lexer_less(n) {
      return this.unput(this.match.slice(n));
    },

    /**
     * return (part of the) already matched input, i.e. for error
     * messages.
     * 
     * Limit the returned string length to `maxSize` (default: 20).
     * 
     * Limit the returned string to the `maxLines` number of lines of
     * input (default: 1).
     * 
     * Negative limit values equal *unlimited*.
     * 
     * @public
     * @this {RegExpLexer}
     */
    pastInput: function lexer_pastInput(maxSize, maxLines) {
      var past = this.matched.substring(0, this.matched.length - this.match.length);

      if (maxSize < 0)
        maxSize = past.length;
      else if (!maxSize)
        maxSize = 20;

      if (maxLines < 0)
        maxLines = past.length;          // can't ever have more input lines than this! 
      else if (!maxLines)
        maxLines = 1;

      // `substr` anticipation: treat \r\n as a single character and take a little
      // more than necessary so that we can still properly check against maxSize
      // after we've transformed and limited the newLines in here:
      past = past.substr(-maxSize * 2 - 2);

      // now that we have a significantly reduced string to process, transform the newlines
      // and chop them, then limit them:
      var a = past.replace(/\r\n|\r/g, '\n').split('\n');

      a = a.slice(-maxLines);
      past = a.join('\n');

      // When, after limiting to maxLines, we still have too much to return,
      // do add an ellipsis prefix...
      if (past.length > maxSize) {
        past = '...' + past.substr(-maxSize);
      }

      return past;
    },

    /**
     * return (part of the) upcoming input, i.e. for error messages.
     * 
     * Limit the returned string length to `maxSize` (default: 20).
     * 
     * Limit the returned string to the `maxLines` number of lines of input (default: 1).
     * 
     * Negative limit values equal *unlimited*.
     *
     * > ### NOTE ###
     * >
     * > *"upcoming input"* is defined as the whole of the both
     * > the *currently lexed* input, together with any remaining input
     * > following that. *"currently lexed"* input is the input 
     * > already recognized by the lexer but not yet returned with
     * > the lexer token. This happens when you are invoking this API
     * > from inside any lexer rule action code block. 
     * >
     * 
     * @public
     * @this {RegExpLexer}
     */
    upcomingInput: function lexer_upcomingInput(maxSize, maxLines) {
      var next = this.match;

      if (maxSize < 0)
        maxSize = next.length + this._input.length;
      else if (!maxSize)
        maxSize = 20;

      if (maxLines < 0)
        maxLines = maxSize;          // can't ever have more input lines than this! 
      else if (!maxLines)
        maxLines = 1;

      // `substring` anticipation: treat \r\n as a single character and take a little
      // more than necessary so that we can still properly check against maxSize
      // after we've transformed and limited the newLines in here:
      if (next.length < maxSize * 2 + 2) {
        next += this._input.substring(0, maxSize * 2 + 2);   // substring is faster on Chrome/V8 
      }

      // now that we have a significantly reduced string to process, transform the newlines
      // and chop them, then limit them:
      var a = next.replace(/\r\n|\r/g, '\n').split('\n');

      a = a.slice(0, maxLines);
      next = a.join('\n');

      // When, after limiting to maxLines, we still have too much to return,
      // do add an ellipsis postfix...
      if (next.length > maxSize) {
        next = next.substring(0, maxSize) + '...';
      }

      return next;
    },

    /**
     * return a string which displays the character position where the
     * lexing error occurred, i.e. for error messages
     * 
     * @public
     * @this {RegExpLexer}
     */
    showPosition: function lexer_showPosition(maxPrefix, maxPostfix) {
      var pre = this.pastInput(maxPrefix).replace(/\s/g, ' ');
      var c = new Array(pre.length + 1).join('-');
      return pre + this.upcomingInput(maxPostfix).replace(/\s/g, ' ') + '\n' + c + '^';
    },

    /**
     * return an YYLLOC info object derived off the given context (actual, preceding, following, current).
     * Use this method when the given `actual` location is not guaranteed to exist (i.e. when
     * it MAY be NULL) and you MUST have a valid location info object anyway:
     * then we take the given context of the `preceding` and `following` locations, IFF those are available,
     * and reconstruct the `actual` location info from those.
     * If this fails, the heuristic is to take the `current` location, IFF available.
     * If this fails as well, we assume the sought location is at/around the current lexer position
     * and then produce that one as a response. DO NOTE that these heuristic/derived location info
     * values MAY be inaccurate!
     *
     * NOTE: `deriveLocationInfo()` ALWAYS produces a location info object *copy* of `actual`, not just
     * a *reference* hence all input location objects can be assumed to be 'constant' (function has no side-effects).
     * 
     * @public
     * @this {RegExpLexer}
     */
    deriveLocationInfo: function lexer_deriveYYLLOC(actual, preceding, following, current) {
      var loc = {
        first_line: 1,
        first_column: 0,
        last_line: 1,
        last_column: 0,
        range: [0, 0]
      };

      if (actual) {
        loc.first_line = actual.first_line | 0;
        loc.last_line = actual.last_line | 0;
        loc.first_column = actual.first_column | 0;
        loc.last_column = actual.last_column | 0;

        if (actual.range) {
          loc.range[0] = actual.range[0] | 0;
          loc.range[1] = actual.range[1] | 0;
        }
      }

      if (loc.first_line <= 0 || loc.last_line < loc.first_line) {
        // plan B: heuristic using preceding and following:
        if (loc.first_line <= 0 && preceding) {
          loc.first_line = preceding.last_line | 0;
          loc.first_column = preceding.last_column | 0;

          if (preceding.range) {
            loc.range[0] = actual.range[1] | 0;
          }
        }

        if ((loc.last_line <= 0 || loc.last_line < loc.first_line) && following) {
          loc.last_line = following.first_line | 0;
          loc.last_column = following.first_column | 0;

          if (following.range) {
            loc.range[1] = actual.range[0] | 0;
          }
        }

        // plan C?: see if the 'current' location is useful/sane too:
        if (loc.first_line <= 0 && current && (loc.last_line <= 0 || current.last_line <= loc.last_line)) {
          loc.first_line = current.first_line | 0;
          loc.first_column = current.first_column | 0;

          if (current.range) {
            loc.range[0] = current.range[0] | 0;
          }
        }

        if (loc.last_line <= 0 && current && (loc.first_line <= 0 || current.first_line >= loc.first_line)) {
          loc.last_line = current.last_line | 0;
          loc.last_column = current.last_column | 0;

          if (current.range) {
            loc.range[1] = current.range[1] | 0;
          }
        }
      }

      // sanitize: fix last_line BEFORE we fix first_line as we use the 'raw' value of the latter
      // or plan D heuristics to produce a 'sensible' last_line value:
      if (loc.last_line <= 0) {
        if (loc.first_line <= 0) {
          loc.first_line = this.yylloc.first_line;
          loc.last_line = this.yylloc.last_line;
          loc.first_column = this.yylloc.first_column;
          loc.last_column = this.yylloc.last_column;
          loc.range[0] = this.yylloc.range[0];
          loc.range[1] = this.yylloc.range[1];
        } else {
          loc.last_line = this.yylloc.last_line;
          loc.last_column = this.yylloc.last_column;
          loc.range[1] = this.yylloc.range[1];
        }
      }

      if (loc.first_line <= 0) {
        loc.first_line = loc.last_line;
        loc.first_column = 0;  // loc.last_column; 
        loc.range[1] = loc.range[0];
      }

      if (loc.first_column < 0) {
        loc.first_column = 0;
      }

      if (loc.last_column < 0) {
        loc.last_column = (loc.first_column > 0 ? loc.first_column : 80);
      }

      return loc;
    },

    /**
     * return a string which displays the lines & columns of input which are referenced 
     * by the given location info range, plus a few lines of context.
     * 
     * This function pretty-prints the indicated section of the input, with line numbers 
     * and everything!
     * 
     * This function is very useful to provide highly readable error reports, while
     * the location range may be specified in various flexible ways:
     * 
     * - `loc` is the location info object which references the area which should be
     *   displayed and 'marked up': these lines & columns of text are marked up by `^`
     *   characters below each character in the entire input range.
     * 
     * - `context_loc` is the *optional* location info object which instructs this
     *   pretty-printer how much *leading* context should be displayed alongside
     *   the area referenced by `loc`. This can help provide context for the displayed
     *   error, etc.
     * 
     *   When this location info is not provided, a default context of 3 lines is
     *   used.
     * 
     * - `context_loc2` is another *optional* location info object, which serves
     *   a similar purpose to `context_loc`: it specifies the amount of *trailing*
     *   context lines to display in the pretty-print output.
     * 
     *   When this location info is not provided, a default context of 1 line only is
     *   used.
     * 
     * Special Notes:
     * 
     * - when the `loc`-indicated range is very large (about 5 lines or more), then
     *   only the first and last few lines of this block are printed while a
     *   `...continued...` message will be printed between them.
     * 
     *   This serves the purpose of not printing a huge amount of text when the `loc`
     *   range happens to be huge: this way a manageable & readable output results
     *   for arbitrary large ranges.
     * 
     * - this function can display lines of input which whave not yet been lexed.
     *   `prettyPrintRange()` can access the entire input!
     * 
     * @public
     * @this {RegExpLexer}
     */
    prettyPrintRange: function lexer_prettyPrintRange(loc, context_loc, context_loc2) {
      loc = this.deriveLocationInfo(loc, context_loc, context_loc2);
      const CONTEXT = 3;
      const CONTEXT_TAIL = 1;
      const MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT = 2;
      var input = this.matched + this._input;
      var lines = input.split('\n');
      var l0 = Math.max(1, (context_loc ? context_loc.first_line : loc.first_line - CONTEXT));
      var l1 = Math.max(1, (context_loc2 ? context_loc2.last_line : loc.last_line + CONTEXT_TAIL));
      var lineno_display_width = 1 + Math.log10(l1 | 1) | 0;
      var ws_prefix = new Array(lineno_display_width).join(' ');
      var nonempty_line_indexes = [];

      var rv = lines.slice(l0 - 1, l1 + 1).map(function injectLineNumber(line, index) {
        var lno = index + l0;
        var lno_pfx = (ws_prefix + lno).substr(-lineno_display_width);
        var rv = lno_pfx + ': ' + line;
        var errpfx = new Array(lineno_display_width + 1).join('^');
        var offset = 2 + 1;
        var len = 0;

        if (lno === loc.first_line) {
          offset += loc.first_column;

          len = Math.max(
            2,
            ((lno === loc.last_line ? loc.last_column : line.length)) - loc.first_column + 1
          );
        } else if (lno === loc.last_line) {
          len = Math.max(2, loc.last_column + 1);
        } else if (lno > loc.first_line && lno < loc.last_line) {
          len = Math.max(2, line.length + 1);
        }

        if (len) {
          var lead = new Array(offset).join('.');
          var mark = new Array(len).join('^');
          rv += '\n' + errpfx + lead + mark;

          if (line.trim().length > 0) {
            nonempty_line_indexes.push(index);
          }
        }

        rv = rv.replace(/\t/g, ' ');
        return rv;
      });

      // now make sure we don't print an overly large amount of error area: limit it 
      // to the top and bottom line count:
      if (nonempty_line_indexes.length > 2 * MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT) {
        var clip_start = nonempty_line_indexes[MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT - 1] + 1;
        var clip_end = nonempty_line_indexes[nonempty_line_indexes.length - MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT] - 1;
        var intermediate_line = new Array(lineno_display_width + 1).join(' ') + '  (...continued...)';
        intermediate_line += '\n' + new Array(lineno_display_width + 1).join('-') + '  (---------------)';
        rv.splice(clip_start, clip_end - clip_start + 1, intermediate_line);
      }

      return rv.join('\n');
    },

    /**
     * helper function, used to produce a human readable description as a string, given
     * the input `yylloc` location object.
     * 
     * Set `display_range_too` to TRUE to include the string character index position(s)
     * in the description if the `yylloc.range` is available.
     * 
     * @public
     * @this {RegExpLexer}
     */
    describeYYLLOC: function lexer_describe_yylloc(yylloc, display_range_too) {
      var l1 = yylloc.first_line;
      var l2 = yylloc.last_line;
      var c1 = yylloc.first_column;
      var c2 = yylloc.last_column;
      var dl = l2 - l1;
      var dc = c2 - c1;
      var rv;

      if (dl === 0) {
        rv = 'line ' + l1 + ', ';

        if (dc <= 1) {
          rv += 'column ' + c1;
        } else {
          rv += 'columns ' + c1 + ' .. ' + c2;
        }
      } else {
        rv = 'lines ' + l1 + '(column ' + c1 + ') .. ' + l2 + '(column ' + c2 + ')';
      }

      if (yylloc.range && display_range_too) {
        var r1 = yylloc.range[0];
        var r2 = yylloc.range[1] - 1;

        if (r2 <= r1) {
          rv += ' {String Offset: ' + r1 + '}';
        } else {
          rv += ' {String Offset range: ' + r1 + ' .. ' + r2 + '}';
        }
      }

      return rv;
    },

    /**
     * test the lexed token: return FALSE when not a match, otherwise return token.
     * 
     * `match` is supposed to be an array coming out of a regex match, i.e. `match[0]`
     * contains the actually matched text string.
     * 
     * Also move the input cursor forward and update the match collectors:
     * 
     * - `yytext`
     * - `yyleng`
     * - `match`
     * - `matches`
     * - `yylloc`
     * - `offset`
     * 
     * @public
     * @this {RegExpLexer}
     */
    test_match: function lexer_test_match(match, indexed_rule) {
      var token, lines, backup, match_str, match_str_len;

      if (this.options.backtrack_lexer) {
        // save context
        backup = {
          yylineno: this.yylineno,

          yylloc: {
            first_line: this.yylloc.first_line,
            last_line: this.yylloc.last_line,
            first_column: this.yylloc.first_column,
            last_column: this.yylloc.last_column,
            range: this.yylloc.range.slice(0)
          },

          yytext: this.yytext,
          match: this.match,
          matches: this.matches,
          matched: this.matched,
          yyleng: this.yyleng,
          offset: this.offset,
          _more: this._more,
          _input: this._input,

          //_signaled_error_token: this._signaled_error_token,
          yy: this.yy,

          conditionStack: this.conditionStack.slice(0),
          done: this.done
        };
      }

      match_str = match[0];
      match_str_len = match_str.length;

      // if (match_str.indexOf('\n') !== -1 || match_str.indexOf('\r') !== -1) {
      lines = match_str.split(/(?:\r\n?|\n)/g);

      if (lines.length > 1) {
        this.yylineno += lines.length - 1;
        this.yylloc.last_line = this.yylineno + 1;
        this.yylloc.last_column = lines[lines.length - 1].length;
      } else {
        this.yylloc.last_column += match_str_len;
      }

      // }
      this.yytext += match_str;

      this.match += match_str;
      this.matched += match_str;
      this.matches = match;
      this.yyleng = this.yytext.length;
      this.yylloc.range[1] += match_str_len;

      // previous lex rules MAY have invoked the `more()` API rather than producing a token:
      // those rules will already have moved this `offset` forward matching their match lengths,
      // hence we must only add our own match length now:
      this.offset += match_str_len;

      this._more = false;
      this._backtrack = false;
      this._input = this._input.slice(match_str_len);

      // calling this method:
      //
      //   function lexer__performAction(yy, yyrulenumber, YY_START) {...}
      token = this.performAction.call(
        this,
        this.yy,
        indexed_rule,
        this.conditionStack[this.conditionStack.length - 1] /* = YY_START */
      );

      // otherwise, when the action codes are all simple return token statements:
      //token = this.simpleCaseActionClusters[indexed_rule];

      if (this.done && this._input) {
        this.done = false;
      }

      if (token) {
        return token;
      } else if (this._backtrack) {
        // recover context
        for (var k in backup) {
          this[k] = backup[k];
        }

        this.__currentRuleSet__ = null;
        return false;  // rule action called reject() implying the next rule should be tested instead. 
      } else if (this._signaled_error_token) {
        // produce one 'error' token as `.parseError()` in `reject()`
        // did not guarantee a failure signal by throwing an exception!
        token = this._signaled_error_token;

        this._signaled_error_token = false;
        return token;
      }

      return false;
    },

    /**
     * return next match in input
     * 
     * @public
     * @this {RegExpLexer}
     */
    next: function lexer_next() {
      if (this.done) {
        this.clear();
        return this.EOF;
      }

      if (!this._input) {
        this.done = true;
      }

      var token, match, tempMatch, index;

      if (!this._more) {
        this.clear();
      }

      var spec = this.__currentRuleSet__;

      if (!spec) {
        // Update the ruleset cache as we apparently encountered a state change or just started lexing.
        // The cache is set up for fast lookup -- we assume a lexer will switch states much less often than it will
        // invoke the `lex()` token-producing API and related APIs, hence caching the set for direct access helps
        // speed up those activities a tiny bit.
        spec = this.__currentRuleSet__ = this._currentRules();

        // Check whether a *sane* condition has been pushed before: this makes the lexer robust against
        // user-programmer bugs such as https://github.com/zaach/jison-lex/issues/19
        if (!spec || !spec.rules) {
          var lineno_msg = '';

          if (this.options.trackPosition) {
            lineno_msg = ' on line ' + (this.yylineno + 1);
          }

          var p = this.constructLexErrorInfo(
            'Internal lexer engine error' + lineno_msg + ': The lex grammar programmer pushed a non-existing condition name "' + this.topState() + '"; this is a fatal error and should be reported to the application programmer team!',
            false
          );

          // produce one 'error' token until this situation has been resolved, most probably by parse termination!
          return this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;
        }
      }

      var rule_ids = spec.rules;
      var regexes = spec.__rule_regexes;
      var len = spec.__rule_count;

      // Note: the arrays are 1-based, while `len` itself is a valid index,
      // hence the non-standard less-or-equal check in the next loop condition!
      for (var i = 1; i <= len; i++) {
        tempMatch = this._input.match(regexes[i]);

        if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
          match = tempMatch;
          index = i;

          if (this.options.backtrack_lexer) {
            token = this.test_match(tempMatch, rule_ids[i]);

            if (token !== false) {
              return token;
            } else if (this._backtrack) {
              match = undefined;
              continue;  // rule action called reject() implying a rule MISmatch. 
            } else {
              // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
              return false;
            }
          } else if (!this.options.flex) {
            break;
          }
        }
      }

      if (match) {
        token = this.test_match(match, rule_ids[index]);

        if (token !== false) {
          return token;
        }

        // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
        return false;
      }

      if (!this._input) {
        this.done = true;
        this.clear();
        return this.EOF;
      } else {
        var lineno_msg = '';

        if (this.options.trackPosition) {
          lineno_msg = ' on line ' + (this.yylineno + 1);
        }

        var p = this.constructLexErrorInfo(
          'Lexical error' + lineno_msg + ': Unrecognized text.',
          this.options.lexerErrorsAreRecoverable
        );

        var pendingInput = this._input;
        var activeCondition = this.topState();
        var conditionStackDepth = this.conditionStack.length;
        token = this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;

        if (token === this.ERROR) {
          // we can try to recover from a lexer error that `parseError()` did not 'recover' for us
          // by moving forward at least one character at a time IFF the (user-specified?) `parseError()`
          // has not consumed/modified any pending input or changed state in the error handler:
          if (!this.matches && // and make sure the input has been modified/consumed ...
          pendingInput === this._input && // ...or the lexer state has been modified significantly enough
          // to merit a non-consuming error handling action right now.
          activeCondition === this.topState() && conditionStackDepth === this.conditionStack.length) {
            this.input();
          }
        }

        return token;
      }
    },

    /**
     * return next match that has a token
     * 
     * @public
     * @this {RegExpLexer}
     */
    lex: function lexer_lex() {
      var r;

      // allow the PRE/POST handlers set/modify the return token for maximum flexibility of the generated lexer:
      if (typeof this.pre_lex === 'function') {
        r = this.pre_lex.call(this, 0);
      }

      if (typeof this.options.pre_lex === 'function') {
        // (also account for a userdef function which does not return any value: keep the token as is)
        r = this.options.pre_lex.call(this, r) || r;
      }

      if (this.yy && typeof this.yy.pre_lex === 'function') {
        // (also account for a userdef function which does not return any value: keep the token as is)
        r = this.yy.pre_lex.call(this, r) || r;
      }

      while (!r) {
        r = this.next();
      }

      if (this.yy && typeof this.yy.post_lex === 'function') {
        // (also account for a userdef function which does not return any value: keep the token as is)
        r = this.yy.post_lex.call(this, r) || r;
      }

      if (typeof this.options.post_lex === 'function') {
        // (also account for a userdef function which does not return any value: keep the token as is)
        r = this.options.post_lex.call(this, r) || r;
      }

      if (typeof this.post_lex === 'function') {
        // (also account for a userdef function which does not return any value: keep the token as is)
        r = this.post_lex.call(this, r) || r;
      }

      return r;
    },

    /**
     * return next match that has a token. Identical to the `lex()` API but does not invoke any of the 
     * `pre_lex()` nor any of the `post_lex()` callbacks.
     * 
     * @public
     * @this {RegExpLexer}
     */
    fastLex: function lexer_fastLex() {
      var r;

      while (!r) {
        r = this.next();
      }

      return r;
    },

    /**
     * return info about the lexer state that can help a parser or other lexer API user to use the
     * most efficient means available. This API is provided to aid run-time performance for larger
     * systems which employ this lexer.
     * 
     * @public
     * @this {RegExpLexer}
     */
    canIUse: function lexer_canIUse() {
      var rv = {
        fastLex: !(typeof this.pre_lex === 'function' || typeof this.options.pre_lex === 'function' || this.yy && typeof this.yy.pre_lex === 'function' || this.yy && typeof this.yy.post_lex === 'function' || typeof this.options.post_lex === 'function' || typeof this.post_lex === 'function') && typeof this.fastLex === 'function'
      };

      return rv;
    },

    /**
     * backwards compatible alias for `pushState()`;
     * the latter is symmetrical with `popState()` and we advise to use
     * those APIs in any modern lexer code, rather than `begin()`.
     * 
     * @public
     * @this {RegExpLexer}
     */
    begin: function lexer_begin(condition) {
      return this.pushState(condition);
    },

    /**
     * activates a new lexer condition state (pushes the new lexer
     * condition state onto the condition stack)
     * 
     * @public
     * @this {RegExpLexer}
     */
    pushState: function lexer_pushState(condition) {
      this.conditionStack.push(condition);
      this.__currentRuleSet__ = null;
      return this;
    },

    /**
     * pop the previously active lexer condition state off the condition
     * stack
     * 
     * @public
     * @this {RegExpLexer}
     */
    popState: function lexer_popState() {
      var n = this.conditionStack.length - 1;

      if (n > 0) {
        this.__currentRuleSet__ = null;
        return this.conditionStack.pop();
      } else {
        return this.conditionStack[0];
      }
    },

    /**
     * return the currently active lexer condition state; when an index
     * argument is provided it produces the N-th previous condition state,
     * if available
     * 
     * @public
     * @this {RegExpLexer}
     */
    topState: function lexer_topState(n) {
      n = this.conditionStack.length - 1 - Math.abs(n || 0);

      if (n >= 0) {
        return this.conditionStack[n];
      } else {
        return 'INITIAL';
      }
    },

    /**
     * (internal) determine the lexer rule set which is active for the
     * currently active lexer condition state
     * 
     * @public
     * @this {RegExpLexer}
     */
    _currentRules: function lexer__currentRules() {
      if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
        return this.conditions[this.conditionStack[this.conditionStack.length - 1]];
      } else {
        return this.conditions['INITIAL'];
      }
    },

    /**
     * return the number of states currently on the stack
     * 
     * @public
     * @this {RegExpLexer}
     */
    stateStackSize: function lexer_stateStackSize() {
      return this.conditionStack.length;
    },

    options: {
      trackPosition: true
    },

    JisonLexerError: JisonLexerError,

    performAction: function lexer__performAction(yy, yyrulenumber, YY_START) {
      var yy_ = this;
      var YYSTATE = YY_START;

      switch (yyrulenumber) {
      case 1:
        /*! Conditions:: INITIAL */
        /*! Rule::       \s+ */
        /* skip whitespace */
        break;

      default:
        return this.simpleCaseActionClusters[yyrulenumber];
      }
    },

    simpleCaseActionClusters: {
      /*! Conditions:: INITIAL */
      /*! Rule::       (--[0-9a-z-A-Z-]*) */
      0: 13,

      /*! Conditions:: INITIAL */
      /*! Rule::       \* */
      2: 5,

      /*! Conditions:: INITIAL */
      /*! Rule::       \/ */
      3: 6,

      /*! Conditions:: INITIAL */
      /*! Rule::       \+ */
      4: 3,

      /*! Conditions:: INITIAL */
      /*! Rule::       - */
      5: 4,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)px\b */
      6: 15,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)cm\b */
      7: 15,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)mm\b */
      8: 15,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)in\b */
      9: 15,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)pt\b */
      10: 15,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)pc\b */
      11: 15,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)deg\b */
      12: 16,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)grad\b */
      13: 16,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)rad\b */
      14: 16,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)turn\b */
      15: 16,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)s\b */
      16: 17,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)ms\b */
      17: 17,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)Hz\b */
      18: 18,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)kHz\b */
      19: 18,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)dpi\b */
      20: 19,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)dpcm\b */
      21: 19,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)dppx\b */
      22: 19,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)em\b */
      23: 20,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)ex\b */
      24: 21,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)ch\b */
      25: 22,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)rem\b */
      26: 23,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)vw\b */
      27: 25,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)vh\b */
      28: 24,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)vmin\b */
      29: 26,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)vmax\b */
      30: 27,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)% */
      31: 28,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([0-9]+(\.[0-9]*)?|\.[0-9]+)\b */
      32: 11,

      /*! Conditions:: INITIAL */
      /*! Rule::       (calc) */
      33: 9,

      /*! Conditions:: INITIAL */
      /*! Rule::       (var) */
      34: 12,

      /*! Conditions:: INITIAL */
      /*! Rule::       ([a-z]+) */
      35: 10,

      /*! Conditions:: INITIAL */
      /*! Rule::       \( */
      36: 7,

      /*! Conditions:: INITIAL */
      /*! Rule::       \) */
      37: 8,

      /*! Conditions:: INITIAL */
      /*! Rule::       , */
      38: 14,

      /*! Conditions:: INITIAL */
      /*! Rule::       $ */
      39: 1
    },

    rules: [
      /*  0: */  /^(?:(--[\d\-A-Za-z]*))/,
      /*  1: */  /^(?:\s+)/,
      /*  2: */  /^(?:\*)/,
      /*  3: */  /^(?:\/)/,
      /*  4: */  /^(?:\+)/,
      /*  5: */  /^(?:-)/,
      /*  6: */  /^(?:(\d+(\.\d*)?|\.\d+)px\b)/,
      /*  7: */  /^(?:(\d+(\.\d*)?|\.\d+)cm\b)/,
      /*  8: */  /^(?:(\d+(\.\d*)?|\.\d+)mm\b)/,
      /*  9: */  /^(?:(\d+(\.\d*)?|\.\d+)in\b)/,
      /* 10: */  /^(?:(\d+(\.\d*)?|\.\d+)pt\b)/,
      /* 11: */  /^(?:(\d+(\.\d*)?|\.\d+)pc\b)/,
      /* 12: */  /^(?:(\d+(\.\d*)?|\.\d+)deg\b)/,
      /* 13: */  /^(?:(\d+(\.\d*)?|\.\d+)grad\b)/,
      /* 14: */  /^(?:(\d+(\.\d*)?|\.\d+)rad\b)/,
      /* 15: */  /^(?:(\d+(\.\d*)?|\.\d+)turn\b)/,
      /* 16: */  /^(?:(\d+(\.\d*)?|\.\d+)s\b)/,
      /* 17: */  /^(?:(\d+(\.\d*)?|\.\d+)ms\b)/,
      /* 18: */  /^(?:(\d+(\.\d*)?|\.\d+)Hz\b)/,
      /* 19: */  /^(?:(\d+(\.\d*)?|\.\d+)kHz\b)/,
      /* 20: */  /^(?:(\d+(\.\d*)?|\.\d+)dpi\b)/,
      /* 21: */  /^(?:(\d+(\.\d*)?|\.\d+)dpcm\b)/,
      /* 22: */  /^(?:(\d+(\.\d*)?|\.\d+)dppx\b)/,
      /* 23: */  /^(?:(\d+(\.\d*)?|\.\d+)em\b)/,
      /* 24: */  /^(?:(\d+(\.\d*)?|\.\d+)ex\b)/,
      /* 25: */  /^(?:(\d+(\.\d*)?|\.\d+)ch\b)/,
      /* 26: */  /^(?:(\d+(\.\d*)?|\.\d+)rem\b)/,
      /* 27: */  /^(?:(\d+(\.\d*)?|\.\d+)vw\b)/,
      /* 28: */  /^(?:(\d+(\.\d*)?|\.\d+)vh\b)/,
      /* 29: */  /^(?:(\d+(\.\d*)?|\.\d+)vmin\b)/,
      /* 30: */  /^(?:(\d+(\.\d*)?|\.\d+)vmax\b)/,
      /* 31: */  /^(?:(\d+(\.\d*)?|\.\d+)%)/,
      /* 32: */  /^(?:(\d+(\.\d*)?|\.\d+)\b)/,
      /* 33: */  /^(?:(calc))/,
      /* 34: */  /^(?:(var))/,
      /* 35: */  /^(?:([a-z]+))/,
      /* 36: */  /^(?:\()/,
      /* 37: */  /^(?:\))/,
      /* 38: */  /^(?:,)/,
      /* 39: */  /^(?:$)/
    ],

    conditions: {
      'INITIAL': {
        rules: [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28,
          29,
          30,
          31,
          32,
          33,
          34,
          35,
          36,
          37,
          38,
          39
        ],

        inclusive: true
      }
    }
  };

  return lexer;
}();
parser.lexer = lexer;



function Parser() {
  this.yy = {};
}
Parser.prototype = parser;
parser.Parser = Parser;

return new Parser();
})();

        


if (true) {
  exports.parser = parser;
  exports.Parser = parser.Parser;
  exports.parse = function () {
    return parser.parse.apply(parser, arguments);
  };
  
}


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.flip = flip;

var _convert = __webpack_require__(977);

var _convert2 = _interopRequireDefault(_convert);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function reduce(node, precision) {
  if (node.type === "MathExpression") return reduceMathExpression(node, precision);
  if (node.type === "Calc") return reduce(node.value, precision);

  return node;
}

function isEqual(left, right) {
  return left.type === right.type && left.value === right.value;
}

function isValueType(type) {
  switch (type) {
    case 'LengthValue':
    case 'AngleValue':
    case 'TimeValue':
    case 'FrequencyValue':
    case 'ResolutionValue':
    case 'EmValue':
    case 'ExValue':
    case 'ChValue':
    case 'RemValue':
    case 'VhValue':
    case 'VwValue':
    case 'VminValue':
    case 'VmaxValue':
    case 'PercentageValue':
    case 'Value':
      return true;
  }
  return false;
}

function convertMathExpression(node, precision) {
  var nodes = (0, _convert2.default)(node.left, node.right, precision);
  var left = reduce(nodes.left, precision);
  var right = reduce(nodes.right, precision);

  if (left.type === "MathExpression" && right.type === "MathExpression") {

    if (left.operator === '/' && right.operator === '*' || left.operator === '-' && right.operator === '+' || left.operator === '*' && right.operator === '/' || left.operator === '+' && right.operator === '-') {

      if (isEqual(left.right, right.right)) nodes = (0, _convert2.default)(left.left, right.left, precision);else if (isEqual(left.right, right.left)) nodes = (0, _convert2.default)(left.left, right.right, precision);

      left = reduce(nodes.left, precision);
      right = reduce(nodes.right, precision);
    }
  }

  node.left = left;
  node.right = right;
  return node;
}

function flip(operator) {
  return operator === '+' ? '-' : '+';
}

function flipValue(node) {
  if (isValueType(node.type)) node.value = -node.value;else if (node.type == 'MathExpression') {
    node.left = flipValue(node.left);
    node.right = flipValue(node.right);
  }
  return node;
}

function reduceAddSubExpression(node, precision) {
  var _node = node,
      left = _node.left,
      right = _node.right,
      op = _node.operator;


  if (left.type === 'CssVariable' || right.type === 'CssVariable') return node;

  // something + 0 => something
  // something - 0 => something
  if (right.value === 0) return left;

  // 0 + something => something
  if (left.value === 0 && op === "+") return right;

  // 0 - something => -something
  if (left.value === 0 && op === "-") return flipValue(right);

  // value + value
  // value - value
  if (left.type === right.type && isValueType(left.type)) {
    node = Object.assign({}, left);
    if (op === "+") node.value = left.value + right.value;else node.value = left.value - right.value;
  }

  // value <op> (expr)
  if (isValueType(left.type) && (right.operator === '+' || right.operator === '-') && right.type === 'MathExpression') {
    // value + (value + something) => (value + value) + something
    // value + (value - something) => (value + value) - something
    // value - (value + something) => (value - value) - something
    // value - (value - something) => (value - value) + something
    if (left.type === right.left.type) {
      node = Object.assign({}, node);
      node.left = reduce({
        type: 'MathExpression',
        operator: op,
        left: left,
        right: right.left
      }, precision);
      node.right = right.right;
      node.operator = op === '-' ? flip(right.operator) : right.operator;
      return reduce(node, precision);
    }
    // value + (something + value) => (value + value) + something
    // value + (something - value) => (value - value) + something
    // value - (something + value) => (value - value) - something
    // value - (something - value) => (value + value) - something
    else if (left.type === right.right.type) {
        node = Object.assign({}, node);
        node.left = reduce({
          type: 'MathExpression',
          operator: op === '-' ? flip(right.operator) : right.operator,
          left: left,
          right: right.right
        }, precision);
        node.right = right.left;
        return reduce(node, precision);
      }
  }

  // (expr) <op> value
  if (left.type === 'MathExpression' && (left.operator === '+' || left.operator === '-') && isValueType(right.type)) {
    // (value + something) + value => (value + value) + something
    // (value - something) + value => (value + value) - something
    // (value + something) - value => (value - value) + something
    // (value - something) - value => (value - value) - something
    if (right.type === left.left.type) {
      node = Object.assign({}, left);
      node.left = reduce({
        type: 'MathExpression',
        operator: op,
        left: left.left,
        right: right
      }, precision);
      return reduce(node, precision);
    }
    // (something + value) + value => something + (value + value)
    // (something - value1) + value2 => something - (value2 - value1)
    // (something + value) - value => something + (value - value)
    // (something - value) - value => something - (value + value)
    else if (right.type === left.right.type) {
        node = Object.assign({}, left);
        if (left.operator === '-') {
          node.right = reduce({
            type: 'MathExpression',
            operator: op === '-' ? '+' : '-',
            left: right,
            right: left.right
          }, precision);
          node.operator = op === '-' ? '-' : '+';
        } else {
          node.right = reduce({
            type: 'MathExpression',
            operator: op,
            left: left.right,
            right: right
          }, precision);
        }
        if (node.right.value < 0) {
          node.right.value *= -1;
          node.operator = node.operator === '-' ? '+' : '-';
        }
        return reduce(node, precision);
      }
  }
  return node;
}

function reduceDivisionExpression(node, precision) {
  if (!isValueType(node.right.type)) return node;

  if (node.right.type !== 'Value') throw new Error("Cannot divide by \"" + node.right.unit + "\", number expected");

  if (node.right.value === 0) throw new Error('Cannot divide by zero');

  // (expr) / value
  if (node.left.type === 'MathExpression') {
    if (isValueType(node.left.left.type) && isValueType(node.left.right.type)) {
      node.left.left.value /= node.right.value;
      node.left.right.value /= node.right.value;
      return reduce(node.left, precision);
    }
    return node;
  }
  // something / value
  else if (isValueType(node.left.type)) {
      node.left.value /= node.right.value;
      return node.left;
    }
  return node;
}

function reduceMultiplicationExpression(node) {
  // (expr) * value
  if (node.left.type === 'MathExpression' && node.right.type === 'Value') {
    if (isValueType(node.left.left.type) && isValueType(node.left.right.type)) {
      node.left.left.value *= node.right.value;
      node.left.right.value *= node.right.value;
      return node.left;
    }
  }
  // something * value
  else if (isValueType(node.left.type) && node.right.type === 'Value') {
      node.left.value *= node.right.value;
      return node.left;
    }
    // value * (expr)
    else if (node.left.type === 'Value' && node.right.type === 'MathExpression') {
        if (isValueType(node.right.left.type) && isValueType(node.right.right.type)) {
          node.right.left.value *= node.left.value;
          node.right.right.value *= node.left.value;
          return node.right;
        }
      }
      // value * something
      else if (node.left.type === 'Value' && isValueType(node.right.type)) {
          node.right.value *= node.left.value;
          return node.right;
        }
  return node;
}

function reduceMathExpression(node, precision) {
  node = convertMathExpression(node, precision);

  switch (node.operator) {
    case "+":
    case "-":
      return reduceAddSubExpression(node, precision);
    case "/":
      return reduceDivisionExpression(node, precision);
    case "*":
      return reduceMultiplicationExpression(node);
  }
  return node;
}

exports.default = reduce;

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _cssUnitConverter = __webpack_require__(978);

var _cssUnitConverter2 = _interopRequireDefault(_cssUnitConverter);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function convertNodes(left, right, precision) {
  switch (left.type) {
    case 'LengthValue':
    case 'AngleValue':
    case 'TimeValue':
    case 'FrequencyValue':
    case 'ResolutionValue':
      return convertAbsoluteLength(left, right, precision);
    default:
      return { left: left, right: right };
  }
}

function convertAbsoluteLength(left, right, precision) {
  if (right.type === left.type) {
    right = {
      type: left.type,
      value: (0, _cssUnitConverter2.default)(right.value, right.unit, left.unit, precision),
      unit: left.unit
    };
  }
  return { left: left, right: right };
}

exports.default = convertNodes;
module.exports = exports['default'];var conversions = {
    // length
    'px': {
        'px': 1,
        'cm': 96.0/2.54,
        'mm': 96.0/25.4,
        'in': 96,
        'pt': 96.0/72.0,
        'pc': 16
    },
    'cm': {
        'px': 2.54/96.0,
        'cm': 1,
        'mm': 0.1,
        'in': 2.54,
        'pt': 2.54/72.0,
        'pc': 2.54/6.0
    },
    'mm': {
        'px': 25.4/96.0,
        'cm': 10,
        'mm': 1,
        'in': 25.4,
        'pt': 25.4/72.0,
        'pc': 25.4/6.0
    },
    'in': {
        'px': 1.0/96.0,
        'cm': 1.0/2.54,
        'mm': 1.0/25.4,
        'in': 1,
        'pt': 1.0/72.0,
        'pc': 1.0/6.0
    },
    'pt': {
        'px': 0.75,
        'cm': 72.0/2.54,
        'mm': 72.0/25.4,
        'in': 72,
        'pt': 1,
        'pc': 12
    },
    'pc': {
        'px': 6.0/96.0,
        'cm': 6.0/2.54,
        'mm': 6.0/25.4,
        'in': 6,
        'pt': 6.0/72.0,
        'pc': 1
    },
    // angle
    'deg': {
        'deg': 1,
        'grad': 0.9,
        'rad': 180/Math.PI,
        'turn': 360
    },
    'grad': {
        'deg': 400/360,
        'grad': 1,
        'rad': 200/Math.PI,
        'turn': 400
    },
    'rad': {
        'deg': Math.PI/180,
        'grad': Math.PI/200,
        'rad': 1,
        'turn': Math.PI*2
    },
    'turn': {
        'deg': 1/360,
        'grad': 1/400,
        'rad': 0.5/Math.PI,
        'turn': 1
    },
    // time
    's': {
        's': 1,
        'ms': 1/1000
    },
    'ms': {
        's': 1000,
        'ms': 1
    },
    // frequency
    'Hz': {
        'Hz': 1,
        'kHz': 1000
    },
    'kHz': {
        'Hz': 1/1000,
        'kHz': 1
    },
    // resolution
    'dpi': {
        'dpi': 1,
        'dpcm': 1.0/2.54,
        'dppx': 1/96
    },
    'dpcm': {
        'dpi': 2.54,
        'dpcm': 1,
        'dppx': 2.54/96.0
    },
    'dppx': {
        'dpi': 96,
        'dpcm': 96.0/2.54,
        'dppx': 1
    }
};

module.exports = function (value, sourceUnit, targetUnit, precision) {
    if (!conversions.hasOwnProperty(targetUnit))
        throw new Error("Cannot convert to " + targetUnit);

    if (!conversions[targetUnit].hasOwnProperty(sourceUnit))
        throw new Error("Cannot convert from " + sourceUnit + " to " + targetUnit);
    
    var converted = conversions[targetUnit][sourceUnit] * value;
    
    if (precision !== false) {
        precision = Math.pow(10, parseInt(precision) || 5);
        return Math.round(converted * precision) / precision;
    }
    
    return converted;
};


Object.defineProperty(exports, "__esModule", {
  value: true
});

exports.default = function (calc, node, precision) {
  var str = stringify(node, precision);

  if (node.type === "MathExpression") {
    // if calc expression couldn't be resolved to a single value, re-wrap it as
    // a calc()
    str = calc + "(" + str + ")";
  }
  return str;
};

var _reducer = __webpack_require__(614);

var order = {
  "*": 0,
  "/": 0,
  "+": 1,
  "-": 1
};

function round(value, prec) {
  if (prec !== false) {
    var precision = Math.pow(10, prec);
    return Math.round(value * precision) / precision;
  }
  return value;
}

function stringify(node, prec) {
  switch (node.type) {
    case "MathExpression":
      {
        var left = node.left,
            right = node.right,
            op = node.operator;

        var str = "";

        if (left.type === 'MathExpression' && order[op] < order[left.operator]) str += "(" + stringify(left, prec) + ")";else str += stringify(left, prec);

        str += " " + node.operator + " ";

        if (right.type === 'MathExpression' && order[op] < order[right.operator]) {
          str += "(" + stringify(right, prec) + ")";
        } else if (right.type === 'MathExpression' && op === "-" && ["+", "-"].includes(right.operator)) {
          // fix #52 : a-(b+c) = a-b-c
          right.operator = (0, _reducer.flip)(right.operator);
          str += stringify(right, prec);
        } else {
          str += stringify(right, prec);
        }

        return str;
      }
    case "Value":
      return round(node.value, prec);
    case 'CssVariable':
      if (node.fallback) {
        return "var(" + node.value + ", " + stringify(node.fallback, prec, true) + ")";
      }
      return "var(" + node.value + ")";
    case 'Calc':
      if (node.prefix) {
        return "-" + node.prefix + "-calc(" + stringify(node.value, prec) + ")";
      }
      return "calc(" + stringify(node.value, prec) + ")";
    default:
      return round(node.value, prec) + node.unit;
  }
}

module.exports = exports["default"];/* unused harmony export getStyleString */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getStringSize; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getOffset; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return calculateChartCoordinate; });
/* harmony import */ var _Global__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(137);
function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }

function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }

function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _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 _arrayLikeToArray(o, minLen); }

function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }

function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }

function _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; }


var stringCache = {
  widthCache: {},
  cacheCount: 0
};
var MAX_CACHE_NUM = 2000;
var SPAN_STYLE = {
  position: 'absolute',
  top: '-20000px',
  left: 0,
  padding: 0,
  margin: 0,
  border: 'none',
  whiteSpace: 'pre'
};
var STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];
var MEASUREMENT_SPAN_ID = 'recharts_measurement_span';

function autoCompleteStyle(name, value) {
  if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {
    return "".concat(value, "px");
  }

  return value;
}

function camelToMiddleLine(text) {
  var strs = text.split('');
  var formatStrs = strs.reduce(function (result, entry) {
    if (entry === entry.toUpperCase()) {
      return [].concat(_toConsumableArray(result), ['-', entry.toLowerCase()]);
    }

    return [].concat(_toConsumableArray(result), [entry]);
  }, []);
  return formatStrs.join('');
}

var getStyleString = function getStyleString(style) {
  return Object.keys(style).reduce(function (result, s) {
    return "".concat(result).concat(camelToMiddleLine(s), ":").concat(autoCompleteStyle(s, style[s]), ";");
  }, '');
};
var getStringSize = function getStringSize(text) {
  var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

  if (text === undefined || text === null || _Global__WEBPACK_IMPORTED_MODULE_0__[/* Global */ "a"].isSsr) {
    return {
      width: 0,
      height: 0
    };
  }

  var str = "".concat(text);
  var styleString = getStyleString(style);
  var cacheKey = "".concat(str, "-").concat(styleString);

  if (stringCache.widthCache[cacheKey]) {
    return stringCache.widthCache[cacheKey];
  }

  try {
    var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);

    if (!measurementSpan) {
      measurementSpan = document.createElement('span');
      measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);
      measurementSpan.setAttribute('aria-hidden', 'true');
      document.body.appendChild(measurementSpan);
    } // Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)
    // https://en.wikipedia.org/wiki/Content_Security_Policy


    var measurementSpanStyle = _objectSpread(_objectSpread({}, SPAN_STYLE), style);

    Object.keys(measurementSpanStyle).map(function (styleKey) {
      measurementSpan.style[styleKey] = measurementSpanStyle[styleKey];
      return styleKey;
    });
    measurementSpan.textContent = str;
    var rect = measurementSpan.getBoundingClientRect();
    var result = {
      width: rect.width,
      height: rect.height
    };
    stringCache.widthCache[cacheKey] = result;

    if (++stringCache.cacheCount > MAX_CACHE_NUM) {
      stringCache.cacheCount = 0;
      stringCache.widthCache = {};
    }

    return result;
  } catch (e) {
    return {
      width: 0,
      height: 0
    };
  }
};
var getOffset = function getOffset(el) {
  var html = el.ownerDocument.documentElement;
  var box = {
    top: 0,
    left: 0
  }; // If we don't have gBCR, just use 0,0 rather than error
  // BlackBerry 5, iOS 3 (original iPhone)

  if (typeof el.getBoundingClientRect !== 'undefined') {
    box = el.getBoundingClientRect();
  }

  return {
    top: box.top + window.pageYOffset - html.clientTop,
    left: box.left + window.pageXOffset - html.clientLeft
  };
};
/**
 * Calculate coordinate of cursor in chart
 * @param  {Object} event  Event object
 * @param  {Object} offset The offset of main part in the svg element
 * @return {Object}        {chartX, chartY}
 */

var calculateChartCoordinate = function calculateChartCoordinate(event, offset) {
  return {
    chartX: Math.round(event.pageX - offset.left),
    chartY: Math.round(event.pageY - offset.top)
  };
};/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Global; });
var parseIsSsrByDefault = function parseIsSsrByDefault() {
  return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);
};

var Global = {
  isSsr: parseIsSsrByDefault(),
  get: function get(key) {
    return Global[key];
  },
  set: function set(key, value) {
    if (typeof key === 'string') {
      Global[key] = value;
    } else {
      var keys = Object.keys(key);

      if (keys && keys.length) {
        keys.forEach(function (k) {
          Global[k] = key[k];
        });
      }
    }
  }
};/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Dot; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _util_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42);
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _extends() { _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 _extends.apply(this, arguments); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

/**
 * @fileOverview Dot
 */



var Dot = /*#__PURE__*/function (_PureComponent) {
  _inherits(Dot, _PureComponent);

  var _super = _createSuper(Dot);

  function Dot() {
    _classCallCheck(this, Dot);

    return _super.apply(this, arguments);
  }

  _createClass(Dot, [{
    key: "render",
    value: function render() {
      var _this$props = this.props,
          cx = _this$props.cx,
          cy = _this$props.cy,
          r = _this$props.r,
          className = _this$props.className;
      var layerClass = classnames__WEBPACK_IMPORTED_MODULE_1___default()('recharts-dot', className);

      if (cx === +cx && cy === +cy && r === +r) {
        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("circle", _extends({}, Object(_util_types__WEBPACK_IMPORTED_MODULE_2__[/* filterProps */ "c"])(this.props), Object(_util_types__WEBPACK_IMPORTED_MODULE_2__[/* adaptEventHandlers */ "a"])(this.props), {
          className: layerClass,
          cx: cx,
          cy: cy,
          r: r
        }));
      }

      return null;
    }
  }]);

  return Dot;
}(react__WEBPACK_IMPORTED_MODULE_0__["PureComponent"]);/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return isInRectangle; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Rectangle; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_smooth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(145);
/* harmony import */ var _util_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42);
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _extends() { _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 _extends.apply(this, arguments); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

/**
 * @fileOverview Rectangle
 */





var getRectanglePath = function getRectanglePath(x, y, width, height, radius) {
  var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);
  var ySign = height >= 0 ? 1 : -1;
  var xSign = width >= 0 ? 1 : -1;
  var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;
  var path;

  if (maxRadius > 0 && radius instanceof Array) {
    var newRadius = [0, 0, 0, 0];

    for (var i = 0, len = 4; i < len; i++) {
      newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];
    }

    path = "M".concat(x, ",").concat(y + ySign * newRadius[0]);

    if (newRadius[0] > 0) {
      path += "A ".concat(newRadius[0], ",").concat(newRadius[0], ",0,0,").concat(clockWise, ",").concat(x + xSign * newRadius[0], ",").concat(y);
    }

    path += "L ".concat(x + width - xSign * newRadius[1], ",").concat(y);

    if (newRadius[1] > 0) {
      path += "A ".concat(newRadius[1], ",").concat(newRadius[1], ",0,0,").concat(clockWise, ",\n        ").concat(x + width, ",").concat(y + ySign * newRadius[1]);
    }

    path += "L ".concat(x + width, ",").concat(y + height - ySign * newRadius[2]);

    if (newRadius[2] > 0) {
      path += "A ".concat(newRadius[2], ",").concat(newRadius[2], ",0,0,").concat(clockWise, ",\n        ").concat(x + width - xSign * newRadius[2], ",").concat(y + height);
    }

    path += "L ".concat(x + xSign * newRadius[3], ",").concat(y + height);

    if (newRadius[3] > 0) {
      path += "A ".concat(newRadius[3], ",").concat(newRadius[3], ",0,0,").concat(clockWise, ",\n        ").concat(x, ",").concat(y + height - ySign * newRadius[3]);
    }

    path += 'Z';
  } else if (maxRadius > 0 && radius === +radius && radius > 0) {
    var _newRadius = Math.min(maxRadius, radius);

    path = "M ".concat(x, ",").concat(y + ySign * _newRadius, "\n            A ").concat(_newRadius, ",").concat(_newRadius, ",0,0,").concat(clockWise, ",").concat(x + xSign * _newRadius, ",").concat(y, "\n            L ").concat(x + width - xSign * _newRadius, ",").concat(y, "\n            A ").concat(_newRadius, ",").concat(_newRadius, ",0,0,").concat(clockWise, ",").concat(x + width, ",").concat(y + ySign * _newRadius, "\n            L ").concat(x + width, ",").concat(y + height - ySign * _newRadius, "\n            A ").concat(_newRadius, ",").concat(_newRadius, ",0,0,").concat(clockWise, ",").concat(x + width - xSign * _newRadius, ",").concat(y + height, "\n            L ").concat(x + xSign * _newRadius, ",").concat(y + height, "\n            A ").concat(_newRadius, ",").concat(_newRadius, ",0,0,").concat(clockWise, ",").concat(x, ",").concat(y + height - ySign * _newRadius, " Z");
  } else {
    path = "M ".concat(x, ",").concat(y, " h ").concat(width, " v ").concat(height, " h ").concat(-width, " Z");
  }

  return path;
};

var isInRectangle = function isInRectangle(point, rect) {
  if (!point || !rect) {
    return false;
  }

  var px = point.x,
      py = point.y;
  var x = rect.x,
      y = rect.y,
      width = rect.width,
      height = rect.height;

  if (Math.abs(width) > 0 && Math.abs(height) > 0) {
    var minX = Math.min(x, x + width);
    var maxX = Math.max(x, x + width);
    var minY = Math.min(y, y + height);
    var maxY = Math.max(y, y + height);
    return px >= minX && px <= maxX && py >= minY && py <= maxY;
  }

  return false;
};
var Rectangle = /*#__PURE__*/function (_PureComponent) {
  _inherits(Rectangle, _PureComponent);

  var _super = _createSuper(Rectangle);

  function Rectangle() {
    var _this;

    _classCallCheck(this, Rectangle);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _super.call.apply(_super, [this].concat(args));
    _this.state = {
      totalLength: -1
    };
    _this.node = void 0;
    return _this;
  }

  _createClass(Rectangle, [{
    key: "componentDidMount",
    value:
    /* eslint-disable  react/no-did-mount-set-state */
    function componentDidMount() {
      if (this.node && this.node.getTotalLength) {
        try {
          var totalLength = this.node.getTotalLength();

          if (totalLength) {
            this.setState({
              totalLength: totalLength
            });
          }
        } catch (err) {// calculate total length error
        }
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$props = this.props,
          x = _this$props.x,
          y = _this$props.y,
          width = _this$props.width,
          height = _this$props.height,
          radius = _this$props.radius,
          className = _this$props.className;
      var totalLength = this.state.totalLength;
      var _this$props2 = this.props,
          animationEasing = _this$props2.animationEasing,
          animationDuration = _this$props2.animationDuration,
          animationBegin = _this$props2.animationBegin,
          isAnimationActive = _this$props2.isAnimationActive,
          isUpdateAnimationActive = _this$props2.isUpdateAnimationActive;

      if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {
        return null;
      }

      var layerClass = classnames__WEBPACK_IMPORTED_MODULE_1___default()('recharts-rectangle', className);

      if (!isUpdateAnimationActive) {
        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", _extends({}, Object(_util_types__WEBPACK_IMPORTED_MODULE_3__[/* filterProps */ "c"])(this.props, true), {
          className: layerClass,
          d: getRectanglePath(x, y, width, height, radius)
        }));
      }

      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_smooth__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"], {
        canBegin: totalLength > 0,
        from: {
          width: width,
          height: height,
          x: x,
          y: y
        },
        to: {
          width: width,
          height: height,
          x: x,
          y: y
        },
        duration: animationDuration,
        animationEasing: animationEasing,
        isActive: isUpdateAnimationActive
      }, function (_ref) {
        var currWidth = _ref.width,
            currHeight = _ref.height,
            currX = _ref.x,
            currY = _ref.y;
        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_smooth__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"], {
          canBegin: totalLength > 0,
          from: "0px ".concat(totalLength === -1 ? 1 : totalLength, "px"),
          to: "".concat(totalLength, "px 0px"),
          attributeName: "strokeDasharray",
          begin: animationBegin,
          duration: animationDuration,
          isActive: isAnimationActive,
          easing: animationEasing
        }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", _extends({}, Object(_util_types__WEBPACK_IMPORTED_MODULE_3__[/* filterProps */ "c"])(_this2.props, true), {
          className: layerClass,
          d: getRectanglePath(currX, currY, currWidth, currHeight, radius),
          ref: function ref(node) {
            _this2.node = node;
          }
        })));
      });
    }
  }]);

  return Rectangle;
}(react__WEBPACK_IMPORTED_MODULE_0__["PureComponent"]);
Rectangle.defaultProps = {
  x: 0,
  y: 0,
  width: 0,
  height: 0,
  // The radius of border
  // The radius of four corners when radius is a number
  // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array
  radius: 0,
  isAnimationActive: false,
  isUpdateAnimationActive: false,
  animationBegin: 0,
  animationDuration: 1500,
  animationEasing: 'ease'
};(function (global, factory) {
   true ? factory(exports) :
  undefined;
}(this, (function (exports) { 'use strict';

  var HAS_WEAKSET_SUPPORT = typeof WeakSet === 'function';
  var keys = Object.keys;
  /**
   * are the values passed strictly equal or both NaN
   *
   * @param a the value to compare against
   * @param b the value to test
   * @returns are the values equal by the SameValueZero principle
   */
  function sameValueZeroEqual(a, b) {
      return a === b || (a !== a && b !== b);
  }
  /**
   * is the value a plain object
   *
   * @param value the value to test
   * @returns is the value a plain object
   */
  function isPlainObject(value) {
      return value.constructor === Object || value.constructor == null;
  }
  /**
   * is the value promise-like (meaning it is thenable)
   *
   * @param value the value to test
   * @returns is the value promise-like
   */
  function isPromiseLike(value) {
      return !!value && typeof value.then === 'function';
  }
  /**
   * is the value passed a react element
   *
   * @param value the value to test
   * @returns is the value a react element
   */
  function isReactElement(value) {
      return !!(value && value.$$typeof);
  }
  /**
   * in cases where WeakSet is not supported, creates a new custom
   * object that mimics the necessary API aspects for cache purposes
   *
   * @returns the new cache object
   */
  function getNewCacheFallback() {
      var values = [];
      return {
          add: function (value) {
              values.push(value);
          },
          has: function (value) {
              return values.indexOf(value) !== -1;
          },
      };
  }
  /**
   * get a new cache object to prevent circular references
   *
   * @returns the new cache object
   */
  var getNewCache = (function (canUseWeakMap) {
      if (canUseWeakMap) {
          return function _getNewCache() {
              return new WeakSet();
          };
      }
      return getNewCacheFallback;
  })(HAS_WEAKSET_SUPPORT);
  /**
   * create a custom isEqual handler specific to circular objects
   *
   * @param [isEqual] the isEqual comparator to use instead of isDeepEqual
   * @returns the method to create the `isEqual` function
   */
  function createCircularEqualCreator(isEqual) {
      return function createCircularEqual(comparator) {
          var _comparator = isEqual || comparator;
          return function circularEqual(a, b, cache) {
              if (cache === void 0) { cache = getNewCache(); }
              var isCacheableA = !!a && typeof a === 'object';
              var isCacheableB = !!b && typeof b === 'object';
              if (isCacheableA || isCacheableB) {
                  var hasA = isCacheableA && cache.has(a);
                  var hasB = isCacheableB && cache.has(b);
                  if (hasA || hasB) {
                      return hasA && hasB;
                  }
                  if (isCacheableA) {
                      cache.add(a);
                  }
                  if (isCacheableB) {
                      cache.add(b);
                  }
              }
              return _comparator(a, b, cache);
          };
      };
  }
  /**
   * are the arrays equal in value
   *
   * @param a the array to test
   * @param b the array to test against
   * @param isEqual the comparator to determine equality
   * @param meta the meta object to pass through
   * @returns are the arrays equal
   */
  function areArraysEqual(a, b, isEqual, meta) {
      var index = a.length;
      if (b.length !== index) {
          return false;
      }
      while (index-- > 0) {
          if (!isEqual(a[index], b[index], meta)) {
              return false;
          }
      }
      return true;
  }
  /**
   * are the maps equal in value
   *
   * @param a the map to test
   * @param b the map to test against
   * @param isEqual the comparator to determine equality
   * @param meta the meta map to pass through
   * @returns are the maps equal
   */
  function areMapsEqual(a, b, isEqual, meta) {
      var isValueEqual = a.size === b.size;
      if (isValueEqual && a.size) {
          a.forEach(function (aValue, aKey) {
              if (isValueEqual) {
                  isValueEqual = false;
                  b.forEach(function (bValue, bKey) {
                      if (!isValueEqual && isEqual(aKey, bKey, meta)) {
                          isValueEqual = isEqual(aValue, bValue, meta);
                      }
                  });
              }
          });
      }
      return isValueEqual;
  }
  var OWNER = '_owner';
  var hasOwnProperty = Function.prototype.bind.call(Function.prototype.call, Object.prototype.hasOwnProperty);
  /**
   * are the objects equal in value
   *
   * @param a the object to test
   * @param b the object to test against
   * @param isEqual the comparator to determine equality
   * @param meta the meta object to pass through
   * @returns are the objects equal
   */
  function areObjectsEqual(a, b, isEqual, meta) {
      var keysA = keys(a);
      var index = keysA.length;
      if (keys(b).length !== index) {
          return false;
      }
      if (index) {
          var key = void 0;
          while (index-- > 0) {
              key = keysA[index];
              if (key === OWNER) {
                  var reactElementA = isReactElement(a);
                  var reactElementB = isReactElement(b);
                  if ((reactElementA || reactElementB) &&
                      reactElementA !== reactElementB) {
                      return false;
                  }
              }
              if (!hasOwnProperty(b, key) || !isEqual(a[key], b[key], meta)) {
                  return false;
              }
          }
      }
      return true;
  }
  /**
   * are the regExps equal in value
   *
   * @param a the regExp to test
   * @param b the regExp to test agains
   * @returns are the regExps equal
   */
  function areRegExpsEqual(a, b) {
      return (a.source === b.source &&
          a.global === b.global &&
          a.ignoreCase === b.ignoreCase &&
          a.multiline === b.multiline &&
          a.unicode === b.unicode &&
          a.sticky === b.sticky &&
          a.lastIndex === b.lastIndex);
  }
  /**
   * are the sets equal in value
   *
   * @param a the set to test
   * @param b the set to test against
   * @param isEqual the comparator to determine equality
   * @param meta the meta set to pass through
   * @returns are the sets equal
   */
  function areSetsEqual(a, b, isEqual, meta) {
      var isValueEqual = a.size === b.size;
      if (isValueEqual && a.size) {
          a.forEach(function (aValue) {
              if (isValueEqual) {
                  isValueEqual = false;
                  b.forEach(function (bValue) {
                      if (!isValueEqual) {
                          isValueEqual = isEqual(aValue, bValue, meta);
                      }
                  });
              }
          });
      }
      return isValueEqual;
  }

  var HAS_MAP_SUPPORT = typeof Map === 'function';
  var HAS_SET_SUPPORT = typeof Set === 'function';
  function createComparator(createIsEqual) {
      var isEqual = 
      /* eslint-disable no-use-before-define */
      typeof createIsEqual === 'function'
          ? createIsEqual(comparator)
          : comparator;
      /* eslint-enable */
      /**
       * compare the value of the two objects and return true if they are equivalent in values
       *
       * @param a the value to test against
       * @param b the value to test
       * @param [meta] an optional meta object that is passed through to all equality test calls
       * @returns are a and b equivalent in value
       */
      function comparator(a, b, meta) {
          if (a === b) {
              return true;
          }
          if (a && b && typeof a === 'object' && typeof b === 'object') {
              if (isPlainObject(a) && isPlainObject(b)) {
                  return areObjectsEqual(a, b, isEqual, meta);
              }
              var aShape = Array.isArray(a);
              var bShape = Array.isArray(b);
              if (aShape || bShape) {
                  return aShape === bShape && areArraysEqual(a, b, isEqual, meta);
              }
              aShape = a instanceof Date;
              bShape = b instanceof Date;
              if (aShape || bShape) {
                  return (aShape === bShape && sameValueZeroEqual(a.getTime(), b.getTime()));
              }
              aShape = a instanceof RegExp;
              bShape = b instanceof RegExp;
              if (aShape || bShape) {
                  return aShape === bShape && areRegExpsEqual(a, b);
              }
              if (isPromiseLike(a) || isPromiseLike(b)) {
                  return a === b;
              }
              if (HAS_MAP_SUPPORT) {
                  aShape = a instanceof Map;
                  bShape = b instanceof Map;
                  if (aShape || bShape) {
                      return aShape === bShape && areMapsEqual(a, b, isEqual, meta);
                  }
              }
              if (HAS_SET_SUPPORT) {
                  aShape = a instanceof Set;
                  bShape = b instanceof Set;
                  if (aShape || bShape) {
                      return aShape === bShape && areSetsEqual(a, b, isEqual, meta);
                  }
              }
              return areObjectsEqual(a, b, isEqual, meta);
          }
          return a !== a && b !== b;
      }
      return comparator;
  }

  var deepEqual = createComparator();
  var shallowEqual = createComparator(function () { return sameValueZeroEqual; });
  var circularDeepEqual = createComparator(createCircularEqualCreator());
  var circularShallowEqual = createComparator(createCircularEqualCreator(sameValueZeroEqual));

  exports.circularDeepEqual = circularDeepEqual;
  exports.circularShallowEqual = circularShallowEqual;
  exports.createCustomEqual = createComparator;
  exports.deepEqual = deepEqual;
  exports.sameValueZeroEqual = sameValueZeroEqual;
  exports.shallowEqual = shallowEqual;

  Object.defineProperty(exports, '__esModule', { value: true });

})));
//# sourceMappingURL=fast-equals.js.map


var _CSSTransition = _interopRequireDefault(__webpack_require__(980));

var _ReplaceTransition = _interopRequireDefault(__webpack_require__(981));

var _TransitionGroup = _interopRequireDefault(__webpack_require__(617));

var _Transition = _interopRequireDefault(__webpack_require__(615));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

module.exports = {
  Transition: _Transition.default,
  TransitionGroup: _TransitionGroup.default,
  ReplaceTransition: _ReplaceTransition.default,
  CSSTransition: _CSSTransition.default
};

exports.__esModule = true;
exports.default = void 0;

var PropTypes = _interopRequireWildcard(__webpack_require__(3));

var _addClass = _interopRequireDefault(__webpack_require__(583));

var _removeClass = _interopRequireDefault(__webpack_require__(584));

var _react = _interopRequireDefault(__webpack_require__(2));

var _Transition = _interopRequireDefault(__webpack_require__(615));

var _PropTypes = __webpack_require__(616);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }

function _extends() { _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 _extends.apply(this, arguments); }

function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }

var addClass = function addClass(node, classes) {
  return node && classes && classes.split(' ').forEach(function (c) {
    return (0, _addClass.default)(node, c);
  });
};

var removeClass = function removeClass(node, classes) {
  return node && classes && classes.split(' ').forEach(function (c) {
    return (0, _removeClass.default)(node, c);
  });
};
/**
 * A transition component inspired by the excellent
 * [ng-animate](http://www.nganimate.org/) library, you should use it if you're
 * using CSS transitions or animations. It's built upon the
 * [`Transition`](https://reactcommunity.org/react-transition-group/transition)
 * component, so it inherits all of its props.
 *
 * `CSSTransition` applies a pair of class names during the `appear`, `enter`,
 * and `exit` states of the transition. The first class is applied and then a
 * second `*-active` class in order to activate the CSSS transition. After the
 * transition, matching `*-done` class names are applied to persist the
 * transition state.
 *
 * ```jsx
 * function App() {
 *   const [inProp, setInProp] = useState(false);
 *   return (
 *     <div>
 *       <CSSTransition in={inProp} timeout={200} classNames="my-node">
 *         <div>
 *           {"I'll receive my-node-* classes"}
 *         </div>
 *       </CSSTransition>
 *       <button type="button" onClick={() => setInProp(true)}>
 *         Click to Enter
 *       </button>
 *     </div>
 *   );
 * }
 * ```
 *
 * When the `in` prop is set to `true`, the child component will first receive
 * the class `example-enter`, then the `example-enter-active` will be added in
 * the next tick. `CSSTransition` [forces a
 * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)
 * between before adding the `example-enter-active`. This is an important trick
 * because it allows us to transition between `example-enter` and
 * `example-enter-active` even though they were added immediately one after
 * another. Most notably, this is what makes it possible for us to animate
 * _appearance_.
 *
 * ```css
 * .my-node-enter {
 *   opacity: 0;
 * }
 * .my-node-enter-active {
 *   opacity: 1;
 *   transition: opacity 200ms;
 * }
 * .my-node-exit {
 *   opacity: 1;
 * }
 * .my-node-exit-active {
 *   opacity: 0;
 *   transition: opacity: 200ms;
 * }
 * ```
 *
 * `*-active` classes represent which styles you want to animate **to**.
 */


var CSSTransition =
/*#__PURE__*/
function (_React$Component) {
  _inheritsLoose(CSSTransition, _React$Component);

  function CSSTransition() {
    var _this;

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;

    _this.onEnter = function (node, appearing) {
      var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),
          className = _this$getClassNames.className;

      _this.removeClasses(node, 'exit');

      addClass(node, className);

      if (_this.props.onEnter) {
        _this.props.onEnter(node, appearing);
      }
    };

    _this.onEntering = function (node, appearing) {
      var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),
          activeClassName = _this$getClassNames2.activeClassName;

      _this.reflowAndAddClass(node, activeClassName);

      if (_this.props.onEntering) {
        _this.props.onEntering(node, appearing);
      }
    };

    _this.onEntered = function (node, appearing) {
      var appearClassName = _this.getClassNames('appear').doneClassName;

      var enterClassName = _this.getClassNames('enter').doneClassName;

      var doneClassName = appearing ? appearClassName + " " + enterClassName : enterClassName;

      _this.removeClasses(node, appearing ? 'appear' : 'enter');

      addClass(node, doneClassName);

      if (_this.props.onEntered) {
        _this.props.onEntered(node, appearing);
      }
    };

    _this.onExit = function (node) {
      var _this$getClassNames3 = _this.getClassNames('exit'),
          className = _this$getClassNames3.className;

      _this.removeClasses(node, 'appear');

      _this.removeClasses(node, 'enter');

      addClass(node, className);

      if (_this.props.onExit) {
        _this.props.onExit(node);
      }
    };

    _this.onExiting = function (node) {
      var _this$getClassNames4 = _this.getClassNames('exit'),
          activeClassName = _this$getClassNames4.activeClassName;

      _this.reflowAndAddClass(node, activeClassName);

      if (_this.props.onExiting) {
        _this.props.onExiting(node);
      }
    };

    _this.onExited = function (node) {
      var _this$getClassNames5 = _this.getClassNames('exit'),
          doneClassName = _this$getClassNames5.doneClassName;

      _this.removeClasses(node, 'exit');

      addClass(node, doneClassName);

      if (_this.props.onExited) {
        _this.props.onExited(node);
      }
    };

    _this.getClassNames = function (type) {
      var classNames = _this.props.classNames;
      var isStringClassNames = typeof classNames === 'string';
      var prefix = isStringClassNames && classNames ? classNames + '-' : '';
      var className = isStringClassNames ? prefix + type : classNames[type];
      var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];
      var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];
      return {
        className: className,
        activeClassName: activeClassName,
        doneClassName: doneClassName
      };
    };

    return _this;
  }

  var _proto = CSSTransition.prototype;

  _proto.removeClasses = function removeClasses(node, type) {
    var _this$getClassNames6 = this.getClassNames(type),
        className = _this$getClassNames6.className,
        activeClassName = _this$getClassNames6.activeClassName,
        doneClassName = _this$getClassNames6.doneClassName;

    className && removeClass(node, className);
    activeClassName && removeClass(node, activeClassName);
    doneClassName && removeClass(node, doneClassName);
  };

  _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {
    // This is for to force a repaint,
    // which is necessary in order to transition styles when adding a class name.
    if (className) {
      /* eslint-disable no-unused-expressions */
      node && node.scrollTop;
      /* eslint-enable no-unused-expressions */

      addClass(node, className);
    }
  };

  _proto.render = function render() {
    var props = _extends({}, this.props);

    delete props.classNames;
    return _react.default.createElement(_Transition.default, _extends({}, props, {
      onEnter: this.onEnter,
      onEntered: this.onEntered,
      onEntering: this.onEntering,
      onExit: this.onExit,
      onExiting: this.onExiting,
      onExited: this.onExited
    }));
  };

  return CSSTransition;
}(_react.default.Component);

CSSTransition.defaultProps = {
  classNames: ''
};
CSSTransition.propTypes =  false ? undefined : {};
var _default = CSSTransition;
exports.default = _default;
module.exports = exports["default"];

exports.__esModule = true;
exports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;

var PropTypes = _interopRequireWildcard(__webpack_require__(3));

var _react = _interopRequireDefault(__webpack_require__(2));

var _reactDom = _interopRequireDefault(__webpack_require__(40));

var _reactLifecyclesCompat = __webpack_require__(118);

var _PropTypes = __webpack_require__(616);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }

function _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; }

function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }

var UNMOUNTED = 'unmounted';
exports.UNMOUNTED = UNMOUNTED;
var EXITED = 'exited';
exports.EXITED = EXITED;
var ENTERING = 'entering';
exports.ENTERING = ENTERING;
var ENTERED = 'entered';
exports.ENTERED = ENTERED;
var EXITING = 'exiting';
/**
 * The Transition component lets you describe a transition from one component
 * state to another _over time_ with a simple declarative API. Most commonly
 * it's used to animate the mounting and unmounting of a component, but can also
 * be used to describe in-place transition states as well.
 *
 * ---
 *
 * **Note**: `Transition` is a platform-agnostic base component. If you're using
 * transitions in CSS, you'll probably want to use
 * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)
 * instead. It inherits all the features of `Transition`, but contains
 * additional features necessary to play nice with CSS transitions (hence the
 * name of the component).
 *
 * ---
 *
 * By default the `Transition` component does not alter the behavior of the
 * component it renders, it only tracks "enter" and "exit" states for the
 * components. It's up to you to give meaning and effect to those states. For
 * example we can add styles to a component when it enters or exits:
 *
 * ```jsx
 * import { Transition } from 'react-transition-group';
 *
 * const duration = 300;
 *
 * const defaultStyle = {
 *   transition: `opacity ${duration}ms ease-in-out`,
 *   opacity: 0,
 * }
 *
 * const transitionStyles = {
 *   entering: { opacity: 0 },
 *   entered:  { opacity: 1 },
 * };
 *
 * const Fade = ({ in: inProp }) => (
 *   <Transition in={inProp} timeout={duration}>
 *     {state => (
 *       <div style={{
 *         ...defaultStyle,
 *         ...transitionStyles[state]
 *       }}>
 *         I'm a fade Transition!
 *       </div>
 *     )}
 *   </Transition>
 * );
 * ```
 *
 * There are 4 main states a Transition can be in:
 *  - `'entering'`
 *  - `'entered'`
 *  - `'exiting'`
 *  - `'exited'`
 *
 * Transition state is toggled via the `in` prop. When `true` the component
 * begins the "Enter" stage. During this stage, the component will shift from
 * its current transition state, to `'entering'` for the duration of the
 * transition and then to the `'entered'` stage once it's complete. Let's take
 * the following example (we'll use the
 * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):
 *
 * ```jsx
 * function App() {
 *   const [inProp, setInProp] = useState(false);
 *   return (
 *     <div>
 *       <Transition in={inProp} timeout={500}>
 *         {state => (
 *           // ...
 *         )}
 *       </Transition>
 *       <button onClick={() => setInProp(true)}>
 *         Click to Enter
 *       </button>
 *     </div>
 *   );
 * }
 * ```
 *
 * When the button is clicked the component will shift to the `'entering'` state
 * and stay there for 500ms (the value of `timeout`) before it finally switches
 * to `'entered'`.
 *
 * When `in` is `false` the same thing happens except the state moves from
 * `'exiting'` to `'exited'`.
 */

exports.EXITING = EXITING;

var Transition =
/*#__PURE__*/
function (_React$Component) {
  _inheritsLoose(Transition, _React$Component);

  function Transition(props, context) {
    var _this;

    _this = _React$Component.call(this, props, context) || this;
    var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears

    var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;
    var initialStatus;
    _this.appearStatus = null;

    if (props.in) {
      if (appear) {
        initialStatus = EXITED;
        _this.appearStatus = ENTERING;
      } else {
        initialStatus = ENTERED;
      }
    } else {
      if (props.unmountOnExit || props.mountOnEnter) {
        initialStatus = UNMOUNTED;
      } else {
        initialStatus = EXITED;
      }
    }

    _this.state = {
      status: initialStatus
    };
    _this.nextCallback = null;
    return _this;
  }

  var _proto = Transition.prototype;

  _proto.getChildContext = function getChildContext() {
    return {
      transitionGroup: null // allows for nested Transitions

    };
  };

  Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {
    var nextIn = _ref.in;

    if (nextIn && prevState.status === UNMOUNTED) {
      return {
        status: EXITED
      };
    }

    return null;
  }; // getSnapshotBeforeUpdate(prevProps) {
  //   let nextStatus = null
  //   if (prevProps !== this.props) {
  //     const { status } = this.state
  //     if (this.props.in) {
  //       if (status !== ENTERING && status !== ENTERED) {
  //         nextStatus = ENTERING
  //       }
  //     } else {
  //       if (status === ENTERING || status === ENTERED) {
  //         nextStatus = EXITING
  //       }
  //     }
  //   }
  //   return { nextStatus }
  // }


  _proto.componentDidMount = function componentDidMount() {
    this.updateStatus(true, this.appearStatus);
  };

  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
    var nextStatus = null;

    if (prevProps !== this.props) {
      var status = this.state.status;

      if (this.props.in) {
        if (status !== ENTERING && status !== ENTERED) {
          nextStatus = ENTERING;
        }
      } else {
        if (status === ENTERING || status === ENTERED) {
          nextStatus = EXITING;
        }
      }
    }

    this.updateStatus(false, nextStatus);
  };

  _proto.componentWillUnmount = function componentWillUnmount() {
    this.cancelNextCallback();
  };

  _proto.getTimeouts = function getTimeouts() {
    var timeout = this.props.timeout;
    var exit, enter, appear;
    exit = enter = appear = timeout;

    if (timeout != null && typeof timeout !== 'number') {
      exit = timeout.exit;
      enter = timeout.enter; // TODO: remove fallback for next major

      appear = timeout.appear !== undefined ? timeout.appear : enter;
    }

    return {
      exit: exit,
      enter: enter,
      appear: appear
    };
  };

  _proto.updateStatus = function updateStatus(mounting, nextStatus) {
    if (mounting === void 0) {
      mounting = false;
    }

    if (nextStatus !== null) {
      // nextStatus will always be ENTERING or EXITING.
      this.cancelNextCallback();

      var node = _reactDom.default.findDOMNode(this);

      if (nextStatus === ENTERING) {
        this.performEnter(node, mounting);
      } else {
        this.performExit(node);
      }
    } else if (this.props.unmountOnExit && this.state.status === EXITED) {
      this.setState({
        status: UNMOUNTED
      });
    }
  };

  _proto.performEnter = function performEnter(node, mounting) {
    var _this2 = this;

    var enter = this.props.enter;
    var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;
    var timeouts = this.getTimeouts();
    var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED
    // if we are mounting and running this it means appear _must_ be set

    if (!mounting && !enter) {
      this.safeSetState({
        status: ENTERED
      }, function () {
        _this2.props.onEntered(node);
      });
      return;
    }

    this.props.onEnter(node, appearing);
    this.safeSetState({
      status: ENTERING
    }, function () {
      _this2.props.onEntering(node, appearing);

      _this2.onTransitionEnd(node, enterTimeout, function () {
        _this2.safeSetState({
          status: ENTERED
        }, function () {
          _this2.props.onEntered(node, appearing);
        });
      });
    });
  };

  _proto.performExit = function performExit(node) {
    var _this3 = this;

    var exit = this.props.exit;
    var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED

    if (!exit) {
      this.safeSetState({
        status: EXITED
      }, function () {
        _this3.props.onExited(node);
      });
      return;
    }

    this.props.onExit(node);
    this.safeSetState({
      status: EXITING
    }, function () {
      _this3.props.onExiting(node);

      _this3.onTransitionEnd(node, timeouts.exit, function () {
        _this3.safeSetState({
          status: EXITED
        }, function () {
          _this3.props.onExited(node);
        });
      });
    });
  };

  _proto.cancelNextCallback = function cancelNextCallback() {
    if (this.nextCallback !== null) {
      this.nextCallback.cancel();
      this.nextCallback = null;
    }
  };

  _proto.safeSetState = function safeSetState(nextState, callback) {
    // This shouldn't be necessary, but there are weird race conditions with
    // setState callbacks and unmounting in testing, so always make sure that
    // we can cancel any pending setState callbacks after we unmount.
    callback = this.setNextCallback(callback);
    this.setState(nextState, callback);
  };

  _proto.setNextCallback = function setNextCallback(callback) {
    var _this4 = this;

    var active = true;

    this.nextCallback = function (event) {
      if (active) {
        active = false;
        _this4.nextCallback = null;
        callback(event);
      }
    };

    this.nextCallback.cancel = function () {
      active = false;
    };

    return this.nextCallback;
  };

  _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {
    this.setNextCallback(handler);
    var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;

    if (!node || doesNotHaveTimeoutOrListener) {
      setTimeout(this.nextCallback, 0);
      return;
    }

    if (this.props.addEndListener) {
      this.props.addEndListener(node, this.nextCallback);
    }

    if (timeout != null) {
      setTimeout(this.nextCallback, timeout);
    }
  };

  _proto.render = function render() {
    var status = this.state.status;

    if (status === UNMOUNTED) {
      return null;
    }

    var _this$props = this.props,
        children = _this$props.children,
        childProps = _objectWithoutPropertiesLoose(_this$props, ["children"]); // filter props for Transtition


    delete childProps.in;
    delete childProps.mountOnEnter;
    delete childProps.unmountOnExit;
    delete childProps.appear;
    delete childProps.enter;
    delete childProps.exit;
    delete childProps.timeout;
    delete childProps.addEndListener;
    delete childProps.onEnter;
    delete childProps.onEntering;
    delete childProps.onEntered;
    delete childProps.onExit;
    delete childProps.onExiting;
    delete childProps.onExited;

    if (typeof children === 'function') {
      return children(status, childProps);
    }

    var child = _react.default.Children.only(children);

    return _react.default.cloneElement(child, childProps);
  };

  return Transition;
}(_react.default.Component);

Transition.contextTypes = {
  transitionGroup: PropTypes.object
};
Transition.childContextTypes = {
  transitionGroup: function transitionGroup() {}
};
Transition.propTypes =  false ? undefined : {};

function noop() {}

Transition.defaultProps = {
  in: false,
  mountOnEnter: false,
  unmountOnExit: false,
  appear: false,
  enter: true,
  exit: true,
  onEnter: noop,
  onEntering: noop,
  onEntered: noop,
  onExit: noop,
  onExiting: noop,
  onExited: noop
};
Transition.UNMOUNTED = 0;
Transition.EXITED = 1;
Transition.ENTERING = 2;
Transition.ENTERED = 3;
Transition.EXITING = 4;

var _default = (0, _reactLifecyclesCompat.polyfill)(Transition);

exports.default = _default;

exports.__esModule = true;
exports.classNamesShape = exports.timeoutsShape = void 0;

var _propTypes = _interopRequireDefault(__webpack_require__(3));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var timeoutsShape =  false ? undefined : null;
exports.timeoutsShape = timeoutsShape;
var classNamesShape =  false ? undefined : null;
exports.classNamesShape = classNamesShape;

exports.__esModule = true;
exports.default = void 0;

var _propTypes = _interopRequireDefault(__webpack_require__(3));

var _react = _interopRequireDefault(__webpack_require__(2));

var _reactDom = __webpack_require__(40);

var _TransitionGroup = _interopRequireDefault(__webpack_require__(617));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _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; }

function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }

/**
 * The `<ReplaceTransition>` component is a specialized `Transition` component
 * that animates between two children.
 *
 * ```jsx
 * <ReplaceTransition in>
 *   <Fade><div>I appear first</div></Fade>
 *   <Fade><div>I replace the above</div></Fade>
 * </ReplaceTransition>
 * ```
 */
var ReplaceTransition =
/*#__PURE__*/
function (_React$Component) {
  _inheritsLoose(ReplaceTransition, _React$Component);

  function ReplaceTransition() {
    var _this;

    for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {
      _args[_key] = arguments[_key];
    }

    _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;

    _this.handleEnter = function () {
      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
        args[_key2] = arguments[_key2];
      }

      return _this.handleLifecycle('onEnter', 0, args);
    };

    _this.handleEntering = function () {
      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
        args[_key3] = arguments[_key3];
      }

      return _this.handleLifecycle('onEntering', 0, args);
    };

    _this.handleEntered = function () {
      for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
        args[_key4] = arguments[_key4];
      }

      return _this.handleLifecycle('onEntered', 0, args);
    };

    _this.handleExit = function () {
      for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
        args[_key5] = arguments[_key5];
      }

      return _this.handleLifecycle('onExit', 1, args);
    };

    _this.handleExiting = function () {
      for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
        args[_key6] = arguments[_key6];
      }

      return _this.handleLifecycle('onExiting', 1, args);
    };

    _this.handleExited = function () {
      for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
        args[_key7] = arguments[_key7];
      }

      return _this.handleLifecycle('onExited', 1, args);
    };

    return _this;
  }

  var _proto = ReplaceTransition.prototype;

  _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {
    var _child$props;

    var children = this.props.children;

    var child = _react.default.Children.toArray(children)[idx];

    if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);
    if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));
  };

  _proto.render = function render() {
    var _this$props = this.props,
        children = _this$props.children,
        inProp = _this$props.in,
        props = _objectWithoutPropertiesLoose(_this$props, ["children", "in"]);

    var _React$Children$toArr = _react.default.Children.toArray(children),
        first = _React$Children$toArr[0],
        second = _React$Children$toArr[1];

    delete props.onEnter;
    delete props.onEntering;
    delete props.onEntered;
    delete props.onExit;
    delete props.onExiting;
    delete props.onExited;
    return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {
      key: 'first',
      onEnter: this.handleEnter,
      onEntering: this.handleEntering,
      onEntered: this.handleEntered
    }) : _react.default.cloneElement(second, {
      key: 'second',
      onEnter: this.handleExit,
      onEntering: this.handleExiting,
      onEntered: this.handleExited
    }));
  };

  return ReplaceTransition;
}(_react.default.Component);

ReplaceTransition.propTypes =  false ? undefined : {};
var _default = ReplaceTransition;
exports.default = _default;
module.exports = exports["default"];

exports.__esModule = true;
exports.default = void 0;

var _propTypes = _interopRequireDefault(__webpack_require__(3));

var _react = _interopRequireDefault(__webpack_require__(2));

var _reactLifecyclesCompat = __webpack_require__(118);

var _ChildMapping = __webpack_require__(982);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _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; }

function _extends() { _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 _extends.apply(this, arguments); }

function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

var values = Object.values || function (obj) {
  return Object.keys(obj).map(function (k) {
    return obj[k];
  });
};

var defaultProps = {
  component: 'div',
  childFactory: function childFactory(child) {
    return child;
  }
  /**
   * The `<TransitionGroup>` component manages a set of transition components
   * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition
   * components, `<TransitionGroup>` is a state machine for managing the mounting
   * and unmounting of components over time.
   *
   * Consider the example below. As items are removed or added to the TodoList the
   * `in` prop is toggled automatically by the `<TransitionGroup>`.
   *
   * Note that `<TransitionGroup>`  does not define any animation behavior!
   * Exactly _how_ a list item animates is up to the individual transition
   * component. This means you can mix and match animations across different list
   * items.
   */

};

var TransitionGroup =
/*#__PURE__*/
function (_React$Component) {
  _inheritsLoose(TransitionGroup, _React$Component);

  function TransitionGroup(props, context) {
    var _this;

    _this = _React$Component.call(this, props, context) || this;

    var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear


    _this.state = {
      handleExited: handleExited,
      firstRender: true
    };
    return _this;
  }

  var _proto = TransitionGroup.prototype;

  _proto.getChildContext = function getChildContext() {
    return {
      transitionGroup: {
        isMounting: !this.appeared
      }
    };
  };

  _proto.componentDidMount = function componentDidMount() {
    this.appeared = true;
    this.mounted = true;
  };

  _proto.componentWillUnmount = function componentWillUnmount() {
    this.mounted = false;
  };

  TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {
    var prevChildMapping = _ref.children,
        handleExited = _ref.handleExited,
        firstRender = _ref.firstRender;
    return {
      children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),
      firstRender: false
    };
  };

  _proto.handleExited = function handleExited(child, node) {
    var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);
    if (child.key in currentChildMapping) return;

    if (child.props.onExited) {
      child.props.onExited(node);
    }

    if (this.mounted) {
      this.setState(function (state) {
        var children = _extends({}, state.children);

        delete children[child.key];
        return {
          children: children
        };
      });
    }
  };

  _proto.render = function render() {
    var _this$props = this.props,
        Component = _this$props.component,
        childFactory = _this$props.childFactory,
        props = _objectWithoutPropertiesLoose(_this$props, ["component", "childFactory"]);

    var children = values(this.state.children).map(childFactory);
    delete props.appear;
    delete props.enter;
    delete props.exit;

    if (Component === null) {
      return children;
    }

    return _react.default.createElement(Component, props, children);
  };

  return TransitionGroup;
}(_react.default.Component);

TransitionGroup.childContextTypes = {
  transitionGroup: _propTypes.default.object.isRequired
};
TransitionGroup.propTypes =  false ? undefined : {};
TransitionGroup.defaultProps = defaultProps;

var _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);

exports.default = _default;
module.exports = exports["default"];

exports.__esModule = true;
exports.getChildMapping = getChildMapping;
exports.mergeChildMappings = mergeChildMappings;
exports.getInitialChildMapping = getInitialChildMapping;
exports.getNextChildMapping = getNextChildMapping;

var _react = __webpack_require__(2);

/**
 * Given `this.props.children`, return an object mapping key to child.
 *
 * @param {*} children `this.props.children`
 * @return {object} Mapping of key to child
 */
function getChildMapping(children, mapFn) {
  var mapper = function mapper(child) {
    return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;
  };

  var result = Object.create(null);
  if (children) _react.Children.map(children, function (c) {
    return c;
  }).forEach(function (child) {
    // run the map function here instead so that the key is the computed one
    result[child.key] = mapper(child);
  });
  return result;
}
/**
 * When you're adding or removing children some may be added or removed in the
 * same render pass. We want to show *both* since we want to simultaneously
 * animate elements in and out. This function takes a previous set of keys
 * and a new set of keys and merges them with its best guess of the correct
 * ordering. In the future we may expose some of the utilities in
 * ReactMultiChild to make this easy, but for now React itself does not
 * directly have this concept of the union of prevChildren and nextChildren
 * so we implement it here.
 *
 * @param {object} prev prev children as returned from
 * `ReactTransitionChildMapping.getChildMapping()`.
 * @param {object} next next children as returned from
 * `ReactTransitionChildMapping.getChildMapping()`.
 * @return {object} a key set that contains all keys in `prev` and all keys
 * in `next` in a reasonable order.
 */


function mergeChildMappings(prev, next) {
  prev = prev || {};
  next = next || {};

  function getValueForKey(key) {
    return key in next ? next[key] : prev[key];
  } // For each key of `next`, the list of keys to insert before that key in
  // the combined list


  var nextKeysPending = Object.create(null);
  var pendingKeys = [];

  for (var prevKey in prev) {
    if (prevKey in next) {
      if (pendingKeys.length) {
        nextKeysPending[prevKey] = pendingKeys;
        pendingKeys = [];
      }
    } else {
      pendingKeys.push(prevKey);
    }
  }

  var i;
  var childMapping = {};

  for (var nextKey in next) {
    if (nextKeysPending[nextKey]) {
      for (i = 0; i < nextKeysPending[nextKey].length; i++) {
        var pendingNextKey = nextKeysPending[nextKey][i];
        childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);
      }
    }

    childMapping[nextKey] = getValueForKey(nextKey);
  } // Finally, add the keys which didn't appear before any key in `next`


  for (i = 0; i < pendingKeys.length; i++) {
    childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);
  }

  return childMapping;
}

function getProp(child, prop, props) {
  return props[prop] != null ? props[prop] : child.props[prop];
}

function getInitialChildMapping(props, onExited) {
  return getChildMapping(props.children, function (child) {
    return (0, _react.cloneElement)(child, {
      onExited: onExited.bind(null, child),
      in: true,
      appear: getProp(child, 'appear', props),
      enter: getProp(child, 'enter', props),
      exit: getProp(child, 'exit', props)
    });
  });
}

function getNextChildMapping(nextProps, prevChildMapping, onExited) {
  var nextChildMapping = getChildMapping(nextProps.children);
  var children = mergeChildMappings(prevChildMapping, nextChildMapping);
  Object.keys(children).forEach(function (key) {
    var child = children[key];
    if (!(0, _react.isValidElement)(child)) return;
    var hasPrev = key in prevChildMapping;
    var hasNext = key in nextChildMapping;
    var prevChild = prevChildMapping[key];
    var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)

    if (hasNext && (!hasPrev || isLeaving)) {
      // console.log('entering', key)
      children[key] = (0, _react.cloneElement)(child, {
        onExited: onExited.bind(null, child),
        in: true,
        exit: getProp(child, 'exit', nextProps),
        enter: getProp(child, 'enter', nextProps)
      });
    } else if (!hasNext && hasPrev && !isLeaving) {
      // item is old (exiting)
      // console.log('leaving', key)
      children[key] = (0, _react.cloneElement)(child, {
        in: false
      });
    } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {
      // item hasn't changed transition states
      // copy over the last transition props;
      // console.log('unchanged', key)
      children[key] = (0, _react.cloneElement)(child, {
        onExited: onExited.bind(null, child),
        in: prevChild.props.in,
        exit: getProp(child, 'exit', nextProps),
        enter: getProp(child, 'enter', nextProps)
      });
    }
  });
  return children;
}/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CartesianAxis; });
/* harmony import */ var lodash_get__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(113);
/* harmony import */ var lodash_get__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_get__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51);
/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isFunction__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(25);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _util_ShallowEqual__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(263);
/* harmony import */ var _util_DOMUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(192);
/* harmony import */ var _container_Layer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60);
/* harmony import */ var _component_Text__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(173);
/* harmony import */ var _component_Label__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(150);
/* harmony import */ var _util_Global__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(137);
/* harmony import */ var _util_DataUtils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(24);
/* harmony import */ var _util_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(42);
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }




function _extends() { _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 _extends.apply(this, arguments); }

function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _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; }

function _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; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

/**
 * @fileOverview Cartesian Axis
 */










var CartesianAxis = /*#__PURE__*/function (_Component) {
  _inherits(CartesianAxis, _Component);

  var _super = _createSuper(CartesianAxis);

  function CartesianAxis() {
    _classCallCheck(this, CartesianAxis);

    return _super.apply(this, arguments);
  }

  _createClass(CartesianAxis, [{
    key: "shouldComponentUpdate",
    value: function shouldComponentUpdate(_ref) {
      var viewBox = _ref.viewBox,
          restProps = _objectWithoutProperties(_ref, ["viewBox"]);

      // props.viewBox is sometimes generated every time -
      // check that specially as object equality is likely to fail
      var _this$props = this.props,
          viewBoxOld = _this$props.viewBox,
          restPropsOld = _objectWithoutProperties(_this$props, ["viewBox"]);

      return !Object(_util_ShallowEqual__WEBPACK_IMPORTED_MODULE_4__[/* shallowEqual */ "a"])(viewBox, viewBoxOld) || !Object(_util_ShallowEqual__WEBPACK_IMPORTED_MODULE_4__[/* shallowEqual */ "a"])(restProps, restPropsOld);
    }
    /**
     * Calculate the coordinates of endpoints in ticks
     * @param  {Object} data The data of a simple tick
     * @return {Object} (x1, y1): The coordinate of endpoint close to tick text
     *  (x2, y2): The coordinate of endpoint close to axis
     */

  }, {
    key: "getTickLineCoord",
    value: function getTickLineCoord(data) {
      var _this$props2 = this.props,
          x = _this$props2.x,
          y = _this$props2.y,
          width = _this$props2.width,
          height = _this$props2.height,
          orientation = _this$props2.orientation,
          tickSize = _this$props2.tickSize,
          mirror = _this$props2.mirror,
          tickMargin = _this$props2.tickMargin;
      var x1, x2, y1, y2, tx, ty;
      var sign = mirror ? -1 : 1;
      var finalTickSize = data.tickSize || tickSize;
      var tickCoord = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_10__[/* isNumber */ "h"])(data.tickCoord) ? data.tickCoord : data.coordinate;

      switch (orientation) {
        case 'top':
          x1 = x2 = data.coordinate;
          y2 = y + +!mirror * height;
          y1 = y2 - sign * finalTickSize;
          ty = y1 - sign * tickMargin;
          tx = tickCoord;
          break;

        case 'left':
          y1 = y2 = data.coordinate;
          x2 = x + +!mirror * width;
          x1 = x2 - sign * finalTickSize;
          tx = x1 - sign * tickMargin;
          ty = tickCoord;
          break;

        case 'right':
          y1 = y2 = data.coordinate;
          x2 = x + +mirror * width;
          x1 = x2 + sign * finalTickSize;
          tx = x1 + sign * tickMargin;
          ty = tickCoord;
          break;

        default:
          x1 = x2 = data.coordinate;
          y2 = y + +mirror * height;
          y1 = y2 + sign * finalTickSize;
          ty = y1 + sign * tickMargin;
          tx = tickCoord;
          break;
      }

      return {
        line: {
          x1: x1,
          y1: y1,
          x2: x2,
          y2: y2
        },
        tick: {
          x: tx,
          y: ty
        }
      };
    }
  }, {
    key: "getTickTextAnchor",
    value: function getTickTextAnchor() {
      var _this$props3 = this.props,
          orientation = _this$props3.orientation,
          mirror = _this$props3.mirror;
      var textAnchor;

      switch (orientation) {
        case 'left':
          textAnchor = mirror ? 'start' : 'end';
          break;

        case 'right':
          textAnchor = mirror ? 'end' : 'start';
          break;

        default:
          textAnchor = 'middle';
          break;
      }

      return textAnchor;
    }
  }, {
    key: "getTickVerticalAnchor",
    value: function getTickVerticalAnchor() {
      var _this$props4 = this.props,
          orientation = _this$props4.orientation,
          mirror = _this$props4.mirror;
      var verticalAnchor = 'end';

      switch (orientation) {
        case 'left':
        case 'right':
          verticalAnchor = 'middle';
          break;

        case 'top':
          verticalAnchor = mirror ? 'start' : 'end';
          break;

        default:
          verticalAnchor = mirror ? 'end' : 'start';
          break;
      }

      return verticalAnchor;
    }
  }, {
    key: "renderAxisLine",
    value: function renderAxisLine() {
      var _this$props5 = this.props,
          x = _this$props5.x,
          y = _this$props5.y,
          width = _this$props5.width,
          height = _this$props5.height,
          orientation = _this$props5.orientation,
          mirror = _this$props5.mirror,
          axisLine = _this$props5.axisLine;

      var props = _objectSpread(_objectSpread(_objectSpread({}, Object(_util_types__WEBPACK_IMPORTED_MODULE_11__[/* filterProps */ "c"])(this.props)), Object(_util_types__WEBPACK_IMPORTED_MODULE_11__[/* filterProps */ "c"])(axisLine)), {}, {
        fill: 'none'
      });

      if (orientation === 'top' || orientation === 'bottom') {
        var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);
        props = _objectSpread(_objectSpread({}, props), {}, {
          x1: x,
          y1: y + needHeight * height,
          x2: x + width,
          y2: y + needHeight * height
        });
      } else {
        var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);
        props = _objectSpread(_objectSpread({}, props), {}, {
          x1: x + needWidth * width,
          y1: y,
          x2: x + needWidth * width,
          y2: y + height
        });
      }

      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement("line", _extends({}, props, {
        className: classnames__WEBPACK_IMPORTED_MODULE_3___default()('recharts-cartesian-axis-line', lodash_get__WEBPACK_IMPORTED_MODULE_0___default()(axisLine, 'className'))
      }));
    }
  }, {
    key: "renderTicks",
    value:
    /**
     * render the ticks
     * @param {Array} ticks The ticks to actually render (overrides what was passed in props)
     * @return {ReactComponent} renderedTicks
     */
    function renderTicks(ticks) {
      var _this = this;

      var _this$props6 = this.props,
          tickLine = _this$props6.tickLine,
          stroke = _this$props6.stroke,
          tick = _this$props6.tick,
          tickFormatter = _this$props6.tickFormatter,
          unit = _this$props6.unit;
      var finalTicks = CartesianAxis.getTicks(_objectSpread(_objectSpread({}, this.props), {}, {
        ticks: ticks
      }));
      var textAnchor = this.getTickTextAnchor();
      var verticalAnchor = this.getTickVerticalAnchor();
      var axisProps = Object(_util_types__WEBPACK_IMPORTED_MODULE_11__[/* filterProps */ "c"])(this.props);
      var customTickProps = Object(_util_types__WEBPACK_IMPORTED_MODULE_11__[/* filterProps */ "c"])(tick);

      var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {
        fill: 'none'
      }, Object(_util_types__WEBPACK_IMPORTED_MODULE_11__[/* filterProps */ "c"])(tickLine));

      var items = finalTicks.map(function (entry, i) {
        var _this$getTickLineCoor = _this.getTickLineCoord(entry),
            lineCoord = _this$getTickLineCoor.line,
            tickCoord = _this$getTickLineCoor.tick;

        var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({
          textAnchor: textAnchor,
          verticalAnchor: verticalAnchor
        }, axisProps), {}, {
          stroke: 'none',
          fill: stroke
        }, customTickProps), tickCoord), {}, {
          index: i,
          payload: entry,
          visibleTicksCount: finalTicks.length,
          tickFormatter: tickFormatter
        });

        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_container_Layer__WEBPACK_IMPORTED_MODULE_6__[/* Layer */ "a"], _extends({
          className: "recharts-cartesian-axis-tick",
          key: "tick-".concat(i) // eslint-disable-line react/no-array-index-key

        }, Object(_util_types__WEBPACK_IMPORTED_MODULE_11__[/* adaptEventsOfChild */ "b"])(_this.props, entry, i)), tickLine && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement("line", _extends({}, tickLineProps, lineCoord, {
          className: classnames__WEBPACK_IMPORTED_MODULE_3___default()('recharts-cartesian-axis-tick-line', lodash_get__WEBPACK_IMPORTED_MODULE_0___default()(tickLine, 'className'))
        })), tick && CartesianAxis.renderTickItem(tick, tickProps, "".concat(lodash_isFunction__WEBPACK_IMPORTED_MODULE_1___default()(tickFormatter) ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')));
      });
      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement("g", {
        className: "recharts-cartesian-axis-ticks"
      }, items);
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props7 = this.props,
          axisLine = _this$props7.axisLine,
          width = _this$props7.width,
          height = _this$props7.height,
          ticksGenerator = _this$props7.ticksGenerator,
          className = _this$props7.className,
          hide = _this$props7.hide;

      if (hide) {
        return null;
      }

      var _this$props8 = this.props,
          ticks = _this$props8.ticks,
          noTicksProps = _objectWithoutProperties(_this$props8, ["ticks"]);

      var finalTicks = ticks;

      if (lodash_isFunction__WEBPACK_IMPORTED_MODULE_1___default()(ticksGenerator)) {
        finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);
      }

      if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {
        return null;
      }

      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_container_Layer__WEBPACK_IMPORTED_MODULE_6__[/* Layer */ "a"], {
        className: classnames__WEBPACK_IMPORTED_MODULE_3___default()('recharts-cartesian-axis', className)
      }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks), _component_Label__WEBPACK_IMPORTED_MODULE_8__[/* Label */ "a"].renderCallByParent(this.props));
    }
  }], [{
    key: "getTicks",
    value: // todo Array<Tick>
    function getTicks(props) {
      var tick = props.tick,
          ticks = props.ticks,
          viewBox = props.viewBox,
          minTickGap = props.minTickGap,
          orientation = props.orientation,
          interval = props.interval,
          tickFormatter = props.tickFormatter,
          unit = props.unit;

      if (!ticks || !ticks.length || !tick) {
        return [];
      }

      if (Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_10__[/* isNumber */ "h"])(interval) || _util_Global__WEBPACK_IMPORTED_MODULE_9__[/* Global */ "a"].isSsr) {
        return CartesianAxis.getNumberIntervalTicks(ticks, typeof interval === 'number' && Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_10__[/* isNumber */ "h"])(interval) ? interval : 0);
      }

      if (interval === 'preserveStartEnd') {
        return CartesianAxis.getTicksStart({
          ticks: ticks,
          tickFormatter: tickFormatter,
          viewBox: viewBox,
          orientation: orientation,
          minTickGap: minTickGap,
          unit: unit
        }, true);
      }

      if (interval === 'preserveStart') {
        return CartesianAxis.getTicksStart({
          ticks: ticks,
          tickFormatter: tickFormatter,
          viewBox: viewBox,
          orientation: orientation,
          minTickGap: minTickGap,
          unit: unit
        });
      }

      return CartesianAxis.getTicksEnd({
        ticks: ticks,
        tickFormatter: tickFormatter,
        viewBox: viewBox,
        orientation: orientation,
        minTickGap: minTickGap,
        unit: unit
      });
    }
  }, {
    key: "getNumberIntervalTicks",
    value: function getNumberIntervalTicks(ticks, interval) {
      return ticks.filter(function (entry, i) {
        return i % (interval + 1) === 0;
      });
    }
  }, {
    key: "getTicksStart",
    value: function getTicksStart(_ref2, preserveEnd) {
      var ticks = _ref2.ticks,
          tickFormatter = _ref2.tickFormatter,
          viewBox = _ref2.viewBox,
          orientation = _ref2.orientation,
          minTickGap = _ref2.minTickGap,
          unit = _ref2.unit;
      var x = viewBox.x,
          y = viewBox.y,
          width = viewBox.width,
          height = viewBox.height;
      var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';
      var result = (ticks || []).slice(); // we need add the width of 'unit' only when sizeKey === 'width'

      var unitSize = unit && sizeKey === 'width' ? Object(_util_DOMUtils__WEBPACK_IMPORTED_MODULE_5__[/* getStringSize */ "c"])(unit)[sizeKey] : 0;
      var len = result.length;
      var sign = len >= 2 ? Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_10__[/* mathSign */ "j"])(result[1].coordinate - result[0].coordinate) : 1;
      var start, end;

      if (sign === 1) {
        start = sizeKey === 'width' ? x : y;
        end = sizeKey === 'width' ? x + width : y + height;
      } else {
        start = sizeKey === 'width' ? x + width : y + height;
        end = sizeKey === 'width' ? x : y;
      }

      if (preserveEnd) {
        // Try to guarantee the tail to be displayed
        var tail = ticks[len - 1];
        var tailContent = lodash_isFunction__WEBPACK_IMPORTED_MODULE_1___default()(tickFormatter) ? tickFormatter(tail.value, len - 1) : tail.value;
        var tailSize = Object(_util_DOMUtils__WEBPACK_IMPORTED_MODULE_5__[/* getStringSize */ "c"])(tailContent)[sizeKey] + unitSize;
        var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);
        result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {
          tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate
        });
        var isTailShow = sign * (tail.tickCoord - sign * tailSize / 2 - start) >= 0 && sign * (tail.tickCoord + sign * tailSize / 2 - end) <= 0;

        if (isTailShow) {
          end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);
          result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {
            isShow: true
          });
        }
      }

      var count = preserveEnd ? len - 1 : len;

      for (var i = 0; i < count; i++) {
        var entry = result[i];
        var content = lodash_isFunction__WEBPACK_IMPORTED_MODULE_1___default()(tickFormatter) ? tickFormatter(entry.value, i) : entry.value;
        var size = Object(_util_DOMUtils__WEBPACK_IMPORTED_MODULE_5__[/* getStringSize */ "c"])(content)[sizeKey] + unitSize;

        if (i === 0) {
          var gap = sign * (entry.coordinate - sign * size / 2 - start);
          result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {
            tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate
          });
        } else {
          result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {
            tickCoord: entry.coordinate
          });
        }

        var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;

        if (isShow) {
          start = entry.tickCoord + sign * (size / 2 + minTickGap);
          result[i] = _objectSpread(_objectSpread({}, entry), {}, {
            isShow: true
          });
        }
      }

      return result.filter(function (entry) {
        return entry.isShow;
      });
    }
  }, {
    key: "getTicksEnd",
    value: function getTicksEnd(_ref3) {
      var ticks = _ref3.ticks,
          tickFormatter = _ref3.tickFormatter,
          viewBox = _ref3.viewBox,
          orientation = _ref3.orientation,
          minTickGap = _ref3.minTickGap,
          unit = _ref3.unit;
      var x = viewBox.x,
          y = viewBox.y,
          width = viewBox.width,
          height = viewBox.height;
      var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height'; // we need add the width of 'unit' only when sizeKey === 'width'

      var unitSize = unit && sizeKey === 'width' ? Object(_util_DOMUtils__WEBPACK_IMPORTED_MODULE_5__[/* getStringSize */ "c"])(unit)[sizeKey] : 0;
      var result = (ticks || []).slice();
      var len = result.length;
      var sign = len >= 2 ? Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_10__[/* mathSign */ "j"])(result[1].coordinate - result[0].coordinate) : 1;
      var start, end;

      if (sign === 1) {
        start = sizeKey === 'width' ? x : y;
        end = sizeKey === 'width' ? x + width : y + height;
      } else {
        start = sizeKey === 'width' ? x + width : y + height;
        end = sizeKey === 'width' ? x : y;
      }

      for (var i = len - 1; i >= 0; i--) {
        var entry = result[i];
        var content = lodash_isFunction__WEBPACK_IMPORTED_MODULE_1___default()(tickFormatter) ? tickFormatter(entry.value, len - i - 1) : entry.value;
        var size = Object(_util_DOMUtils__WEBPACK_IMPORTED_MODULE_5__[/* getStringSize */ "c"])(content)[sizeKey] + unitSize;

        if (i === len - 1) {
          var gap = sign * (entry.coordinate + sign * size / 2 - end);
          result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {
            tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate
          });
        } else {
          result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {
            tickCoord: entry.coordinate
          });
        }

        var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;

        if (isShow) {
          end = entry.tickCoord - sign * (size / 2 + minTickGap);
          result[i] = _objectSpread(_objectSpread({}, entry), {}, {
            isShow: true
          });
        }
      }

      return result.filter(function (entry) {
        return entry.isShow;
      });
    }
  }, {
    key: "renderTickItem",
    value: function renderTickItem(option, props, value) {
      var tickItem;

      if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.isValidElement(option)) {
        tickItem = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.cloneElement(option, props);
      } else if (lodash_isFunction__WEBPACK_IMPORTED_MODULE_1___default()(option)) {
        tickItem = option(props);
      } else {
        tickItem = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_component_Text__WEBPACK_IMPORTED_MODULE_7__[/* Text */ "a"], _extends({}, props, {
          className: "recharts-cartesian-axis-tick-value"
        }), value);
      }

      return tickItem;
    }
  }]);

  return CartesianAxis;
}(react__WEBPACK_IMPORTED_MODULE_2__["Component"]);
CartesianAxis.displayName = 'CartesianAxis';
CartesianAxis.defaultProps = {
  x: 0,
  y: 0,
  width: 0,
  height: 0,
  viewBox: {
    x: 0,
    y: 0,
    width: 0,
    height: 0
  },
  // The orientation of axis
  orientation: 'bottom',
  // The ticks
  ticks: [],
  stroke: '#666',
  tickLine: true,
  axisLine: true,
  tick: true,
  mirror: false,
  minTickGap: 5,
  // The width or height of tick
  tickSize: 6,
  tickMargin: 2,
  interval: 'preserveEnd'
};/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Cross; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _util_DataUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24);
/* harmony import */ var _util_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42);
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _extends() { _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 _extends.apply(this, arguments); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

/**
 * @fileOverview Cross
 */




var Cross = /*#__PURE__*/function (_PureComponent) {
  _inherits(Cross, _PureComponent);

  var _super = _createSuper(Cross);

  function Cross() {
    _classCallCheck(this, Cross);

    return _super.apply(this, arguments);
  }

  _createClass(Cross, [{
    key: "render",
    value: function render() {
      var _this$props = this.props,
          x = _this$props.x,
          y = _this$props.y,
          width = _this$props.width,
          height = _this$props.height,
          top = _this$props.top,
          left = _this$props.left,
          className = _this$props.className;

      if (!Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_2__[/* isNumber */ "h"])(x) || !Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_2__[/* isNumber */ "h"])(y) || !Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_2__[/* isNumber */ "h"])(width) || !Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_2__[/* isNumber */ "h"])(height) || !Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_2__[/* isNumber */ "h"])(top) || !Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_2__[/* isNumber */ "h"])(left)) {
        return null;
      }

      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", _extends({}, Object(_util_types__WEBPACK_IMPORTED_MODULE_3__[/* filterProps */ "c"])(this.props, true), {
        className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('recharts-cross', className),
        d: Cross.getPath(x, y, width, height, top, left)
      }));
    }
  }], [{
    key: "getPath",
    value: function getPath(x, y, width, height, top, left) {
      return "M".concat(x, ",").concat(top, "v").concat(height, "M").concat(left, ",").concat(y, "h").concat(width);
    }
  }]);

  return Cross;
}(react__WEBPACK_IMPORTED_MODULE_0__["PureComponent"]);
Cross.defaultProps = {
  x: 0,
  y: 0,
  top: 0,
  left: 0,
  width: 0,
  height: 0
};/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Sector; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _util_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42);
/* harmony import */ var _util_PolarUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(78);
/* harmony import */ var _util_DataUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(24);
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _extends() { _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 _extends.apply(this, arguments); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

/**
 * @fileOverview Sector
 */






var getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {
  var sign = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_4__[/* mathSign */ "j"])(endAngle - startAngle);
  var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);
  return sign * deltaAngle;
};

var getTangentCircle = function getTangentCircle(_ref) {
  var cx = _ref.cx,
      cy = _ref.cy,
      radius = _ref.radius,
      angle = _ref.angle,
      sign = _ref.sign,
      isExternal = _ref.isExternal,
      cornerRadius = _ref.cornerRadius,
      cornerIsExternal = _ref.cornerIsExternal;
  var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;
  var theta = Math.asin(cornerRadius / centerRadius) / _util_PolarUtils__WEBPACK_IMPORTED_MODULE_3__[/* RADIAN */ "a"];
  var centerAngle = cornerIsExternal ? angle : angle + sign * theta;
  var center = Object(_util_PolarUtils__WEBPACK_IMPORTED_MODULE_3__[/* polarToCartesian */ "e"])(cx, cy, centerRadius, centerAngle); // The coordinate of point which is tangent to the circle

  var circleTangency = Object(_util_PolarUtils__WEBPACK_IMPORTED_MODULE_3__[/* polarToCartesian */ "e"])(cx, cy, radius, centerAngle); // The coordinate of point which is tangent to the radius line

  var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;
  var lineTangency = Object(_util_PolarUtils__WEBPACK_IMPORTED_MODULE_3__[/* polarToCartesian */ "e"])(cx, cy, centerRadius * Math.cos(theta * _util_PolarUtils__WEBPACK_IMPORTED_MODULE_3__[/* RADIAN */ "a"]), lineTangencyAngle);
  return {
    center: center,
    circleTangency: circleTangency,
    lineTangency: lineTangency,
    theta: theta
  };
};

var getSectorPath = function getSectorPath(_ref2) {
  var cx = _ref2.cx,
      cy = _ref2.cy,
      innerRadius = _ref2.innerRadius,
      outerRadius = _ref2.outerRadius,
      startAngle = _ref2.startAngle,
      endAngle = _ref2.endAngle;
  var angle = getDeltaAngle(startAngle, endAngle); // When the angle of sector equals to 360, star point and end point coincide

  var tempEndAngle = startAngle + angle;
  var outerStartPoint = Object(_util_PolarUtils__WEBPACK_IMPORTED_MODULE_3__[/* polarToCartesian */ "e"])(cx, cy, outerRadius, startAngle);
  var outerEndPoint = Object(_util_PolarUtils__WEBPACK_IMPORTED_MODULE_3__[/* polarToCartesian */ "e"])(cx, cy, outerRadius, tempEndAngle);
  var path = "M ".concat(outerStartPoint.x, ",").concat(outerStartPoint.y, "\n    A ").concat(outerRadius, ",").concat(outerRadius, ",0,\n    ").concat(+(Math.abs(angle) > 180), ",").concat(+(startAngle > tempEndAngle), ",\n    ").concat(outerEndPoint.x, ",").concat(outerEndPoint.y, "\n  ");

  if (innerRadius > 0) {
    var innerStartPoint = Object(_util_PolarUtils__WEBPACK_IMPORTED_MODULE_3__[/* polarToCartesian */ "e"])(cx, cy, innerRadius, startAngle);
    var innerEndPoint = Object(_util_PolarUtils__WEBPACK_IMPORTED_MODULE_3__[/* polarToCartesian */ "e"])(cx, cy, innerRadius, tempEndAngle);
    path += "L ".concat(innerEndPoint.x, ",").concat(innerEndPoint.y, "\n            A ").concat(innerRadius, ",").concat(innerRadius, ",0,\n            ").concat(+(Math.abs(angle) > 180), ",").concat(+(startAngle <= tempEndAngle), ",\n            ").concat(innerStartPoint.x, ",").concat(innerStartPoint.y, " Z");
  } else {
    path += "L ".concat(cx, ",").concat(cy, " Z");
  }

  return path;
};

var getSectorWithCorner = function getSectorWithCorner(_ref3) {
  var cx = _ref3.cx,
      cy = _ref3.cy,
      innerRadius = _ref3.innerRadius,
      outerRadius = _ref3.outerRadius,
      cornerRadius = _ref3.cornerRadius,
      forceCornerRadius = _ref3.forceCornerRadius,
      cornerIsExternal = _ref3.cornerIsExternal,
      startAngle = _ref3.startAngle,
      endAngle = _ref3.endAngle;
  var sign = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_4__[/* mathSign */ "j"])(endAngle - startAngle);

  var _getTangentCircle = getTangentCircle({
    cx: cx,
    cy: cy,
    radius: outerRadius,
    angle: startAngle,
    sign: sign,
    cornerRadius: cornerRadius,
    cornerIsExternal: cornerIsExternal
  }),
      soct = _getTangentCircle.circleTangency,
      solt = _getTangentCircle.lineTangency,
      sot = _getTangentCircle.theta;

  var _getTangentCircle2 = getTangentCircle({
    cx: cx,
    cy: cy,
    radius: outerRadius,
    angle: endAngle,
    sign: -sign,
    cornerRadius: cornerRadius,
    cornerIsExternal: cornerIsExternal
  }),
      eoct = _getTangentCircle2.circleTangency,
      eolt = _getTangentCircle2.lineTangency,
      eot = _getTangentCircle2.theta;

  var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;

  if (outerArcAngle < 0) {
    if (forceCornerRadius) {
      return "M ".concat(solt.x, ",").concat(solt.y, "\n        a").concat(cornerRadius, ",").concat(cornerRadius, ",0,0,1,").concat(cornerRadius * 2, ",0\n        a").concat(cornerRadius, ",").concat(cornerRadius, ",0,0,1,").concat(-cornerRadius * 2, ",0\n      ");
    }

    return getSectorPath({
      cx: cx,
      cy: cy,
      innerRadius: innerRadius,
      outerRadius: outerRadius,
      startAngle: startAngle,
      endAngle: endAngle
    });
  }

  var path = "M ".concat(solt.x, ",").concat(solt.y, "\n    A").concat(cornerRadius, ",").concat(cornerRadius, ",0,0,").concat(+(sign < 0), ",").concat(soct.x, ",").concat(soct.y, "\n    A").concat(outerRadius, ",").concat(outerRadius, ",0,").concat(+(outerArcAngle > 180), ",").concat(+(sign < 0), ",").concat(eoct.x, ",").concat(eoct.y, "\n    A").concat(cornerRadius, ",").concat(cornerRadius, ",0,0,").concat(+(sign < 0), ",").concat(eolt.x, ",").concat(eolt.y, "\n  ");

  if (innerRadius > 0) {
    var _getTangentCircle3 = getTangentCircle({
      cx: cx,
      cy: cy,
      radius: innerRadius,
      angle: startAngle,
      sign: sign,
      isExternal: true,
      cornerRadius: cornerRadius,
      cornerIsExternal: cornerIsExternal
    }),
        sict = _getTangentCircle3.circleTangency,
        silt = _getTangentCircle3.lineTangency,
        sit = _getTangentCircle3.theta;

    var _getTangentCircle4 = getTangentCircle({
      cx: cx,
      cy: cy,
      radius: innerRadius,
      angle: endAngle,
      sign: -sign,
      isExternal: true,
      cornerRadius: cornerRadius,
      cornerIsExternal: cornerIsExternal
    }),
        eict = _getTangentCircle4.circleTangency,
        eilt = _getTangentCircle4.lineTangency,
        eit = _getTangentCircle4.theta;

    var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;

    if (innerArcAngle < 0 && cornerRadius === 0) {
      return "".concat(path, "L").concat(cx, ",").concat(cy, "Z");
    }

    path += "L".concat(eilt.x, ",").concat(eilt.y, "\n      A").concat(cornerRadius, ",").concat(cornerRadius, ",0,0,").concat(+(sign < 0), ",").concat(eict.x, ",").concat(eict.y, "\n      A").concat(innerRadius, ",").concat(innerRadius, ",0,").concat(+(innerArcAngle > 180), ",").concat(+(sign > 0), ",").concat(sict.x, ",").concat(sict.y, "\n      A").concat(cornerRadius, ",").concat(cornerRadius, ",0,0,").concat(+(sign < 0), ",").concat(silt.x, ",").concat(silt.y, "Z");
  } else {
    path += "L".concat(cx, ",").concat(cy, "Z");
  }

  return path;
};

var Sector = /*#__PURE__*/function (_PureComponent) {
  _inherits(Sector, _PureComponent);

  var _super = _createSuper(Sector);

  function Sector() {
    _classCallCheck(this, Sector);

    return _super.apply(this, arguments);
  }

  _createClass(Sector, [{
    key: "render",
    value: function render() {
      var _this$props = this.props,
          cx = _this$props.cx,
          cy = _this$props.cy,
          innerRadius = _this$props.innerRadius,
          outerRadius = _this$props.outerRadius,
          cornerRadius = _this$props.cornerRadius,
          forceCornerRadius = _this$props.forceCornerRadius,
          cornerIsExternal = _this$props.cornerIsExternal,
          startAngle = _this$props.startAngle,
          endAngle = _this$props.endAngle,
          className = _this$props.className;

      if (outerRadius < innerRadius || startAngle === endAngle) {
        return null;
      }

      var layerClass = classnames__WEBPACK_IMPORTED_MODULE_1___default()('recharts-sector', className);
      var deltaRadius = outerRadius - innerRadius;
      var cr = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_4__[/* getPercentValue */ "d"])(cornerRadius, deltaRadius, 0, true);
      var path;

      if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {
        path = getSectorWithCorner({
          cx: cx,
          cy: cy,
          innerRadius: innerRadius,
          outerRadius: outerRadius,
          cornerRadius: Math.min(cr, deltaRadius / 2),
          forceCornerRadius: forceCornerRadius,
          cornerIsExternal: cornerIsExternal,
          startAngle: startAngle,
          endAngle: endAngle
        });
      } else {
        path = getSectorPath({
          cx: cx,
          cy: cy,
          innerRadius: innerRadius,
          outerRadius: outerRadius,
          startAngle: startAngle,
          endAngle: endAngle
        });
      }

      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", _extends({}, Object(_util_types__WEBPACK_IMPORTED_MODULE_2__[/* filterProps */ "c"])(this.props, true), {
        className: layerClass,
        d: path
      }));
    }
  }]);

  return Sector;
}(react__WEBPACK_IMPORTED_MODULE_0__["PureComponent"]);
Sector.defaultProps = {
  cx: 0,
  cy: 0,
  innerRadius: 0,
  outerRadius: 0,
  startAngle: 0,
  endAngle: 0,
  cornerRadius: 0,
  forceCornerRadius: false,
  cornerIsExternal: false
};/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return eventCenter; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SYNC_EVENT; });
/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(664);
/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(eventemitter3__WEBPACK_IMPORTED_MODULE_0__);

var eventCenter = new eventemitter3__WEBPACK_IMPORTED_MODULE_0___default.a();

if (eventCenter.setMaxListeners) {
  eventCenter.setMaxListeners(10);
}


var SYNC_EVENT = 'recharts.syncMouseEvents'; // eslint-disable-next-line no-redeclare

var has = Object.prototype.hasOwnProperty
  , prefix = '~';

/**
 * Constructor to create a storage for our `EE` objects.
 * An `Events` instance is a plain object whose properties are event names.
 *
 * @constructor
 * @private
 */
function Events() {}

//
// We try to not inherit from `Object.prototype`. In some engines creating an
// instance in this way is faster than calling `Object.create(null)` directly.
// If `Object.create(null)` is not supported we prefix the event names with a
// character to make sure that the built-in object properties are not
// overridden or used as an attack vector.
//
if (Object.create) {
  Events.prototype = Object.create(null);

  //
  // This hack is needed because the `__proto__` property is still inherited in
  // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.
  //
  if (!new Events().__proto__) prefix = false;
}

/**
 * Representation of a single event listener.
 *
 * @param {Function} fn The listener function.
 * @param {*} context The context to invoke the listener with.
 * @param {Boolean} [once=false] Specify if the listener is a one-time listener.
 * @constructor
 * @private
 */
function EE(fn, context, once) {
  this.fn = fn;
  this.context = context;
  this.once = once || false;
}

/**
 * Add a listener for a given event.
 *
 * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
 * @param {(String|Symbol)} event The event name.
 * @param {Function} fn The listener function.
 * @param {*} context The context to invoke the listener with.
 * @param {Boolean} once Specify if the listener is a one-time listener.
 * @returns {EventEmitter}
 * @private
 */
function addListener(emitter, event, fn, context, once) {
  if (typeof fn !== 'function') {
    throw new TypeError('The listener must be a function');
  }

  var listener = new EE(fn, context || emitter, once)
    , evt = prefix ? prefix + event : event;

  if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;
  else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);
  else emitter._events[evt] = [emitter._events[evt], listener];

  return emitter;
}

/**
 * Clear event by name.
 *
 * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.
 * @param {(String|Symbol)} evt The Event name.
 * @private
 */
function clearEvent(emitter, evt) {
  if (--emitter._eventsCount === 0) emitter._events = new Events();
  else delete emitter._events[evt];
}

/**
 * Minimal `EventEmitter` interface that is molded against the Node.js
 * `EventEmitter` interface.
 *
 * @constructor
 * @public
 */
function EventEmitter() {
  this._events = new Events();
  this._eventsCount = 0;
}

/**
 * Return an array listing the events for which the emitter has registered
 * listeners.
 *
 * @returns {Array}
 * @public
 */
EventEmitter.prototype.eventNames = function eventNames() {
  var names = []
    , events
    , name;

  if (this._eventsCount === 0) return names;

  for (name in (events = this._events)) {
    if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);
  }

  if (Object.getOwnPropertySymbols) {
    return names.concat(Object.getOwnPropertySymbols(events));
  }

  return names;
};

/**
 * Return the listeners registered for a given event.
 *
 * @param {(String|Symbol)} event The event name.
 * @returns {Array} The registered listeners.
 * @public
 */
EventEmitter.prototype.listeners = function listeners(event) {
  var evt = prefix ? prefix + event : event
    , handlers = this._events[evt];

  if (!handlers) return [];
  if (handlers.fn) return [handlers.fn];

  for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {
    ee[i] = handlers[i].fn;
  }

  return ee;
};

/**
 * Return the number of listeners listening to a given event.
 *
 * @param {(String|Symbol)} event The event name.
 * @returns {Number} The number of listeners.
 * @public
 */
EventEmitter.prototype.listenerCount = function listenerCount(event) {
  var evt = prefix ? prefix + event : event
    , listeners = this._events[evt];

  if (!listeners) return 0;
  if (listeners.fn) return 1;
  return listeners.length;
};

/**
 * Calls each of the listeners registered for a given event.
 *
 * @param {(String|Symbol)} event The event name.
 * @returns {Boolean} `true` if the event had listeners, else `false`.
 * @public
 */
EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {
  var evt = prefix ? prefix + event : event;

  if (!this._events[evt]) return false;

  var listeners = this._events[evt]
    , len = arguments.length
    , args
    , i;

  if (listeners.fn) {
    if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);

    switch (len) {
      case 1: return listeners.fn.call(listeners.context), true;
      case 2: return listeners.fn.call(listeners.context, a1), true;
      case 3: return listeners.fn.call(listeners.context, a1, a2), true;
      case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;
      case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;
      case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;
    }

    for (i = 1, args = new Array(len -1); i < len; i++) {
      args[i - 1] = arguments[i];
    }

    listeners.fn.apply(listeners.context, args);
  } else {
    var length = listeners.length
      , j;

    for (i = 0; i < length; i++) {
      if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);

      switch (len) {
        case 1: listeners[i].fn.call(listeners[i].context); break;
        case 2: listeners[i].fn.call(listeners[i].context, a1); break;
        case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;
        case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;
        default:
          if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {
            args[j - 1] = arguments[j];
          }

          listeners[i].fn.apply(listeners[i].context, args);
      }
    }
  }

  return true;
};

/**
 * Add a listener for a given event.
 *
 * @param {(String|Symbol)} event The event name.
 * @param {Function} fn The listener function.
 * @param {*} [context=this] The context to invoke the listener with.
 * @returns {EventEmitter} `this`.
 * @public
 */
EventEmitter.prototype.on = function on(event, fn, context) {
  return addListener(this, event, fn, context, false);
};

/**
 * Add a one-time listener for a given event.
 *
 * @param {(String|Symbol)} event The event name.
 * @param {Function} fn The listener function.
 * @param {*} [context=this] The context to invoke the listener with.
 * @returns {EventEmitter} `this`.
 * @public
 */
EventEmitter.prototype.once = function once(event, fn, context) {
  return addListener(this, event, fn, context, true);
};

/**
 * Remove the listeners of a given event.
 *
 * @param {(String|Symbol)} event The event name.
 * @param {Function} fn Only remove the listeners that match this function.
 * @param {*} context Only remove the listeners that have this context.
 * @param {Boolean} once Only remove one-time listeners.
 * @returns {EventEmitter} `this`.
 * @public
 */
EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {
  var evt = prefix ? prefix + event : event;

  if (!this._events[evt]) return this;
  if (!fn) {
    clearEvent(this, evt);
    return this;
  }

  var listeners = this._events[evt];

  if (listeners.fn) {
    if (
      listeners.fn === fn &&
      (!once || listeners.once) &&
      (!context || listeners.context === context)
    ) {
      clearEvent(this, evt);
    }
  } else {
    for (var i = 0, events = [], length = listeners.length; i < length; i++) {
      if (
        listeners[i].fn !== fn ||
        (once && !listeners[i].once) ||
        (context && listeners[i].context !== context)
      ) {
        events.push(listeners[i]);
      }
    }

    //
    // Reset the array, or remove it completely if we have no more listeners.
    //
    if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;
    else clearEvent(this, evt);
  }

  return this;
};

/**
 * Remove all listeners, or those of the specified event.
 *
 * @param {(String|Symbol)} [event] The event name.
 * @returns {EventEmitter} `this`.
 * @public
 */
EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {
  var evt;

  if (event) {
    evt = prefix ? prefix + event : event;
    if (this._events[evt]) clearEvent(this, evt);
  } else {
    this._events = new Events();
    this._eventsCount = 0;
  }

  return this;
};

//
// Alias methods names because people roll like that.
//
EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
EventEmitter.prototype.addListener = EventEmitter.prototype.on;

//
// Expose the prefix.
//
EventEmitter.prefixed = prefix;

//
// Allow `EventEmitter` to be imported as module namespace.
//
EventEmitter.EventEmitter = EventEmitter;

//
// Expose the module.
//
if (true) {
  module.exports = EventEmitter;
}
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LabelList; });
/* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(143);
/* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_isObject__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51);
/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isFunction__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var lodash_isNil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48);
/* harmony import */ var lodash_isNil__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isNil__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var lodash_last__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(665);
/* harmony import */ var lodash_last__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash_last__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var lodash_isArray__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(71);
/* harmony import */ var lodash_isArray__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_isArray__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _Label__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(150);
/* harmony import */ var _container_Layer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(60);
/* harmony import */ var _util_ReactUtils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(68);
/* harmony import */ var _util_ChartUtils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(49);
/* harmony import */ var _util_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(42);






function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }

function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _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 _arrayLikeToArray(o, minLen); }

function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }

function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }

function _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; }

function _extends() { _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 _extends.apply(this, arguments); }

function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _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; }

function _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; }







var defaultProps = {
  valueAccessor: function valueAccessor(entry) {
    return lodash_isArray__WEBPACK_IMPORTED_MODULE_4___default()(entry.value) ? lodash_last__WEBPACK_IMPORTED_MODULE_3___default()(entry.value) : entry.value;
  }
};
function LabelList(props) {
  var data = props.data,
      valueAccessor = props.valueAccessor,
      dataKey = props.dataKey,
      clockWise = props.clockWise,
      id = props.id,
      textBreakAll = props.textBreakAll,
      others = _objectWithoutProperties(props, ["data", "valueAccessor", "dataKey", "clockWise", "id", "textBreakAll"]);

  if (!data || !data.length) {
    return null;
  }

  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_container_Layer__WEBPACK_IMPORTED_MODULE_7__[/* Layer */ "a"], {
    className: "recharts-label-list"
  }, data.map(function (entry, index) {
    var value = lodash_isNil__WEBPACK_IMPORTED_MODULE_2___default()(dataKey) ? valueAccessor(entry, index) : Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_9__[/* getValueByDataKey */ "w"])(entry && entry.payload, dataKey);
    var idProps = lodash_isNil__WEBPACK_IMPORTED_MODULE_2___default()(id) ? {} : {
      id: "".concat(id, "-").concat(index)
    };
    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_Label__WEBPACK_IMPORTED_MODULE_6__[/* Label */ "a"], _extends({}, Object(_util_types__WEBPACK_IMPORTED_MODULE_10__[/* filterProps */ "c"])(entry, true), others, idProps, {
      parentViewBox: entry.parentViewBox,
      index: index,
      value: value,
      textBreakAll: textBreakAll,
      viewBox: _Label__WEBPACK_IMPORTED_MODULE_6__[/* Label */ "a"].parseViewBox(lodash_isNil__WEBPACK_IMPORTED_MODULE_2___default()(clockWise) ? entry : _objectSpread(_objectSpread({}, entry), {}, {
        clockWise: clockWise
      })),
      key: "label-".concat(index) // eslint-disable-line react/no-array-index-key

    }));
  }));
}
LabelList.displayName = 'LabelList';

function parseLabelList(label, data) {
  if (!label) {
    return null;
  }

  if (label === true) {
    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(LabelList, {
      key: "labelList-implicit",
      data: data
    });
  }

  if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default.a.isValidElement(label) || lodash_isFunction__WEBPACK_IMPORTED_MODULE_1___default()(label)) {
    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(LabelList, {
      key: "labelList-implicit",
      data: data,
      content: label
    });
  }

  if (lodash_isObject__WEBPACK_IMPORTED_MODULE_0___default()(label)) {
    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(LabelList, _extends({
      data: data
    }, label, {
      key: "labelList-implicit"
    }));
  }

  return null;
}

function renderCallByParent(parentProps, data) {
  var ckeckPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;

  if (!parentProps || !parentProps.children && ckeckPropsLabel && !parentProps.label) {
    return null;
  }

  var children = parentProps.children;
  var explicitChilren = Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_8__[/* findAllByType */ "a"])(children, LabelList.displayName).map(function (child, index) {
    return /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_5__["cloneElement"])(child, {
      data: data,
      key: "labelList-".concat(index)
    });
  });

  if (!ckeckPropsLabel) {
    return explicitChilren;
  }

  var implicitLabelList = parseLabelList(parentProps.label, data);
  return [implicitLabelList].concat(_toConsumableArray(explicitChilren));
}

LabelList.renderCallByParent = renderCallByParent;
LabelList.defaultProps = defaultProps;/**
 * Gets the last element of `array`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Array
 * @param {Array} array The array to query.
 * @returns {*} Returns the last element of `array`.
 * @example
 *
 * _.last([1, 2, 3]);
 * // => 3
 */
function last(array) {
  var length = array == null ? 0 : array.length;
  return length ? array[length - 1] : undefined;
}

module.exports = last;
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Cell; });
/**
 * @fileOverview Cross
 */
var Cell = function Cell(props) {
  return null;
};
Cell.displayName = 'Cell';

__webpack_require__(81);

__webpack_require__(985);

__webpack_require__(308);// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(986);
if(typeof content === 'string') content = [[module.i, content, '']];
// Prepare cssTransformation
var transform;

var options = {"hmr":true}
options.transform = transform
// add the styles to the DOM
var update = __webpack_require__(85)(content, options);
if(content.locals) module.exports = content.locals;
// Hot Module Replacement
if(false) {}exports = module.exports = __webpack_require__(84)(undefined);
// imports


// module
exports.push([module.i, "/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-slider {\n  font-family: 'Stolzl', sans-serif;\n  font-size: 12px;\n  font-variant: tabular-nums;\n  line-height: 1.5;\n  color: #586784;\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  position: relative;\n  margin: 14px 6px 10px;\n  padding: 4px 0;\n  height: 12px;\n  cursor: pointer;\n}\n.ant-slider-vertical {\n  width: 12px;\n  height: 100%;\n  margin: 6px 10px;\n  padding: 0 4px;\n}\n.ant-slider-vertical .ant-slider-rail {\n  height: 100%;\n  width: 4px;\n}\n.ant-slider-vertical .ant-slider-track {\n  width: 4px;\n}\n.ant-slider-vertical .ant-slider-handle {\n  margin-left: -5px;\n  margin-bottom: -7px;\n}\n.ant-slider-vertical .ant-slider-mark {\n  top: 0;\n  left: 12px;\n  width: 18px;\n  height: 100%;\n}\n.ant-slider-vertical .ant-slider-mark-text {\n  left: 4px;\n  white-space: nowrap;\n}\n.ant-slider-vertical .ant-slider-step {\n  width: 4px;\n  height: 100%;\n}\n.ant-slider-vertical .ant-slider-dot {\n  top: auto;\n  left: 2px;\n  margin-bottom: -4px;\n}\n.ant-slider-with-marks {\n  margin-bottom: 28px;\n}\n.ant-slider-rail {\n  position: absolute;\n  width: 100%;\n  height: 4px;\n  border-radius: 2px;\n  background-color: #f5f5f5;\n  transition: background-color 0.3s;\n}\n.ant-slider-track {\n  position: absolute;\n  height: 4px;\n  border-radius: 10px;\n  background-color: #91d5ff;\n  transition: background-color 0.3s ease;\n}\n.ant-slider-handle {\n  position: absolute;\n  margin-left: -7px;\n  margin-top: -5px;\n  width: 14px;\n  height: 14px;\n  cursor: pointer;\n  border-radius: 50%;\n  border: solid 2px #91d5ff;\n  background-color: #fff;\n  transition: border-color 0.3s, transform 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28);\n}\n.ant-slider-handle:focus {\n  border-color: #46a6ff;\n  box-shadow: 0 0 0 5px #8cc8ff;\n  outline: none;\n}\n.ant-slider-handle.ant-tooltip-open {\n  border-color: #1890ff;\n}\n.ant-slider:hover .ant-slider-rail {\n  background-color: #e1e1e1;\n}\n.ant-slider:hover .ant-slider-track {\n  background-color: #69c0ff;\n}\n.ant-slider:hover .ant-slider-handle:not(.ant-tooltip-open) {\n  border-color: #69c0ff;\n}\n.ant-slider-mark {\n  position: absolute;\n  top: 14px;\n  left: 0;\n  width: 100%;\n  font-size: 12px;\n}\n.ant-slider-mark-text {\n  position: absolute;\n  display: inline-block;\n  vertical-align: middle;\n  text-align: center;\n  cursor: pointer;\n  color: rgba(0, 0, 0, 0.45);\n}\n.ant-slider-mark-text-active {\n  color: #586784;\n}\n.ant-slider-step {\n  position: absolute;\n  width: 100%;\n  height: 4px;\n  background: transparent;\n}\n.ant-slider-dot {\n  position: absolute;\n  top: -2px;\n  margin-left: -4px;\n  width: 8px;\n  height: 8px;\n  border: 2px solid #e8e8e8;\n  background-color: #fff;\n  cursor: pointer;\n  border-radius: 50%;\n  vertical-align: middle;\n}\n.ant-slider-dot:first-child {\n  margin-left: -4px;\n}\n.ant-slider-dot:last-child {\n  margin-left: -4px;\n}\n.ant-slider-dot-active {\n  border-color: #8cc8ff;\n}\n.ant-slider-disabled {\n  cursor: not-allowed;\n}\n.ant-slider-disabled .ant-slider-track {\n  background-color: #a2adc4 !important;\n}\n.ant-slider-disabled .ant-slider-handle,\n.ant-slider-disabled .ant-slider-dot {\n  border-color: #a2adc4 !important;\n  background-color: #fff;\n  cursor: not-allowed;\n  box-shadow: none;\n}\n.ant-slider-disabled .ant-slider-mark-text,\n.ant-slider-disabled .ant-slider-dot {\n  cursor: not-allowed !important;\n}\n", ""]);

// exports


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(41);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _extends3 = __webpack_require__(19);

var _extends4 = _interopRequireDefault(_extends3);

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _createClass2 = __webpack_require__(34);

var _createClass3 = _interopRequireDefault(_createClass2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var React = _interopRequireWildcard(_react);

var _Slider = __webpack_require__(987);

var _Slider2 = _interopRequireDefault(_Slider);

var _Range = __webpack_require__(990);

var _Range2 = _interopRequireDefault(_Range);

var _Handle = __webpack_require__(620);

var _Handle2 = _interopRequireDefault(_Handle);

var _tooltip = __webpack_require__(184);

var _tooltip2 = _interopRequireDefault(_tooltip);

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var __rest = undefined && undefined.__rest || function (s, e) {
    var t = {};
    for (var p in s) {
        if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
    }if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
        if (e.indexOf(p[i]) < 0) t[p[i]] = s[p[i]];
    }return t;
};

var Slider = function (_React$Component) {
    (0, _inherits3['default'])(Slider, _React$Component);

    function Slider(props) {
        (0, _classCallCheck3['default'])(this, Slider);

        var _this = (0, _possibleConstructorReturn3['default'])(this, (Slider.__proto__ || Object.getPrototypeOf(Slider)).call(this, props));

        _this.toggleTooltipVisible = function (index, visible) {
            _this.setState(function (_ref) {
                var visibles = _ref.visibles;
                return {
                    visibles: (0, _extends4['default'])({}, visibles, (0, _defineProperty3['default'])({}, index, visible))
                };
            });
        };
        _this.handleWithTooltip = function (_a) {
            var value = _a.value,
                dragging = _a.dragging,
                index = _a.index,
                restProps = __rest(_a, ["value", "dragging", "index"]);

            var _this$props = _this.props,
                tooltipPrefixCls = _this$props.tooltipPrefixCls,
                tipFormatter = _this$props.tipFormatter;
            var visibles = _this.state.visibles;

            var visible = tipFormatter ? visibles[index] || dragging : false;
            return React.createElement(
                _tooltip2['default'],
                { prefixCls: tooltipPrefixCls, title: tipFormatter ? tipFormatter(value) : '', visible: visible, placement: 'top', transitionName: 'zoom-down', key: index },
                React.createElement(_Handle2['default'], (0, _extends4['default'])({}, restProps, { value: value, onMouseEnter: function onMouseEnter() {
                        return _this.toggleTooltipVisible(index, true);
                    }, onMouseLeave: function onMouseLeave() {
                        return _this.toggleTooltipVisible(index, false);
                    } }))
            );
        };
        _this.saveSlider = function (node) {
            _this.rcSlider = node;
        };
        _this.state = {
            visibles: {}
        };
        return _this;
    }

    (0, _createClass3['default'])(Slider, [{
        key: 'focus',
        value: function focus() {
            this.rcSlider.focus();
        }
    }, {
        key: 'blur',
        value: function blur() {
            this.rcSlider.focus();
        }
    }, {
        key: 'render',
        value: function render() {
            var _a = this.props,
                range = _a.range,
                restProps = __rest(_a, ["range"]);
            if (range) {
                return React.createElement(_Range2['default'], (0, _extends4['default'])({}, restProps, { ref: this.saveSlider, handle: this.handleWithTooltip }));
            }
            return React.createElement(_Slider2['default'], (0, _extends4['default'])({}, restProps, { ref: this.saveSlider, handle: this.handleWithTooltip }));
        }
    }]);
    return Slider;
}(React.Component);

exports['default'] = Slider;

Slider.defaultProps = {
    prefixCls: 'ant-slider',
    tooltipPrefixCls: 'ant-tooltip',
    tipFormatter: function tipFormatter(value) {
        return value.toString();
    }
};
module.exports = exports['default'];

exports.__esModule = true;

var _extends2 = __webpack_require__(19);

var _extends3 = _interopRequireDefault(_extends2);

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _warning = __webpack_require__(402);

var _warning2 = _interopRequireDefault(_warning);

var _Track = __webpack_require__(618);

var _Track2 = _interopRequireDefault(_Track);

var _createSlider = __webpack_require__(619);

var _createSlider2 = _interopRequireDefault(_createSlider);

var _utils = __webpack_require__(494);

var utils = _interopRequireWildcard(_utils);

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

/* eslint-disable react/prop-types */
var Slider = function (_React$Component) {
  (0, _inherits3['default'])(Slider, _React$Component);

  function Slider(props) {
    (0, _classCallCheck3['default'])(this, Slider);

    var _this = (0, _possibleConstructorReturn3['default'])(this, _React$Component.call(this, props));

    _this.onEnd = function () {
      _this.setState({ dragging: false });
      _this.removeDocumentEvents();
      _this.props.onAfterChange(_this.getValue());
    };

    var defaultValue = props.defaultValue !== undefined ? props.defaultValue : props.min;
    var value = props.value !== undefined ? props.value : defaultValue;

    _this.state = {
      value: _this.trimAlignValue(value),
      dragging: false
    };
    if (false) {}
    return _this;
  }

  Slider.prototype.componentDidMount = function componentDidMount() {
    var _props = this.props,
        autoFocus = _props.autoFocus,
        disabled = _props.disabled;

    if (autoFocus && !disabled) {
      this.focus();
    }
  };

  Slider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
    if (!('value' in nextProps || 'min' in nextProps || 'max' in nextProps)) return;

    var prevValue = this.state.value;
    var value = nextProps.value !== undefined ? nextProps.value : prevValue;
    var nextValue = this.trimAlignValue(value, nextProps);
    if (nextValue === prevValue) return;

    this.setState({ value: nextValue });
    if (utils.isValueOutOfRange(value, nextProps)) {
      this.props.onChange(nextValue);
    }
  };

  Slider.prototype.onChange = function onChange(state) {
    var props = this.props;
    var isNotControlled = !('value' in props);
    if (isNotControlled) {
      this.setState(state);
    }

    var changedValue = state.value;
    props.onChange(changedValue);
  };

  Slider.prototype.onStart = function onStart(position) {
    this.setState({ dragging: true });
    var props = this.props;
    var prevValue = this.getValue();
    props.onBeforeChange(prevValue);

    var value = this.calcValueByPos(position);
    this.startValue = value;
    this.startPosition = position;

    if (value === prevValue) return;

    this.onChange({ value: value });
  };

  Slider.prototype.onMove = function onMove(e, position) {
    utils.pauseEvent(e);
    var oldValue = this.state.value;

    var value = this.calcValueByPos(position);
    if (value === oldValue) return;

    this.onChange({ value: value });
  };

  Slider.prototype.onKeyboard = function onKeyboard(e) {
    var valueMutator = utils.getKeyboardValueMutator(e);

    if (valueMutator) {
      utils.pauseEvent(e);
      var state = this.state;
      var oldValue = state.value;
      var mutatedValue = valueMutator(oldValue, this.props);
      var value = this.trimAlignValue(mutatedValue);
      if (value === oldValue) return;

      this.onChange({ value: value });
    }
  };

  Slider.prototype.getValue = function getValue() {
    return this.state.value;
  };

  Slider.prototype.getLowerBound = function getLowerBound() {
    return this.props.min;
  };

  Slider.prototype.getUpperBound = function getUpperBound() {
    return this.state.value;
  };

  Slider.prototype.trimAlignValue = function trimAlignValue(v) {
    var nextProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

    var mergedProps = (0, _extends3['default'])({}, this.props, nextProps);
    var val = utils.ensureValueInRange(v, mergedProps);
    return utils.ensureValuePrecision(val, mergedProps);
  };

  Slider.prototype.render = function render() {
    var _this2 = this;

    var _props2 = this.props,
        prefixCls = _props2.prefixCls,
        vertical = _props2.vertical,
        included = _props2.included,
        disabled = _props2.disabled,
        minimumTrackStyle = _props2.minimumTrackStyle,
        trackStyle = _props2.trackStyle,
        handleStyle = _props2.handleStyle,
        tabIndex = _props2.tabIndex,
        min = _props2.min,
        max = _props2.max,
        handleGenerator = _props2.handle;
    var _state = this.state,
        value = _state.value,
        dragging = _state.dragging;

    var offset = this.calcOffset(value);
    var handle = handleGenerator({
      className: prefixCls + '-handle',
      vertical: vertical,
      offset: offset,
      value: value,
      dragging: dragging,
      disabled: disabled,
      min: min,
      max: max,
      index: 0,
      tabIndex: tabIndex,
      style: handleStyle[0] || handleStyle,
      ref: function ref(h) {
        return _this2.saveHandle(0, h);
      }
    });

    var _trackStyle = trackStyle[0] || trackStyle;
    var track = _react2['default'].createElement(_Track2['default'], {
      className: prefixCls + '-track',
      vertical: vertical,
      included: included,
      offset: 0,
      length: offset,
      style: (0, _extends3['default'])({}, minimumTrackStyle, _trackStyle)
    });

    return { tracks: track, handles: handle };
  };

  return Slider;
}(_react2['default'].Component);

Slider.propTypes = {
  defaultValue: _propTypes2['default'].number,
  value: _propTypes2['default'].number,
  disabled: _propTypes2['default'].bool,
  autoFocus: _propTypes2['default'].bool,
  tabIndex: _propTypes2['default'].number
};
exports['default'] = (0, _createSlider2['default'])(Slider);
module.exports = exports['default'];/**
 * Copyright 2014-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 */



/**
 * Similar to invariant but only logs a warning if the condition is not met.
 * This can be used to log issues in development environments in critical
 * paths. Removing the logging code for production environments will keep the
 * same logic and follow the same code paths.
 */

var warning = function() {};

if (false) {}

module.exports = warning;


exports.__esModule = true;

var _extends2 = __webpack_require__(19);

var _extends3 = _interopRequireDefault(_extends2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var Track = function Track(props) {
  var className = props.className,
      included = props.included,
      vertical = props.vertical,
      offset = props.offset,
      length = props.length,
      style = props.style;


  var positonStyle = vertical ? {
    bottom: offset + '%',
    height: length + '%'
  } : {
    left: offset + '%',
    width: length + '%'
  };

  var elStyle = (0, _extends3['default'])({}, style, positonStyle);
  return included ? _react2['default'].createElement('div', { className: className, style: elStyle }) : null;
}; /* eslint-disable react/prop-types */
exports['default'] = Track;
module.exports = exports['default'];

exports.__esModule = true;

var _objectWithoutProperties2 = __webpack_require__(92);

var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);

var _extends2 = __webpack_require__(19);

var _extends3 = _interopRequireDefault(_extends2);

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

exports['default'] = createSlider;

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _addEventListener = __webpack_require__(413);

var _addEventListener2 = _interopRequireDefault(_addEventListener);

var _classnames = __webpack_require__(25);

var _classnames2 = _interopRequireDefault(_classnames);

var _warning = __webpack_require__(402);

var _warning2 = _interopRequireDefault(_warning);

var _Steps = __webpack_require__(988);

var _Steps2 = _interopRequireDefault(_Steps);

var _Marks = __webpack_require__(989);

var _Marks2 = _interopRequireDefault(_Marks);

var _Handle = __webpack_require__(620);

var _Handle2 = _interopRequireDefault(_Handle);

var _utils = __webpack_require__(494);

var utils = _interopRequireWildcard(_utils);

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function noop() {}

function createSlider(Component) {
  var _class, _temp;

  return _temp = _class = function (_Component) {
    (0, _inherits3['default'])(ComponentEnhancer, _Component);

    function ComponentEnhancer(props) {
      (0, _classCallCheck3['default'])(this, ComponentEnhancer);

      var _this = (0, _possibleConstructorReturn3['default'])(this, _Component.call(this, props));

      _this.onMouseDown = function (e) {
        if (e.button !== 0) {
          return;
        }

        var isVertical = _this.props.vertical;
        var position = utils.getMousePosition(isVertical, e);
        if (!utils.isEventFromHandle(e, _this.handlesRefs)) {
          _this.dragOffset = 0;
        } else {
          var handlePosition = utils.getHandleCenterPosition(isVertical, e.target);
          _this.dragOffset = position - handlePosition;
          position = handlePosition;
        }
        _this.removeDocumentEvents();
        _this.onStart(position);
        _this.addDocumentMouseEvents();
        utils.pauseEvent(e);
      };

      _this.onTouchStart = function (e) {
        if (utils.isNotTouchEvent(e)) return;

        var isVertical = _this.props.vertical;
        var position = utils.getTouchPosition(isVertical, e);
        if (!utils.isEventFromHandle(e, _this.handlesRefs)) {
          _this.dragOffset = 0;
        } else {
          var handlePosition = utils.getHandleCenterPosition(isVertical, e.target);
          _this.dragOffset = position - handlePosition;
          position = handlePosition;
        }
        _this.onStart(position);
        _this.addDocumentTouchEvents();
        utils.pauseEvent(e);
      };

      _this.onFocus = function (e) {
        var _this$props = _this.props,
            onFocus = _this$props.onFocus,
            vertical = _this$props.vertical;

        if (utils.isEventFromHandle(e, _this.handlesRefs)) {
          var handlePosition = utils.getHandleCenterPosition(vertical, e.target);
          _this.dragOffset = 0;
          _this.onStart(handlePosition);
          utils.pauseEvent(e);
          if (onFocus) {
            onFocus(e);
          }
        }
      };

      _this.onBlur = function (e) {
        var onBlur = _this.props.onBlur;

        _this.onEnd(e);
        if (onBlur) {
          onBlur(e);
        }
      };

      _this.onMouseMove = function (e) {
        if (!_this.sliderRef) {
          _this.onEnd();
          return;
        }
        var position = utils.getMousePosition(_this.props.vertical, e);
        _this.onMove(e, position - _this.dragOffset);
      };

      _this.onTouchMove = function (e) {
        if (utils.isNotTouchEvent(e) || !_this.sliderRef) {
          _this.onEnd();
          return;
        }

        var position = utils.getTouchPosition(_this.props.vertical, e);
        _this.onMove(e, position - _this.dragOffset);
      };

      _this.onKeyDown = function (e) {
        if (_this.sliderRef && utils.isEventFromHandle(e, _this.handlesRefs)) {
          _this.onKeyboard(e);
        }
      };

      _this.saveSlider = function (slider) {
        _this.sliderRef = slider;
      };

      if (false) { var step, max, min; }
      _this.handlesRefs = {};
      return _this;
    }

    ComponentEnhancer.prototype.componentWillUnmount = function componentWillUnmount() {
      if (_Component.prototype.componentWillUnmount) _Component.prototype.componentWillUnmount.call(this);
      this.removeDocumentEvents();
    };

    ComponentEnhancer.prototype.componentDidMount = function componentDidMount() {
      // Snapshot testing cannot handle refs, so be sure to null-check this.
      this.document = this.sliderRef && this.sliderRef.ownerDocument;
    };

    ComponentEnhancer.prototype.addDocumentTouchEvents = function addDocumentTouchEvents() {
      // just work for Chrome iOS Safari and Android Browser
      this.onTouchMoveListener = (0, _addEventListener2['default'])(this.document, 'touchmove', this.onTouchMove);
      this.onTouchUpListener = (0, _addEventListener2['default'])(this.document, 'touchend', this.onEnd);
    };

    ComponentEnhancer.prototype.addDocumentMouseEvents = function addDocumentMouseEvents() {
      this.onMouseMoveListener = (0, _addEventListener2['default'])(this.document, 'mousemove', this.onMouseMove);
      this.onMouseUpListener = (0, _addEventListener2['default'])(this.document, 'mouseup', this.onEnd);
    };

    ComponentEnhancer.prototype.removeDocumentEvents = function removeDocumentEvents() {
      /* eslint-disable no-unused-expressions */
      this.onTouchMoveListener && this.onTouchMoveListener.remove();
      this.onTouchUpListener && this.onTouchUpListener.remove();

      this.onMouseMoveListener && this.onMouseMoveListener.remove();
      this.onMouseUpListener && this.onMouseUpListener.remove();
      /* eslint-enable no-unused-expressions */
    };

    ComponentEnhancer.prototype.focus = function focus() {
      if (!this.props.disabled) {
        this.handlesRefs[0].focus();
      }
    };

    ComponentEnhancer.prototype.blur = function blur() {
      if (!this.props.disabled) {
        this.handlesRefs[0].blur();
      }
    };

    ComponentEnhancer.prototype.getSliderStart = function getSliderStart() {
      var slider = this.sliderRef;
      var rect = slider.getBoundingClientRect();

      return this.props.vertical ? rect.top : rect.left;
    };

    ComponentEnhancer.prototype.getSliderLength = function getSliderLength() {
      var slider = this.sliderRef;
      if (!slider) {
        return 0;
      }

      var coords = slider.getBoundingClientRect();
      return this.props.vertical ? coords.height : coords.width;
    };

    ComponentEnhancer.prototype.calcValue = function calcValue(offset) {
      var _props = this.props,
          vertical = _props.vertical,
          min = _props.min,
          max = _props.max;

      var ratio = Math.abs(Math.max(offset, 0) / this.getSliderLength());
      var value = vertical ? (1 - ratio) * (max - min) + min : ratio * (max - min) + min;
      return value;
    };

    ComponentEnhancer.prototype.calcValueByPos = function calcValueByPos(position) {
      var pixelOffset = position - this.getSliderStart();
      var nextValue = this.trimAlignValue(this.calcValue(pixelOffset));
      return nextValue;
    };

    ComponentEnhancer.prototype.calcOffset = function calcOffset(value) {
      var _props2 = this.props,
          min = _props2.min,
          max = _props2.max;

      var ratio = (value - min) / (max - min);
      return ratio * 100;
    };

    ComponentEnhancer.prototype.saveHandle = function saveHandle(index, handle) {
      this.handlesRefs[index] = handle;
    };

    ComponentEnhancer.prototype.render = function render() {
      var _classNames;

      var _props3 = this.props,
          prefixCls = _props3.prefixCls,
          className = _props3.className,
          marks = _props3.marks,
          dots = _props3.dots,
          step = _props3.step,
          included = _props3.included,
          disabled = _props3.disabled,
          vertical = _props3.vertical,
          min = _props3.min,
          max = _props3.max,
          children = _props3.children,
          maximumTrackStyle = _props3.maximumTrackStyle,
          style = _props3.style,
          railStyle = _props3.railStyle,
          dotStyle = _props3.dotStyle,
          activeDotStyle = _props3.activeDotStyle;

      var _Component$prototype$ = _Component.prototype.render.call(this),
          tracks = _Component$prototype$.tracks,
          handles = _Component$prototype$.handles;

      var sliderClassName = (0, _classnames2['default'])(prefixCls, (_classNames = {}, _classNames[prefixCls + '-with-marks'] = Object.keys(marks).length, _classNames[prefixCls + '-disabled'] = disabled, _classNames[prefixCls + '-vertical'] = vertical, _classNames[className] = className, _classNames));
      return _react2['default'].createElement(
        'div',
        {
          ref: this.saveSlider,
          className: sliderClassName,
          onTouchStart: disabled ? noop : this.onTouchStart,
          onMouseDown: disabled ? noop : this.onMouseDown,
          onKeyDown: disabled ? noop : this.onKeyDown,
          onFocus: disabled ? noop : this.onFocus,
          onBlur: disabled ? noop : this.onBlur,
          style: style
        },
        _react2['default'].createElement('div', {
          className: prefixCls + '-rail',
          style: (0, _extends3['default'])({}, maximumTrackStyle, railStyle)
        }),
        tracks,
        _react2['default'].createElement(_Steps2['default'], {
          prefixCls: prefixCls,
          vertical: vertical,
          marks: marks,
          dots: dots,
          step: step,
          included: included,
          lowerBound: this.getLowerBound(),
          upperBound: this.getUpperBound(),
          max: max,
          min: min,
          dotStyle: dotStyle,
          activeDotStyle: activeDotStyle
        }),
        handles,
        _react2['default'].createElement(_Marks2['default'], {
          className: prefixCls + '-mark',
          vertical: vertical,
          marks: marks,
          included: included,
          lowerBound: this.getLowerBound(),
          upperBound: this.getUpperBound(),
          max: max,
          min: min
        }),
        children
      );
    };

    return ComponentEnhancer;
  }(Component), _class.displayName = 'ComponentEnhancer(' + Component.displayName + ')', _class.propTypes = (0, _extends3['default'])({}, Component.propTypes, {
    min: _propTypes2['default'].number,
    max: _propTypes2['default'].number,
    step: _propTypes2['default'].number,
    marks: _propTypes2['default'].object,
    included: _propTypes2['default'].bool,
    className: _propTypes2['default'].string,
    prefixCls: _propTypes2['default'].string,
    disabled: _propTypes2['default'].bool,
    children: _propTypes2['default'].any,
    onBeforeChange: _propTypes2['default'].func,
    onChange: _propTypes2['default'].func,
    onAfterChange: _propTypes2['default'].func,
    handle: _propTypes2['default'].func,
    dots: _propTypes2['default'].bool,
    vertical: _propTypes2['default'].bool,
    style: _propTypes2['default'].object,
    minimumTrackStyle: _propTypes2['default'].object, // just for compatibility, will be deperecate
    maximumTrackStyle: _propTypes2['default'].object, // just for compatibility, will be deperecate
    handleStyle: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].arrayOf(_propTypes2['default'].object)]),
    trackStyle: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].arrayOf(_propTypes2['default'].object)]),
    railStyle: _propTypes2['default'].object,
    dotStyle: _propTypes2['default'].object,
    activeDotStyle: _propTypes2['default'].object,
    autoFocus: _propTypes2['default'].bool,
    onFocus: _propTypes2['default'].func,
    onBlur: _propTypes2['default'].func
  }), _class.defaultProps = (0, _extends3['default'])({}, Component.defaultProps, {
    prefixCls: 'rc-slider',
    className: '',
    min: 0,
    max: 100,
    step: 1,
    marks: {},
    handle: function handle(_ref) {
      var index = _ref.index,
          restProps = (0, _objectWithoutProperties3['default'])(_ref, ['index']);

      delete restProps.dragging;
      return _react2['default'].createElement(_Handle2['default'], (0, _extends3['default'])({}, restProps, { key: index }));
    },

    onBeforeChange: noop,
    onChange: noop,
    onAfterChange: noop,
    included: true,
    disabled: false,
    dots: false,
    vertical: false,
    trackStyle: [{}],
    handleStyle: [{}],
    railStyle: {},
    dotStyle: {},
    activeDotStyle: {}
  }), _temp;
}
module.exports = exports['default'];

exports.__esModule = true;

var _extends2 = __webpack_require__(19);

var _extends3 = _interopRequireDefault(_extends2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _classnames = __webpack_require__(25);

var _classnames2 = _interopRequireDefault(_classnames);

var _warning = __webpack_require__(402);

var _warning2 = _interopRequireDefault(_warning);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var calcPoints = function calcPoints(vertical, marks, dots, step, min, max) {
  (0, _warning2['default'])(dots ? step > 0 : true, '`Slider[step]` should be a positive number in order to make Slider[dots] work.');
  var points = Object.keys(marks).map(parseFloat);
  if (dots) {
    for (var i = min; i <= max; i = i + step) {
      if (points.indexOf(i) >= 0) continue;
      points.push(i);
    }
  }
  return points;
};

var Steps = function Steps(_ref) {
  var prefixCls = _ref.prefixCls,
      vertical = _ref.vertical,
      marks = _ref.marks,
      dots = _ref.dots,
      step = _ref.step,
      included = _ref.included,
      lowerBound = _ref.lowerBound,
      upperBound = _ref.upperBound,
      max = _ref.max,
      min = _ref.min,
      dotStyle = _ref.dotStyle,
      activeDotStyle = _ref.activeDotStyle;

  var range = max - min;
  var elements = calcPoints(vertical, marks, dots, step, min, max).map(function (point) {
    var _classNames;

    var offset = Math.abs(point - min) / range * 100 + '%';

    var isActived = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;
    var style = vertical ? (0, _extends3['default'])({ bottom: offset }, dotStyle) : (0, _extends3['default'])({ left: offset }, dotStyle);
    if (isActived) {
      style = (0, _extends3['default'])({}, style, activeDotStyle);
    }

    var pointClassName = (0, _classnames2['default'])((_classNames = {}, _classNames[prefixCls + '-dot'] = true, _classNames[prefixCls + '-dot-active'] = isActived, _classNames));

    return _react2['default'].createElement('span', { className: pointClassName, style: style, key: point });
  });

  return _react2['default'].createElement(
    'div',
    { className: prefixCls + '-step' },
    elements
  );
};

exports['default'] = Steps;
module.exports = exports['default'];

exports.__esModule = true;

var _extends2 = __webpack_require__(19);

var _extends3 = _interopRequireDefault(_extends2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _classnames = __webpack_require__(25);

var _classnames2 = _interopRequireDefault(_classnames);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var Marks = function Marks(_ref) {
  var className = _ref.className,
      vertical = _ref.vertical,
      marks = _ref.marks,
      included = _ref.included,
      upperBound = _ref.upperBound,
      lowerBound = _ref.lowerBound,
      max = _ref.max,
      min = _ref.min;

  var marksKeys = Object.keys(marks);
  var marksCount = marksKeys.length;
  var unit = marksCount > 1 ? 100 / (marksCount - 1) : 100;
  var markWidth = unit * 0.9;

  var range = max - min;
  var elements = marksKeys.map(parseFloat).sort(function (a, b) {
    return a - b;
  }).map(function (point) {
    var _classNames;

    var markPoint = marks[point];
    var markPointIsObject = typeof markPoint === 'object' && !_react2['default'].isValidElement(markPoint);
    var markLabel = markPointIsObject ? markPoint.label : markPoint;
    if (!markLabel && markLabel !== 0) {
      return null;
    }

    var isActive = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;
    var markClassName = (0, _classnames2['default'])((_classNames = {}, _classNames[className + '-text'] = true, _classNames[className + '-text-active'] = isActive, _classNames));

    var bottomStyle = {
      marginBottom: '-50%',
      bottom: (point - min) / range * 100 + '%'
    };

    var leftStyle = {
      width: markWidth + '%',
      marginLeft: -markWidth / 2 + '%',
      left: (point - min) / range * 100 + '%'
    };

    var style = vertical ? bottomStyle : leftStyle;
    var markStyle = markPointIsObject ? (0, _extends3['default'])({}, style, markPoint.style) : style;
    return _react2['default'].createElement(
      'span',
      {
        className: markClassName,
        style: markStyle,
        key: point
      },
      markLabel
    );
  });

  return _react2['default'].createElement(
    'div',
    { className: className },
    elements
  );
};

exports['default'] = Marks;
module.exports = exports['default'];

exports.__esModule = true;

var _extends2 = __webpack_require__(19);

var _extends3 = _interopRequireDefault(_extends2);

var _objectWithoutProperties2 = __webpack_require__(92);

var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var Handle = function (_React$Component) {
  (0, _inherits3['default'])(Handle, _React$Component);

  function Handle() {
    (0, _classCallCheck3['default'])(this, Handle);
    return (0, _possibleConstructorReturn3['default'])(this, _React$Component.apply(this, arguments));
  }

  Handle.prototype.focus = function focus() {
    this.handle.focus();
  };

  Handle.prototype.blur = function blur() {
    this.handle.blur();
  };

  Handle.prototype.render = function render() {
    var _this2 = this;

    var _props = this.props,
        className = _props.className,
        vertical = _props.vertical,
        offset = _props.offset,
        style = _props.style,
        disabled = _props.disabled,
        min = _props.min,
        max = _props.max,
        value = _props.value,
        tabIndex = _props.tabIndex,
        restProps = (0, _objectWithoutProperties3['default'])(_props, ['className', 'vertical', 'offset', 'style', 'disabled', 'min', 'max', 'value', 'tabIndex']);


    var postionStyle = vertical ? { bottom: offset + '%' } : { left: offset + '%' };
    var elStyle = (0, _extends3['default'])({}, style, postionStyle);
    var ariaProps = {};
    if (value !== undefined) {
      ariaProps = (0, _extends3['default'])({}, ariaProps, {
        'aria-valuemin': min,
        'aria-valuemax': max,
        'aria-valuenow': value,
        'aria-disabled': !!disabled
      });
    }
    return _react2['default'].createElement('div', (0, _extends3['default'])({
      ref: function ref(node) {
        return _this2.handle = node;
      },
      role: 'slider',
      tabIndex: tabIndex || 0
    }, ariaProps, restProps, {
      className: className,
      style: elStyle
    }));
  };

  return Handle;
}(_react2['default'].Component);

exports['default'] = Handle;


Handle.propTypes = {
  className: _propTypes2['default'].string,
  vertical: _propTypes2['default'].bool,
  offset: _propTypes2['default'].number,
  style: _propTypes2['default'].object,
  disabled: _propTypes2['default'].bool,
  min: _propTypes2['default'].number,
  max: _propTypes2['default'].number,
  value: _propTypes2['default'].number,
  tabIndex: _propTypes2['default'].number
};
module.exports = exports['default'];

exports.__esModule = true;
exports.isEventFromHandle = isEventFromHandle;
exports.isValueOutOfRange = isValueOutOfRange;
exports.isNotTouchEvent = isNotTouchEvent;
exports.getClosestPoint = getClosestPoint;
exports.getPrecision = getPrecision;
exports.getMousePosition = getMousePosition;
exports.getTouchPosition = getTouchPosition;
exports.getHandleCenterPosition = getHandleCenterPosition;
exports.ensureValueInRange = ensureValueInRange;
exports.ensureValuePrecision = ensureValuePrecision;
exports.pauseEvent = pauseEvent;
exports.getKeyboardValueMutator = getKeyboardValueMutator;

var _reactDom = __webpack_require__(40);

var _KeyCode = __webpack_require__(392);

var _KeyCode2 = _interopRequireDefault(_KeyCode);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function isEventFromHandle(e, handles) {
  return Object.keys(handles).some(function (key) {
    return e.target === (0, _reactDom.findDOMNode)(handles[key]);
  });
}

function isValueOutOfRange(value, _ref) {
  var min = _ref.min,
      max = _ref.max;

  return value < min || value > max;
}

function isNotTouchEvent(e) {
  return e.touches.length > 1 || e.type.toLowerCase() === 'touchend' && e.touches.length > 0;
}

function getClosestPoint(val, _ref2) {
  var marks = _ref2.marks,
      step = _ref2.step,
      min = _ref2.min;

  var points = Object.keys(marks).map(parseFloat);
  if (step !== null) {
    var closestStep = Math.round((val - min) / step) * step + min;
    points.push(closestStep);
  }
  var diffs = points.map(function (point) {
    return Math.abs(val - point);
  });
  return points[diffs.indexOf(Math.min.apply(Math, diffs))];
}

function getPrecision(step) {
  var stepString = step.toString();
  var precision = 0;
  if (stepString.indexOf('.') >= 0) {
    precision = stepString.length - stepString.indexOf('.') - 1;
  }
  return precision;
}

function getMousePosition(vertical, e) {
  return vertical ? e.clientY : e.pageX;
}

function getTouchPosition(vertical, e) {
  return vertical ? e.touches[0].clientY : e.touches[0].pageX;
}

function getHandleCenterPosition(vertical, handle) {
  var coords = handle.getBoundingClientRect();
  return vertical ? coords.top + coords.height * 0.5 : coords.left + coords.width * 0.5;
}

function ensureValueInRange(val, _ref3) {
  var max = _ref3.max,
      min = _ref3.min;

  if (val <= min) {
    return min;
  }
  if (val >= max) {
    return max;
  }
  return val;
}

function ensureValuePrecision(val, props) {
  var step = props.step;

  var closestPoint = getClosestPoint(val, props);
  return step === null ? closestPoint : parseFloat(closestPoint.toFixed(getPrecision(step)));
}

function pauseEvent(e) {
  e.stopPropagation();
  e.preventDefault();
}

function getKeyboardValueMutator(e) {
  switch (e.keyCode) {
    case _KeyCode2['default'].UP:
    case _KeyCode2['default'].RIGHT:
      return function (value, props) {
        return value + props.step;
      };

    case _KeyCode2['default'].DOWN:
    case _KeyCode2['default'].LEFT:
      return function (value, props) {
        return value - props.step;
      };

    case _KeyCode2['default'].END:
      return function (value, props) {
        return props.max;
      };
    case _KeyCode2['default'].HOME:
      return function (value, props) {
        return props.min;
      };
    case _KeyCode2['default'].PAGE_UP:
      return function (value, props) {
        return value + props.step * 2;
      };
    case _KeyCode2['default'].PAGE_DOWN:
      return function (value, props) {
        return value - props.step * 2;
      };

    default:
      return undefined;
  }
}

Object.defineProperty(exports, "__esModule", {
  value: true
});
/**
 * @ignore
 * some key-codes definition and utils from closure-library
 * @author yiminghe@gmail.com
 */

var KeyCode = {
  /**
   * MAC_ENTER
   */
  MAC_ENTER: 3,
  /**
   * BACKSPACE
   */
  BACKSPACE: 8,
  /**
   * TAB
   */
  TAB: 9,
  /**
   * NUMLOCK on FF/Safari Mac
   */
  NUM_CENTER: 12, // NUMLOCK on FF/Safari Mac
  /**
   * ENTER
   */
  ENTER: 13,
  /**
   * SHIFT
   */
  SHIFT: 16,
  /**
   * CTRL
   */
  CTRL: 17,
  /**
   * ALT
   */
  ALT: 18,
  /**
   * PAUSE
   */
  PAUSE: 19,
  /**
   * CAPS_LOCK
   */
  CAPS_LOCK: 20,
  /**
   * ESC
   */
  ESC: 27,
  /**
   * SPACE
   */
  SPACE: 32,
  /**
   * PAGE_UP
   */
  PAGE_UP: 33, // also NUM_NORTH_EAST
  /**
   * PAGE_DOWN
   */
  PAGE_DOWN: 34, // also NUM_SOUTH_EAST
  /**
   * END
   */
  END: 35, // also NUM_SOUTH_WEST
  /**
   * HOME
   */
  HOME: 36, // also NUM_NORTH_WEST
  /**
   * LEFT
   */
  LEFT: 37, // also NUM_WEST
  /**
   * UP
   */
  UP: 38, // also NUM_NORTH
  /**
   * RIGHT
   */
  RIGHT: 39, // also NUM_EAST
  /**
   * DOWN
   */
  DOWN: 40, // also NUM_SOUTH
  /**
   * PRINT_SCREEN
   */
  PRINT_SCREEN: 44,
  /**
   * INSERT
   */
  INSERT: 45, // also NUM_INSERT
  /**
   * DELETE
   */
  DELETE: 46, // also NUM_DELETE
  /**
   * ZERO
   */
  ZERO: 48,
  /**
   * ONE
   */
  ONE: 49,
  /**
   * TWO
   */
  TWO: 50,
  /**
   * THREE
   */
  THREE: 51,
  /**
   * FOUR
   */
  FOUR: 52,
  /**
   * FIVE
   */
  FIVE: 53,
  /**
   * SIX
   */
  SIX: 54,
  /**
   * SEVEN
   */
  SEVEN: 55,
  /**
   * EIGHT
   */
  EIGHT: 56,
  /**
   * NINE
   */
  NINE: 57,
  /**
   * QUESTION_MARK
   */
  QUESTION_MARK: 63, // needs localization
  /**
   * A
   */
  A: 65,
  /**
   * B
   */
  B: 66,
  /**
   * C
   */
  C: 67,
  /**
   * D
   */
  D: 68,
  /**
   * E
   */
  E: 69,
  /**
   * F
   */
  F: 70,
  /**
   * G
   */
  G: 71,
  /**
   * H
   */
  H: 72,
  /**
   * I
   */
  I: 73,
  /**
   * J
   */
  J: 74,
  /**
   * K
   */
  K: 75,
  /**
   * L
   */
  L: 76,
  /**
   * M
   */
  M: 77,
  /**
   * N
   */
  N: 78,
  /**
   * O
   */
  O: 79,
  /**
   * P
   */
  P: 80,
  /**
   * Q
   */
  Q: 81,
  /**
   * R
   */
  R: 82,
  /**
   * S
   */
  S: 83,
  /**
   * T
   */
  T: 84,
  /**
   * U
   */
  U: 85,
  /**
   * V
   */
  V: 86,
  /**
   * W
   */
  W: 87,
  /**
   * X
   */
  X: 88,
  /**
   * Y
   */
  Y: 89,
  /**
   * Z
   */
  Z: 90,
  /**
   * META
   */
  META: 91, // WIN_KEY_LEFT
  /**
   * WIN_KEY_RIGHT
   */
  WIN_KEY_RIGHT: 92,
  /**
   * CONTEXT_MENU
   */
  CONTEXT_MENU: 93,
  /**
   * NUM_ZERO
   */
  NUM_ZERO: 96,
  /**
   * NUM_ONE
   */
  NUM_ONE: 97,
  /**
   * NUM_TWO
   */
  NUM_TWO: 98,
  /**
   * NUM_THREE
   */
  NUM_THREE: 99,
  /**
   * NUM_FOUR
   */
  NUM_FOUR: 100,
  /**
   * NUM_FIVE
   */
  NUM_FIVE: 101,
  /**
   * NUM_SIX
   */
  NUM_SIX: 102,
  /**
   * NUM_SEVEN
   */
  NUM_SEVEN: 103,
  /**
   * NUM_EIGHT
   */
  NUM_EIGHT: 104,
  /**
   * NUM_NINE
   */
  NUM_NINE: 105,
  /**
   * NUM_MULTIPLY
   */
  NUM_MULTIPLY: 106,
  /**
   * NUM_PLUS
   */
  NUM_PLUS: 107,
  /**
   * NUM_MINUS
   */
  NUM_MINUS: 109,
  /**
   * NUM_PERIOD
   */
  NUM_PERIOD: 110,
  /**
   * NUM_DIVISION
   */
  NUM_DIVISION: 111,
  /**
   * F1
   */
  F1: 112,
  /**
   * F2
   */
  F2: 113,
  /**
   * F3
   */
  F3: 114,
  /**
   * F4
   */
  F4: 115,
  /**
   * F5
   */
  F5: 116,
  /**
   * F6
   */
  F6: 117,
  /**
   * F7
   */
  F7: 118,
  /**
   * F8
   */
  F8: 119,
  /**
   * F9
   */
  F9: 120,
  /**
   * F10
   */
  F10: 121,
  /**
   * F11
   */
  F11: 122,
  /**
   * F12
   */
  F12: 123,
  /**
   * NUMLOCK
   */
  NUMLOCK: 144,
  /**
   * SEMICOLON
   */
  SEMICOLON: 186, // needs localization
  /**
   * DASH
   */
  DASH: 189, // needs localization
  /**
   * EQUALS
   */
  EQUALS: 187, // needs localization
  /**
   * COMMA
   */
  COMMA: 188, // needs localization
  /**
   * PERIOD
   */
  PERIOD: 190, // needs localization
  /**
   * SLASH
   */
  SLASH: 191, // needs localization
  /**
   * APOSTROPHE
   */
  APOSTROPHE: 192, // needs localization
  /**
   * SINGLE_QUOTE
   */
  SINGLE_QUOTE: 222, // needs localization
  /**
   * OPEN_SQUARE_BRACKET
   */
  OPEN_SQUARE_BRACKET: 219, // needs localization
  /**
   * BACKSLASH
   */
  BACKSLASH: 220, // needs localization
  /**
   * CLOSE_SQUARE_BRACKET
   */
  CLOSE_SQUARE_BRACKET: 221, // needs localization
  /**
   * WIN_KEY
   */
  WIN_KEY: 224,
  /**
   * MAC_FF_META
   */
  MAC_FF_META: 224, // Firefox (Gecko) fires this for the meta key instead of 91
  /**
   * WIN_IME
   */
  WIN_IME: 229
};

/*
 whether text and modified key is entered at the same time.
 */
KeyCode.isTextModifyingKeyEvent = function isTextModifyingKeyEvent(e) {
  var keyCode = e.keyCode;
  if (e.altKey && !e.ctrlKey || e.metaKey ||
  // Function keys don't generate text
  keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {
    return false;
  }

  // The following keys are quite harmless, even in combination with
  // CTRL, ALT or SHIFT.
  switch (keyCode) {
    case KeyCode.ALT:
    case KeyCode.CAPS_LOCK:
    case KeyCode.CONTEXT_MENU:
    case KeyCode.CTRL:
    case KeyCode.DOWN:
    case KeyCode.END:
    case KeyCode.ESC:
    case KeyCode.HOME:
    case KeyCode.INSERT:
    case KeyCode.LEFT:
    case KeyCode.MAC_FF_META:
    case KeyCode.META:
    case KeyCode.NUMLOCK:
    case KeyCode.NUM_CENTER:
    case KeyCode.PAGE_DOWN:
    case KeyCode.PAGE_UP:
    case KeyCode.PAUSE:
    case KeyCode.PRINT_SCREEN:
    case KeyCode.RIGHT:
    case KeyCode.SHIFT:
    case KeyCode.UP:
    case KeyCode.WIN_KEY:
    case KeyCode.WIN_KEY_RIGHT:
      return false;
    default:
      return true;
  }
};

/*
 whether character is entered.
 */
KeyCode.isCharacterKey = function isCharacterKey(keyCode) {
  if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {
    return true;
  }

  if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {
    return true;
  }

  if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {
    return true;
  }

  // Safari sends zero key code for non-latin characters.
  if (window.navigation.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {
    return true;
  }

  switch (keyCode) {
    case KeyCode.SPACE:
    case KeyCode.QUESTION_MARK:
    case KeyCode.NUM_PLUS:
    case KeyCode.NUM_MINUS:
    case KeyCode.NUM_PERIOD:
    case KeyCode.NUM_DIVISION:
    case KeyCode.SEMICOLON:
    case KeyCode.DASH:
    case KeyCode.EQUALS:
    case KeyCode.COMMA:
    case KeyCode.PERIOD:
    case KeyCode.SLASH:
    case KeyCode.APOSTROPHE:
    case KeyCode.SINGLE_QUOTE:
    case KeyCode.OPEN_SQUARE_BRACKET:
    case KeyCode.BACKSLASH:
    case KeyCode.CLOSE_SQUARE_BRACKET:
      return true;
    default:
      return false;
  }
};

exports['default'] = KeyCode;
module.exports = exports['default'];

exports.__esModule = true;

var _extends2 = __webpack_require__(19);

var _extends3 = _interopRequireDefault(_extends2);

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _classnames = __webpack_require__(25);

var _classnames2 = _interopRequireDefault(_classnames);

var _shallowequal = __webpack_require__(166);

var _shallowequal2 = _interopRequireDefault(_shallowequal);

var _warning = __webpack_require__(402);

var _warning2 = _interopRequireDefault(_warning);

var _Track = __webpack_require__(618);

var _Track2 = _interopRequireDefault(_Track);

var _createSlider = __webpack_require__(619);

var _createSlider2 = _interopRequireDefault(_createSlider);

var _utils = __webpack_require__(494);

var utils = _interopRequireWildcard(_utils);

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

/* eslint-disable react/prop-types */
var Range = function (_React$Component) {
  (0, _inherits3['default'])(Range, _React$Component);

  function Range(props) {
    (0, _classCallCheck3['default'])(this, Range);

    var _this = (0, _possibleConstructorReturn3['default'])(this, _React$Component.call(this, props));

    _this.onEnd = function () {
      _this.setState({ handle: null });
      _this.removeDocumentEvents();
      _this.props.onAfterChange(_this.getValue());
    };

    var count = props.count,
        min = props.min,
        max = props.max;

    var initialValue = Array.apply(null, Array(count + 1)).map(function () {
      return min;
    });
    var defaultValue = 'defaultValue' in props ? props.defaultValue : initialValue;
    var value = props.value !== undefined ? props.value : defaultValue;
    var bounds = value.map(function (v, i) {
      return _this.trimAlignValue(v, i);
    });
    var recent = bounds[0] === max ? 0 : bounds.length - 1;

    _this.state = {
      handle: null,
      recent: recent,
      bounds: bounds
    };
    return _this;
  }

  Range.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
    var _this2 = this;

    if (!('value' in nextProps || 'min' in nextProps || 'max' in nextProps)) return;
    if (this.props.min === nextProps.min && this.props.max === nextProps.max && (0, _shallowequal2['default'])(this.props.value, nextProps.value)) {
      return;
    }

    var bounds = this.state.bounds;

    var value = nextProps.value || bounds;
    var nextBounds = value.map(function (v, i) {
      return _this2.trimAlignValue(v, i, nextProps);
    });
    if (nextBounds.length === bounds.length && nextBounds.every(function (v, i) {
      return v === bounds[i];
    })) return;

    this.setState({ bounds: nextBounds });
    if (bounds.some(function (v) {
      return utils.isValueOutOfRange(v, nextProps);
    })) {
      this.props.onChange(nextBounds);
    }
  };

  Range.prototype.onChange = function onChange(state) {
    var props = this.props;
    var isNotControlled = !('value' in props);
    if (isNotControlled) {
      this.setState(state);
    } else if (state.handle !== undefined) {
      this.setState({ handle: state.handle });
    }

    var data = (0, _extends3['default'])({}, this.state, state);
    var changedValue = data.bounds;
    props.onChange(changedValue);
  };

  Range.prototype.onStart = function onStart(position) {
    var props = this.props;
    var state = this.state;
    var bounds = this.getValue();
    props.onBeforeChange(bounds);

    var value = this.calcValueByPos(position);
    this.startValue = value;
    this.startPosition = position;

    var closestBound = this.getClosestBound(value);
    var boundNeedMoving = this.getBoundNeedMoving(value, closestBound);

    this.setState({
      handle: boundNeedMoving,
      recent: boundNeedMoving
    });

    var prevValue = bounds[boundNeedMoving];
    if (value === prevValue) return;

    var nextBounds = [].concat(state.bounds);
    nextBounds[boundNeedMoving] = value;
    this.onChange({ bounds: nextBounds });
  };

  Range.prototype.onMove = function onMove(e, position) {
    utils.pauseEvent(e);
    var props = this.props;
    var state = this.state;

    var value = this.calcValueByPos(position);
    var oldValue = state.bounds[state.handle];
    if (value === oldValue) return;

    var nextBounds = [].concat(state.bounds);
    nextBounds[state.handle] = value;
    var nextHandle = state.handle;
    if (props.pushable !== false) {
      this.pushSurroundingHandles(nextBounds, nextHandle);
    } else if (props.allowCross) {
      nextBounds.sort(function (a, b) {
        return a - b;
      });
      nextHandle = nextBounds.indexOf(value);
    }
    this.onChange({
      handle: nextHandle,
      bounds: nextBounds
    });
  };

  Range.prototype.onKeyboard = function onKeyboard() {
    (0, _warning2['default'])(true, 'Keyboard support is not yet supported for ranges.');
  };

  Range.prototype.getValue = function getValue() {
    return this.state.bounds;
  };

  Range.prototype.getClosestBound = function getClosestBound(value) {
    var bounds = this.state.bounds;

    var closestBound = 0;
    for (var i = 1; i < bounds.length - 1; ++i) {
      if (value > bounds[i]) {
        closestBound = i;
      }
    }
    if (Math.abs(bounds[closestBound + 1] - value) < Math.abs(bounds[closestBound] - value)) {
      closestBound = closestBound + 1;
    }
    return closestBound;
  };

  Range.prototype.getBoundNeedMoving = function getBoundNeedMoving(value, closestBound) {
    var _state = this.state,
        bounds = _state.bounds,
        recent = _state.recent;

    var boundNeedMoving = closestBound;
    var isAtTheSamePoint = bounds[closestBound + 1] === bounds[closestBound];

    if (isAtTheSamePoint && bounds[recent] === bounds[closestBound]) {
      boundNeedMoving = recent;
    }

    if (isAtTheSamePoint && value !== bounds[closestBound + 1]) {
      boundNeedMoving = value < bounds[closestBound + 1] ? closestBound : closestBound + 1;
    }
    return boundNeedMoving;
  };

  Range.prototype.getLowerBound = function getLowerBound() {
    return this.state.bounds[0];
  };

  Range.prototype.getUpperBound = function getUpperBound() {
    var bounds = this.state.bounds;

    return bounds[bounds.length - 1];
  };

  /**
   * Returns an array of possible slider points, taking into account both
   * `marks` and `step`. The result is cached.
   */


  Range.prototype.getPoints = function getPoints() {
    var _props = this.props,
        marks = _props.marks,
        step = _props.step,
        min = _props.min,
        max = _props.max;

    var cache = this._getPointsCache;
    if (!cache || cache.marks !== marks || cache.step !== step) {
      var pointsObject = (0, _extends3['default'])({}, marks);
      if (step !== null) {
        for (var point = min; point <= max; point += step) {
          pointsObject[point] = point;
        }
      }
      var points = Object.keys(pointsObject).map(parseFloat);
      points.sort(function (a, b) {
        return a - b;
      });
      this._getPointsCache = { marks: marks, step: step, points: points };
    }
    return this._getPointsCache.points;
  };

  Range.prototype.pushSurroundingHandles = function pushSurroundingHandles(bounds, handle) {
    var value = bounds[handle];
    var threshold = this.props.pushable;

    threshold = Number(threshold);

    var direction = 0;
    if (bounds[handle + 1] - value < threshold) {
      direction = +1; // push to right
    }
    if (value - bounds[handle - 1] < threshold) {
      direction = -1; // push to left
    }

    if (direction === 0) {
      return;
    }

    var nextHandle = handle + direction;
    var diffToNext = direction * (bounds[nextHandle] - value);
    if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {
      // revert to original value if pushing is impossible
      bounds[handle] = bounds[nextHandle] - direction * threshold;
    }
  };

  Range.prototype.pushHandle = function pushHandle(bounds, handle, direction, amount) {
    var originalValue = bounds[handle];
    var currentValue = bounds[handle];
    while (direction * (currentValue - originalValue) < amount) {
      if (!this.pushHandleOnePoint(bounds, handle, direction)) {
        // can't push handle enough to create the needed `amount` gap, so we
        // revert its position to the original value
        bounds[handle] = originalValue;
        return false;
      }
      currentValue = bounds[handle];
    }
    // the handle was pushed enough to create the needed `amount` gap
    return true;
  };

  Range.prototype.pushHandleOnePoint = function pushHandleOnePoint(bounds, handle, direction) {
    var points = this.getPoints();
    var pointIndex = points.indexOf(bounds[handle]);
    var nextPointIndex = pointIndex + direction;
    if (nextPointIndex >= points.length || nextPointIndex < 0) {
      // reached the minimum or maximum available point, can't push anymore
      return false;
    }
    var nextHandle = handle + direction;
    var nextValue = points[nextPointIndex];
    var threshold = this.props.pushable;

    var diffToNext = direction * (bounds[nextHandle] - nextValue);
    if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {
      // couldn't push next handle, so we won't push this one either
      return false;
    }
    // push the handle
    bounds[handle] = nextValue;
    return true;
  };

  Range.prototype.trimAlignValue = function trimAlignValue(v, handle) {
    var nextProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};

    var mergedProps = (0, _extends3['default'])({}, this.props, nextProps);
    var valInRange = utils.ensureValueInRange(v, mergedProps);
    var valNotConflict = this.ensureValueNotConflict(handle, valInRange, mergedProps);
    return utils.ensureValuePrecision(valNotConflict, mergedProps);
  };

  Range.prototype.ensureValueNotConflict = function ensureValueNotConflict(handle, val, _ref) {
    var allowCross = _ref.allowCross,
        thershold = _ref.pushable;

    var state = this.state || {};
    var bounds = state.bounds;

    handle = handle === undefined ? state.handle : handle;
    thershold = Number(thershold);
    /* eslint-disable eqeqeq */
    if (!allowCross && handle != null && bounds !== undefined) {
      if (handle > 0 && val <= bounds[handle - 1] + thershold) {
        return bounds[handle - 1] + thershold;
      }
      if (handle < bounds.length - 1 && val >= bounds[handle + 1] - thershold) {
        return bounds[handle + 1] - thershold;
      }
    }
    /* eslint-enable eqeqeq */
    return val;
  };

  Range.prototype.render = function render() {
    var _this3 = this;

    var _state2 = this.state,
        handle = _state2.handle,
        bounds = _state2.bounds;
    var _props2 = this.props,
        prefixCls = _props2.prefixCls,
        vertical = _props2.vertical,
        included = _props2.included,
        disabled = _props2.disabled,
        min = _props2.min,
        max = _props2.max,
        handleGenerator = _props2.handle,
        trackStyle = _props2.trackStyle,
        handleStyle = _props2.handleStyle,
        tabIndex = _props2.tabIndex;


    var offsets = bounds.map(function (v) {
      return _this3.calcOffset(v);
    });

    var handleClassName = prefixCls + '-handle';
    var handles = bounds.map(function (v, i) {
      var _classNames;

      return handleGenerator({
        className: (0, _classnames2['default'])((_classNames = {}, _classNames[handleClassName] = true, _classNames[handleClassName + '-' + (i + 1)] = true, _classNames)),
        vertical: vertical,
        offset: offsets[i],
        value: v,
        dragging: handle === i,
        index: i,
        tabIndex: tabIndex[i] || 0,
        min: min,
        max: max,
        disabled: disabled,
        style: handleStyle[i],
        ref: function ref(h) {
          return _this3.saveHandle(i, h);
        }
      });
    });

    var tracks = bounds.slice(0, -1).map(function (_, index) {
      var _classNames2;

      var i = index + 1;
      var trackClassName = (0, _classnames2['default'])((_classNames2 = {}, _classNames2[prefixCls + '-track'] = true, _classNames2[prefixCls + '-track-' + i] = true, _classNames2));
      return _react2['default'].createElement(_Track2['default'], {
        className: trackClassName,
        vertical: vertical,
        included: included,
        offset: offsets[i - 1],
        length: offsets[i] - offsets[i - 1],
        style: trackStyle[index],
        key: i
      });
    });

    return { tracks: tracks, handles: handles };
  };

  return Range;
}(_react2['default'].Component);

Range.displayName = 'Range';
Range.propTypes = {
  defaultValue: _propTypes2['default'].arrayOf(_propTypes2['default'].number),
  value: _propTypes2['default'].arrayOf(_propTypes2['default'].number),
  count: _propTypes2['default'].number,
  pushable: _propTypes2['default'].oneOfType([_propTypes2['default'].bool, _propTypes2['default'].number]),
  allowCross: _propTypes2['default'].bool,
  disabled: _propTypes2['default'].bool,
  tabIndex: _propTypes2['default'].arrayOf(_propTypes2['default'].number)
};
Range.defaultProps = {
  count: 1,
  allowCross: true,
  pushable: false,
  tabIndex: []
};
exports['default'] = (0, _createSlider2['default'])(Range);
module.exports = exports['default'];/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LineChart; });
/* harmony import */ var _generateCategoricalChart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(313);
/* harmony import */ var _cartesian_Line__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(416);
/* harmony import */ var _cartesian_XAxis__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(417);
/* harmony import */ var _cartesian_YAxis__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(418);
/* harmony import */ var _util_CartesianUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(185);
/**
 * @fileOverview Line Chart
 */





var LineChart = Object(_generateCategoricalChart__WEBPACK_IMPORTED_MODULE_0__[/* generateCategoricalChart */ "a"])({
  chartName: 'LineChart',
  GraphicalChild: _cartesian_Line__WEBPACK_IMPORTED_MODULE_1__[/* Line */ "a"],
  axisComponents: [{
    axisType: 'xAxis',
    AxisComp: _cartesian_XAxis__WEBPACK_IMPORTED_MODULE_2__[/* XAxis */ "a"]
  }, {
    axisType: 'yAxis',
    AxisComp: _cartesian_YAxis__WEBPACK_IMPORTED_MODULE_3__[/* YAxis */ "a"]
  }],
  formatAxisMap: _util_CartesianUtils__WEBPACK_IMPORTED_MODULE_4__[/* formatAxisMap */ "b"]
});

var _interopRequireDefault = __webpack_require__(850);

exports.__esModule = true;
exports.default = addClass;

var _hasClass = _interopRequireDefault(__webpack_require__(851));

function addClass(element, className) {
  if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);
}

module.exports = exports["default"];function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

module.exports = _interopRequireDefault;

exports.__esModule = true;
exports.default = hasClass;

function hasClass(element, className) {
  if (element.classList) return !!className && element.classList.contains(className);else return (" " + (element.className.baseVal || element.className) + " ").indexOf(" " + className + " ") !== -1;
}

module.exports = exports["default"];

function replaceClassName(origClass, classToRemove) {
  return origClass.replace(new RegExp('(^|\\s)' + classToRemove + '(?:\\s|$)', 'g'), '$1').replace(/\s+/g, ' ').replace(/^\s*|\s*$/g, '');
}

module.exports = function removeClass(element, className) {
  if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));
};/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Line; });
/* harmony import */ var lodash_isEqual__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(172);
/* harmony import */ var lodash_isEqual__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_isEqual__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51);
/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isFunction__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var lodash_isNil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48);
/* harmony import */ var lodash_isNil__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isNil__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react_smooth__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(145);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(25);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _shape_Curve__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(176);
/* harmony import */ var _shape_Dot__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(221);
/* harmony import */ var _container_Layer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(60);
/* harmony import */ var _component_LabelList__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(222);
/* harmony import */ var _ErrorBar__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(317);
/* harmony import */ var _util_DataUtils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(24);
/* harmony import */ var _util_ReactUtils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(68);
/* harmony import */ var _util_Global__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(137);
/* harmony import */ var _util_ChartUtils__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(49);
/* harmony import */ var _util_types__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(42);
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }





function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _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; }

function _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; }

function _extends() { _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 _extends.apply(this, arguments); }

function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }

function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }

function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _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 _arrayLikeToArray(o, minLen); }

function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }

function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }

function _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; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

/**
 * @fileOverview Line
 */













var Line = /*#__PURE__*/function (_PureComponent) {
  _inherits(Line, _PureComponent);

  var _super = _createSuper(Line);

  function Line() {
    var _this;

    _classCallCheck(this, Line);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _super.call.apply(_super, [this].concat(args));
    _this.mainCurve = void 0;
    _this.state = {
      isAnimationFinished: true,
      totalLength: 0
    };

    _this.getStrokeDasharray = function (length, totalLength, lines) {
      var lineLength = lines.reduce(function (pre, next) {
        return pre + next;
      });
      var count = Math.floor(length / lineLength);
      var remainLength = length % lineLength;
      var restLength = totalLength - length;
      var remainLines = [];

      for (var i = 0, sum = 0;; sum += lines[i], ++i) {
        if (sum + lines[i] > remainLength) {
          remainLines = [].concat(_toConsumableArray(lines.slice(0, i)), [remainLength - sum]);
          break;
        }
      }

      var emptyLines = remainLines.length % 2 === 0 ? [0, restLength] : [restLength];
      return [].concat(_toConsumableArray(Line.repeat(lines, count)), _toConsumableArray(remainLines), emptyLines).map(function (line) {
        return "".concat(line, "px");
      }).join(', ');
    };

    _this.id = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_11__[/* uniqueId */ "k"])('recharts-line-');

    _this.pathRef = function (node) {
      _this.mainCurve = node;
    };

    _this.handleAnimationEnd = function () {
      _this.setState({
        isAnimationFinished: true
      });

      if (_this.props.onAnimationEnd) {
        _this.props.onAnimationEnd();
      }
    };

    _this.handleAnimationStart = function () {
      _this.setState({
        isAnimationFinished: false
      });

      if (_this.props.onAnimationStart) {
        _this.props.onAnimationStart();
      }
    };

    return _this;
  }

  _createClass(Line, [{
    key: "componentDidMount",
    value:
    /* eslint-disable  react/no-did-mount-set-state */
    function componentDidMount() {
      if (!this.props.isAnimationActive) {
        return;
      }

      var totalLength = this.getTotalLength();
      this.setState({
        totalLength: totalLength
      });
    }
  }, {
    key: "getTotalLength",
    value: function getTotalLength() {
      var curveDom = this.mainCurve;

      try {
        return curveDom && curveDom.getTotalLength && curveDom.getTotalLength() || 0;
      } catch (err) {
        return 0;
      }
    }
  }, {
    key: "renderErrorBar",
    value: function renderErrorBar() {
      if (this.props.isAnimationActive && !this.state.isAnimationFinished) {
        return null;
      }

      var _this$props = this.props,
          points = _this$props.points,
          xAxis = _this$props.xAxis,
          yAxis = _this$props.yAxis,
          layout = _this$props.layout,
          children = _this$props.children;
      var errorBarItems = Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_12__[/* findAllByType */ "a"])(children, _ErrorBar__WEBPACK_IMPORTED_MODULE_10__[/* ErrorBar */ "a"].displayName);

      if (!errorBarItems) {
        return null;
      }

      function dataPointFormatter(dataPoint, dataKey) {
        return {
          x: dataPoint.x,
          y: dataPoint.y,
          value: dataPoint.value,
          errorVal: Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_14__[/* getValueByDataKey */ "w"])(dataPoint.payload, dataKey)
        };
      }

      return errorBarItems.map(function (item, i) {
        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.cloneElement(item, {
          // eslint-disable-next-line react/no-array-index-key
          key: "bar-".concat(i),
          data: points,
          xAxis: xAxis,
          yAxis: yAxis,
          layout: layout,
          dataPointFormatter: dataPointFormatter
        });
      });
    }
  }, {
    key: "renderDots",
    value: function renderDots(needClip, clipPathId) {
      var isAnimationActive = this.props.isAnimationActive;

      if (isAnimationActive && !this.state.isAnimationFinished) {
        return null;
      }

      var _this$props2 = this.props,
          dot = _this$props2.dot,
          points = _this$props2.points,
          dataKey = _this$props2.dataKey;
      var lineProps = Object(_util_types__WEBPACK_IMPORTED_MODULE_15__[/* filterProps */ "c"])(this.props);
      var customDotProps = Object(_util_types__WEBPACK_IMPORTED_MODULE_15__[/* filterProps */ "c"])(dot, true);
      var dots = points.map(function (entry, i) {
        var dotProps = _objectSpread(_objectSpread(_objectSpread({
          key: "dot-".concat(i),
          r: 3
        }, lineProps), customDotProps), {}, {
          value: entry.value,
          dataKey: dataKey,
          cx: entry.x,
          cy: entry.y,
          index: i,
          payload: entry.payload
        });

        return Line.renderDotItem(dot, dotProps);
      });
      var dotsProps = {
        clipPath: needClip ? "url(#clipPath-".concat(clipPathId, ")") : null
      };
      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(_container_Layer__WEBPACK_IMPORTED_MODULE_8__[/* Layer */ "a"], _extends({
        className: "recharts-line-dots",
        key: "dots"
      }, dotsProps), dots);
    }
  }, {
    key: "renderCurveStatically",
    value: function renderCurveStatically(points, needClip, clipPathId, props) {
      // eslint-disable-next-line @typescript-eslint/no-unused-vars
      var _this$props3 = this.props,
          type = _this$props3.type,
          layout = _this$props3.layout,
          connectNulls = _this$props3.connectNulls,
          ref = _this$props3.ref,
          others = _objectWithoutProperties(_this$props3, ["type", "layout", "connectNulls", "ref"]);

      var curveProps = _objectSpread(_objectSpread(_objectSpread({}, Object(_util_types__WEBPACK_IMPORTED_MODULE_15__[/* filterProps */ "c"])(others, true)), {}, {
        fill: 'none',
        className: 'recharts-line-curve',
        clipPath: needClip ? "url(#clipPath-".concat(clipPathId, ")") : null,
        points: points
      }, props), {}, {
        type: type,
        layout: layout,
        connectNulls: connectNulls
      });

      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(_shape_Curve__WEBPACK_IMPORTED_MODULE_6__[/* Curve */ "a"], _extends({}, curveProps, {
        pathRef: this.pathRef
      }));
    }
  }, {
    key: "renderCurveWithAnimation",
    value: function renderCurveWithAnimation(needClip, clipPathId) {
      var _this2 = this;

      var _this$props4 = this.props,
          points = _this$props4.points,
          strokeDasharray = _this$props4.strokeDasharray,
          isAnimationActive = _this$props4.isAnimationActive,
          animationBegin = _this$props4.animationBegin,
          animationDuration = _this$props4.animationDuration,
          animationEasing = _this$props4.animationEasing,
          animationId = _this$props4.animationId,
          animateNewValues = _this$props4.animateNewValues,
          width = _this$props4.width,
          height = _this$props4.height;
      var _this$state = this.state,
          prevPoints = _this$state.prevPoints,
          totalLength = _this$state.totalLength;
      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(react_smooth__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"], {
        begin: animationBegin,
        duration: animationDuration,
        isActive: isAnimationActive,
        easing: animationEasing,
        from: {
          t: 0
        },
        to: {
          t: 1
        },
        key: "line-".concat(animationId),
        onAnimationEnd: this.handleAnimationEnd,
        onAnimationStart: this.handleAnimationStart
      }, function (_ref) {
        var t = _ref.t;

        if (prevPoints) {
          var prevPointsDiffFactor = prevPoints.length / points.length;
          var stepData = points.map(function (entry, index) {
            var prevPointIndex = Math.floor(index * prevPointsDiffFactor);

            if (prevPoints[prevPointIndex]) {
              var prev = prevPoints[prevPointIndex];
              var interpolatorX = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_11__[/* interpolateNumber */ "f"])(prev.x, entry.x);
              var interpolatorY = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_11__[/* interpolateNumber */ "f"])(prev.y, entry.y);
              return _objectSpread(_objectSpread({}, entry), {}, {
                x: interpolatorX(t),
                y: interpolatorY(t)
              });
            } // magic number of faking previous x and y location


            if (animateNewValues) {
              var _interpolatorX = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_11__[/* interpolateNumber */ "f"])(width * 2, entry.x);

              var _interpolatorY = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_11__[/* interpolateNumber */ "f"])(height / 2, entry.y);

              return _objectSpread(_objectSpread({}, entry), {}, {
                x: _interpolatorX(t),
                y: _interpolatorY(t)
              });
            }

            return _objectSpread(_objectSpread({}, entry), {}, {
              x: entry.x,
              y: entry.y
            });
          });
          return _this2.renderCurveStatically(stepData, needClip, clipPathId);
        }

        var interpolator = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_11__[/* interpolateNumber */ "f"])(0, totalLength);
        var curLength = interpolator(t);
        var currentStrokeDasharray;

        if (strokeDasharray) {
          var lines = "".concat(strokeDasharray).split(/[,\s]+/gim).map(function (num) {
            return parseFloat(num);
          });
          currentStrokeDasharray = _this2.getStrokeDasharray(curLength, totalLength, lines);
        } else {
          currentStrokeDasharray = "".concat(curLength, "px ").concat(totalLength - curLength, "px");
        }

        return _this2.renderCurveStatically(points, needClip, clipPathId, {
          strokeDasharray: currentStrokeDasharray
        });
      });
    }
  }, {
    key: "renderCurve",
    value: function renderCurve(needClip, clipPathId) {
      var _this$props5 = this.props,
          points = _this$props5.points,
          isAnimationActive = _this$props5.isAnimationActive;
      var _this$state2 = this.state,
          prevPoints = _this$state2.prevPoints,
          totalLength = _this$state2.totalLength;

      if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !lodash_isEqual__WEBPACK_IMPORTED_MODULE_0___default()(prevPoints, points))) {
        return this.renderCurveWithAnimation(needClip, clipPathId);
      }

      return this.renderCurveStatically(points, needClip, clipPathId);
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props6 = this.props,
          hide = _this$props6.hide,
          dot = _this$props6.dot,
          points = _this$props6.points,
          className = _this$props6.className,
          xAxis = _this$props6.xAxis,
          yAxis = _this$props6.yAxis,
          top = _this$props6.top,
          left = _this$props6.left,
          width = _this$props6.width,
          height = _this$props6.height,
          isAnimationActive = _this$props6.isAnimationActive,
          id = _this$props6.id;

      if (hide || !points || !points.length) {
        return null;
      }

      var isAnimationFinished = this.state.isAnimationFinished;
      var hasSinglePoint = points.length === 1;
      var layerClass = classnames__WEBPACK_IMPORTED_MODULE_5___default()('recharts-line', className);
      var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;
      var clipPathId = lodash_isNil__WEBPACK_IMPORTED_MODULE_2___default()(id) ? this.id : id;
      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(_container_Layer__WEBPACK_IMPORTED_MODULE_8__[/* Layer */ "a"], {
        className: layerClass
      }, needClip ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement("defs", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement("clipPath", {
        id: "clipPath-".concat(clipPathId)
      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement("rect", {
        x: left,
        y: top,
        width: width,
        height: height
      }))) : null, !hasSinglePoint && this.renderCurve(needClip, clipPathId), this.renderErrorBar(), (hasSinglePoint || dot) && this.renderDots(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && _component_LabelList__WEBPACK_IMPORTED_MODULE_9__[/* LabelList */ "a"].renderCallByParent(this.props, points));
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.animationId !== prevState.prevAnimationId) {
        return {
          prevAnimationId: nextProps.animationId,
          curPoints: nextProps.points,
          prevPoints: prevState.curPoints
        };
      }

      if (nextProps.points !== prevState.curPoints) {
        return {
          curPoints: nextProps.points
        };
      }

      return null;
    }
  }, {
    key: "repeat",
    value: function repeat(lines, count) {
      var linesUnit = lines.length % 2 !== 0 ? [].concat(_toConsumableArray(lines), [0]) : lines;
      var result = [];

      for (var i = 0; i < count; ++i) {
        result = [].concat(_toConsumableArray(result), _toConsumableArray(linesUnit));
      }

      return result;
    }
  }, {
    key: "renderDotItem",
    value: function renderDotItem(option, props) {
      var dotItem;

      if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.isValidElement(option)) {
        dotItem = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.cloneElement(option, props);
      } else if (lodash_isFunction__WEBPACK_IMPORTED_MODULE_1___default()(option)) {
        dotItem = option(props);
      } else {
        var className = classnames__WEBPACK_IMPORTED_MODULE_5___default()('recharts-line-dot', option ? option.className : '');
        dotItem = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(_shape_Dot__WEBPACK_IMPORTED_MODULE_7__[/* Dot */ "a"], _extends({}, props, {
          className: className
        }));
      }

      return dotItem;
    }
  }]);

  return Line;
}(react__WEBPACK_IMPORTED_MODULE_3__["PureComponent"]);
Line.displayName = 'Line';
Line.defaultProps = {
  xAxisId: 0,
  yAxisId: 0,
  connectNulls: false,
  activeDot: true,
  dot: true,
  legendType: 'line',
  stroke: '#3182bd',
  strokeWidth: 1,
  fill: '#fff',
  points: [],
  isAnimationActive: !_util_Global__WEBPACK_IMPORTED_MODULE_13__[/* Global */ "a"].isSsr,
  animateNewValues: true,
  animationBegin: 0,
  animationDuration: 1500,
  animationEasing: 'ease',
  hide: false
};

Line.getComposedData = function (_ref2) {
  var props = _ref2.props,
      xAxis = _ref2.xAxis,
      yAxis = _ref2.yAxis,
      xAxisTicks = _ref2.xAxisTicks,
      yAxisTicks = _ref2.yAxisTicks,
      dataKey = _ref2.dataKey,
      bandSize = _ref2.bandSize,
      displayedData = _ref2.displayedData,
      offset = _ref2.offset;
  var layout = props.layout;
  var points = displayedData.map(function (entry, index) {
    var value = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_14__[/* getValueByDataKey */ "w"])(entry, dataKey);

    if (layout === 'horizontal') {
      return {
        x: Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_14__[/* getCateCoordinateOfLine */ "k"])({
          axis: xAxis,
          ticks: xAxisTicks,
          bandSize: bandSize,
          entry: entry,
          index: index
        }),
        y: lodash_isNil__WEBPACK_IMPORTED_MODULE_2___default()(value) ? null : yAxis.scale(value),
        value: value,
        payload: entry
      };
    }

    return {
      x: lodash_isNil__WEBPACK_IMPORTED_MODULE_2___default()(value) ? null : xAxis.scale(value),
      y: Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_14__[/* getCateCoordinateOfLine */ "k"])({
        axis: yAxis,
        ticks: yAxisTicks,
        bandSize: bandSize,
        entry: entry,
        index: index
      }),
      value: value,
      payload: entry
    };
  });
  return _objectSpread({
    points: points,
    layout: layout
  }, offset);
};/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ErrorBar; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _container_Layer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(60);
/* harmony import */ var _util_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42);
function _extends() { _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 _extends.apply(this, arguments); }

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _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."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _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 _arrayLikeToArray(o, minLen); }

function _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; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _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; }

function _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; }

/**
 * @fileOverview Render a group of error bar
 */



function ErrorBar(props) {
  var offset = props.offset,
      layout = props.layout,
      width = props.width,
      dataKey = props.dataKey,
      data = props.data,
      dataPointFormatter = props.dataPointFormatter,
      xAxis = props.xAxis,
      yAxis = props.yAxis,
      others = _objectWithoutProperties(props, ["offset", "layout", "width", "dataKey", "data", "dataPointFormatter", "xAxis", "yAxis"]);

  var svgProps = Object(_util_types__WEBPACK_IMPORTED_MODULE_2__[/* filterProps */ "c"])(others);
  var errorBars = data.map(function (entry, i) {
    var _dataPointFormatter = dataPointFormatter(entry, dataKey),
        x = _dataPointFormatter.x,
        y = _dataPointFormatter.y,
        value = _dataPointFormatter.value,
        errorVal = _dataPointFormatter.errorVal;

    if (!errorVal) {
      return null;
    }

    var lineCoordinates = [];
    var lowBound, highBound;

    if (Array.isArray(errorVal)) {
      var _errorVal = _slicedToArray(errorVal, 2);

      lowBound = _errorVal[0];
      highBound = _errorVal[1];
    } else {
      lowBound = highBound = errorVal;
    }

    if (layout === 'vertical') {
      // error bar for horizontal charts, the y is fixed, x is a range value
      var scale = xAxis.scale;
      var yMid = y + offset;
      var yMin = yMid + width;
      var yMax = yMid - width;
      var xMin = scale(value - lowBound);
      var xMax = scale(value + highBound); // the right line of |--|

      lineCoordinates.push({
        x1: xMax,
        y1: yMin,
        x2: xMax,
        y2: yMax
      }); // the middle line of |--|

      lineCoordinates.push({
        x1: xMin,
        y1: yMid,
        x2: xMax,
        y2: yMid
      }); // the left line of |--|

      lineCoordinates.push({
        x1: xMin,
        y1: yMin,
        x2: xMin,
        y2: yMax
      });
    } else if (layout === 'horizontal') {
      // error bar for horizontal charts, the x is fixed, y is a range value
      var _scale = yAxis.scale;
      var xMid = x + offset;

      var _xMin = xMid - width;

      var _xMax = xMid + width;

      var _yMin = _scale(value - lowBound);

      var _yMax = _scale(value + highBound); // the top line


      lineCoordinates.push({
        x1: _xMin,
        y1: _yMax,
        x2: _xMax,
        y2: _yMax
      }); // the middle line

      lineCoordinates.push({
        x1: xMid,
        y1: _yMin,
        x2: xMid,
        y2: _yMax
      }); // the bottom line

      lineCoordinates.push({
        x1: _xMin,
        y1: _yMin,
        x2: _xMax,
        y2: _yMin
      });
    }

    return (
      /*#__PURE__*/
      // eslint-disable-next-line react/no-array-index-key
      react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_container_Layer__WEBPACK_IMPORTED_MODULE_1__[/* Layer */ "a"], _extends({
        className: "recharts-errorBar",
        key: "bar-".concat(i)
      }, svgProps), lineCoordinates.map(function (coordinates, index) {
        return (
          /*#__PURE__*/
          // eslint-disable-next-line react/no-array-index-key
          react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("line", _extends({}, coordinates, {
            key: "line-".concat(index)
          }))
        );
      }))
    );
  });
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_container_Layer__WEBPACK_IMPORTED_MODULE_1__[/* Layer */ "a"], {
    className: "recharts-errorBars"
  }, errorBars);
}
ErrorBar.defaultProps = {
  stroke: 'black',
  strokeWidth: 1.5,
  width: 5,
  offset: 0,
  layout: 'horizontal'
};
ErrorBar.displayName = 'ErrorBar';/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return XAxis; });
/**
 * @fileOverview X Axis
 */

/** Define of XAxis props */
var XAxis = function XAxis() {
  return null;
};
XAxis.displayName = 'XAxis';
XAxis.defaultProps = {
  allowDecimals: true,
  hide: false,
  orientation: 'bottom',
  width: 0,
  height: 30,
  mirror: false,
  xAxisId: 0,
  tickCount: 5,
  type: 'category',
  domain: [0, 'auto'],
  padding: {
    left: 0,
    right: 0
  },
  allowDataOverflow: false,
  scale: 'auto',
  reversed: false,
  allowDuplicatedCategory: true
};/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return YAxis; });
/**
 * @fileOverview Y Axis
 */
var YAxis = function YAxis() {
  return null;
};
YAxis.displayName = 'YAxis';
YAxis.defaultProps = {
  allowDuplicatedCategory: true,
  allowDecimals: true,
  hide: false,
  orientation: 'left',
  width: 60,
  height: 0,
  mirror: false,
  yAxisId: 0,
  tickCount: 5,
  type: 'number',
  domain: [0, 'auto'],
  padding: {
    top: 0,
    bottom: 0
  },
  allowDataOverflow: false,
  scale: 'auto',
  reversed: false
};/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CartesianGrid; });
/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51);
/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_isFunction__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _util_DataUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24);
/* harmony import */ var _util_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42);
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }



function _extends() { _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 _extends.apply(this, arguments); }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _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; }

function _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; }

function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

/**
 * @fileOverview Cartesian Grid
 */



var CartesianGrid = /*#__PURE__*/function (_PureComponent) {
  _inherits(CartesianGrid, _PureComponent);

  var _super = _createSuper(CartesianGrid);

  function CartesianGrid() {
    _classCallCheck(this, CartesianGrid);

    return _super.apply(this, arguments);
  }

  _createClass(CartesianGrid, [{
    key: "renderHorizontal",
    value:
    /**
     * Draw the horizontal grid lines
     * @param {Array} horizontalPoints either passed in as props or generated from function
     * @return {Group} Horizontal lines
     */
    function renderHorizontal(horizontalPoints) {
      var _this = this;

      var _this$props = this.props,
          x = _this$props.x,
          width = _this$props.width,
          horizontal = _this$props.horizontal;

      if (!horizontalPoints || !horizontalPoints.length) {
        return null;
      }

      var items = horizontalPoints.map(function (entry, i) {
        var props = _objectSpread(_objectSpread({}, _this.props), {}, {
          x1: x,
          y1: entry,
          x2: x + width,
          y2: entry,
          key: "line-".concat(i),
          index: i
        });

        return CartesianGrid.renderLineItem(horizontal, props);
      });
      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("g", {
        className: "recharts-cartesian-grid-horizontal"
      }, items);
    }
    /**
     * Draw vertical grid lines
     * @param {Array} verticalPoints either passed in as props or generated from function
     * @return {Group} Vertical lines
     */

  }, {
    key: "renderVertical",
    value: function renderVertical(verticalPoints) {
      var _this2 = this;

      var _this$props2 = this.props,
          y = _this$props2.y,
          height = _this$props2.height,
          vertical = _this$props2.vertical;

      if (!verticalPoints || !verticalPoints.length) {
        return null;
      }

      var items = verticalPoints.map(function (entry, i) {
        var props = _objectSpread(_objectSpread({}, _this2.props), {}, {
          x1: entry,
          y1: y,
          x2: entry,
          y2: y + height,
          key: "line-".concat(i),
          index: i
        });

        return CartesianGrid.renderLineItem(vertical, props);
      });
      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("g", {
        className: "recharts-cartesian-grid-vertical"
      }, items);
    }
    /**
     * Draw vertical grid stripes filled by colors
     * @param {Array} verticalPoints either passed in as props or generated from function
     * @return {Group} Vertical stripes
     */

  }, {
    key: "renderVerticalStripes",
    value: function renderVerticalStripes(verticalPoints) {
      var verticalFill = this.props.verticalFill;

      if (!verticalFill || !verticalFill.length) {
        return null;
      }

      var _this$props3 = this.props,
          fillOpacity = _this$props3.fillOpacity,
          x = _this$props3.x,
          y = _this$props3.y,
          width = _this$props3.width,
          height = _this$props3.height;
      var verticalPointsUpdated = verticalPoints.slice().sort(function (a, b) {
        return a - b;
      });

      if (x !== verticalPointsUpdated[0]) {
        verticalPointsUpdated.unshift(0);
      }

      var items = verticalPointsUpdated.map(function (entry, i) {
        var lineWidth = verticalPointsUpdated[i + 1] ? verticalPointsUpdated[i + 1] - entry : x + width - entry;

        if (lineWidth <= 0) {
          return null;
        }

        var colorIndex = i % verticalFill.length;
        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("rect", {
          key: "react-".concat(i) // eslint-disable-line react/no-array-index-key
          ,
          x: Math.round(entry + x - x),
          y: y,
          width: lineWidth,
          height: height,
          stroke: "none",
          fill: verticalFill[colorIndex],
          fillOpacity: fillOpacity,
          className: "recharts-cartesian-grid-bg"
        });
      });
      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("g", {
        className: "recharts-cartesian-gridstripes-vertical"
      }, items);
    }
    /**
     * Draw horizontal grid stripes filled by colors
     * @param {Array} horizontalPoints either passed in as props or generated from function
     * @return {Group} Horizontal stripes
     */

  }, {
    key: "renderHorizontalStripes",
    value: function renderHorizontalStripes(horizontalPoints) {
      var horizontalFill = this.props.horizontalFill;

      if (!horizontalFill || !horizontalFill.length) {
        return null;
      }

      var _this$props4 = this.props,
          fillOpacity = _this$props4.fillOpacity,
          x = _this$props4.x,
          y = _this$props4.y,
          width = _this$props4.width,
          height = _this$props4.height;
      var horizontalPointsUpdated = horizontalPoints.slice().sort(function (a, b) {
        return a - b;
      });

      if (y !== horizontalPointsUpdated[0]) {
        horizontalPointsUpdated.unshift(0);
      }

      var items = horizontalPointsUpdated.map(function (entry, i) {
        var lineHeight = horizontalPointsUpdated[i + 1] ? horizontalPointsUpdated[i + 1] - entry : y + height - entry;

        if (lineHeight <= 0) {
          return null;
        }

        var colorIndex = i % horizontalFill.length;
        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("rect", {
          key: "react-".concat(i) // eslint-disable-line react/no-array-index-key
          ,
          y: Math.round(entry + y - y),
          x: x,
          height: lineHeight,
          width: width,
          stroke: "none",
          fill: horizontalFill[colorIndex],
          fillOpacity: fillOpacity,
          className: "recharts-cartesian-grid-bg"
        });
      });
      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("g", {
        className: "recharts-cartesian-gridstripes-horizontal"
      }, items);
    }
  }, {
    key: "renderBackground",
    value: function renderBackground() {
      var fill = this.props.fill;

      if (!fill || fill === 'none') {
        return null;
      }

      var _this$props5 = this.props,
          fillOpacity = _this$props5.fillOpacity,
          x = _this$props5.x,
          y = _this$props5.y,
          width = _this$props5.width,
          height = _this$props5.height;
      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("rect", {
        x: x,
        y: y,
        width: width,
        height: height,
        stroke: "none",
        fill: fill,
        fillOpacity: fillOpacity,
        className: "recharts-cartesian-grid-bg"
      });
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props6 = this.props,
          x = _this$props6.x,
          y = _this$props6.y,
          width = _this$props6.width,
          height = _this$props6.height,
          horizontal = _this$props6.horizontal,
          vertical = _this$props6.vertical,
          horizontalCoordinatesGenerator = _this$props6.horizontalCoordinatesGenerator,
          verticalCoordinatesGenerator = _this$props6.verticalCoordinatesGenerator,
          xAxis = _this$props6.xAxis,
          yAxis = _this$props6.yAxis,
          offset = _this$props6.offset,
          chartWidth = _this$props6.chartWidth,
          chartHeight = _this$props6.chartHeight;

      if (!Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_2__[/* isNumber */ "h"])(width) || width <= 0 || !Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_2__[/* isNumber */ "h"])(height) || height <= 0 || !Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_2__[/* isNumber */ "h"])(x) || x !== +x || !Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_2__[/* isNumber */ "h"])(y) || y !== +y) {
        return null;
      }

      var _this$props7 = this.props,
          horizontalPoints = _this$props7.horizontalPoints,
          verticalPoints = _this$props7.verticalPoints; // No horizontal points are specified

      if ((!horizontalPoints || !horizontalPoints.length) && lodash_isFunction__WEBPACK_IMPORTED_MODULE_0___default()(horizontalCoordinatesGenerator)) {
        horizontalPoints = horizontalCoordinatesGenerator({
          yAxis: yAxis,
          width: chartWidth,
          height: chartHeight,
          offset: offset
        });
      } // No vertical points are specified


      if ((!verticalPoints || !verticalPoints.length) && lodash_isFunction__WEBPACK_IMPORTED_MODULE_0___default()(verticalCoordinatesGenerator)) {
        verticalPoints = verticalCoordinatesGenerator({
          xAxis: xAxis,
          width: chartWidth,
          height: chartHeight,
          offset: offset
        });
      }

      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("g", {
        className: "recharts-cartesian-grid"
      }, this.renderBackground(), horizontal && this.renderHorizontal(horizontalPoints), vertical && this.renderVertical(verticalPoints), horizontal && this.renderHorizontalStripes(horizontalPoints), vertical && this.renderVerticalStripes(verticalPoints));
    }
  }], [{
    key: "renderLineItem",
    value: function renderLineItem(option, props) {
      var lineItem;

      if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.isValidElement(option)) {
        lineItem = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.cloneElement(option, props);
      } else if (lodash_isFunction__WEBPACK_IMPORTED_MODULE_0___default()(option)) {
        lineItem = option(props);
      } else {
        var x1 = props.x1,
            y1 = props.y1,
            x2 = props.x2,
            y2 = props.y2,
            key = props.key,
            others = _objectWithoutProperties(props, ["x1", "y1", "x2", "y2", "key"]);

        lineItem = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("line", _extends({}, Object(_util_types__WEBPACK_IMPORTED_MODULE_3__[/* filterProps */ "c"])(others), {
          x1: x1,
          y1: y1,
          x2: x2,
          y2: y2,
          fill: "none",
          key: key
        }));
      }

      return lineItem;
    }
  }]);

  return CartesianGrid;
}(react__WEBPACK_IMPORTED_MODULE_1__["PureComponent"]);
CartesianGrid.displayName = 'CartesianGrid';
CartesianGrid.defaultProps = {
  horizontal: true,
  vertical: true,
  // The ordinates of horizontal grid lines
  horizontalPoints: [],
  // The abscissas of vertical grid lines
  verticalPoints: [],
  stroke: '#ccc',
  fill: 'none',
  // The fill of colors of grid lines
  verticalFill: [],
  horizontalFill: []
};var baseGetTag = __webpack_require__(236),
    isArray = __webpack_require__(121),
    isObjectLike = __webpack_require__(161);

/** `Object#toString` result references. */
var stringTag = '[object String]';

/**
 * Checks if `value` is classified as a `String` primitive or object.
 *
 * @static
 * @since 0.1.0
 * @memberOf _
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a string, else `false`.
 * @example
 *
 * _.isString('abc');
 * // => true
 *
 * _.isString(1);
 * // => false
 */
function isString(value) {
  return typeof value == 'string' ||
    (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
}

module.exports = isString;
var isNumber = __webpack_require__(505);

/**
 * Checks if `value` is `NaN`.
 *
 * **Note:** This method is based on
 * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as
 * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for
 * `undefined` and other non-number values.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.
 * @example
 *
 * _.isNaN(NaN);
 * // => true
 *
 * _.isNaN(new Number(NaN));
 * // => true
 *
 * isNaN(undefined);
 * // => true
 *
 * _.isNaN(undefined);
 * // => false
 */
function isNaN(value) {
  // An `NaN` primitive is the only value that is not equal to itself.
  // Perform the `toStringTag` check first to avoid errors with some
  // ActiveX objects in IE.
  return isNumber(value) && value != +value;
}

module.exports = isNaN;
var baseGetTag = __webpack_require__(236),
    isObjectLike = __webpack_require__(161);

/** `Object#toString` result references. */
var numberTag = '[object Number]';

/**
 * Checks if `value` is classified as a `Number` primitive or object.
 *
 * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are
 * classified as numbers, use the `_.isFinite` method.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a number, else `false`.
 * @example
 *
 * _.isNumber(3);
 * // => true
 *
 * _.isNumber(Number.MIN_VALUE);
 * // => true
 *
 * _.isNumber(Infinity);
 * // => true
 *
 * _.isNumber('3');
 * // => false
 */
function isNumber(value) {
  return typeof value == 'number' ||
    (isObjectLike(value) && baseGetTag(value) == numberTag);
}

module.exports = isNumber;
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ResponsiveContainer; });
/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(503);
/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var react_resize_detector_build_withPolyfill__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(668);
/* harmony import */ var react_resize_detector_build_withPolyfill__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_resize_detector_build_withPolyfill__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _util_DataUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(24);
/* harmony import */ var _util_LogUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(175);
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }



function _extends() { _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 _extends.apply(this, arguments); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

/**
 * @fileOverview Wrapper component to make charts adapt to the size of parent * DOM
 */





var ResponsiveContainer = /*#__PURE__*/function (_Component) {
  _inherits(ResponsiveContainer, _Component);

  var _super = _createSuper(ResponsiveContainer);

  function ResponsiveContainer(props) {
    var _this;

    _classCallCheck(this, ResponsiveContainer);

    _this = _super.call(this, props);
    _this.handleResize = void 0;
    _this.mounted = void 0;
    _this.containerRef = void 0;

    _this.updateDimensionsImmediate = function () {
      if (!_this.mounted) {
        return;
      }

      var newSize = _this.getContainerSize();

      if (newSize) {
        var _this$state = _this.state,
            oldWidth = _this$state.containerWidth,
            oldHeight = _this$state.containerHeight;
        var containerWidth = newSize.containerWidth,
            containerHeight = newSize.containerHeight;

        if (containerWidth !== oldWidth || containerHeight !== oldHeight) {
          _this.setState({
            containerWidth: containerWidth,
            containerHeight: containerHeight
          });
        }
      }
    };

    _this.state = {
      containerWidth: -1,
      containerHeight: -1
    };
    _this.handleResize = props.debounce > 0 ? lodash_debounce__WEBPACK_IMPORTED_MODULE_0___default()(_this.updateDimensionsImmediate, props.debounce) : _this.updateDimensionsImmediate;
    _this.containerRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createRef();
    return _this;
  }
  /* eslint-disable  react/no-did-mount-set-state */


  _createClass(ResponsiveContainer, [{
    key: "componentDidMount",
    value: function componentDidMount() {
      this.mounted = true;
      var size = this.getContainerSize();

      if (size) {
        this.setState(size);
      }
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      this.mounted = false;
    }
  }, {
    key: "getContainerSize",
    value: function getContainerSize() {
      if (!this.containerRef.current) {
        return null;
      }

      return {
        containerWidth: this.containerRef.current.clientWidth,
        containerHeight: this.containerRef.current.clientHeight
      };
    }
  }, {
    key: "renderChart",
    value: function renderChart() {
      var _this$state2 = this.state,
          containerWidth = _this$state2.containerWidth,
          containerHeight = _this$state2.containerHeight;

      if (containerWidth < 0 || containerHeight < 0) {
        return null;
      }

      var _this$props = this.props,
          aspect = _this$props.aspect,
          width = _this$props.width,
          height = _this$props.height,
          minWidth = _this$props.minWidth,
          minHeight = _this$props.minHeight,
          maxHeight = _this$props.maxHeight,
          children = _this$props.children;
      Object(_util_LogUtils__WEBPACK_IMPORTED_MODULE_5__[/* warn */ "a"])(Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_4__[/* isPercent */ "i"])(width) || Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_4__[/* isPercent */ "i"])(height), "The width(%s) and height(%s) are both fixed numbers,\n       maybe you don't need to use a ResponsiveContainer.", width, height);
      Object(_util_LogUtils__WEBPACK_IMPORTED_MODULE_5__[/* warn */ "a"])(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);
      var calculatedWidth = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_4__[/* isPercent */ "i"])(width) ? containerWidth : width;
      var calculatedHeight = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_4__[/* isPercent */ "i"])(height) ? containerHeight : height;

      if (aspect && aspect > 0) {
        // Preserve the desired aspect ratio
        if (calculatedWidth) {
          // Will default to using width for aspect ratio
          calculatedHeight = calculatedWidth / aspect;
        } else if (calculatedHeight) {
          // But we should also take height into consideration
          calculatedWidth = calculatedHeight * aspect;
        } // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight


        if (maxHeight && calculatedHeight > maxHeight) {
          calculatedHeight = maxHeight;
        }
      }

      Object(_util_LogUtils__WEBPACK_IMPORTED_MODULE_5__[/* warn */ "a"])(calculatedWidth > 0 || calculatedHeight > 0, "The width(%s) and height(%s) of chart should be greater than 0,\n       please check the style of container, or the props width(%s) and height(%s),\n       or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\n       height and width.", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);
      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.cloneElement(children, {
        width: calculatedWidth,
        height: calculatedHeight
      });
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props2 = this.props,
          minWidth = _this$props2.minWidth,
          minHeight = _this$props2.minHeight,
          width = _this$props2.width,
          height = _this$props2.height,
          maxHeight = _this$props2.maxHeight,
          id = _this$props2.id,
          className = _this$props2.className;
      var style = {
        width: width,
        height: height,
        minWidth: minWidth,
        minHeight: minHeight,
        maxHeight: maxHeight
      };
      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react_resize_detector_build_withPolyfill__WEBPACK_IMPORTED_MODULE_3___default.a, {
        handleWidth: true,
        handleHeight: true,
        onResize: this.handleResize,
        targetRef: this.containerRef
      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement("div", _extends({}, id != null ? {
        id: "".concat(id)
      } : {}, {
        className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('recharts-responsive-container', className),
        style: style,
        ref: this.containerRef
      }), this.renderChart()));
    }
  }]);

  return ResponsiveContainer;
}(react__WEBPACK_IMPORTED_MODULE_2__["Component"]);
ResponsiveContainer.defaultProps = {
  width: '100%',
  height: '100%',
  debounce: 0
};Object.defineProperty(exports,'__esModule',{value:true});var $inject_window_ResizeObserver=__webpack_require__(983),React=__webpack_require__(2),reactDom=__webpack_require__(40),debounce=__webpack_require__(506),throttle=__webpack_require__(984);function _interopDefaultLegacy(e){return e&&typeof e==='object'&&'default'in e?e:{'default':e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k];}});}});}n['default']=e;return Object.freeze(n);}var $inject_window_ResizeObserver__default=/*#__PURE__*/_interopDefaultLegacy($inject_window_ResizeObserver);var React__namespace=/*#__PURE__*/_interopNamespace(React);var debounce__default=/*#__PURE__*/_interopDefaultLegacy(debounce);var throttle__default=/*#__PURE__*/_interopDefaultLegacy(throttle);/*! *****************************************************************************
Copyright (c) Microsoft Corporation.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise */

var extendStatics = function(d, b) {
    extendStatics = Object.setPrototypeOf ||
        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
    return extendStatics(d, b);
};

function __extends(d, b) {
    extendStatics(d, b);
    function __() { this.constructor = d; }
    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}

var __assign = function() {
    __assign = Object.assign || function __assign(t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
        }
        return t;
    };
    return __assign.apply(this, arguments);
};

function __rest(s, e) {
    var t = {};
    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
        t[p] = s[p];
    if (s != null && typeof Object.getOwnPropertySymbols === "function")
        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
                t[p[i]] = s[p[i]];
        }
    return t;
}var patchResizeHandler = function (resizeCallback, refreshMode, refreshRate, refreshOptions) {
    switch (refreshMode) {
        case 'debounce':
            return debounce__default['default'](resizeCallback, refreshRate, refreshOptions);
        case 'throttle':
            return throttle__default['default'](resizeCallback, refreshRate, refreshOptions);
        default:
            return resizeCallback;
    }
};
var isFunction = function (fn) { return typeof fn === 'function'; };
var isSSR = function () { return typeof window === 'undefined'; };
var isDOMElement = function (element) { return element instanceof Element || element instanceof HTMLDocument; };
var createNotifier = function (onResize, setSize, handleWidth, handleHeight) { return function (_a) {
    var width = _a.width, height = _a.height;
    setSize(function (prev) {
        if (prev.width === width && prev.height === height) {
            // skip if dimensions haven't changed
            return prev;
        }
        if ((prev.width === width && !handleHeight) || (prev.height === height && !handleWidth)) {
            // process `handleHeight/handleWidth` props
            return prev;
        }
        if (onResize && isFunction(onResize)) {
            onResize(width, height);
        }
        return { width: width, height: height };
    });
}; };var ResizeDetector = /** @class */ (function (_super) {
    __extends(ResizeDetector, _super);
    function ResizeDetector(props) {
        var _this = _super.call(this, props) || this;
        _this.cancelHandler = function () {
            if (_this.resizeHandler && _this.resizeHandler.cancel) {
                // cancel debounced handler
                _this.resizeHandler.cancel();
                _this.resizeHandler = null;
            }
        };
        _this.attachObserver = function () {
            var _a = _this.props, targetRef = _a.targetRef, observerOptions = _a.observerOptions;
            if (isSSR()) {
                return;
            }
            if (targetRef && targetRef.current) {
                _this.targetRef.current = targetRef.current;
            }
            var element = _this.getElement();
            if (!element) {
                // can't find element to observe
                return;
            }
            if (_this.observableElement && _this.observableElement === element) {
                // element is already observed
                return;
            }
            _this.observableElement = element;
            _this.resizeObserver.observe(element, observerOptions);
        };
        _this.getElement = function () {
            var _a = _this.props, querySelector = _a.querySelector, targetDomEl = _a.targetDomEl;
            if (isSSR())
                return null;
            // in case we pass a querySelector
            if (querySelector)
                return document.querySelector(querySelector);
            // in case we pass a DOM element
            if (targetDomEl && isDOMElement(targetDomEl))
                return targetDomEl;
            // in case we pass a React ref using React.createRef()
            if (_this.targetRef && isDOMElement(_this.targetRef.current))
                return _this.targetRef.current;
            // the worse case when we don't receive any information from the parent and the library doesn't add any wrappers
            // we have to use a deprecated `findDOMNode` method in order to find a DOM element to attach to
            var currentElement = reactDom.findDOMNode(_this);
            if (!currentElement)
                return null;
            var renderType = _this.getRenderType();
            switch (renderType) {
                case 'renderProp':
                    return currentElement;
                case 'childFunction':
                    return currentElement;
                case 'child':
                    return currentElement;
                case 'childArray':
                    return currentElement;
                default:
                    return currentElement.parentElement;
            }
        };
        _this.createResizeHandler = function (entries) {
            var _a = _this.props, _b = _a.handleWidth, handleWidth = _b === void 0 ? true : _b, _c = _a.handleHeight, handleHeight = _c === void 0 ? true : _c, onResize = _a.onResize;
            if (!handleWidth && !handleHeight)
                return;
            var notifyResize = createNotifier(onResize, _this.setState.bind(_this), handleWidth, handleHeight);
            entries.forEach(function (entry) {
                var _a = (entry && entry.contentRect) || {}, width = _a.width, height = _a.height;
                var shouldSetSize = !_this.skipOnMount && !isSSR();
                if (shouldSetSize) {
                    notifyResize({ width: width, height: height });
                }
                _this.skipOnMount = false;
            });
        };
        _this.getRenderType = function () {
            var _a = _this.props, render = _a.render, children = _a.children;
            if (isFunction(render)) {
                // DEPRECATED. Use `Child Function Pattern` instead
                return 'renderProp';
            }
            if (isFunction(children)) {
                return 'childFunction';
            }
            if (React.isValidElement(children)) {
                return 'child';
            }
            if (Array.isArray(children)) {
                // DEPRECATED. Wrap children with a single parent
                return 'childArray';
            }
            // DEPRECATED. Use `Child Function Pattern` instead
            return 'parent';
        };
        var skipOnMount = props.skipOnMount, refreshMode = props.refreshMode, _a = props.refreshRate, refreshRate = _a === void 0 ? 1000 : _a, refreshOptions = props.refreshOptions;
        _this.state = {
            width: undefined,
            height: undefined
        };
        _this.skipOnMount = skipOnMount;
        _this.targetRef = React.createRef();
        _this.observableElement = null;
        if (isSSR()) {
            return _this;
        }
        _this.resizeHandler = patchResizeHandler(_this.createResizeHandler, refreshMode, refreshRate, refreshOptions);
        _this.resizeObserver = new $inject_window_ResizeObserver__default['default'](_this.resizeHandler);
        return _this;
    }
    ResizeDetector.prototype.componentDidMount = function () {
        this.attachObserver();
    };
    ResizeDetector.prototype.componentDidUpdate = function () {
        this.attachObserver();
    };
    ResizeDetector.prototype.componentWillUnmount = function () {
        if (isSSR()) {
            return;
        }
        this.resizeObserver.disconnect();
        this.cancelHandler();
    };
    ResizeDetector.prototype.render = function () {
        var _a = this.props, render = _a.render, children = _a.children, _b = _a.nodeType, WrapperTag = _b === void 0 ? 'div' : _b;
        var _c = this.state, width = _c.width, height = _c.height;
        var childProps = { width: width, height: height, targetRef: this.targetRef };
        var renderType = this.getRenderType();
        var typedChildren;
        switch (renderType) {
            case 'renderProp':
                return render && render(childProps);
            case 'childFunction':
                typedChildren = children;
                return typedChildren(childProps);
            case 'child':
                // @TODO bug prone logic
                typedChildren = children;
                if (typedChildren.type && typeof typedChildren.type === 'string') {
                    // child is a native DOM elements such as div, span etc
                    childProps.targetRef; var nativeProps = __rest(childProps, ["targetRef"]);
                    return React.cloneElement(typedChildren, nativeProps);
                }
                // class or functional component otherwise
                return React.cloneElement(typedChildren, childProps);
            case 'childArray':
                typedChildren = children;
                return typedChildren.map(function (el) { return !!el && React.cloneElement(el, childProps); });
            default:
                return React__namespace.createElement(WrapperTag, null);
        }
    };
    return ResizeDetector;
}(React.PureComponent));function withResizeDetector(ComponentInner, options) {
    if (options === void 0) { options = {}; }
    var ResizeDetectorHOC = /** @class */ (function (_super) {
        __extends(ResizeDetectorHOC, _super);
        function ResizeDetectorHOC() {
            var _this = _super !== null && _super.apply(this, arguments) || this;
            _this.ref = React.createRef();
            return _this;
        }
        ResizeDetectorHOC.prototype.render = function () {
            var _a = this.props, forwardedRef = _a.forwardedRef, rest = __rest(_a, ["forwardedRef"]);
            var targetRef = forwardedRef !== null && forwardedRef !== void 0 ? forwardedRef : this.ref;
            return (React__namespace.createElement(ResizeDetector, __assign({}, options, { targetRef: targetRef }),
                React__namespace.createElement(ComponentInner, __assign({ targetRef: targetRef }, rest))));
        };
        return ResizeDetectorHOC;
    }(React.Component));
    function forwardRefWrapper(props, ref) {
        return React__namespace.createElement(ResizeDetectorHOC, __assign({}, props, { forwardedRef: ref }));
    }
    var name = ComponentInner.displayName || ComponentInner.name;
    forwardRefWrapper.displayName = "withResizeDetector(" + name + ")";
    return React.forwardRef(forwardRefWrapper);
}var useEnhancedEffect = isSSR() ? React.useEffect : React.useLayoutEffect;
function useResizeDetector(props) {
    if (props === void 0) { props = {}; }
    var _a = props.skipOnMount, skipOnMount = _a === void 0 ? false : _a, refreshMode = props.refreshMode, _b = props.refreshRate, refreshRate = _b === void 0 ? 1000 : _b, refreshOptions = props.refreshOptions, _c = props.handleWidth, handleWidth = _c === void 0 ? true : _c, _d = props.handleHeight, handleHeight = _d === void 0 ? true : _d, targetRef = props.targetRef, observerOptions = props.observerOptions, onResize = props.onResize;
    var skipResize = React.useRef(skipOnMount);
    var localRef = React.useRef(null);
    var ref = (targetRef !== null && targetRef !== void 0 ? targetRef : localRef);
    var resizeHandler = React.useRef();
    var _e = React.useState({
        width: undefined,
        height: undefined
    }), size = _e[0], setSize = _e[1];
    useEnhancedEffect(function () {
        if (isSSR()) {
            return;
        }
        var notifyResize = createNotifier(onResize, setSize, handleWidth, handleHeight);
        var resizeCallback = function (entries) {
            if (!handleWidth && !handleHeight)
                return;
            entries.forEach(function (entry) {
                var _a = (entry && entry.contentRect) || {}, width = _a.width, height = _a.height;
                var shouldSetSize = !skipResize.current && !isSSR();
                if (shouldSetSize) {
                    notifyResize({ width: width, height: height });
                }
                skipResize.current = false;
            });
        };
        resizeHandler.current = patchResizeHandler(resizeCallback, refreshMode, refreshRate, refreshOptions);
        var resizeObserver = new $inject_window_ResizeObserver__default['default'](resizeHandler.current);
        if (ref.current) {
            // Something wrong with typings here...
            resizeObserver.observe(ref.current, observerOptions);
        }
        return function () {
            resizeObserver.disconnect();
            var patchedResizeHandler = resizeHandler.current;
            if (patchedResizeHandler && patchedResizeHandler.cancel) {
                patchedResizeHandler.cancel();
            }
        };
    }, [refreshMode, refreshRate, refreshOptions, handleWidth, handleHeight, onResize, observerOptions, ref.current]);
    return __assign({ ref: ref }, size);
}exports.default=ResizeDetector;exports.useResizeDetector=useResizeDetector;exports.withResizeDetector=withResizeDetector;//# sourceMappingURL=withPolyfill.js.map
__webpack_require__.r(__webpack_exports__);
/* WEBPACK VAR INJECTION */(function(global) {/**
 * A collection of shims that provide minimal functionality of the ES6 collections.
 *
 * These implementations are not meant to be used outside of the ResizeObserver
 * modules as they cover only a limited range of use cases.
 */
/* eslint-disable require-jsdoc, valid-jsdoc */
var MapShim = (function () {
    if (typeof Map !== 'undefined') {
        return Map;
    }
    /**
     * Returns index in provided array that matches the specified key.
     *
     * @param {Array<Array>} arr
     * @param {*} key
     * @returns {number}
     */
    function getIndex(arr, key) {
        var result = -1;
        arr.some(function (entry, index) {
            if (entry[0] === key) {
                result = index;
                return true;
            }
            return false;
        });
        return result;
    }
    return /** @class */ (function () {
        function class_1() {
            this.__entries__ = [];
        }
        Object.defineProperty(class_1.prototype, "size", {
            /**
             * @returns {boolean}
             */
            get: function () {
                return this.__entries__.length;
            },
            enumerable: true,
            configurable: true
        });
        /**
         * @param {*} key
         * @returns {*}
         */
        class_1.prototype.get = function (key) {
            var index = getIndex(this.__entries__, key);
            var entry = this.__entries__[index];
            return entry && entry[1];
        };
        /**
         * @param {*} key
         * @param {*} value
         * @returns {void}
         */
        class_1.prototype.set = function (key, value) {
            var index = getIndex(this.__entries__, key);
            if (~index) {
                this.__entries__[index][1] = value;
            }
            else {
                this.__entries__.push([key, value]);
            }
        };
        /**
         * @param {*} key
         * @returns {void}
         */
        class_1.prototype.delete = function (key) {
            var entries = this.__entries__;
            var index = getIndex(entries, key);
            if (~index) {
                entries.splice(index, 1);
            }
        };
        /**
         * @param {*} key
         * @returns {void}
         */
        class_1.prototype.has = function (key) {
            return !!~getIndex(this.__entries__, key);
        };
        /**
         * @returns {void}
         */
        class_1.prototype.clear = function () {
            this.__entries__.splice(0);
        };
        /**
         * @param {Function} callback
         * @param {*} [ctx=null]
         * @returns {void}
         */
        class_1.prototype.forEach = function (callback, ctx) {
            if (ctx === void 0) { ctx = null; }
            for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {
                var entry = _a[_i];
                callback.call(ctx, entry[1], entry[0]);
            }
        };
        return class_1;
    }());
})();

/**
 * Detects whether window and document objects are available in current environment.
 */
var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;

// Returns global object of a current environment.
var global$1 = (function () {
    if (typeof global !== 'undefined' && global.Math === Math) {
        return global;
    }
    if (typeof self !== 'undefined' && self.Math === Math) {
        return self;
    }
    if (typeof window !== 'undefined' && window.Math === Math) {
        return window;
    }
    // eslint-disable-next-line no-new-func
    return Function('return this')();
})();

/**
 * A shim for the requestAnimationFrame which falls back to the setTimeout if
 * first one is not supported.
 *
 * @returns {number} Requests' identifier.
 */
var requestAnimationFrame$1 = (function () {
    if (typeof requestAnimationFrame === 'function') {
        // It's required to use a bounded function because IE sometimes throws
        // an "Invalid calling object" error if rAF is invoked without the global
        // object on the left hand side.
        return requestAnimationFrame.bind(global$1);
    }
    return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };
})();

// Defines minimum timeout before adding a trailing call.
var trailingTimeout = 2;
/**
 * Creates a wrapper function which ensures that provided callback will be
 * invoked only once during the specified delay period.
 *
 * @param {Function} callback - Function to be invoked after the delay period.
 * @param {number} delay - Delay after which to invoke callback.
 * @returns {Function}
 */
function throttle (callback, delay) {
    var leadingCall = false, trailingCall = false, lastCallTime = 0;
    /**
     * Invokes the original callback function and schedules new invocation if
     * the "proxy" was called during current request.
     *
     * @returns {void}
     */
    function resolvePending() {
        if (leadingCall) {
            leadingCall = false;
            callback();
        }
        if (trailingCall) {
            proxy();
        }
    }
    /**
     * Callback invoked after the specified delay. It will further postpone
     * invocation of the original function delegating it to the
     * requestAnimationFrame.
     *
     * @returns {void}
     */
    function timeoutCallback() {
        requestAnimationFrame$1(resolvePending);
    }
    /**
     * Schedules invocation of the original function.
     *
     * @returns {void}
     */
    function proxy() {
        var timeStamp = Date.now();
        if (leadingCall) {
            // Reject immediately following calls.
            if (timeStamp - lastCallTime < trailingTimeout) {
                return;
            }
            // Schedule new call to be in invoked when the pending one is resolved.
            // This is important for "transitions" which never actually start
            // immediately so there is a chance that we might miss one if change
            // happens amids the pending invocation.
            trailingCall = true;
        }
        else {
            leadingCall = true;
            trailingCall = false;
            setTimeout(timeoutCallback, delay);
        }
        lastCallTime = timeStamp;
    }
    return proxy;
}

// Minimum delay before invoking the update of observers.
var REFRESH_DELAY = 20;
// A list of substrings of CSS properties used to find transition events that
// might affect dimensions of observed elements.
var transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];
// Check if MutationObserver is available.
var mutationObserverSupported = typeof MutationObserver !== 'undefined';
/**
 * Singleton controller class which handles updates of ResizeObserver instances.
 */
var ResizeObserverController = /** @class */ (function () {
    /**
     * Creates a new instance of ResizeObserverController.
     *
     * @private
     */
    function ResizeObserverController() {
        /**
         * Indicates whether DOM listeners have been added.
         *
         * @private {boolean}
         */
        this.connected_ = false;
        /**
         * Tells that controller has subscribed for Mutation Events.
         *
         * @private {boolean}
         */
        this.mutationEventsAdded_ = false;
        /**
         * Keeps reference to the instance of MutationObserver.
         *
         * @private {MutationObserver}
         */
        this.mutationsObserver_ = null;
        /**
         * A list of connected observers.
         *
         * @private {Array<ResizeObserverSPI>}
         */
        this.observers_ = [];
        this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);
        this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);
    }
    /**
     * Adds observer to observers list.
     *
     * @param {ResizeObserverSPI} observer - Observer to be added.
     * @returns {void}
     */
    ResizeObserverController.prototype.addObserver = function (observer) {
        if (!~this.observers_.indexOf(observer)) {
            this.observers_.push(observer);
        }
        // Add listeners if they haven't been added yet.
        if (!this.connected_) {
            this.connect_();
        }
    };
    /**
     * Removes observer from observers list.
     *
     * @param {ResizeObserverSPI} observer - Observer to be removed.
     * @returns {void}
     */
    ResizeObserverController.prototype.removeObserver = function (observer) {
        var observers = this.observers_;
        var index = observers.indexOf(observer);
        // Remove observer if it's present in registry.
        if (~index) {
            observers.splice(index, 1);
        }
        // Remove listeners if controller has no connected observers.
        if (!observers.length && this.connected_) {
            this.disconnect_();
        }
    };
    /**
     * Invokes the update of observers. It will continue running updates insofar
     * it detects changes.
     *
     * @returns {void}
     */
    ResizeObserverController.prototype.refresh = function () {
        var changesDetected = this.updateObservers_();
        // Continue running updates if changes have been detected as there might
        // be future ones caused by CSS transitions.
        if (changesDetected) {
            this.refresh();
        }
    };
    /**
     * Updates every observer from observers list and notifies them of queued
     * entries.
     *
     * @private
     * @returns {boolean} Returns "true" if any observer has detected changes in
     *      dimensions of it's elements.
     */
    ResizeObserverController.prototype.updateObservers_ = function () {
        // Collect observers that have active observations.
        var activeObservers = this.observers_.filter(function (observer) {
            return observer.gatherActive(), observer.hasActive();
        });
        // Deliver notifications in a separate cycle in order to avoid any
        // collisions between observers, e.g. when multiple instances of
        // ResizeObserver are tracking the same element and the callback of one
        // of them changes content dimensions of the observed target. Sometimes
        // this may result in notifications being blocked for the rest of observers.
        activeObservers.forEach(function (observer) { return observer.broadcastActive(); });
        return activeObservers.length > 0;
    };
    /**
     * Initializes DOM listeners.
     *
     * @private
     * @returns {void}
     */
    ResizeObserverController.prototype.connect_ = function () {
        // Do nothing if running in a non-browser environment or if listeners
        // have been already added.
        if (!isBrowser || this.connected_) {
            return;
        }
        // Subscription to the "Transitionend" event is used as a workaround for
        // delayed transitions. This way it's possible to capture at least the
        // final state of an element.
        document.addEventListener('transitionend', this.onTransitionEnd_);
        window.addEventListener('resize', this.refresh);
        if (mutationObserverSupported) {
            this.mutationsObserver_ = new MutationObserver(this.refresh);
            this.mutationsObserver_.observe(document, {
                attributes: true,
                childList: true,
                characterData: true,
                subtree: true
            });
        }
        else {
            document.addEventListener('DOMSubtreeModified', this.refresh);
            this.mutationEventsAdded_ = true;
        }
        this.connected_ = true;
    };
    /**
     * Removes DOM listeners.
     *
     * @private
     * @returns {void}
     */
    ResizeObserverController.prototype.disconnect_ = function () {
        // Do nothing if running in a non-browser environment or if listeners
        // have been already removed.
        if (!isBrowser || !this.connected_) {
            return;
        }
        document.removeEventListener('transitionend', this.onTransitionEnd_);
        window.removeEventListener('resize', this.refresh);
        if (this.mutationsObserver_) {
            this.mutationsObserver_.disconnect();
        }
        if (this.mutationEventsAdded_) {
            document.removeEventListener('DOMSubtreeModified', this.refresh);
        }
        this.mutationsObserver_ = null;
        this.mutationEventsAdded_ = false;
        this.connected_ = false;
    };
    /**
     * "Transitionend" event handler.
     *
     * @private
     * @param {TransitionEvent} event
     * @returns {void}
     */
    ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {
        var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;
        // Detect whether transition may affect dimensions of an element.
        var isReflowProperty = transitionKeys.some(function (key) {
            return !!~propertyName.indexOf(key);
        });
        if (isReflowProperty) {
            this.refresh();
        }
    };
    /**
     * Returns instance of the ResizeObserverController.
     *
     * @returns {ResizeObserverController}
     */
    ResizeObserverController.getInstance = function () {
        if (!this.instance_) {
            this.instance_ = new ResizeObserverController();
        }
        return this.instance_;
    };
    /**
     * Holds reference to the controller's instance.
     *
     * @private {ResizeObserverController}
     */
    ResizeObserverController.instance_ = null;
    return ResizeObserverController;
}());

/**
 * Defines non-writable/enumerable properties of the provided target object.
 *
 * @param {Object} target - Object for which to define properties.
 * @param {Object} props - Properties to be defined.
 * @returns {Object} Target object.
 */
var defineConfigurable = (function (target, props) {
    for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {
        var key = _a[_i];
        Object.defineProperty(target, key, {
            value: props[key],
            enumerable: false,
            writable: false,
            configurable: true
        });
    }
    return target;
});

/**
 * Returns the global object associated with provided element.
 *
 * @param {Object} target
 * @returns {Object}
 */
var getWindowOf = (function (target) {
    // Assume that the element is an instance of Node, which means that it
    // has the "ownerDocument" property from which we can retrieve a
    // corresponding global object.
    var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;
    // Return the local global object if it's not possible extract one from
    // provided element.
    return ownerGlobal || global$1;
});

// Placeholder of an empty content rectangle.
var emptyRect = createRectInit(0, 0, 0, 0);
/**
 * Converts provided string to a number.
 *
 * @param {number|string} value
 * @returns {number}
 */
function toFloat(value) {
    return parseFloat(value) || 0;
}
/**
 * Extracts borders size from provided styles.
 *
 * @param {CSSStyleDeclaration} styles
 * @param {...string} positions - Borders positions (top, right, ...)
 * @returns {number}
 */
function getBordersSize(styles) {
    var positions = [];
    for (var _i = 1; _i < arguments.length; _i++) {
        positions[_i - 1] = arguments[_i];
    }
    return positions.reduce(function (size, position) {
        var value = styles['border-' + position + '-width'];
        return size + toFloat(value);
    }, 0);
}
/**
 * Extracts paddings sizes from provided styles.
 *
 * @param {CSSStyleDeclaration} styles
 * @returns {Object} Paddings box.
 */
function getPaddings(styles) {
    var positions = ['top', 'right', 'bottom', 'left'];
    var paddings = {};
    for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {
        var position = positions_1[_i];
        var value = styles['padding-' + position];
        paddings[position] = toFloat(value);
    }
    return paddings;
}
/**
 * Calculates content rectangle of provided SVG element.
 *
 * @param {SVGGraphicsElement} target - Element content rectangle of which needs
 *      to be calculated.
 * @returns {DOMRectInit}
 */
function getSVGContentRect(target) {
    var bbox = target.getBBox();
    return createRectInit(0, 0, bbox.width, bbox.height);
}
/**
 * Calculates content rectangle of provided HTMLElement.
 *
 * @param {HTMLElement} target - Element for which to calculate the content rectangle.
 * @returns {DOMRectInit}
 */
function getHTMLElementContentRect(target) {
    // Client width & height properties can't be
    // used exclusively as they provide rounded values.
    var clientWidth = target.clientWidth, clientHeight = target.clientHeight;
    // By this condition we can catch all non-replaced inline, hidden and
    // detached elements. Though elements with width & height properties less
    // than 0.5 will be discarded as well.
    //
    // Without it we would need to implement separate methods for each of
    // those cases and it's not possible to perform a precise and performance
    // effective test for hidden elements. E.g. even jQuery's ':visible' filter
    // gives wrong results for elements with width & height less than 0.5.
    if (!clientWidth && !clientHeight) {
        return emptyRect;
    }
    var styles = getWindowOf(target).getComputedStyle(target);
    var paddings = getPaddings(styles);
    var horizPad = paddings.left + paddings.right;
    var vertPad = paddings.top + paddings.bottom;
    // Computed styles of width & height are being used because they are the
    // only dimensions available to JS that contain non-rounded values. It could
    // be possible to utilize the getBoundingClientRect if only it's data wasn't
    // affected by CSS transformations let alone paddings, borders and scroll bars.
    var width = toFloat(styles.width), height = toFloat(styles.height);
    // Width & height include paddings and borders when the 'border-box' box
    // model is applied (except for IE).
    if (styles.boxSizing === 'border-box') {
        // Following conditions are required to handle Internet Explorer which
        // doesn't include paddings and borders to computed CSS dimensions.
        //
        // We can say that if CSS dimensions + paddings are equal to the "client"
        // properties then it's either IE, and thus we don't need to subtract
        // anything, or an element merely doesn't have paddings/borders styles.
        if (Math.round(width + horizPad) !== clientWidth) {
            width -= getBordersSize(styles, 'left', 'right') + horizPad;
        }
        if (Math.round(height + vertPad) !== clientHeight) {
            height -= getBordersSize(styles, 'top', 'bottom') + vertPad;
        }
    }
    // Following steps can't be applied to the document's root element as its
    // client[Width/Height] properties represent viewport area of the window.
    // Besides, it's as well not necessary as the <html> itself neither has
    // rendered scroll bars nor it can be clipped.
    if (!isDocumentElement(target)) {
        // In some browsers (only in Firefox, actually) CSS width & height
        // include scroll bars size which can be removed at this step as scroll
        // bars are the only difference between rounded dimensions + paddings
        // and "client" properties, though that is not always true in Chrome.
        var vertScrollbar = Math.round(width + horizPad) - clientWidth;
        var horizScrollbar = Math.round(height + vertPad) - clientHeight;
        // Chrome has a rather weird rounding of "client" properties.
        // E.g. for an element with content width of 314.2px it sometimes gives
        // the client width of 315px and for the width of 314.7px it may give
        // 314px. And it doesn't happen all the time. So just ignore this delta
        // as a non-relevant.
        if (Math.abs(vertScrollbar) !== 1) {
            width -= vertScrollbar;
        }
        if (Math.abs(horizScrollbar) !== 1) {
            height -= horizScrollbar;
        }
    }
    return createRectInit(paddings.left, paddings.top, width, height);
}
/**
 * Checks whether provided element is an instance of the SVGGraphicsElement.
 *
 * @param {Element} target - Element to be checked.
 * @returns {boolean}
 */
var isSVGGraphicsElement = (function () {
    // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement
    // interface.
    if (typeof SVGGraphicsElement !== 'undefined') {
        return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };
    }
    // If it's so, then check that element is at least an instance of the
    // SVGElement and that it has the "getBBox" method.
    // eslint-disable-next-line no-extra-parens
    return function (target) { return (target instanceof getWindowOf(target).SVGElement &&
        typeof target.getBBox === 'function'); };
})();
/**
 * Checks whether provided element is a document element (<html>).
 *
 * @param {Element} target - Element to be checked.
 * @returns {boolean}
 */
function isDocumentElement(target) {
    return target === getWindowOf(target).document.documentElement;
}
/**
 * Calculates an appropriate content rectangle for provided html or svg element.
 *
 * @param {Element} target - Element content rectangle of which needs to be calculated.
 * @returns {DOMRectInit}
 */
function getContentRect(target) {
    if (!isBrowser) {
        return emptyRect;
    }
    if (isSVGGraphicsElement(target)) {
        return getSVGContentRect(target);
    }
    return getHTMLElementContentRect(target);
}
/**
 * Creates rectangle with an interface of the DOMRectReadOnly.
 * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly
 *
 * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.
 * @returns {DOMRectReadOnly}
 */
function createReadOnlyRect(_a) {
    var x = _a.x, y = _a.y, width = _a.width, height = _a.height;
    // If DOMRectReadOnly is available use it as a prototype for the rectangle.
    var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;
    var rect = Object.create(Constr.prototype);
    // Rectangle's properties are not writable and non-enumerable.
    defineConfigurable(rect, {
        x: x, y: y, width: width, height: height,
        top: y,
        right: x + width,
        bottom: height + y,
        left: x
    });
    return rect;
}
/**
 * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.
 * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit
 *
 * @param {number} x - X coordinate.
 * @param {number} y - Y coordinate.
 * @param {number} width - Rectangle's width.
 * @param {number} height - Rectangle's height.
 * @returns {DOMRectInit}
 */
function createRectInit(x, y, width, height) {
    return { x: x, y: y, width: width, height: height };
}

/**
 * Class that is responsible for computations of the content rectangle of
 * provided DOM element and for keeping track of it's changes.
 */
var ResizeObservation = /** @class */ (function () {
    /**
     * Creates an instance of ResizeObservation.
     *
     * @param {Element} target - Element to be observed.
     */
    function ResizeObservation(target) {
        /**
         * Broadcasted width of content rectangle.
         *
         * @type {number}
         */
        this.broadcastWidth = 0;
        /**
         * Broadcasted height of content rectangle.
         *
         * @type {number}
         */
        this.broadcastHeight = 0;
        /**
         * Reference to the last observed content rectangle.
         *
         * @private {DOMRectInit}
         */
        this.contentRect_ = createRectInit(0, 0, 0, 0);
        this.target = target;
    }
    /**
     * Updates content rectangle and tells whether it's width or height properties
     * have changed since the last broadcast.
     *
     * @returns {boolean}
     */
    ResizeObservation.prototype.isActive = function () {
        var rect = getContentRect(this.target);
        this.contentRect_ = rect;
        return (rect.width !== this.broadcastWidth ||
            rect.height !== this.broadcastHeight);
    };
    /**
     * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data
     * from the corresponding properties of the last observed content rectangle.
     *
     * @returns {DOMRectInit} Last observed content rectangle.
     */
    ResizeObservation.prototype.broadcastRect = function () {
        var rect = this.contentRect_;
        this.broadcastWidth = rect.width;
        this.broadcastHeight = rect.height;
        return rect;
    };
    return ResizeObservation;
}());

var ResizeObserverEntry = /** @class */ (function () {
    /**
     * Creates an instance of ResizeObserverEntry.
     *
     * @param {Element} target - Element that is being observed.
     * @param {DOMRectInit} rectInit - Data of the element's content rectangle.
     */
    function ResizeObserverEntry(target, rectInit) {
        var contentRect = createReadOnlyRect(rectInit);
        // According to the specification following properties are not writable
        // and are also not enumerable in the native implementation.
        //
        // Property accessors are not being used as they'd require to define a
        // private WeakMap storage which may cause memory leaks in browsers that
        // don't support this type of collections.
        defineConfigurable(this, { target: target, contentRect: contentRect });
    }
    return ResizeObserverEntry;
}());

var ResizeObserverSPI = /** @class */ (function () {
    /**
     * Creates a new instance of ResizeObserver.
     *
     * @param {ResizeObserverCallback} callback - Callback function that is invoked
     *      when one of the observed elements changes it's content dimensions.
     * @param {ResizeObserverController} controller - Controller instance which
     *      is responsible for the updates of observer.
     * @param {ResizeObserver} callbackCtx - Reference to the public
     *      ResizeObserver instance which will be passed to callback function.
     */
    function ResizeObserverSPI(callback, controller, callbackCtx) {
        /**
         * Collection of resize observations that have detected changes in dimensions
         * of elements.
         *
         * @private {Array<ResizeObservation>}
         */
        this.activeObservations_ = [];
        /**
         * Registry of the ResizeObservation instances.
         *
         * @private {Map<Element, ResizeObservation>}
         */
        this.observations_ = new MapShim();
        if (typeof callback !== 'function') {
            throw new TypeError('The callback provided as parameter 1 is not a function.');
        }
        this.callback_ = callback;
        this.controller_ = controller;
        this.callbackCtx_ = callbackCtx;
    }
    /**
     * Starts observing provided element.
     *
     * @param {Element} target - Element to be observed.
     * @returns {void}
     */
    ResizeObserverSPI.prototype.observe = function (target) {
        if (!arguments.length) {
            throw new TypeError('1 argument required, but only 0 present.');
        }
        // Do nothing if current environment doesn't have the Element interface.
        if (typeof Element === 'undefined' || !(Element instanceof Object)) {
            return;
        }
        if (!(target instanceof getWindowOf(target).Element)) {
            throw new TypeError('parameter 1 is not of type "Element".');
        }
        var observations = this.observations_;
        // Do nothing if element is already being observed.
        if (observations.has(target)) {
            return;
        }
        observations.set(target, new ResizeObservation(target));
        this.controller_.addObserver(this);
        // Force the update of observations.
        this.controller_.refresh();
    };
    /**
     * Stops observing provided element.
     *
     * @param {Element} target - Element to stop observing.
     * @returns {void}
     */
    ResizeObserverSPI.prototype.unobserve = function (target) {
        if (!arguments.length) {
            throw new TypeError('1 argument required, but only 0 present.');
        }
        // Do nothing if current environment doesn't have the Element interface.
        if (typeof Element === 'undefined' || !(Element instanceof Object)) {
            return;
        }
        if (!(target instanceof getWindowOf(target).Element)) {
            throw new TypeError('parameter 1 is not of type "Element".');
        }
        var observations = this.observations_;
        // Do nothing if element is not being observed.
        if (!observations.has(target)) {
            return;
        }
        observations.delete(target);
        if (!observations.size) {
            this.controller_.removeObserver(this);
        }
    };
    /**
     * Stops observing all elements.
     *
     * @returns {void}
     */
    ResizeObserverSPI.prototype.disconnect = function () {
        this.clearActive();
        this.observations_.clear();
        this.controller_.removeObserver(this);
    };
    /**
     * Collects observation instances the associated element of which has changed
     * it's content rectangle.
     *
     * @returns {void}
     */
    ResizeObserverSPI.prototype.gatherActive = function () {
        var _this = this;
        this.clearActive();
        this.observations_.forEach(function (observation) {
            if (observation.isActive()) {
                _this.activeObservations_.push(observation);
            }
        });
    };
    /**
     * Invokes initial callback function with a list of ResizeObserverEntry
     * instances collected from active resize observations.
     *
     * @returns {void}
     */
    ResizeObserverSPI.prototype.broadcastActive = function () {
        // Do nothing if observer doesn't have active observations.
        if (!this.hasActive()) {
            return;
        }
        var ctx = this.callbackCtx_;
        // Create ResizeObserverEntry instance for every active observation.
        var entries = this.activeObservations_.map(function (observation) {
            return new ResizeObserverEntry(observation.target, observation.broadcastRect());
        });
        this.callback_.call(ctx, entries, ctx);
        this.clearActive();
    };
    /**
     * Clears the collection of active observations.
     *
     * @returns {void}
     */
    ResizeObserverSPI.prototype.clearActive = function () {
        this.activeObservations_.splice(0);
    };
    /**
     * Tells whether observer has active observations.
     *
     * @returns {boolean}
     */
    ResizeObserverSPI.prototype.hasActive = function () {
        return this.activeObservations_.length > 0;
    };
    return ResizeObserverSPI;
}());

// Registry of internal observers. If WeakMap is not available use current shim
// for the Map collection as it has all required methods and because WeakMap
// can't be fully polyfilled anyway.
var observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();
/**
 * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation
 * exposing only those methods and properties that are defined in the spec.
 */
var ResizeObserver = /** @class */ (function () {
    /**
     * Creates a new instance of ResizeObserver.
     *
     * @param {ResizeObserverCallback} callback - Callback that is invoked when
     *      dimensions of the observed elements change.
     */
    function ResizeObserver(callback) {
        if (!(this instanceof ResizeObserver)) {
            throw new TypeError('Cannot call a class as a function.');
        }
        if (!arguments.length) {
            throw new TypeError('1 argument required, but only 0 present.');
        }
        var controller = ResizeObserverController.getInstance();
        var observer = new ResizeObserverSPI(callback, controller, this);
        observers.set(this, observer);
    }
    return ResizeObserver;
}());
// Expose public methods of ResizeObserver.
[
    'observe',
    'unobserve',
    'disconnect'
].forEach(function (method) {
    ResizeObserver.prototype[method] = function () {
        var _a;
        return (_a = observers.get(this))[method].apply(_a, arguments);
    };
});

var index = (function () {
    // Export existing implementation if available.
    if (typeof global$1.ResizeObserver !== 'undefined') {
        return global$1.ResizeObserver;
    }
    return ResizeObserver;
})();

/* harmony default export */ __webpack_exports__["default"] = (index);

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(108)))/* WEBPACK VAR INJECTION */(function(global) {/**
 * lodash (Custom Build) <https://lodash.com/>
 * Build: `lodash modularize exports="npm" -o ./`
 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
 * Released under MIT license <https://lodash.com/license>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 */

/** Used as the `TypeError` message for "Functions" methods. */
var FUNC_ERROR_TEXT = 'Expected a function';

/** Used as references for various `Number` constants. */
var NAN = 0 / 0;

/** `Object#toString` result references. */
var symbolTag = '[object Symbol]';

/** Used to match leading and trailing whitespace. */
var reTrim = /^\s+|\s+$/g;

/** Used to detect bad signed hexadecimal string values. */
var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;

/** Used to detect binary string values. */
var reIsBinary = /^0b[01]+$/i;

/** Used to detect octal string values. */
var reIsOctal = /^0o[0-7]+$/i;

/** Built-in method references without a dependency on `root`. */
var freeParseInt = parseInt;

/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;

/** Detect free variable `self`. */
var freeSelf = typeof self == 'object' && self && self.Object === Object && self;

/** Used as a reference to the global object. */
var root = freeGlobal || freeSelf || Function('return this')();

/** Used for built-in method references. */
var objectProto = Object.prototype;

/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */
var objectToString = objectProto.toString;

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeMax = Math.max,
    nativeMin = Math.min;

/**
 * Gets the timestamp of the number of milliseconds that have elapsed since
 * the Unix epoch (1 January 1970 00:00:00 UTC).
 *
 * @static
 * @memberOf _
 * @since 2.4.0
 * @category Date
 * @returns {number} Returns the timestamp.
 * @example
 *
 * _.defer(function(stamp) {
 *   console.log(_.now() - stamp);
 * }, _.now());
 * // => Logs the number of milliseconds it took for the deferred invocation.
 */
var now = function() {
  return root.Date.now();
};

/**
 * Creates a debounced function that delays invoking `func` until after `wait`
 * milliseconds have elapsed since the last time the debounced function was
 * invoked. The debounced function comes with a `cancel` method to cancel
 * delayed `func` invocations and a `flush` method to immediately invoke them.
 * Provide `options` to indicate whether `func` should be invoked on the
 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
 * with the last arguments provided to the debounced function. Subsequent
 * calls to the debounced function return the result of the last `func`
 * invocation.
 *
 * **Note:** If `leading` and `trailing` options are `true`, `func` is
 * invoked on the trailing edge of the timeout only if the debounced function
 * is invoked more than once during the `wait` timeout.
 *
 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
 *
 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
 * for details over the differences between `_.debounce` and `_.throttle`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to debounce.
 * @param {number} [wait=0] The number of milliseconds to delay.
 * @param {Object} [options={}] The options object.
 * @param {boolean} [options.leading=false]
 *  Specify invoking on the leading edge of the timeout.
 * @param {number} [options.maxWait]
 *  The maximum time `func` is allowed to be delayed before it's invoked.
 * @param {boolean} [options.trailing=true]
 *  Specify invoking on the trailing edge of the timeout.
 * @returns {Function} Returns the new debounced function.
 * @example
 *
 * // Avoid costly calculations while the window size is in flux.
 * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
 *
 * // Invoke `sendMail` when clicked, debouncing subsequent calls.
 * jQuery(element).on('click', _.debounce(sendMail, 300, {
 *   'leading': true,
 *   'trailing': false
 * }));
 *
 * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
 * var source = new EventSource('/stream');
 * jQuery(source).on('message', debounced);
 *
 * // Cancel the trailing debounced invocation.
 * jQuery(window).on('popstate', debounced.cancel);
 */
function debounce(func, wait, options) {
  var lastArgs,
      lastThis,
      maxWait,
      result,
      timerId,
      lastCallTime,
      lastInvokeTime = 0,
      leading = false,
      maxing = false,
      trailing = true;

  if (typeof func != 'function') {
    throw new TypeError(FUNC_ERROR_TEXT);
  }
  wait = toNumber(wait) || 0;
  if (isObject(options)) {
    leading = !!options.leading;
    maxing = 'maxWait' in options;
    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
    trailing = 'trailing' in options ? !!options.trailing : trailing;
  }

  function invokeFunc(time) {
    var args = lastArgs,
        thisArg = lastThis;

    lastArgs = lastThis = undefined;
    lastInvokeTime = time;
    result = func.apply(thisArg, args);
    return result;
  }

  function leadingEdge(time) {
    // Reset any `maxWait` timer.
    lastInvokeTime = time;
    // Start the timer for the trailing edge.
    timerId = setTimeout(timerExpired, wait);
    // Invoke the leading edge.
    return leading ? invokeFunc(time) : result;
  }

  function remainingWait(time) {
    var timeSinceLastCall = time - lastCallTime,
        timeSinceLastInvoke = time - lastInvokeTime,
        result = wait - timeSinceLastCall;

    return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;
  }

  function shouldInvoke(time) {
    var timeSinceLastCall = time - lastCallTime,
        timeSinceLastInvoke = time - lastInvokeTime;

    // Either this is the first call, activity has stopped and we're at the
    // trailing edge, the system time has gone backwards and we're treating
    // it as the trailing edge, or we've hit the `maxWait` limit.
    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
  }

  function timerExpired() {
    var time = now();
    if (shouldInvoke(time)) {
      return trailingEdge(time);
    }
    // Restart the timer.
    timerId = setTimeout(timerExpired, remainingWait(time));
  }

  function trailingEdge(time) {
    timerId = undefined;

    // Only invoke if we have `lastArgs` which means `func` has been
    // debounced at least once.
    if (trailing && lastArgs) {
      return invokeFunc(time);
    }
    lastArgs = lastThis = undefined;
    return result;
  }

  function cancel() {
    if (timerId !== undefined) {
      clearTimeout(timerId);
    }
    lastInvokeTime = 0;
    lastArgs = lastCallTime = lastThis = timerId = undefined;
  }

  function flush() {
    return timerId === undefined ? result : trailingEdge(now());
  }

  function debounced() {
    var time = now(),
        isInvoking = shouldInvoke(time);

    lastArgs = arguments;
    lastThis = this;
    lastCallTime = time;

    if (isInvoking) {
      if (timerId === undefined) {
        return leadingEdge(lastCallTime);
      }
      if (maxing) {
        // Handle invocations in a tight loop.
        timerId = setTimeout(timerExpired, wait);
        return invokeFunc(lastCallTime);
      }
    }
    if (timerId === undefined) {
      timerId = setTimeout(timerExpired, wait);
    }
    return result;
  }
  debounced.cancel = cancel;
  debounced.flush = flush;
  return debounced;
}

/**
 * Creates a throttled function that only invokes `func` at most once per
 * every `wait` milliseconds. The throttled function comes with a `cancel`
 * method to cancel delayed `func` invocations and a `flush` method to
 * immediately invoke them. Provide `options` to indicate whether `func`
 * should be invoked on the leading and/or trailing edge of the `wait`
 * timeout. The `func` is invoked with the last arguments provided to the
 * throttled function. Subsequent calls to the throttled function return the
 * result of the last `func` invocation.
 *
 * **Note:** If `leading` and `trailing` options are `true`, `func` is
 * invoked on the trailing edge of the timeout only if the throttled function
 * is invoked more than once during the `wait` timeout.
 *
 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
 *
 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
 * for details over the differences between `_.throttle` and `_.debounce`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to throttle.
 * @param {number} [wait=0] The number of milliseconds to throttle invocations to.
 * @param {Object} [options={}] The options object.
 * @param {boolean} [options.leading=true]
 *  Specify invoking on the leading edge of the timeout.
 * @param {boolean} [options.trailing=true]
 *  Specify invoking on the trailing edge of the timeout.
 * @returns {Function} Returns the new throttled function.
 * @example
 *
 * // Avoid excessively updating the position while scrolling.
 * jQuery(window).on('scroll', _.throttle(updatePosition, 100));
 *
 * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
 * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });
 * jQuery(element).on('click', throttled);
 *
 * // Cancel the trailing throttled invocation.
 * jQuery(window).on('popstate', throttled.cancel);
 */
function throttle(func, wait, options) {
  var leading = true,
      trailing = true;

  if (typeof func != 'function') {
    throw new TypeError(FUNC_ERROR_TEXT);
  }
  if (isObject(options)) {
    leading = 'leading' in options ? !!options.leading : leading;
    trailing = 'trailing' in options ? !!options.trailing : trailing;
  }
  return debounce(func, wait, {
    'leading': leading,
    'maxWait': wait,
    'trailing': trailing
  });
}

/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */
function isObject(value) {
  var type = typeof value;
  return !!value && (type == 'object' || type == 'function');
}

/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */
function isObjectLike(value) {
  return !!value && typeof value == 'object';
}

/**
 * Checks if `value` is classified as a `Symbol` primitive or object.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
 * @example
 *
 * _.isSymbol(Symbol.iterator);
 * // => true
 *
 * _.isSymbol('abc');
 * // => false
 */
function isSymbol(value) {
  return typeof value == 'symbol' ||
    (isObjectLike(value) && objectToString.call(value) == symbolTag);
}

/**
 * Converts `value` to a number.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to process.
 * @returns {number} Returns the number.
 * @example
 *
 * _.toNumber(3.2);
 * // => 3.2
 *
 * _.toNumber(Number.MIN_VALUE);
 * // => 5e-324
 *
 * _.toNumber(Infinity);
 * // => Infinity
 *
 * _.toNumber('3.2');
 * // => 3.2
 */
function toNumber(value) {
  if (typeof value == 'number') {
    return value;
  }
  if (isSymbol(value)) {
    return NAN;
  }
  if (isObject(value)) {
    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
    value = isObject(other) ? (other + '') : other;
  }
  if (typeof value != 'string') {
    return value === 0 ? value : +value;
  }
  value = value.replace(reTrim, '');
  var isBinary = reIsBinary.test(value);
  return (isBinary || reIsOctal.test(value))
    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
    : (reIsBadHex.test(value) ? NAN : +value);
}

module.exports = throttle;

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(108)))/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Bar; });
/* harmony import */ var lodash_isNil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48);
/* harmony import */ var lodash_isNil__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_isNil__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash_isEqual__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172);
/* harmony import */ var lodash_isEqual__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isEqual__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(51);
/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isFunction__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var lodash_isArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(71);
/* harmony import */ var lodash_isArray__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash_isArray__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(25);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var react_smooth__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(145);
/* harmony import */ var _shape_Rectangle__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(288);
/* harmony import */ var _container_Layer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(60);
/* harmony import */ var _ErrorBar__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(317);
/* harmony import */ var _component_Cell__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(318);
/* harmony import */ var _component_LabelList__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(222);
/* harmony import */ var _util_DataUtils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(24);
/* harmony import */ var _util_ReactUtils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(68);
/* harmony import */ var _util_Global__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(137);
/* harmony import */ var _util_ChartUtils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(49);
/* harmony import */ var _util_types__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(42);
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }






function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _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; }

function _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; }

function _extends() { _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 _extends.apply(this, arguments); }

function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

/**
 * @fileOverview Render a group of bar
 */













var Bar = /*#__PURE__*/function (_PureComponent) {
  _inherits(Bar, _PureComponent);

  var _super = _createSuper(Bar);

  function Bar() {
    var _this;

    _classCallCheck(this, Bar);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _super.call.apply(_super, [this].concat(args));
    _this.state = {
      isAnimationFinished: false
    };
    _this.id = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_12__[/* uniqueId */ "k"])('recharts-bar-');

    _this.handleAnimationEnd = function () {
      var onAnimationEnd = _this.props.onAnimationEnd;

      _this.setState({
        isAnimationFinished: true
      });

      if (onAnimationEnd) {
        onAnimationEnd();
      }
    };

    _this.handleAnimationStart = function () {
      var onAnimationStart = _this.props.onAnimationStart;

      _this.setState({
        isAnimationFinished: false
      });

      if (onAnimationStart) {
        onAnimationStart();
      }
    };

    return _this;
  }

  _createClass(Bar, [{
    key: "renderRectanglesStatically",
    value: function renderRectanglesStatically(data) {
      var _this2 = this;

      var shape = this.props.shape;
      var baseProps = Object(_util_types__WEBPACK_IMPORTED_MODULE_16__[/* filterProps */ "c"])(this.props);
      return data && data.map(function (entry, i) {
        var props = _objectSpread(_objectSpread(_objectSpread({}, baseProps), entry), {}, {
          index: i
        });

        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(_container_Layer__WEBPACK_IMPORTED_MODULE_8__[/* Layer */ "a"], _extends({
          className: "recharts-bar-rectangle"
        }, Object(_util_types__WEBPACK_IMPORTED_MODULE_16__[/* adaptEventsOfChild */ "b"])(_this2.props, entry, i), {
          key: "rectangle-".concat(i) // eslint-disable-line react/no-array-index-key

        }), Bar.renderRectangle(shape, props));
      });
    }
  }, {
    key: "renderRectanglesWithAnimation",
    value: function renderRectanglesWithAnimation() {
      var _this3 = this;

      var _this$props = this.props,
          data = _this$props.data,
          layout = _this$props.layout,
          isAnimationActive = _this$props.isAnimationActive,
          animationBegin = _this$props.animationBegin,
          animationDuration = _this$props.animationDuration,
          animationEasing = _this$props.animationEasing,
          animationId = _this$props.animationId;
      var prevData = this.state.prevData;
      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(react_smooth__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"], {
        begin: animationBegin,
        duration: animationDuration,
        isActive: isAnimationActive,
        easing: animationEasing,
        from: {
          t: 0
        },
        to: {
          t: 1
        },
        key: "bar-".concat(animationId),
        onAnimationEnd: this.handleAnimationEnd,
        onAnimationStart: this.handleAnimationStart
      }, function (_ref) {
        var t = _ref.t;
        var stepData = data.map(function (entry, index) {
          var prev = prevData && prevData[index];

          if (prev) {
            var interpolatorX = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_12__[/* interpolateNumber */ "f"])(prev.x, entry.x);
            var interpolatorY = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_12__[/* interpolateNumber */ "f"])(prev.y, entry.y);
            var interpolatorWidth = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_12__[/* interpolateNumber */ "f"])(prev.width, entry.width);
            var interpolatorHeight = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_12__[/* interpolateNumber */ "f"])(prev.height, entry.height);
            return _objectSpread(_objectSpread({}, entry), {}, {
              x: interpolatorX(t),
              y: interpolatorY(t),
              width: interpolatorWidth(t),
              height: interpolatorHeight(t)
            });
          }

          if (layout === 'horizontal') {
            var _interpolatorHeight = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_12__[/* interpolateNumber */ "f"])(0, entry.height);

            var h = _interpolatorHeight(t);

            return _objectSpread(_objectSpread({}, entry), {}, {
              y: entry.y + entry.height - h,
              height: h
            });
          }

          var interpolator = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_12__[/* interpolateNumber */ "f"])(0, entry.width);
          var w = interpolator(t);
          return _objectSpread(_objectSpread({}, entry), {}, {
            width: w
          });
        });
        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(_container_Layer__WEBPACK_IMPORTED_MODULE_8__[/* Layer */ "a"], null, _this3.renderRectanglesStatically(stepData));
      });
    }
  }, {
    key: "renderRectangles",
    value: function renderRectangles() {
      var _this$props2 = this.props,
          data = _this$props2.data,
          isAnimationActive = _this$props2.isAnimationActive;
      var prevData = this.state.prevData;

      if (isAnimationActive && data && data.length && (!prevData || !lodash_isEqual__WEBPACK_IMPORTED_MODULE_1___default()(prevData, data))) {
        return this.renderRectanglesWithAnimation();
      }

      return this.renderRectanglesStatically(data);
    }
  }, {
    key: "renderBackground",
    value: function renderBackground() {
      var _this4 = this;

      var data = this.props.data;
      var backgroundProps = Object(_util_types__WEBPACK_IMPORTED_MODULE_16__[/* filterProps */ "c"])(this.props.background);
      return data.map(function (entry, i) {
        // eslint-disable-next-line @typescript-eslint/no-unused-vars
        var value = entry.value,
            background = entry.background,
            rest = _objectWithoutProperties(entry, ["value", "background"]);

        if (!background) {
          return null;
        }

        var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, rest), {}, {
          fill: '#eee'
        }, background), backgroundProps), Object(_util_types__WEBPACK_IMPORTED_MODULE_16__[/* adaptEventsOfChild */ "b"])(_this4.props, entry, i)), {}, {
          index: i,
          key: "background-bar-".concat(i),
          className: 'recharts-bar-background-rectangle'
        });

        return Bar.renderRectangle(_this4.props.background, props);
      });
    }
  }, {
    key: "renderErrorBar",
    value: function renderErrorBar() {
      if (this.props.isAnimationActive && !this.state.isAnimationFinished) {
        return null;
      }

      var _this$props3 = this.props,
          data = _this$props3.data,
          xAxis = _this$props3.xAxis,
          yAxis = _this$props3.yAxis,
          layout = _this$props3.layout,
          children = _this$props3.children;
      var errorBarItems = Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_13__[/* findAllByType */ "a"])(children, _ErrorBar__WEBPACK_IMPORTED_MODULE_9__[/* ErrorBar */ "a"].displayName);

      if (!errorBarItems) {
        return null;
      }

      var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;

      function dataPointFormatter(dataPoint, dataKey) {
        return {
          x: dataPoint.x,
          y: dataPoint.y,
          value: dataPoint.value,
          errorVal: Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_15__[/* getValueByDataKey */ "w"])(dataPoint, dataKey)
        };
      }

      return errorBarItems.map(function (item, i) {
        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default.a.cloneElement(item, {
          key: "error-bar-".concat(i),
          // eslint-disable-line react/no-array-index-key
          data: data,
          xAxis: xAxis,
          yAxis: yAxis,
          layout: layout,
          offset: offset,
          dataPointFormatter: dataPointFormatter
        });
      });
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props4 = this.props,
          hide = _this$props4.hide,
          data = _this$props4.data,
          className = _this$props4.className,
          xAxis = _this$props4.xAxis,
          yAxis = _this$props4.yAxis,
          left = _this$props4.left,
          top = _this$props4.top,
          width = _this$props4.width,
          height = _this$props4.height,
          isAnimationActive = _this$props4.isAnimationActive,
          background = _this$props4.background,
          id = _this$props4.id;

      if (hide || !data || !data.length) {
        return null;
      }

      var isAnimationFinished = this.state.isAnimationFinished;
      var layerClass = classnames__WEBPACK_IMPORTED_MODULE_5___default()('recharts-bar', className);
      var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;
      var clipPathId = lodash_isNil__WEBPACK_IMPORTED_MODULE_0___default()(id) ? this.id : id;
      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(_container_Layer__WEBPACK_IMPORTED_MODULE_8__[/* Layer */ "a"], {
        className: layerClass
      }, needClip ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement("defs", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement("clipPath", {
        id: "clipPath-".concat(clipPathId)
      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement("rect", {
        x: left,
        y: top,
        width: width,
        height: height
      }))) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(_container_Layer__WEBPACK_IMPORTED_MODULE_8__[/* Layer */ "a"], {
        className: "recharts-bar-rectangles",
        clipPath: needClip ? "url(#clipPath-".concat(clipPathId, ")") : null
      }, background ? this.renderBackground() : null, this.renderRectangles()), this.renderErrorBar(), (!isAnimationActive || isAnimationFinished) && _component_LabelList__WEBPACK_IMPORTED_MODULE_11__[/* LabelList */ "a"].renderCallByParent(this.props, data));
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.animationId !== prevState.prevAnimationId) {
        return {
          prevAnimationId: nextProps.animationId,
          curData: nextProps.data,
          prevData: prevState.curData
        };
      }

      if (nextProps.data !== prevState.curData) {
        return {
          curData: nextProps.data
        };
      }

      return null;
    }
  }, {
    key: "renderRectangle",
    value: function renderRectangle(option, props) {
      var rectangle;

      if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default.a.isValidElement(option)) {
        rectangle = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default.a.cloneElement(option, props);
      } else if (lodash_isFunction__WEBPACK_IMPORTED_MODULE_2___default()(option)) {
        rectangle = option(props);
      } else {
        rectangle = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(_shape_Rectangle__WEBPACK_IMPORTED_MODULE_7__[/* Rectangle */ "a"], props);
      }

      return rectangle;
    }
  }]);

  return Bar;
}(react__WEBPACK_IMPORTED_MODULE_4__["PureComponent"]);
Bar.displayName = 'Bar';
Bar.defaultProps = {
  xAxisId: 0,
  yAxisId: 0,
  legendType: 'rect',
  minPointSize: 0,
  hide: false,
  // data of bar
  data: [],
  layout: 'vertical',
  isAnimationActive: !_util_Global__WEBPACK_IMPORTED_MODULE_14__[/* Global */ "a"].isSsr,
  animationBegin: 0,
  animationDuration: 400,
  animationEasing: 'ease'
};

Bar.getComposedData = function (_ref2) {
  var props = _ref2.props,
      item = _ref2.item,
      barPosition = _ref2.barPosition,
      bandSize = _ref2.bandSize,
      xAxis = _ref2.xAxis,
      yAxis = _ref2.yAxis,
      xAxisTicks = _ref2.xAxisTicks,
      yAxisTicks = _ref2.yAxisTicks,
      stackedData = _ref2.stackedData,
      dataStartIndex = _ref2.dataStartIndex,
      displayedData = _ref2.displayedData,
      offset = _ref2.offset;
  var pos = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_15__[/* findPositionOfBar */ "e"])(barPosition, item);

  if (!pos) {
    return null;
  }

  var layout = props.layout;
  var _item$props = item.props,
      dataKey = _item$props.dataKey,
      children = _item$props.children,
      minPointSize = _item$props.minPointSize;
  var numericAxis = layout === 'horizontal' ? yAxis : xAxis;
  var stackedDomain = stackedData ? numericAxis.scale.domain() : null;
  var baseValue = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_15__[/* getBaseValueOfBar */ "i"])({
    numericAxis: numericAxis
  });
  var cells = Object(_util_ReactUtils__WEBPACK_IMPORTED_MODULE_13__[/* findAllByType */ "a"])(children, _component_Cell__WEBPACK_IMPORTED_MODULE_10__[/* Cell */ "a"].displayName);
  var rects = displayedData.map(function (entry, index) {
    var value, x, y, width, height, background;

    if (stackedData) {
      value = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_15__[/* truncateByDomain */ "C"])(stackedData[dataStartIndex + index], stackedDomain);
    } else {
      value = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_15__[/* getValueByDataKey */ "w"])(entry, dataKey);

      if (!lodash_isArray__WEBPACK_IMPORTED_MODULE_3___default()(value)) {
        value = [baseValue, value];
      }
    }

    if (layout === 'horizontal') {
      x = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_15__[/* getCateCoordinateOfBar */ "j"])({
        axis: xAxis,
        ticks: xAxisTicks,
        bandSize: bandSize,
        offset: pos.offset,
        entry: entry,
        index: index
      });
      y = yAxis.scale(value[1]);
      width = pos.size;
      height = yAxis.scale(value[0]) - yAxis.scale(value[1]);
      background = {
        x: x,
        y: yAxis.y,
        width: width,
        height: yAxis.height
      };

      if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {
        var delta = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_12__[/* mathSign */ "j"])(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));
        y -= delta;
        height += delta;
      }
    } else {
      x = xAxis.scale(value[0]);
      y = Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_15__[/* getCateCoordinateOfBar */ "j"])({
        axis: yAxis,
        ticks: yAxisTicks,
        bandSize: bandSize,
        offset: pos.offset,
        entry: entry,
        index: index
      });
      width = xAxis.scale(value[1]) - xAxis.scale(value[0]);
      height = pos.size;
      background = {
        x: xAxis.x,
        y: y,
        width: xAxis.width,
        height: height
      };

      if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {
        var _delta = Object(_util_DataUtils__WEBPACK_IMPORTED_MODULE_12__[/* mathSign */ "j"])(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));

        width += _delta;
      }
    }

    return _objectSpread(_objectSpread(_objectSpread({}, entry), {}, {
      x: x,
      y: y,
      width: width,
      height: height,
      value: stackedData ? value : value[1],
      payload: entry,
      background: background
    }, cells && cells[index] && cells[index].props), {}, {
      tooltipPayload: [Object(_util_ChartUtils__WEBPACK_IMPORTED_MODULE_15__[/* getTooltipItem */ "v"])(item, entry)],
      tooltipPosition: {
        x: x + width / 2,
        y: y + height / 2
      }
    });
  });
  return _objectSpread({
    data: rects,
    layout: layout
  }, offset);
};// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(991);
if(typeof content === 'string') content = [[module.i, content, '']];
// Prepare cssTransformation
var transform;

var options = {"hmr":false}
options.transform = transform
// add the styles to the DOM
var update = __webpack_require__(85)(content, options);
if(content.locals) module.exports = content.locals;
exports = module.exports = __webpack_require__(84)(true);
// imports


// module
exports.push([module.i, ".no-padding-column,.no-padding-column .ant-table-cell{padding:5px!important}.custom-ebay-table .ant-table-thead>tr>th{font-size:14px!important}.total-row td{font-weight:700;border-top:2px solid #000}", "", {"version":3,"sources":["/home/vsts/work/1/s/src/js/components/SummaryTable/customTableStyle.css"],"names":[],"mappings":"AAGA,sDACE,qBAAwB,CAAE,AAE5B,0CACE,wBAA2B,CAAE,AAE/B,cACE,gBAAkB,AAClB,yBAA2B,CAAE","file":"customTableStyle.css","sourcesContent":[".no-padding-column {\n  padding: 5px !important; }\n\n.no-padding-column .ant-table-cell {\n  padding: 5px !important; }\n\n.custom-ebay-table .ant-table-thead > tr > th {\n  font-size: 14px !important; }\n\n.total-row td {\n  font-weight: bold;\n  border-top: 2px solid #000; }\n"],"sourceRoot":""}]);

// exports
module.exports = __webpack_require__(999);!function(e,t){ true?module.exports=t(__webpack_require__(2),__webpack_require__(40)):undefined}(window,function(e,t){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=260)}([function(e,t,n){e.exports=n(73)()},function(t,n){t.exports=e},function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t){function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}},function(e,t,n){var r=n(42),o=n(12);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?o(e):t}},function(e,t){function n(t){return e.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},n(t)}e.exports=n},function(e,t,n){var r=n(72);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},function(e,t,n){var r;
/*!
  Copyright (c) 2017 Jed Watson.
  Licensed under the MIT License (MIT), see
  http://jedwatson.github.io/classnames
*/
/*!
  Copyright (c) 2017 Jed Watson.
  Licensed under the MIT License (MIT), see
  http://jedwatson.github.io/classnames
*/
!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var l=typeof r;if("string"===l||"number"===l)e.push(r);else if(Array.isArray(r)&&r.length){var a=o.apply(null,r);a&&e.push(a)}else if("object"===l)for(var i in r)n.call(r,i)&&r[i]&&e.push(i)}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(r=function(){return o}.apply(t,[]))||(e.exports=r)}()},,function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},,function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},,,function(e,t){function n(){return e.exports=n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},n.apply(this,arguments)}e.exports=n},function(e,n){e.exports=t},function(e,t,n){"use strict";
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,a,i=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),u=1;u<arguments.length;u++){for(var d in n=Object(arguments[u]))o.call(n,d)&&(i[d]=n[d]);if(r){a=r(n);for(var s=0;s<a.length;s++)l.call(n,a[s])&&(i[a[s]]=n[a[s]])}}return i}},,,function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.last=t.isImmutableMap=t.getMixedTypeValueRetriever=t.isImmutableCollection=t.isEmptyObject=t.isFunction=t.isEmptyArray=t.isColumnsImmutable=void 0;var o=r(n(42)),l=function(){return"undefined"!=typeof Immutable};t.isColumnsImmutable=function(e){return l()&&e instanceof Immutable.List};t.isEmptyArray=function(e){return Array.isArray(e)&&0===e.length};t.isFunction=function(e){return e&&"[object Function]"==={}.toString.call(e)};t.isEmptyObject=function(e){return 0===Object.keys(e).length&&e.constructor===Object};t.isImmutableCollection=function(e){return l()&&Immutable.Iterable.isIterable(e)};t.getMixedTypeValueRetriever=function(e){var t={};return t.getValue=e?function(e,t){return e.get(t)}:function(e,t){return e[t]},t};var a=l()?Immutable.Map.isMap:function(){return!1};t.isImmutableMap=a;t.last=function(e){if(null==e)throw new Error("arrayOrCollection is null");if(l()&&Immutable.List.isList(e))return e.last();if(Array.isArray(e))return e[e.length-1];throw new Error("Cant get last of: "+(0,o.default)(e))}},function(e,t){e.exports=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}},function(e,t){e.exports=function(){var e=[];return e.toString=function(){for(var e=[],t=0;t<this.length;t++){var n=this[t];n[2]?e.push("@media "+n[2]+"{"+n[1]+"}"):e.push(n[1])}return e.join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var r={},o=0;o<this.length;o++){var l=this[o][0];"number"==typeof l&&(r[l]=!0)}for(o=0;o<t.length;o++){var a=t[o];"number"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),e.push(a))}},e}},function(e,t){var n={},r=function(e){var t;return function(){return void 0===t&&(t=e.apply(this,arguments)),t}},o=r(function(){return/msie [6-9]\b/.test(self.navigator.userAgent.toLowerCase())}),l=r(function(){return document.head||document.getElementsByTagName("head")[0]}),a=null,i=0,u=[];function d(e,t){for(var r=0;r<e.length;r++){var o=e[r],l=n[o.id];if(l){l.refs++;for(var a=0;a<l.parts.length;a++)l.parts[a](o.parts[a]);for(;a<o.parts.length;a++)l.parts.push(g(o.parts[a],t))}else{var i=[];for(a=0;a<o.parts.length;a++)i.push(g(o.parts[a],t));n[o.id]={id:o.id,refs:1,parts:i}}}}function s(e){for(var t=[],n={},r=0;r<e.length;r++){var o=e[r],l=o[0],a={css:o[1],media:o[2],sourceMap:o[3]};n[l]?n[l].parts.push(a):t.push(n[l]={id:l,parts:[a]})}return t}function c(e,t){var n=l(),r=u[u.length-1];if("top"===e.insertAt)r?r.nextSibling?n.insertBefore(t,r.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),u.push(t);else{if("bottom"!==e.insertAt)throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");n.appendChild(t)}}function f(e){e.parentNode.removeChild(e);var t=u.indexOf(e);t>=0&&u.splice(t,1)}function p(e){var t=document.createElement("style");return t.type="text/css",c(e,t),t}function g(e,t){var n,r,o;if(t.singleton){var l=i++;n=a||(a=p(t)),r=w.bind(null,n,l,!1),o=w.bind(null,n,l,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return t.rel="stylesheet",c(e,t),t}(t),r=function(e,t){var n=t.css,r=t.sourceMap;r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var o=new Blob([n],{type:"text/css"}),l=e.href;e.href=URL.createObjectURL(o),l&&URL.revokeObjectURL(l)}.bind(null,n),o=function(){f(n),n.href&&URL.revokeObjectURL(n.href)}):(n=p(t),r=function(e,t){var n=t.css,r=t.media;r&&e.setAttribute("media",r);if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){f(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else o()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");void 0===(t=t||{}).singleton&&(t.singleton=o()),void 0===t.insertAt&&(t.insertAt="bottom");var r=s(e);return d(r,t),function(e){for(var o=[],l=0;l<r.length;l++){var a=r[l];(i=n[a.id]).refs--,o.push(i)}e&&d(s(e),t);for(l=0;l<o.length;l++){var i;if(0===(i=o[l]).refs){for(var u=0;u<i.parts.length;u++)i.parts[u]();delete n[i.id]}}}};var h,m=(h=[],function(e,t){return h[e]=t,h.filter(Boolean).join("\n")});function w(e,t,n,r){var o=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=m(t,o);else{var l=document.createTextNode(o),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(l,a[t]):e.appendChild(l)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getColumn=function(e,t){if(Array.isArray(e))return e[t];if("undefined"!=typeof Immutable)return e.get(t)},t.spliceColumn=function(e,t,n){Array.isArray(e.columns)?e.columns.splice(t,1,n):"undefined"!=typeof Immutable&&(e.columns=e.columns.splice(t,1,n));return e},t.getSize=function(e){if(Array.isArray(e))return e.length;if("undefined"!=typeof Immutable)return e.size},t.canEdit=function(e,t,n){if(!e)return!1;if(null!=e.editable&&"function"==typeof e.editable)return!0===n&&e.editable(t);return!(!0!==n||!e.editor&&!e.editable)},t.getValue=function(e,t){var n;n=e.toJSON&&e.get?e.get(t):e[t];return n},t.isFrozen=function(e){return!0===e.locked||!0===e.frozen}},,function(e,t,n){"use strict";var r=n(2),o=n(21);Object.defineProperty(t,"__esModule",{value:!0}),t.HeaderRowType=t.EventTypes=t.CellNavigationMode=t.DragItemTypes=t.CellExpand=t.UpdateActions=void 0;var l=o(n(104));t.CellNavigationMode=l;var a=o(n(105));t.EventTypes=a;var i=o(n(106));t.HeaderRowType=i;var u=(0,r(n(107)).default)({CELL_UPDATE:null,COLUMN_FILL:null,COPY_PASTE:null,CELL_DRAG:null});t.UpdateActions=u;t.DragItemTypes={Column:"column"};var d={DOWN_TRIANGLE:String.fromCharCode(9660),RIGHT_TRIANGLE:String.fromCharCode(9654)};t.CellExpand=d},,,,,,,,function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(0)),l=o.default.shape({name:o.default.node.isRequired,key:o.default.string.isRequired,width:o.default.number.isRequired,filterable:o.default.bool});t.default=l},,,,,,function(e,t,n){var r=n(10);e.exports=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),o.forEach(function(t){r(e,t,n[t])})}return e}},,function(e,t){function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(t){return"function"==typeof Symbol&&"symbol"===n(Symbol.iterator)?e.exports=r=function(e){return n(e)}:e.exports=r=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":n(e)},r(t)}e.exports=r},,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e,t){return t.reduce(function(t,n){return n in e&&(t[n]=e[n]),t},{})};t.default=r},function(e,t,n){var r=n(271);"string"==typeof r&&(r=[[e.i,r,""]]);n(23)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return t.columns!==e.columns||e.row!==t.row||t.colOverscanStartIdx!==e.colOverscanStartIdx||t.colOverscanEndIdx!==e.colOverscanEndIdx||t.colVisibleStartIdx!==e.colVisibleStartIdx||t.colVisibleEndIdx!==e.colVisibleEndIdx||t.isSelected!==e.isSelected||t.isScrolling!==e.isScrolling||e.height!==t.height||t.isOver!==e.isOver||t.expandedRows!==e.expandedRows||t.canDrop!==e.canDrop||!0===t.forceUpdate||t.extraClasses!==e.extraClasses}},function(e,t,n){var r=n(111);"string"==typeof r&&(r=[[e.i,r,""]]);n(23)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){"use strict";var r=n(2),o=r(n(3)),l=r(n(4)),a=r(n(5)),i=r(n(6)),u=r(n(7)),d=r(n(34)),s=r(n(0)),c=n(1),f=n(16),p=function(e){function t(){return(0,o.default)(this,t),(0,a.default)(this,(0,i.default)(t).apply(this,arguments))}return(0,u.default)(t,e),(0,l.default)(t,[{key:"getStyle",value:function(){return{width:"100%"}}},{key:"getValue",value:function(){var e={};return e[this.props.column.key]=this.getInputNode().value,e}},{key:"getInputNode",value:function(){var e=f.findDOMNode(this);return"INPUT"===e.tagName?e:e.querySelector("input:not([type=hidden])")}},{key:"inheritContainerStyles",value:function(){return!0}}]),t}(c.Component);p.propTypes={onKeyDown:s.default.func.isRequired,value:s.default.any.isRequired,onBlur:s.default.func.isRequired,column:s.default.shape(d.default).isRequired,commit:s.default.func.isRequired},e.exports=p},function(e,t,n){"use strict";e.exports={CheckboxEditor:n(79),EditorBase:n(62),SimpleTextEditor:n(77)}},,,,,,,,,function(e,t){function n(t,r){return e.exports=n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(t,r)}e.exports=n},function(e,t,n){"use strict";var r=n(74);function o(){}e.exports=function(){function e(e,t,n,o,l,a){if(a!==r){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=o,n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(0)),l={rowKey:o.default.string.isRequired,onCellClick:o.default.func.isRequired,onCellMouseDown:o.default.func.isRequired,onCellMouseEnter:o.default.func.isRequired,onCellContextMenu:o.default.func.isRequired,onCellDoubleClick:o.default.func.isRequired,onDragEnter:o.default.func.isRequired,onRowExpandToggle:o.default.func.isRequired,onDeleteSubRow:o.default.func,onAddSubRow:o.default.func,onColumnEvent:o.default.func.isRequired,onCellExpand:o.default.func.isRequired,getCellActions:o.default.func};t.default=l},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(15)),l=r(n(108)),a=r(n(1)),i=r(n(0)),u=function(e){var t=e.width,n=e.height,r=e.top,i=e.left,u=e.zIndex,d=e.children,s=e.innerRef,c=(0,l.default)(e,["width","height","top","left","zIndex","children","innerRef"]);return a.default.createElement("div",(0,o.default)({style:function(e){var t=e.left,n=e.top,r=e.width;return{height:e.height,width:r,zIndex:e.zIndex,position:"absolute",pointerEvents:"none",transform:"translate(".concat(t,"px, ").concat(n,"px)"),outline:0}}({left:i,top:r,width:t,height:n,zIndex:u}),"data-test":"cell-mask",ref:s},c),d)};u.propTypes={width:i.default.number.isRequired,height:i.default.number.isRequired,top:i.default.number.isRequired,left:i.default.number.isRequired,zIndex:i.default.number.isRequired,children:i.default.node,innerRef:i.default.func};var d=u;t.default=d},function(e,t,n){"use strict";var r=n(2),o=r(n(3)),l=r(n(4)),a=r(n(5)),i=r(n(6)),u=r(n(7)),d=r(n(12)),s=r(n(10)),c=n(1),f=function(e){function t(){var e,n;(0,o.default)(this,t);for(var r=arguments.length,l=new Array(r),u=0;u<r;u++)l[u]=arguments[u];return n=(0,a.default)(this,(e=(0,i.default)(t)).call.apply(e,[this].concat(l))),(0,s.default)((0,d.default)((0,d.default)(n)),"setInputRef",function(e){n.input=e}),n}return(0,u.default)(t,e),(0,l.default)(t,[{key:"render",value:function(){return c.createElement("input",{ref:this.setInputRef,type:"text",onBlur:this.props.onBlur,className:"form-control",defaultValue:this.props.value})}}]),t}(n(62));e.exports=f},function(e,t,n){var r=n(291);"string"==typeof r&&(r=[[e.i,r,""]]);n(23)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){"use strict";var r=n(2),o=r(n(3)),l=r(n(4)),a=r(n(5)),i=r(n(6)),u=r(n(7)),d=r(n(12)),s=r(n(10)),c=r(n(0)),f=n(1);n(80);var p=function(e){function t(){var e,n;(0,o.default)(this,t);for(var r=arguments.length,l=new Array(r),u=0;u<r;u++)l[u]=arguments[u];return n=(0,a.default)(this,(e=(0,i.default)(t)).call.apply(e,[this].concat(l))),(0,s.default)((0,d.default)((0,d.default)(n)),"handleChange",function(e){n.props.column.onCellChange(n.props.rowIdx,n.props.column.key,n.props.dependentValues,e)}),n}return(0,u.default)(t,e),(0,l.default)(t,[{key:"render",value:function(){var e=null!=this.props.value&&this.props.value,t="checkbox"+this.props.rowIdx;return f.createElement("div",{className:"react-grid-checkbox-container checkbox-align",onClick:this.handleChange},f.createElement("input",{className:"react-grid-checkbox",type:"checkbox",name:t,checked:e}),f.createElement("label",{htmlFor:t,className:"react-grid-checkbox-label"}))}}]),t}(f.Component);(0,s.default)(p,"propTypes",{value:c.default.bool,rowIdx:c.default.number,column:c.default.shape({key:c.default.string,onCellChange:c.default.func}),dependentValues:c.default.object}),e.exports=p},function(e,t,n){var r=n(114);"string"==typeof r&&(r=[[e.i,r,""]]);n(23)(r,{});r.locals&&(e.exports=r.locals)},,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){if(void 0===r){var e=document.createElement("div");e.style.width="50px",e.style.height="50px",e.style.position="absolute",e.style.top="-200px",e.style.left="-200px";var t=document.createElement("div");t.style.height="100px",t.style.width="100%",e.appendChild(t),document.body.appendChild(e);var n=e.clientWidth;e.style.overflowY="scroll";var o=t.clientWidth;document.body.removeChild(e),r=n-o}return r}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LOOP_OVER_ROW=t.CHANGE_ROW=t.NONE=void 0;t.NONE="none";t.CHANGE_ROW="changeRow";t.LOOP_OVER_ROW="loopOverRow"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SCROLL_TO_COLUMN=t.DRAG_ENTER=t.SELECT_END=t.SELECT_UPDATE=t.SELECT_START=t.SELECT_CELL=void 0;t.SELECT_CELL="SELECT_CELL";t.SELECT_START="SELECT_START";t.SELECT_UPDATE="SELECT_UPDATE";t.SELECT_END="SELECT_END";t.DRAG_ENTER="DRAG_ENTER";t.SCROLL_TO_COLUMN="SCROLL_TO_COLUMN"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FILTER=t.HEADER=void 0;t.HEADER="header";t.FILTER="filter"},function(e,t,n){"use strict";e.exports=function(e){var t,n={};if(!(e instanceof Object)||Array.isArray(e))throw new Error("keyMirror(...): Argument must be an object.");for(t in e)e.hasOwnProperty(t)&&(n[t]=t);return n}},function(e,t,n){var r=n(276);e.exports=function(e,t){if(null==e)return{};var n,o,l=r(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}},function(e,t,n){var r=n(110);"string"==typeof r&&(r=[[e.i,r,""]]);n(23)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(22)()).push([e.i,'.react-grid-Cell {\r\n  background-color: #ffffff;\r\n  padding-left: 8px;\r\n  padding-right: 8px;\r\n  border-right: 1px solid #eee;\r\n  border-bottom: 1px solid #dddddd;\r\n}\r\n\r\n.rdg-selected {\r\n  border: 2px solid #66afe9;\r\n}\r\n\r\n.rdg-selected-range {\r\n  border: 1px solid #66afe9;\r\n  background-color: #66afe930;\r\n}\r\n\r\n.moving-element {\r\n  will-change: transform;\r\n}\r\n.react-grid-Cell--frozen {\r\n  /* Should have a higher value than 1 to show in front of cell masks */\r\n  z-index: 2;\r\n}\r\n.rdg-last--frozen {\r\n  border-right: 1px solid #dddddd;\r\n  box-shadow: 2px 0 5px -2px rgba(136, 136, 136, .3) !important;\r\n}\r\n\r\n.react-contextmenu--visible {\r\n  z-index: 1000;\r\n}\r\n\r\n.react-grid-Cell:not(.editing) .react-grid-Cell__value {\r\n  white-space: nowrap;\r\n  text-overflow: ellipsis;\r\n  overflow: hidden;\r\n  height: inherit;\r\n}\r\n\r\n.react-grid-Cell.readonly {\r\n  background-color : black;\r\n}\r\n\r\n\r\n.react-grid-Cell:hover {\r\n  background: #eee;\r\n}\r\n\r\n.react-grid-cell .form-control-feedback {\r\n  color: #a94442;\r\n  position: absolute;\r\n  top: 0px;\r\n  right: 10px;\r\n  z-index: 1000000;\r\n  display: block;\r\n  width: 34px;\r\n  height: 34px;\r\n}\r\n\r\n.react-grid-Row.row-selected .react-grid-Cell{\r\n background-color: #DBECFA;\r\n}\r\n\r\n.react-grid-Cell.editing {\r\n  padding: 0;\r\n  overflow: visible !important;\r\n}\r\n\r\n.react-grid-Cell.editing .has-error input {\r\n  border: 2px red solid !important;\r\n  border-radius: 2px !important;\r\n}\r\n\r\n.react-grid-Cell__value ul {\r\n  margin-top: 0;\r\n  margin-bottom: 0;\r\n  display: inline-block;\r\n}\r\n\r\n.react-grid-Cell__value .btn-sm {\r\n  padding: 0;\r\n}\r\n\r\n.cell-tooltip {\r\n    position: relative;\r\n    display: inline-block;\r\n}\r\n\r\n.cell-tooltip:hover {\r\n  z-index: 101;\r\n}\r\n\r\n.cell-tooltip .cell-tooltip-text {\r\n    visibility: hidden;\r\n    width: 150px;\r\n    background-color: black;\r\n    color: #fff;\r\n    text-align: center;\r\n    border-radius: 6px;\r\n    padding: 5px 0;\r\n    position: absolute;\r\n    z-index: 1;\r\n    bottom: -150%;\r\n    left: 50%;\r\n    margin-left: -60px;\r\n    /* Fade in tooltip - takes 1 second to go from 0% to 100% opacity */\r\n    opacity: 1s;\r\n}\r\n\r\n.cell-tooltip:hover .cell-tooltip-text {\r\n    visibility: visible;\r\n    opacity: 0.8;\r\n}\r\n\r\n.cell-tooltip .cell-tooltip-text::after {\r\n    content: " ";\r\n    position: absolute;\r\n    bottom: 100%;  /* At the top of the tooltip */\r\n    left: 50%;\r\n    margin-left: -5px;\r\n    border-width: 5px;\r\n    border-style: solid;\r\n    border-color: transparent transparent black transparent;\r\n}\r\n\r\n.react-grid-Canvas.opaque .react-grid-Cell.cell-tooltip:hover .cell-tooltip-text {\r\n    visibility: hidden;\r\n}\r\n\r\n.rdg-cell-expand {\r\n    float: right;\r\n    display: table;\r\n    height: 100%;\r\n}\r\n\r\n.rdg-cell-expand > span {\r\n  display: table-cell;\r\n  vertical-align: middle;\r\n  cursor: pointer;\r\n}\r\n\r\n.rdg-child-row-action-cross:before, rdg-child-row-action-cross:after, .rdg-child-row-action-cross-last:before, rdg-child-row-action-cross-last:after {\r\n  content: "";\r\n  position: absolute;\r\n  background: grey;\r\n  height: 50%;\r\n}\r\n\r\n.rdg-child-row-action-cross:before {\r\n  left: 21px;\r\n  width: 1px;\r\n  height: 100%;\r\n}\r\n\r\n.rdg-child-row-action-cross-last:before {\r\n  left: 21px;\r\n  width: 1px;\r\n}\r\n\r\n.rdg-child-row-action-cross:after, .rdg-child-row-action-cross-last:after {\r\n  top: 50%;\r\n  left:20px;\r\n  height: 1px;\r\n  width: 15px;\r\n  content: "";\r\n  position: absolute;\r\n  background: grey;\r\n}\r\n\r\n.rdg-child-row-action-cross:hover {\r\n    background: red;\r\n}\r\n.rdg-child-row-btn {\r\n   position:absolute;\r\n   cursor:pointer;\r\n   border:1px solid grey;\r\n   border-radius:14px;\r\n   z-index: 3;\r\n   background: white;\r\n}\r\n\r\n.rdg-child-row-btn div {\r\n  font-size: 12px;\r\n  text-align:center;\r\n  line-height:19px;\r\n  color: grey;\r\n  height:20px;\r\n  width:20px;\r\n  position:absolute;\r\n  top:60%;\r\n  left:53%;\r\n  margin-top:-10px;\r\n  margin-left:-10px;\r\n\r\n}\r\n\r\n.rdg-empty-child-row:hover .glyphicon-plus-sign {\r\n  color: green;\r\n}\r\n\r\n.rdg-empty-child-row:hover a {\r\n  color: green;\r\n}\r\n\r\n.rdg-child-row-btn .glyphicon-remove-sign:hover {\r\n  color: red;\r\n}\r\n\r\n.last-column .cell-tooltip-text{\r\n  right: 100%;\r\n  left: 0% !important;\r\n}\r\n\r\n.rdg-cell-action {\r\n  float: right;\r\n  height: 100%;\r\n}\r\n\r\n.rdg-cell-action-last {\r\n  margin-right: -8px;\r\n}\r\n\r\n.rdg-cell-action-button {\r\n  width: 35px;\r\n  height: 100%;\r\n  text-align: center;\r\n  position: relative;\r\n  display: table;\r\n  color: #4a9de2;\r\n}\r\n\r\n.rdg-cell-action-button > span {\r\n  display: table-cell;\r\n  vertical-align: middle;\r\n}\r\n\r\n.rdg-cell-action-button:hover, .rdg-cell-action-button-toggled {\r\n  color: #447bbb;\r\n}\r\n\r\n.rdg-cell-action-menu {\r\n  position: absolute;\r\n  top: 100%;\r\n  z-index: 1000;\r\n  float: left;\r\n  min-width: 160px;\r\n  padding: 5px 0;\r\n  text-align: left;\r\n  list-style: none;\r\n  background-color: #fff;\r\n  -webkit-background-clip: padding-box;\r\n  background-clip: padding-box;\r\n  border: 1px solid #ccc;\r\n  box-shadow: 0 0 3px 0 #ccc;\r\n}\r\n\r\n.rdg-cell-action-menu > span {\r\n  display: block;\r\n  padding: 3px 10px;\r\n  clear: both;\r\n  font-weight: 400;\r\n  line-height: 1.42857143;\r\n  color: #333;\r\n  white-space: nowrap;\r\n}\r\n\r\n.rdg-cell-action-menu > span:hover {\r\n  color: #262626;\r\n  text-decoration: none;\r\n  background-color: #f5f5f5;\r\n}\r\n',""])},function(e,t,n){(e.exports=n(22)()).push([e.i,'.react-grid-Row:hover .react-grid-Cell,\r\n.react-grid-Row.row-context-menu .react-grid-Cell {\r\n  background-color: #f9f9f9;\r\n}\r\n\r\n.react-grid-Row:hover .rdg-row-index {\r\n  display: none;\r\n}\r\n\r\n.react-grid-Row:hover .rdg-actions-checkbox {\r\n  display: block;\r\n}\r\n\r\n.react-grid-Row:hover .rdg-drag-row-handle {\r\n  cursor: move; /* fallback if grab cursor is unsupported */\r\n  cursor: grab;\r\n  cursor: -moz-grab;\r\n  cursor: -webkit-grab;\r\n  width: 12px;\r\n  height: 30px;\r\n  margin-left: 0px;\r\n  background-image: url("data:image/svg+xml;base64, PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjlweCIgaGVpZ2h0PSIyOXB4IiB2aWV3Qm94PSIwIDAgOSAyOSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgIDwhLS0gR2VuZXJhdG9yOiBTa2V0Y2ggMzkgKDMxNjY3KSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5kcmFnIGljb248L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz48L2RlZnM+CiAgICA8ZyBpZD0iQWN0dWFsaXNhdGlvbi12MiIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IkRlc2t0b3AiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNS4wMDAwMDAsIC0yNjIuMDAwMDAwKSIgZmlsbD0iI0Q4RDhEOCI+CiAgICAgICAgICAgIDxnIGlkPSJJbnRlcmFjdGlvbnMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE1LjAwMDAwMCwgMjU4LjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPGcgaWQ9IlJvdy1Db250cm9scyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDIuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9ImRyYWctaWNvbiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDIuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwtMzAiIGN4PSIyIiBjeT0iMiIgcj0iMiI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwtMzAiIGN4PSI3IiBjeT0iMiIgcj0iMiI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwtMzAiIGN4PSIyIiBjeT0iNyIgcj0iMiI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwtMzAiIGN4PSI3IiBjeT0iNyIgcj0iMiI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwtMzAiIGN4PSIyIiBjeT0iMTIiIHI9IjIiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGlkPSJPdmFsLTMwIiBjeD0iNyIgY3k9IjEyIiByPSIyIj48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBpZD0iT3ZhbC0zMCIgY3g9IjIiIGN5PSIxNyIgcj0iMiI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwtMzAiIGN4PSI3IiBjeT0iMTciIHI9IjIiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGlkPSJPdmFsLTMwIiBjeD0iMiIgY3k9IjIyIiByPSIyIj48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBpZD0iT3ZhbC0zMCIgY3g9IjciIGN5PSIyMiIgcj0iMiI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwtMzAiIGN4PSIyIiBjeT0iMjciIHI9IjIiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGlkPSJPdmFsLTMwIiBjeD0iNyIgY3k9IjI3IiByPSIyIj48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==");\r\n  background-repeat: no-repeat;\r\n}\r\n\r\n.react-grid-Row.row-selected{\r\n background-color: #DBECFA;\r\n}\r\n\r\n.react-grid-Row .row-selected{\r\n background-color: #DBECFA;\r\n}\r\n\r\n.react-grid-row-group .row-expand-icon:hover {\r\n  color: #777777;\r\n}\r\n\r\n.react-grid-row-index {\r\n    padding: 0 18px;\r\n}\r\n\r\n.rdg-row-index {\r\n  display: block;\r\n  text-align: center;\r\n}\r\n\r\n.rdg-row-actions-cell {\r\n  padding: 0px;\r\n}\r\n\r\n.rdg-actions-checkbox {\r\n  display: none;\r\n  text-align: center;\r\n}\r\n\r\n.rdg-actions-checkbox.selected {\r\n  display: block;\r\n}\r\n\r\n.rdg-dragging {\r\n    /*cursor: url(http://www.google.com/intl/en_ALL/mapfiles/closedhand.cur);*/\r\n    cursor: -webkit-grabbing;\r\n    cursor: -moz-grabbing;\r\n    cursor: grabbing;\r\n}\r\n\r\n.rdg-dragged-row {\r\n  border-bottom: 1px solid black\r\n}\r\n\r\n.rdg-scrolling {\r\n  pointer-events: none;\r\n}\r\n',""])},function(e,t,n){"use strict";var r={get:function(e,t){return"function"==typeof e.get?e.get(t):e[t]},isRowSelected:function(e,t,n,r,o){return t&&"[object Array]"===Object.prototype.toString.call(t)?t.indexOf(o)>-1:e&&e.rowKey&&e.values&&"[object Array]"===Object.prototype.toString.call(e.values)?e.values.indexOf(r[e.rowKey])>-1:!(!n||!r||"string"!=typeof n)&&r[n]}};e.exports=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EDITOR_CONTAINER=t.FROZEN_CELL_MASK=t.CELL_MASK=void 0;t.CELL_MASK=1;t.FROZEN_CELL_MASK=3;t.EDITOR_CONTAINER=2},function(e,t,n){(e.exports=n(22)()).push([e.i,".react-grid-checkbox, .radio-custom {\r\n    opacity: 0;\r\n    position: absolute;\r\n}\r\n\r\n.react-grid-checkbox, .react-grid-checkbox-label, .radio-custom, .radio-custom-label {\r\n    display: inline-block;\r\n    vertical-align: middle;\r\n    cursor: pointer;\r\n}\r\n\r\n.react-grid-checkbox-label, .radio-custom-label {\r\n    position: relative;\r\n}\r\n\r\n.react-grid-checkbox + .react-grid-checkbox-label:before, .radio-custom + .radio-custom-label:before {\r\n    content: '';\r\n    background: #fff;\r\n    border: 2px solid #ddd;\r\n    display: inline-block;\r\n    vertical-align: middle;\r\n    width: 20px;\r\n    height: 20px;\r\n    text-align: center;\r\n}\r\n\r\n.react-grid-checkbox:checked + .react-grid-checkbox-label:before {\r\n    background: #005295;\r\n    box-shadow: inset 0px 0px 0px 4px #fff;\r\n}\r\n\r\n.react-grid-checkbox:focus + .react-grid-checkbox-label, .radio-custom:focus + .radio-custom-label {\r\n  outline: 1px solid #ddd; /* focus style */\r\n}\r\n\r\n.react-grid-HeaderCell input[type='checkbox'] {\r\n  z-index: 99999;\r\n}\r\n.react-grid-HeaderCell > .react-grid-checkbox-container {\r\n    padding: 0px 10px;\r\n    height: 100%\r\n}\r\n\r\n\r\n.react-grid-HeaderCell > .react-grid-checkbox-container > .react-grid-checkbox-label {\r\n   margin : 0;\r\n   position: relative;\r\n   top: 50%;\r\n   transform: translateY(-50%);\r\n}\r\n.radio-custom + .radio-custom-label:before {\r\n    border-radius: 50%;\r\n}\r\n\r\n.radio-custom:checked + .radio-custom-label:before {\r\n    background: #ccc;\r\n    box-shadow: inset 0px 0px 0px 4px #fff;\r\n}\r\n\r\n.checkbox-align {\r\n    text-align: center;\r\n}\r\n",""])},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o={Column:r(n(34)).default};t.default=o},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";e.exports=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}},function(e,t,n){"use strict";var r=n(2),o=r(n(151)),l=r(n(266)),a=n(24),i=r(n(103)),u=n(20);var d=function(e){return e.reduce(function(e,t){return e+t.width},0)};function s(e){var t=function(e,t){return e.map(function(e){var n=Object.assign({},e);return e.width&&/^([0-9]+)%$/.exec(e.width.toString())&&(n.width=Math.floor(e.width/100*t)),n})}(e.columns,e.totalWidth),n=t.filter(function(e){return e.width}).reduce(function(e,t){return e-t.width},e.totalWidth);n-=(0,i.default)();var r=t.filter(function(e){return e.width}).reduce(function(e,t){return e+t.width},0),o=(t=function(e){var t=0;return e.map(function(e){return e.left=t,t+=e.width,e})}(t=function(e,t,n){var r=e.filter(function(e){return!e.width});return e.map(function(e){if(!e.width&&0!==e.width)if(t<=0)e.width=n;else{var o=Math.floor(t/(0,a.getSize)(r));e.width=o<n?n:o}return e})}(t,n,e.minColumnWidth))).filter(function(e){return(0,a.isFrozen)(e)}),l=t.filter(function(e){return!(0,a.isFrozen)(e)});return{columns:t=o.concat(l).map(function(e,t){return e.idx=t,e}),width:r,totalWidth:e.totalWidth,totalColumnWidth:d(t),minColumnWidth:e.minColumnWidth}}e.exports={recalculate:s,resizeColumn:function(e,t,n){var r=(0,a.getColumn)(e.columns,t),l=(0,o.default)(e);l.columns=e.columns.slice(0);var i=(0,o.default)(r);return i.width=Math.max(n,l.minColumnWidth),s(l=(0,a.spliceColumn)(l,t,i))},sameColumn:l.default,sameColumns:function(e,t,n){return function(e,t){return(0,u.isColumnsImmutable)(e)&&(0,u.isColumnsImmutable)(t)}(e,t)?e===t:function(e,t,n){var r,o,l,i={},u={};if((0,a.getSize)(e)!==(0,a.getSize)(t))return!1;for(r=0,o=(0,a.getSize)(e);r<o;r++)i[(l=e[r]).key]=l;for(r=0,o=(0,a.getSize)(t);r<o;r++){u[(l=t[r]).key]=l;var d=i[l.key];if(void 0===d||!n(d,l))return!1}for(r=0,o=(0,a.getSize)(e);r<o;r++)if(void 0===u[(l=e[r]).key])return!1;return!0}(e,t,n)}}},function(e,t,n){"use strict";var r=n(2),o=r(n(3)),l=r(n(4)),a=r(n(5)),i=r(n(6)),u=r(n(7)),d=r(n(12)),s=r(n(10)),c=r(n(1)),f=r(n(16)),p=r(n(0)),g=r(n(8)),h=r(n(34)),m=n(24),w=n(26),C=n(269);n(59);var v=function(e){function t(){var e,n;(0,o.default)(this,t);for(var r=arguments.length,l=new Array(r),u=0;u<r;u++)l[u]=arguments[u];return n=(0,a.default)(this,(e=(0,i.default)(t)).call.apply(e,[this].concat(l))),(0,s.default)((0,d.default)((0,d.default)(n)),"state",{resizing:!1}),(0,s.default)((0,d.default)((0,d.default)(n)),"onDragStart",function(e){n.setState({resizing:!0}),e&&e.dataTransfer&&e.dataTransfer.setData&&e.dataTransfer.setData("text/plain","dummy")}),(0,s.default)((0,d.default)((0,d.default)(n)),"onDrag",function(e){var t=n.props.onResize||null;if(t){var r=n.getWidthFromMouseEvent(e);r>0&&t(n.props.column,r)}}),(0,s.default)((0,d.default)((0,d.default)(n)),"onDragEnd",function(e){var t=n.getWidthFromMouseEvent(e);n.props.onResizeEnd(n.props.column,t),n.setState({resizing:!1})}),(0,s.default)((0,d.default)((0,d.default)(n)),"getWidthFromMouseEvent",function(e){return(e.pageX||e.touches&&e.touches[0]&&e.touches[0].pageX||e.changedTouches&&e.changedTouches[e.changedTouches.length-1].pageX)-f.default.findDOMNode((0,d.default)((0,d.default)(n))).getBoundingClientRect().left}),(0,s.default)((0,d.default)((0,d.default)(n)),"getCell",function(){var e=n.props,t=e.height,r=e.column,o=e.renderer;return c.default.isValidElement(o)?"string"==typeof n.props.renderer.type?c.default.cloneElement(o,{height:t}):c.default.cloneElement(o,{column:r,height:t}):n.props.renderer({column:r})}),(0,s.default)((0,d.default)((0,d.default)(n)),"getStyle",function(){return{width:n.props.column.width,left:n.props.column.left,display:"inline-block",position:"absolute",height:n.props.height,margin:0,textOverflow:"ellipsis",whiteSpace:"nowrap"}}),(0,s.default)((0,d.default)((0,d.default)(n)),"setScrollLeft",function(e){var t=f.default.findDOMNode((0,d.default)((0,d.default)(n)));t&&(t.style.webkitTransform="translate3d(".concat(e,"px, 0px, 0px)"),t.style.transform="translate3d(".concat(e,"px, 0px, 0px)"))}),(0,s.default)((0,d.default)((0,d.default)(n)),"removeScroll",function(){var e=f.default.findDOMNode((0,d.default)((0,d.default)(n)));if(e){e.style.webkitTransform="none",e.style.transform="none"}}),n}return(0,u.default)(t,e),(0,l.default)(t,[{key:"render",value:function(){var e=this.props,t=e.column,n=e.rowType,r=t.resizable&&c.default.createElement(C,{onDrag:this.onDrag,onDragStart:this.onDragStart,onDragEnd:this.onDragEnd}),o=(0,g.default)({"react-grid-HeaderCell":!0,"react-grid-HeaderCell--resizing":this.state.resizing,"react-grid-HeaderCell--frozen":(0,m.isFrozen)(t)},this.props.className,t.cellClass),l=c.default.createElement("div",{className:o,style:this.getStyle()},this.getCell(),r);if(n===w.HeaderRowType.HEADER&&t.draggable){var a=this.props.draggableHeaderCell;return c.default.createElement(a,{column:t,onHeaderDrop:this.props.onHeaderDrop},l)}return l}}]),t}(c.default.Component);(0,s.default)(v,"propTypes",{renderer:p.default.oneOfType([p.default.func,p.default.element]).isRequired,column:p.default.shape(h.default).isRequired,rowType:p.default.string.isRequired,height:p.default.number.isRequired,onResize:p.default.func.isRequired,onResizeEnd:p.default.func.isRequired,onHeaderDrop:p.default.func,draggableHeaderCell:p.default.oneOfType([p.default.func,p.default.element]),className:p.default.string}),(0,s.default)(v,"defaultProps",{renderer:function(e){var t="header"===e.column.rowType?e.column.name:"";return c.default.createElement("div",{className:"widget-HeaderCell__value"},t)}}),e.exports=v},function(e,t,n){"use strict";var r=n(2),o=r(n(3)),l=r(n(4)),a=r(n(5)),i=r(n(6)),u=r(n(7)),d=r(n(12)),s=r(n(10)),c=r(n(0)),f=n(1),p=n(8),g={ASC:"ASC",DESC:"DESC",NONE:"NONE"},h=function(e){function t(){var e,n;(0,o.default)(this,t);for(var r=arguments.length,l=new Array(r),u=0;u<r;u++)l[u]=arguments[u];return n=(0,a.default)(this,(e=(0,i.default)(t)).call.apply(e,[this].concat(l))),(0,s.default)((0,d.default)((0,d.default)(n)),"onClick",function(){var e,t=n.props,r=t.sortDirection,o=t.sortDescendingFirst;switch(r){default:case null:case void 0:case g.NONE:e=o?g.DESC:g.ASC;break;case g.ASC:e=o?g.NONE:g.DESC;break;case g.DESC:e=o?g.ASC:g.NONE}n.props.onSort(n.props.columnKey,e)}),(0,s.default)((0,d.default)((0,d.default)(n)),"getSortByText",function(){return"NONE"===n.props.sortDirection?"":String.fromCharCode({ASC:"9650",DESC:"9660"}[n.props.sortDirection])}),n}return(0,u.default)(t,e),(0,l.default)(t,[{key:"render",value:function(){var e=p({"react-grid-HeaderCell-sortable":!0,"react-grid-HeaderCell-sortable--ascending":"ASC"===this.props.sortDirection,"react-grid-HeaderCell-sortable--descending":"DESC"===this.props.sortDirection}),t=this.props.headerRenderer?f.cloneElement(this.props.headerRenderer,this.props):this.props.column.name;return f.createElement("div",{className:e,onClick:this.onClick,style:{cursor:"pointer"}},f.createElement("span",{className:"pull-right"},this.getSortByText()),t)}}]),t}(f.Component);(0,s.default)(h,"propTypes",{columnKey:c.default.string.isRequired,column:c.default.shape({name:c.default.node}),onSort:c.default.func.isRequired,sortDirection:c.default.oneOf(Object.keys(g)),headerRenderer:c.default.node,sortDescendingFirst:c.default.bool}),e.exports=h,e.exports.DEFINE_SORT=g},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(15)),l=r(n(3)),a=r(n(4)),i=r(n(5)),u=r(n(6)),d=r(n(7)),s=r(n(12)),c=r(n(10)),f=r(n(60)),p=r(n(1)),g=r(n(0)),h=r(n(8)),m=r(n(156)),w=r(n(58)),C=n(24);n(61);var v=["height"],b=function(e){function t(){var e,n;(0,l.default)(this,t);for(var r=arguments.length,a=new Array(r),d=0;d<r;d++)a[d]=arguments[d];return n=(0,i.default)(this,(e=(0,u.default)(t)).call.apply(e,[this].concat(a))),(0,c.default)((0,s.default)((0,s.default)(n)),"handleDragEnter",function(e){e.preventDefault();var t=n.props,r=t.idx;(0,t.cellMetaData.onDragEnter)({overRowIdx:r})}),(0,c.default)((0,s.default)((0,s.default)(n)),"handleDragOver",function(e){e.preventDefault(),e.dataTransfer.dropEffect="copy"}),(0,c.default)((0,s.default)((0,s.default)(n)),"handleDrop",function(e){e.preventDefault()}),(0,c.default)((0,s.default)((0,s.default)(n)),"getCell",function(e){var t=n.props.cellRenderer,r=n.props,l=r.idx,a=r.cellMetaData,i=r.isScrolling,u=r.row,d=r.isSelected,s=r.scrollLeft,c=r.lastFrozenColumnIndex,f=e.key,g=e.formatter,h={key:"".concat(f,"-").concat(l),idx:e.idx,rowIdx:l,height:n.getRowHeight(),column:e,cellMetaData:a},m={ref:function(e){n[f]=e},value:n.getCellValue(f||e.idx),rowData:u,isRowSelected:d,expandableOptions:n.getExpandableOptions(f),formatter:g,isScrolling:i,scrollLeft:s,lastFrozenColumnIndex:c};return p.default.createElement(t,(0,o.default)({},h,m))}),(0,c.default)((0,s.default)((0,s.default)(n)),"getCells",function(){var e=n.props,t=e.colOverscanStartIdx,r=e.colOverscanEndIdx,o=e.columns,l=o.filter(function(e){return(0,C.isFrozen)(e)});return o.slice(t,r+1).filter(function(e){return!(0,C.isFrozen)(e)}).concat(l).map(function(e){return n.getCell(e)})}),(0,c.default)((0,s.default)((0,s.default)(n)),"getRowTop",function(){if(n.row)return n.row.offsetTop}),(0,c.default)((0,s.default)((0,s.default)(n)),"getRowHeight",function(){var e=n.props.expandedRows||null;if(e&&n.props.idx){var t=e[n.props.idx]||null;if(t)return t.height}return n.props.height}),(0,c.default)((0,s.default)((0,s.default)(n)),"getCellValue",function(e){return"select-row"===e?n.props.isSelected:"function"==typeof n.props.row.get?n.props.row.get(e):n.props.row[e]}),(0,c.default)((0,s.default)((0,s.default)(n)),"getExpandableOptions",function(e){var t=n.props.subRowDetails;return t?{canExpand:t&&t.field===e&&(t.children&&t.children.length>0||!0===t.group),field:t.field,expanded:t&&t.expanded,children:t&&t.children,treeDepth:t?t.treeDepth:0,subRowDetails:t}:{}}),(0,c.default)((0,s.default)((0,s.default)(n)),"setScrollLeft",function(e){n.props.columns.forEach(function(t){if((0,C.isFrozen)(t)){if(!n[t.key])return;n[t.key].setScrollLeft(e)}})}),(0,c.default)((0,s.default)((0,s.default)(n)),"setRowRef",function(e){n.row=e}),(0,c.default)((0,s.default)((0,s.default)(n)),"getKnownDivProps",function(){return(0,w.default)(n.props,v)}),n}return(0,d.default)(t,e),(0,a.default)(t,[{key:"shouldComponentUpdate",value:function(e){return(0,f.default)(e,this.props)}},{key:"render",value:function(){var e=(0,h.default)("react-grid-Row","react-grid-Row--".concat(this.props.idx%2==0?"even":"odd"),{"row-selected":this.props.isSelected},this.props.extraClasses,{"rdg-scrolling":this.props.isScrolling}),t={height:this.getRowHeight(this.props),overflow:"hidden"};this.getCells();return p.default.createElement("div",(0,o.default)({},this.getKnownDivProps(),{ref:this.setRowRef,className:e,style:t,onDragEnter:this.handleDragEnter,onDragOver:this.handleDragOver,onDrop:this.handleDrop}),this.getCells())}}]),t}(p.default.Component);(0,c.default)(b,"displayName","Row"),(0,c.default)(b,"propTypes",{height:g.default.number.isRequired,columns:g.default.oneOfType([g.default.object,g.default.array]).isRequired,row:g.default.object.isRequired,cellRenderer:g.default.func,cellMetaData:g.default.object,isSelected:g.default.bool,idx:g.default.number.isRequired,expandedRows:g.default.arrayOf(g.default.object),extraClasses:g.default.string,forceUpdate:g.default.bool,subRowDetails:g.default.object,isRowHovered:g.default.bool,colVisibleStartIdx:g.default.number.isRequired,colVisibleEndIdx:g.default.number.isRequired,colOverscanStartIdx:g.default.number.isRequired,colOverscanEndIdx:g.default.number.isRequired,isScrolling:g.default.bool.isRequired,scrollLeft:g.default.number,lastFrozenColumnIndex:g.default.number}),(0,c.default)(b,"defaultProps",{cellRenderer:m.default,isSelected:!1,height:35});var R=b;t.default=R},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(15)),l=r(n(40)),a=r(n(3)),i=r(n(4)),u=r(n(5)),d=r(n(6)),s=r(n(7)),c=r(n(12)),f=r(n(10)),p=r(n(1)),g=r(n(0)),h=r(n(8)),m=n(20),w=r(n(157)),C=r(n(58)),v=r(n(277)),b=r(n(278)),R=r(n(279)),y=n(24);n(109);var x=["height","value"],S=function(e){function t(){var e,n;(0,a.default)(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=(0,u.default)(this,(e=(0,d.default)(t)).call.apply(e,[this].concat(o))),(0,f.default)((0,c.default)((0,c.default)(n)),"state",{isCellValueChanging:!1,isLockChanging:!1}),(0,f.default)((0,c.default)((0,c.default)(n)),"onCellClick",function(){var e=n.props,t=e.idx,r=e.rowIdx,o=e.cellMetaData;(0,m.isFunction)(o.onCellClick)&&o.onCellClick({idx:t,rowIdx:r})}),(0,f.default)((0,c.default)((0,c.default)(n)),"onCellMouseDown",function(){var e=n.props,t=e.idx,r=e.rowIdx,o=e.cellMetaData;(0,m.isFunction)(o.onCellMouseDown)&&o.onCellMouseDown({idx:t,rowIdx:r})}),(0,f.default)((0,c.default)((0,c.default)(n)),"onCellMouseEnter",function(){var e=n.props,t=e.idx,r=e.rowIdx,o=e.cellMetaData;(0,m.isFunction)(o.onCellMouseEnter)&&o.onCellMouseEnter({idx:t,rowIdx:r})}),(0,f.default)((0,c.default)((0,c.default)(n)),"onCellContextMenu",function(){var e=n.props,t=e.idx,r=e.rowIdx,o=e.cellMetaData;(0,m.isFunction)(o.onCellContextMenu)&&o.onCellContextMenu({idx:t,rowIdx:r})}),(0,f.default)((0,c.default)((0,c.default)(n)),"onCellDoubleClick",function(e){e.stopPropagation();var t=n.props,r=t.idx,o=t.rowIdx,l=t.cellMetaData;(0,m.isFunction)(l.onCellDoubleClick)&&l.onCellDoubleClick({idx:r,rowIdx:o})}),(0,f.default)((0,c.default)((0,c.default)(n)),"onCellExpand",function(e){e.stopPropagation();var t=n.props.cellMetaData;null!=t&&null!=t.onCellExpand&&t.onCellExpand({rowIdx:n.props.rowIdx,idx:n.props.idx,rowData:n.props.rowData,expandArgs:n.props.expandableOptions})}),(0,f.default)((0,c.default)((0,c.default)(n)),"onCellKeyDown",function(e){n.canExpand()&&"Enter"===e.key&&n.onCellExpand(e)}),(0,f.default)((0,c.default)((0,c.default)(n)),"onDeleteSubRow",function(){var e=n.props.cellMetaData;null!=e&&null!=e.onDeleteSubRow&&e.onDeleteSubRow({rowIdx:n.props.rowIdx,idx:n.props.idx,rowData:n.props.rowData,expandArgs:n.props.expandableOptions})}),(0,f.default)((0,c.default)((0,c.default)(n)),"onDragOver",function(e){e.preventDefault()}),(0,f.default)((0,c.default)((0,c.default)(n)),"getStyle",function(){return{position:"absolute",width:n.props.column.width,height:n.props.height,left:n.props.column.left}}),(0,f.default)((0,c.default)((0,c.default)(n)),"getFormatter",function(){return n.props.column.formatter}),(0,f.default)((0,c.default)((0,c.default)(n)),"getRowData",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n.props;return e.rowData.toJSON?e.rowData.toJSON():e.rowData}),(0,f.default)((0,c.default)((0,c.default)(n)),"getFormatterDependencies",function(){if("function"==typeof n.props.column.getRowMetaData)return n.props.column.getRowMetaData(n.getRowData(),n.props.column)}),(0,f.default)((0,c.default)((0,c.default)(n)),"getCellClass",function(){var e=n.props,t=e.idx,r=e.lastFrozenColumnIndex,o=(0,h.default)(n.props.column.cellClass,"react-grid-Cell",n.props.className,(0,y.isFrozen)(n.props.column)?"react-grid-Cell--frozen":null,r===t?"rdg-last--frozen":null),l=(0,h.default)({"row-selected":n.props.isRowSelected,editing:n.isEditorEnabled(),"cell-tooltip":!!n.props.tooltip,"rdg-child-cell":n.props.expandableOptions&&n.props.expandableOptions.subRowDetails&&n.props.expandableOptions.treeDepth>0,"last-column":n.props.column.isLastColumn});return(0,h.default)(o,l)}),(0,f.default)((0,c.default)((0,c.default)(n)),"getUpdateCellClass",function(){return n.props.column.getUpdateCellClass?n.props.column.getUpdateCellClass(n.props.selectedColumn,n.props.column,n.state.isCellValueChanging):""}),(0,f.default)((0,c.default)((0,c.default)(n)),"isEditorEnabled",function(){return!0===n.props.isEditorEnabled}),(0,f.default)((0,c.default)((0,c.default)(n)),"setScrollLeft",function(e){var t=n.node;if(t){var r="translate3d(".concat(e,"px, 0px, 0px)");t.style.webkitTransform=r,t.style.transform=r}}),(0,f.default)((0,c.default)((0,c.default)(n)),"removeScroll",function(){var e=n.node;e&&(e.style.webkitTransform=null,e.style.transform=null)}),(0,f.default)((0,c.default)((0,c.default)(n)),"canExpand",function(){return n.props.expandableOptions&&n.props.expandableOptions.canExpand}),(0,f.default)((0,c.default)((0,c.default)(n)),"createColumEventCallBack",function(e,t){return function(n){e(n,t)}}),(0,f.default)((0,c.default)((0,c.default)(n)),"createCellEventCallBack",function(e,t){return function(n){e(n),t(n)}}),(0,f.default)((0,c.default)((0,c.default)(n)),"createEventDTO",function(e,t,r){var o=Object.assign({},e);for(var l in t)if(t.hasOwnProperty(l)){var a={idx:n.props.idx,rowIdx:n.props.rowIdx,rowId:n.props.rowData[n.props.cellMetaData.rowKey],name:l},i=n.createColumEventCallBack(r,a);if(o.hasOwnProperty(l)){var u=o[l];o[l]=n.createCellEventCallBack(u,i)}else o[l]=i}return o}),(0,f.default)((0,c.default)((0,c.default)(n)),"getEvents",function(){var e=n.props.column?Object.assign({},n.props.column.events):void 0,t=n.props.cellMetaData?n.props.cellMetaData.onColumnEvent:void 0,r={onClick:n.onCellClick,onMouseDown:n.onCellMouseDown,onMouseEnter:n.onCellMouseEnter,onDoubleClick:n.onCellDoubleClick,onContextMenu:n.onCellContextMenu,onDragOver:n.onDragOver};return e&&t?n.createEventDTO(r,e,t):r}),(0,f.default)((0,c.default)((0,c.default)(n)),"getKnownDivProps",function(){return(0,C.default)(n.props,x)}),(0,f.default)((0,c.default)((0,c.default)(n)),"setCellRef",function(e){n.node=e}),(0,f.default)((0,c.default)((0,c.default)(n)),"renderCellContent",function(e){var t,r=n.getFormatter();t=p.default.isValidElement(r)?p.default.cloneElement(r,(0,l.default)({},e,{dependentValues:n.getFormatterDependencies(),row:n.getRowData()})):(0,m.isFunction)(r)?p.default.createElement(r,{value:n.props.value,dependentValues:n.getFormatterDependencies(),isScrolling:n.props.isScrolling,row:n.getRowData()}):p.default.createElement(w.default,{value:n.props.value});var o,a=!!n.props.expandableOptions&&n.props.expandableOptions.field===n.props.column.key,i=n.props.expandableOptions?n.props.expandableOptions.treeDepth:0,u=n.props.expandableOptions&&a?30*n.props.expandableOptions.treeDepth:0,d=!!n.props.cellMetaData.onDeleteSubRow;return i>0&&a&&(o=p.default.createElement(R.default,{treeDepth:i,cellHeight:n.props.height,siblingIndex:n.props.expandableOptions.subRowDetails.siblingIndex,numberSiblings:n.props.expandableOptions.subRowDetails.numberSiblings,onDeleteSubRow:n.onDeleteSubRow,isDeleteSubRowEnabled:d})),p.default.createElement("div",{className:"react-grid-Cell__value"},o,p.default.createElement("div",{style:{marginLeft:u,position:"relative",top:"50%",transform:"translateY(-50%)"}},p.default.createElement("span",null,t),n.props.cellControls))}),n}return(0,s.default)(t,e),(0,i.default)(t,[{key:"componentWillReceiveProps",value:function(e){this.setState({isCellValueChanging:this.props.isCellValueChanging(this.props.value,e.value),isLockChanging:(0,y.isFrozen)(this.props.column)!==(0,y.isFrozen)(e.column)})}},{key:"componentDidMount",value:function(){this.checkScroll()}},{key:"componentDidUpdate",value:function(){this.state.isLockChanging&&!(0,y.isFrozen)(this.props.column)&&this.removeScroll()}},{key:"checkScroll",value:function(){var e=this.props,t=e.scrollLeft,n=e.column,r=this.node;(0,y.isFrozen)(n)&&r&&null!=r.style.transform&&this.setScrollLeft(t)}},{key:"getCellActions",value:function(){var e=this.props,t=e.cellMetaData,n=e.column,r=e.rowData;if(t&&t.getCellActions){var o=t.getCellActions(n,r);return o&&o.length?o.map(function(e,t){return p.default.createElement(v.default,{key:t,action:e,isFirst:0===t})}):null}return null}},{key:"render",value:function(){if(this.props.column.hidden)return null;var e=this.getStyle(),t=this.getCellClass(),n=this.getCellActions(),r=this.props,l=r.value,a=r.column,i=r.rowIdx,u=r.isExpanded,d=r.isScrolling,s=this.props.children||this.renderCellContent({value:l,column:a,rowIdx:i,isExpanded:u,isScrolling:d}),c=this.getEvents(),f=this.props.tooltip?p.default.createElement("span",{className:"cell-tooltip-text"},this.props.tooltip):null,g=this.canExpand()&&p.default.createElement(b.default,{expandableOptions:this.props.expandableOptions,onCellExpand:this.onCellExpand});return p.default.createElement("div",(0,o.default)({},this.getKnownDivProps(),{className:t,style:e},c,{ref:this.setCellRef}),n,g,s,f)}}]),t}(p.default.PureComponent);(0,f.default)(S,"propTypes",{rowIdx:g.default.number.isRequired,idx:g.default.number.isRequired,isSelected:g.default.bool,wasPreviouslySelected:g.default.bool,isEditorEnabled:g.default.bool,selectedColumn:g.default.object,height:g.default.number,column:g.default.object.isRequired,value:g.default.oneOfType([g.default.string,g.default.number,g.default.object,g.default.bool]),isExpanded:g.default.bool,isRowSelected:g.default.bool,cellMetaData:g.default.object.isRequired,handleDragStart:g.default.func,className:g.default.string,cellControls:g.default.any,rowData:g.default.object.isRequired,forceUpdate:g.default.bool,expandableOptions:g.default.object.isRequired,tooltip:g.default.string,isScrolling:g.default.bool,isCellValueChanging:g.default.func,children:g.default.oneOfType([g.default.arrayOf(g.default.node),g.default.node]),scrollLeft:g.default.number.isRequired}),(0,f.default)(S,"defaultProps",{isExpanded:!1,value:"",isCellValueChanging:function(e,t){return e!==t}});var E=S;t.default=E},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(3)),l=r(n(4)),a=r(n(5)),i=r(n(6)),u=r(n(7)),d=r(n(10)),s=r(n(1)),c=r(n(0)),f=function(e){function t(){return(0,o.default)(this,t),(0,a.default)(this,(0,i.default)(t).apply(this,arguments))}return(0,u.default)(t,e),(0,l.default)(t,[{key:"shouldComponentUpdate",value:function(e){return e.value!==this.props.value}},{key:"render",value:function(){return s.default.createElement("div",{title:this.props.value},this.props.value)}}]),t}(s.default.Component);(0,d.default)(f,"propTypes",{value:c.default.oneOfType([c.default.string,c.default.number,c.default.object,c.default.bool])});var p=f;t.default=p},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(0)),l={icon:o.default.oneOfType([o.default.string,o.default.element]).isRequired,callback:o.default.func,actions:o.default.arrayOf(o.default.shape({text:o.default.string,callback:o.default.func}))};t.default=l},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"EventBus",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"InteractionMasks",{enumerable:!0,get:function(){return l.default}});var o=r(n(282)),l=r(n(283))},function(e,t,n){"use strict";var r=n(21),o=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.canExitGrid=function(e,t){var n=t.cellNavigationMode,r=t.columns,o=t.rowsCount,l=t.selectedPosition,i=l.rowIdx,u=l.idx;if(n===a.CellNavigationMode.NONE||n===a.CellNavigationMode.CHANGE_ROW){var d=u===r.length-1,s=0===u,c=i===o-1,f=0===i,p=!0===e.shiftKey;return p?s&&f:d&&c}return!1},t.selectedRangeIsSingleCell=function(e){return e.topLeft.idx===e.bottomRight.idx&&e.topLeft.rowIdx===e.bottomRight.rowIdx},t.getNextSelectedCellPosition=t.isSelectedCellEditable=t.getSelectedCellValue=t.getSelectedColumn=t.getSelectedRangeDimensions=t.getSelectedDimensions=t.getSelectedRow=t.getRowTop=void 0;var l=o(n(40)),a=n(26),i=n(20),u=r(n(112)),d=n(24),s=r(n(113)),c=function(e,t){return e*t};t.getRowTop=c;var f=function(e){var t=e.selectedPosition;return(0,e.rowGetter)(t.rowIdx)};t.getSelectedRow=f;t.getSelectedDimensions=function(e){var t=e.selectedPosition,n=e.columns,r=e.rowHeight,o=e.scrollLeft,l=t.idx,a=t.rowIdx;if(l>=0){var i=(0,d.getColumn)(n,l),u=(0,d.isFrozen)(i);return{width:i.width,left:u?i.left+o:i.left,top:c(a,r),height:r,zIndex:u?s.FROZEN_CELL_MASK:s.CELL_MASK}}return{width:0,left:0,top:0,height:r,zIndex:1}};t.getSelectedRangeDimensions=function(e){var t=e.selectedRange,n=e.columns,r=e.rowHeight,o=t.topLeft,l=t.bottomRight;if(o.idx<0)return{width:0,left:0,top:0,height:r,zIndex:s.CELL_MASK};var a=function(e,t,n){for(var r=0,o=!1,l=e;l<=t;l++){var a=(0,d.getColumn)(n,l);r+=a.width,o=o||(0,d.isFrozen)(a)}return{totalWidth:r,anyColFrozen:o,left:(0,d.getColumn)(n,e).left}}(o.idx,l.idx,n),i=a.totalWidth,u=a.anyColFrozen;return{width:i,left:a.left,top:c(o.rowIdx,r),height:(l.rowIdx-o.rowIdx+1)*r,zIndex:u?s.FROZEN_CELL_MASK:s.CELL_MASK}};var p=function(e){var t=e.selectedPosition,n=e.columns,r=t.idx;return(0,d.getColumn)(n,r)};t.getSelectedColumn=p;t.getSelectedCellValue=function(e){var t=e.selectedPosition,n=e.columns,r=e.rowGetter,o=p({selectedPosition:t,columns:n}),l=f({selectedPosition:t,rowGetter:r});return l&&o?u.get(l,o.key):null};t.isSelectedCellEditable=function(e){var t=e.enableCellSelect,n=e.selectedPosition,r=e.columns,o=e.rowGetter,a=e.onCheckCellIsEditable,u=p({selectedPosition:n,columns:r}),s=f({selectedPosition:n,rowGetter:o}),c=!(0,i.isFunction)(a)||a((0,l.default)({row:s,column:u},n));return(0,d.canEdit)(u,s,t)&&c};t.getNextSelectedCellPosition=function(e,t){var n=e.cellNavigationMode,r=e.columns,o=e.rowsCount;if(n!==a.CellNavigationMode.NONE){var i=t.idx,u=t.rowIdx,d=-1===i;if(i===r.length){if(n===a.CellNavigationMode.CHANGE_ROW){if(u!==o-1)return{idx:0,rowIdx:u+1,changeRowOrColumn:!0}}else if(n===a.CellNavigationMode.LOOP_OVER_ROW)return{rowIdx:u,idx:0,changeRowOrColumn:!0}}else if(d)if(n===a.CellNavigationMode.CHANGE_ROW){if(0!==u)return{rowIdx:u-1,idx:r.length-1,changeRowOrColumn:!0}}else if(n===a.CellNavigationMode.LOOP_OVER_ROW)return{rowIdx:u,idx:r.length-1,changeRowOrColumn:!0}}return(0,l.default)({},t,{changeRowOrColumn:!1})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isKeyPrintable=function(e){return e>47&&e<58||32===e||13===e||e>64&&e<91||e>95&&e<112||e>185&&e<193||e>218&&e<223},t.isCtrlKeyHeldDown=function(e){return(!0===e.ctrlKey||!0===e.metaKey)&&"Control"!==e.key}},function(e,t,n){"use strict";e.exports={Backspace:8,Tab:9,Enter:13,Shift:16,Ctrl:17,Alt:18,PauseBreak:19,CapsLock:20,Escape:27,PageUp:33,PageDown:34,End:35,Home:36,LeftArrow:37,UpArrow:38,RightArrow:39,DownArrow:40,Insert:45,Delete:46,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,a:65,b:66,c:67,d:68,e:69,f:70,g:71,h:72,i:73,j:74,k:75,l:76,m:77,n:78,o:79,p:80,q:81,r:82,s:83,t:84,u:85,v:86,w:87,x:88,y:89,z:90,LeftWindowKey:91,RightWindowKey:92,SelectKey:93,NumPad0:96,NumPad1:97,NumPad2:98,NumPad3:99,NumPad4:100,NumPad5:101,NumPad6:102,NumPad7:103,NumPad8:104,NumPad9:105,Multiply:106,Add:107,Subtract:109,DecimalPoint:110,Divide:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F12:123,NumLock:144,ScrollLock:145,SemiColon:186,EqualSign:187,Comma:188,Dash:189,Period:190,ForwardSlash:191,GraveAccent:192,OpenBracket:219,BackSlash:220,CloseBracket:221,SingleQuote:222}},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(1)),l=r(n(0)),a=function(e){return o.default.createElement("div",{className:"react-grid-checkbox-container checkbox-align"},o.default.createElement("input",{className:"react-grid-checkbox",type:"checkbox",name:"select-all-checkbox",id:"select-all-checkbox",ref:e.inputRef,onChange:e.onChange}),o.default.createElement("label",{htmlFor:"select-all-checkbox",className:"react-grid-checkbox-label"}))};a.propTypes={onChange:l.default.func,inputRef:l.default.func};var i=a;t.default=i},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){e.exports=n(261)},function(e,t,n){"use strict";var r=n(2),o=r(n(262)),l=r(n(60)),a=r(n(156)),i=r(n(155)),u=r(n(296));e.exports=o.default,e.exports.Row=i.default,e.exports.Cell=a.default,e.exports.HeaderCell=n(153),e.exports.RowComparer=l.default,e.exports.EmptyChildRow=u.default,e.exports.editors=n(63),e.exports.formatters=n(297),e.exports.shapes=n(115),e.exports._constants=n(26),e.exports._helpers=n(298)},function(e,t,n){"use strict";var r=n(2),o=r(n(15)),l=r(n(3)),a=r(n(4)),i=r(n(5)),u=r(n(6)),d=r(n(7)),s=r(n(12)),c=r(n(10)),f=r(n(1)),p=r(n(0)),g=n(263),h=r(n(264)),m=r(n(79)),w=r(n(112)),C=n(24),v=r(n(162)),b=n(20),R=r(n(163)),y=n(154),x=n(26),S=n(159),E=n(152);n(78),n(80),Object.assign||(Object.assign=n(17));var I=function(e,t){return"".concat(e," has been deprecated and will be removed in a future version. Please use ").concat(t," instead")},D=function(e){function t(e,n){var r;(0,l.default)(this,t),r=(0,i.default)(this,(0,u.default)(t).call(this,e,n)),(0,c.default)((0,s.default)((0,s.default)(r)),"selectCell",function(e,t){var n=e.idx,o=e.rowIdx;r.eventBus.dispatch(x.EventTypes.SELECT_CELL,{rowIdx:o,idx:n},t)}),(0,c.default)((0,s.default)((0,s.default)(r)),"selectStart",function(e){r.eventBus.dispatch(x.EventTypes.SELECT_START,e)}),(0,c.default)((0,s.default)((0,s.default)(r)),"selectUpdate",function(e){r.eventBus.dispatch(x.EventTypes.SELECT_UPDATE,e)}),(0,c.default)((0,s.default)((0,s.default)(r)),"selectEnd",function(){r.eventBus.dispatch(x.EventTypes.SELECT_END)}),(0,c.default)((0,s.default)((0,s.default)(r)),"handleDragEnter",function(e){var t=e.overRowIdx;r.eventBus.dispatch(x.EventTypes.DRAG_ENTER,{overRowIdx:t})}),(0,c.default)((0,s.default)((0,s.default)(r)),"gridWidth",function(){return r.grid?r.grid.parentElement.offsetWidth:0}),(0,c.default)((0,s.default)((0,s.default)(r)),"getTotalWidth",function(){return r._mounted?r.gridWidth():(0,C.getSize)(r.props.columns)*r.props.minColumnWidth}),(0,c.default)((0,s.default)((0,s.default)(r)),"getColumnMetricsType",function(e){var t=e.totalWidth||r.getTotalWidth(),n={columns:e.columns,totalWidth:t,minColumnWidth:e.minColumnWidth};return E.recalculate(n)}),(0,c.default)((0,s.default)((0,s.default)(r)),"getColumn",function(e){var t=r.state.columnMetrics.columns;return(0,C.getColumn)(t,e)}),(0,c.default)((0,s.default)((0,s.default)(r)),"getSize",function(){var e=r.state.columnMetrics.columns;return(0,C.getSize)(e)}),(0,c.default)((0,s.default)((0,s.default)(r)),"metricsUpdated",function(){var e=r.createColumnMetrics();r.setState({columnMetrics:e})}),(0,c.default)((0,s.default)((0,s.default)(r)),"createColumnMetrics",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:r.props,t=r.setupGridColumns(e);return r.getColumnMetricsType({columns:t,minColumnWidth:r.props.minColumnWidth,totalWidth:e.minWidth})}),(0,c.default)((0,s.default)((0,s.default)(r)),"onColumnResize",function(e,t){var n=E.resizeColumn(r.state.columnMetrics,e,t);r.setState({columnMetrics:n}),r.props.onColumnResize&&r.props.onColumnResize(e,t)}),(0,c.default)((0,s.default)((0,s.default)(r)),"onKeyDown",function(e){r._keysDown=r._keysDown||{},r._keysDown[e.keyCode]=!0;var t=r.props.onGridKeyDown;(0,b.isFunction)(t)&&t(e)}),(0,c.default)((0,s.default)((0,s.default)(r)),"onKeyUp",function(e){r._keysDown=r._keysDown||{},delete r._keysDown[e.keyCode];var t=r.props.onGridKeyUp;(0,b.isFunction)(t)&&t(e)}),(0,c.default)((0,s.default)((0,s.default)(r)),"isSingleKeyDown",function(e){return!!r._keysDown&&(e in r._keysDown&&1===Object.keys(r._keysDown).length)}),(0,c.default)((0,s.default)((0,s.default)(r)),"onColumnEvent",function(e,t){var n=t.idx,o=t.name;if(o&&void 0!==n){var l=r.getColumn(n);if(l&&l.events&&(0,b.isFunction)(l.events[o])){var a={idx:n,rowIdx:t.rowIdx,rowId:t.rowId,column:l};l.events[o](e,a)}}}),(0,c.default)((0,s.default)((0,s.default)(r)),"onCellClick",function(e){var t=e.rowIdx,n=e.idx,o=r.props,l=o.onRowClick,a=o.rowGetter;r.selectCell({rowIdx:t,idx:n}),(0,b.isFunction)(l)&&l(t,a(t),r.getColumn(n))}),(0,c.default)((0,s.default)((0,s.default)(r)),"onCellMouseDown",function(e){r.selectStart(e)}),(0,c.default)((0,s.default)((0,s.default)(r)),"onCellMouseEnter",function(e){r.selectUpdate(e)}),(0,c.default)((0,s.default)((0,s.default)(r)),"onWindowMouseUp",function(){r.selectEnd()}),(0,c.default)((0,s.default)((0,s.default)(r)),"onCellContextMenu",function(e){var t=e.rowIdx,n=e.idx;r.selectCell({rowIdx:t,idx:n})}),(0,c.default)((0,s.default)((0,s.default)(r)),"onCellDoubleClick",function(e){var t=e.rowIdx,n=e.idx,o=r.props,l=o.onRowDoubleClick,a=o.rowGetter;(0,b.isFunction)(l)&&l(t,a(t),r.getColumn(n)),r.openCellEditor(t,n)}),(0,c.default)((0,s.default)((0,s.default)(r)),"onToggleFilter",function(){r.setState({canFilter:!r.state.canFilter},function(){!1===r.state.canFilter&&r.props.onClearFilters&&r.props.onClearFilters()})}),(0,c.default)((0,s.default)((0,s.default)(r)),"onDragHandleDoubleClick",function(e){if(r.props.onDragHandleDoubleClick&&r.props.onDragHandleDoubleClick(e),r.props.onGridRowsUpdated){var t=r.getColumn(e.idx).key;r.onGridRowsUpdated(t,e.rowIdx,r.props.rowsCount-1,(0,c.default)({},t,e.rowData[t]),x.UpdateActions.COLUMN_FILL)}}),(0,c.default)((0,s.default)((0,s.default)(r)),"onCellExpand",function(e){r.props.onCellExpand&&r.props.onCellExpand(e)}),(0,c.default)((0,s.default)((0,s.default)(r)),"onRowExpandToggle",function(e){"function"==typeof r.props.onRowExpandToggle&&r.props.onRowExpandToggle(e)}),(0,c.default)((0,s.default)((0,s.default)(r)),"onGridRowsUpdated",function(e,t,n,o,l,a){var i=r.props,u=i.rowGetter,d=i.rowKey,s=i.onGridRowsUpdated;if((0,b.isFunction)(r.props.onRowUpdated)&&r.props.onRowUpdated({updated:o,rowIdx:t,cellKey:e,value:o[e]}),(0,b.isFunction)(s)){for(var c=[],f=t;f<=n;f++)c.push(u(f)[d]);var p=u(l===x.UpdateActions.COPY_PASTE?a:t);s({cellKey:e,fromRow:t,toRow:n,fromRowId:p[d],toRowId:u(n)[d],rowIds:c,updated:o,action:l,fromRowData:p})}}),(0,c.default)((0,s.default)((0,s.default)(r)),"onCommit",function(e){var t=e.rowIdx;r.onGridRowsUpdated(e.cellKey,t,t,e.updated,x.UpdateActions.CELL_UPDATE)}),(0,c.default)((0,s.default)((0,s.default)(r)),"onScroll",function(e){(0,b.isFunction)(r.props.onScroll)&&r.props.onScroll(e)}),(0,c.default)((0,s.default)((0,s.default)(r)),"handleSort",function(e,t){r.setState({sortDirection:t,sortColumn:e},function(){r.props.onGridSort(e,t)})}),(0,c.default)((0,s.default)((0,s.default)(r)),"getSelectedRow",function(e,t){var n=e.filter(function(e){return e[r.props.rowKey]===t});if(n.length>0)return n[0]}),(0,c.default)((0,s.default)((0,s.default)(r)),"useNewRowSelection",function(){return r.props.rowSelection&&r.props.rowSelection.selectBy}),(0,c.default)((0,s.default)((0,s.default)(r)),"handleShiftSelect",function(e){if(r.state.lastRowIdxUiSelected>-1&&r.isSingleKeyDown(v.default.Shift)){var t=r.props.rowSelection.selectBy,n=t.keys,o=t.indexes,l=t.isSelectedKey;if(w.default.isRowSelected(n,o,l,r.props.rowGetter(e),e))return!1;var a=!1;if(e>r.state.lastRowIdxUiSelected){for(var i=[],u=r.state.lastRowIdxUiSelected+1;u<=e;u++)i.push({rowIdx:u,row:r.props.rowGetter(u)});"function"==typeof r.props.rowSelection.onRowsSelected&&r.props.rowSelection.onRowsSelected(i),a=!0}else if(e<r.state.lastRowIdxUiSelected){for(var d=[],s=e;s<=r.state.lastRowIdxUiSelected-1;s++)d.push({rowIdx:s,row:r.props.rowGetter(s)});"function"==typeof r.props.rowSelection.onRowsSelected&&r.props.rowSelection.onRowsSelected(d),a=!0}return a&&r.setState({lastRowIdxUiSelected:e}),a}return!1}),(0,c.default)((0,s.default)((0,s.default)(r)),"handleNewRowSelect",function(e,t){r.selectAllCheckbox&&!0===r.selectAllCheckbox.checked&&(r.selectAllCheckbox.checked=!1);var n=r.props.rowSelection.selectBy,o=n.keys,l=n.indexes,a=n.isSelectedKey,i=w.default.isRowSelected(o,l,a,t,e);r.setState({lastRowIdxUiSelected:i?-1:e,selected:{rowIdx:e,idx:0}}),i&&"function"==typeof r.props.rowSelection.onRowsDeselected?r.props.rowSelection.onRowsDeselected([{rowIdx:e,row:t}]):i||"function"!=typeof r.props.rowSelection.onRowsSelected||r.props.rowSelection.onRowsSelected([{rowIdx:e,row:t}])}),(0,c.default)((0,s.default)((0,s.default)(r)),"handleRowSelect",function(e,t,n,o){if(o.stopPropagation(),r.useNewRowSelection())!0===r.props.rowSelection.enableShiftSelect&&r.handleShiftSelect(e)||r.handleNewRowSelect(e,n);else{var l="single"===r.props.enableRowSelect?[]:r.state.selectedRows.slice(0),a=r.getSelectedRow(l,n[r.props.rowKey]);a?a.isSelected=!a.isSelected:(n.isSelected=!0,l.push(n)),r.setState({selectedRows:l,selected:{rowIdx:e,idx:0}}),r.props.onRowSelect&&r.props.onRowSelect(l.filter(function(e){return!0===e.isSelected}))}}),(0,c.default)((0,s.default)((0,s.default)(r)),"handleCheckboxChange",function(e){var t;if(t=e.currentTarget instanceof HTMLInputElement&&!0===e.currentTarget.checked,r.useNewRowSelection()){var n=r.props.rowSelection.selectBy,o=n.keys,l=n.indexes,a=n.isSelectedKey;if(t&&"function"==typeof r.props.rowSelection.onRowsSelected){for(var i=[],u=0;u<r.props.rowsCount;u++){var d=r.props.rowGetter(u);w.default.isRowSelected(o,l,a,d,u)||i.push({rowIdx:u,row:d})}i.length>0&&r.props.rowSelection.onRowsSelected(i)}else if(!t&&"function"==typeof r.props.rowSelection.onRowsDeselected){for(var s=[],c=0;c<r.props.rowsCount;c++){var f=r.props.rowGetter(c);w.default.isRowSelected(o,l,a,f,c)&&s.push({rowIdx:c,row:f})}s.length>0&&r.props.rowSelection.onRowsDeselected(s)}}else{for(var p=[],g=0;g<r.props.rowsCount;g++){var h=Object.assign({},r.props.rowGetter(g),{isSelected:t});p.push(h)}r.setState({selectedRows:p}),"function"==typeof r.props.onRowSelect&&r.props.onRowSelect(p.filter(function(e){return!0===e.isSelected}))}}),(0,c.default)((0,s.default)((0,s.default)(r)),"getRowOffsetHeight",function(){var e=0;return r.getHeaderRows().forEach(function(t){return e+=parseFloat(t.height,10)}),e}),(0,c.default)((0,s.default)((0,s.default)(r)),"getHeaderRows",function(){var e=[{height:r.props.headerRowHeight||r.props.rowHeight,rowType:x.HeaderRowType.HEADER}];return!0===r.state.canFilter&&e.push({filterable:!0,onFilterChange:r.props.onAddFilter,height:r.props.headerFiltersHeight,rowType:x.HeaderRowType.FILTER}),e}),(0,c.default)((0,s.default)((0,s.default)(r)),"getInitialSelectedRows",function(){for(var e=[],t=0;t<r.props.rowsCount;t++)e.push(!1);return e}),(0,c.default)((0,s.default)((0,s.default)(r)),"getRowSelectionProps",function(){return r.props.rowSelection?r.props.rowSelection.selectBy:null}),(0,c.default)((0,s.default)((0,s.default)(r)),"getSelectedRows",function(){return r.props.rowSelection?null:r.state.selectedRows.filter(function(e){return!0===e.isSelected})}),(0,c.default)((0,s.default)((0,s.default)(r)),"getDataGridDOMNode",function(){return r.grid}),(0,c.default)((0,s.default)((0,s.default)(r)),"openCellEditor",function(e,t){r.selectCell({rowIdx:e,idx:t},!0)}),(0,c.default)((0,s.default)((0,s.default)(r)),"scrollToColumn",function(e){r.eventBus.dispatch(x.EventTypes.SCROLL_TO_COLUMN,e)}),(0,c.default)((0,s.default)((0,s.default)(r)),"setupGridColumns",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:r.props,t=e.columns;if(r._cachedColumns===t)return r._cachedComputedColumns;r._cachedColumns=t;var n=t.slice(0),o={};if(r.props.rowActionsCell||e.enableRowSelect&&!r.props.rowSelection||e.rowSelection&&!1!==e.rowSelection.showCheckbox){var l=r.props.selectAllRenderer||R.default,a=f.default.createElement(l,{onChange:r.handleCheckboxChange,inputRef:function(e){return r.selectAllCheckbox=e}}),i="single"===e.enableRowSelect?null:a,u=r.props.rowActionsCell?r.props.rowActionsCell:m.default,d={key:"select-row",name:"",formatter:f.default.createElement(u,{rowSelection:r.props.rowSelection}),onCellChange:r.handleRowSelect,filterable:!1,headerRenderer:i,width:60,frozen:!0,getRowMetaData:function(e){return e},cellClass:r.props.rowActionsCell?"rdg-row-actions-cell":""};o=n.unshift(d),n=o>0?n:o}return r._cachedComputedColumns=n,r._cachedComputedColumns}),(0,c.default)((0,s.default)((0,s.default)(r)),"setGridRef",function(e){r.grid=e}),(0,c.default)((0,s.default)((0,s.default)(r)),"setBaseGridRef",function(e){r.base=e}),(0,c.default)((0,s.default)((0,s.default)(r)),"renderToolbar",function(){var e=r.props.toolbar,t={columns:r.props.columns,onToggleFilter:r.onToggleFilter,numberOfRows:r.props.rowsCount};return f.default.isValidElement(e)?f.default.cloneElement(e,t):(0,b.isFunction)(e)?f.default.createElement(e,t):void 0});var o={columnMetrics:r.createColumnMetrics(),selectedRows:[],expandedRows:[],canFilter:!1,columnFilters:{},sortDirection:null,sortColumn:null,scrollOffset:0,lastRowIdxUiSelected:-1};return r.props.sortColumn&&r.props.sortDirection&&(o.sortColumn=r.props.sortColumn,o.sortDirection=r.props.sortDirection),r.state=o,r.eventBus=new S.EventBus,r}return(0,d.default)(t,e),(0,a.default)(t,[{key:"componentDidMount",value:function(){this._mounted=!0,window.addEventListener("resize",this.metricsUpdated),this.props.cellRangeSelection&&window.addEventListener("mouseup",this.onWindowMouseUp),this.metricsUpdated()}},{key:"componentWillUnmount",value:function(){this._mounted=!1,window.removeEventListener("resize",this.metricsUpdated),window.removeEventListener("mouseup",this.onWindowMouseUp)}},{key:"componentWillReceiveProps",value:function(e){if(e.columns&&(!E.sameColumns(this.props.columns,e.columns,this.props.columnEquality)||e.minWidth!==this.props.minWidth)){var t=this.createColumnMetrics(e);this.setState({columnMetrics:t})}}},{key:"render",value:function(){var e={rowKey:this.props.rowKey,onCellClick:this.onCellClick,onCellContextMenu:this.onCellContextMenu,onCellDoubleClick:this.onCellDoubleClick,onColumnEvent:this.onColumnEvent,onCellExpand:this.onCellExpand,onRowExpandToggle:this.onRowExpandToggle,getCellActions:this.props.getCellActions,onDeleteSubRow:this.props.onDeleteSubRow,onAddSubRow:this.props.onAddSubRow,onDragEnter:this.handleDragEnter};this.props.cellRangeSelection&&(e.onCellMouseDown=this.onCellMouseDown,e.onCellMouseEnter=this.onCellMouseEnter);var t=this.renderToolbar(),n=this.props.minWidth||this.gridWidth(),r=n-this.state.scrollOffset;return(void 0===n||isNaN(n)||0===n)&&(n="100%"),(void 0===r||isNaN(r)||0===r)&&(r="100%"),f.default.createElement("div",{className:"react-grid-Container",style:{width:n},ref:this.setGridRef},t,f.default.createElement("div",{className:"react-grid-Main"},f.default.createElement(h.default,(0,o.default)({ref:this.setBaseGridRef},this.props,{rowKey:this.props.rowKey,headerRows:this.getHeaderRows(),columnMetrics:this.state.columnMetrics,rowGetter:this.props.rowGetter,rowsCount:this.props.rowsCount,rowHeight:this.props.rowHeight,cellMetaData:e,selectedRows:this.getSelectedRows(),rowSelection:this.getRowSelectionProps(),expandedRows:this.state.expandedRows,rowOffsetHeight:this.getRowOffsetHeight(),sortColumn:this.state.sortColumn,sortDirection:this.state.sortDirection,onSort:this.handleSort,minHeight:this.props.minHeight,totalWidth:r,onViewportKeydown:this.onKeyDown,onViewportKeyup:this.onKeyUp,onColumnResize:this.onColumnResize,rowScrollTimeout:this.props.rowScrollTimeout,scrollToRowIndex:this.props.scrollToRowIndex,contextMenu:this.props.contextMenu,overScan:this.props.overScan,enableCellSelect:this.props.enableCellSelect,enableCellAutoFocus:this.props.enableCellAutoFocus,cellNavigationMode:this.props.cellNavigationMode,eventBus:this.eventBus,onCheckCellIsEditable:this.props.onCheckCellIsEditable,onCellCopyPaste:this.props.onCellCopyPaste,onGridRowsUpdated:this.onGridRowsUpdated,onDragHandleDoubleClick:this.onDragHandleDoubleClick,onCellSelected:this.props.onCellSelected,onCellDeSelected:this.props.onCellDeSelected,onCellRangeSelectionStarted:this.props.cellRangeSelection&&this.props.cellRangeSelection.onStart,onCellRangeSelectionUpdated:this.props.cellRangeSelection&&this.props.cellRangeSelection.onUpdate,onCellRangeSelectionCompleted:this.props.cellRangeSelection&&this.props.cellRangeSelection.onComplete,onCommit:this.onCommit,onScroll:this.onScroll}))))}}]),t}(f.default.Component);(0,c.default)(D,"displayName","ReactDataGrid"),(0,c.default)(D,"propTypes",{rowHeight:p.default.number,headerRowHeight:p.default.number,headerFiltersHeight:p.default.number,minHeight:p.default.number.isRequired,minWidth:p.default.number,enableRowSelect:(0,g.deprecate)(p.default.func,I("enableRowSelect","rowSelection")),onRowUpdated:(0,g.deprecate)(p.default.func,I("onRowUpdated","onGridRowsUpdated")),rowGetter:p.default.func.isRequired,rowsCount:p.default.number.isRequired,toolbar:p.default.element,enableCellSelect:p.default.bool,columns:p.default.arrayOf(p.default.shape({name:p.default.node.isRequired,key:p.default.string.isRequired,width:p.default.number,filterable:p.default.bool,filterRenderer:p.default.node,resizable:p.default.bool,sortable:p.default.bool,sortDescendingFirst:p.default.bool,dragable:p.default.bool,editable:p.default.node,editor:p.default.node,formatter:p.default.node,headerRenderer:p.default.node,frozen:p.default.bool,events:p.default.object})).isRequired,onFilter:p.default.func,onCellCopyPaste:(0,g.deprecate)(p.default.func,I("onCellCopyPaste","onGridRowsUpdated")),onCellsDragged:(0,g.deprecate)(p.default.func,I("onCellsDragged","onGridRowsUpdated")),getCellActions:p.default.func,onAddFilter:p.default.func,onGridSort:p.default.func,sortColumn:p.default.string,sortDirection:p.default.oneOf(Object.keys(y.DEFINE_SORT)),onDragHandleDoubleClick:(0,g.deprecate)(p.default.func,I("onDragHandleDoubleClick","onGridRowsUpdated")),onGridRowsUpdated:p.default.func,onRowSelect:p.default.func,rowKey:p.default.string,rowScrollTimeout:(0,g.deprecate)(p.default.number),scrollToRowIndex:p.default.number,onClearFilters:p.default.func,contextMenu:p.default.element,cellNavigationMode:p.default.oneOf(["none","loopOverRow","changeRow"]),onCellSelected:p.default.func,onCellDeSelected:p.default.func,cellRangeSelection:p.default.shape({onStart:p.default.func,onUpdate:p.default.func,onComplete:p.default.func}),onCellExpand:p.default.func,enableDragAndDrop:p.default.bool,onRowExpandToggle:p.default.func,draggableHeaderCell:p.default.func,getValidFilterValues:p.default.func,rowSelection:p.default.shape({enableShiftSelect:p.default.bool,onRowsSelected:p.default.func,onRowsDeselected:p.default.func,showCheckbox:p.default.bool,selectBy:p.default.oneOfType([p.default.shape({indexes:p.default.arrayOf(p.default.number).isRequired}),p.default.shape({isSelectedKey:p.default.string.isRequired}),p.default.shape({keys:p.default.shape({values:p.default.array.isRequired,rowKey:p.default.string.isRequired}).isRequired})]).isRequired}),onRowClick:p.default.func,onRowDoubleClick:p.default.func,onGridKeyUp:p.default.func,onGridKeyDown:p.default.func,rowGroupRenderer:p.default.func,rowActionsCell:p.default.func,onCheckCellIsEditable:p.default.func,onDeleteSubRow:p.default.func,onAddSubRow:p.default.func,enableCellAutoFocus:p.default.bool,onBeforeEdit:p.default.func,selectAllRenderer:p.default.object,minColumnWidth:p.default.number,onColumnResize:p.default.func,onScroll:p.default.func}),(0,c.default)(D,"defaultProps",{enableCellSelect:!1,rowHeight:35,headerFiltersHeight:45,enableRowSelect:!1,minHeight:350,rowKey:"id",rowScrollTimeout:0,scrollToRowIndex:0,cellNavigationMode:x.CellNavigationMode.NONE,overScan:{colsStart:2,colsEnd:2,rowsStart:2,rowsEnd:2},enableCellAutoFocus:!0,onBeforeEdit:function(){},minColumnWidth:80,columnEquality:E.sameColumn}),e.exports=D},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};function o(e,t){var n=!1;return function(){for(var r=arguments.length,o=Array(r),l=0;l<r;l++)o[l]=arguments[l];var a=o[0][o[1]];return null==a||n||(n=!0,console.warn(t)),e.call.apply(e,[this].concat(o))}}t.deprecate=o,t.addIsDeprecated=function(e){var t=r({},e);for(var n in t)if(t.hasOwnProperty(n)){var l=t[n];(l=l.bind(t)).isDeprecated=o.bind(t,l),t[n]=l}return t}},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(15)),l=r(n(3)),a=r(n(4)),i=r(n(5)),u=r(n(6)),d=r(n(7)),s=r(n(12)),c=r(n(10)),f=r(n(1)),p=r(n(0)),g=r(n(265)),h=r(n(274)),m=r(n(75)),w=n(24);n(78);var C=function(e){function t(){var e,n;(0,l.default)(this,t);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return n=(0,i.default)(this,(e=(0,u.default)(t)).call.apply(e,[this].concat(o))),(0,c.default)((0,s.default)((0,s.default)(n)),"_scrollLeft",void 0),(0,c.default)((0,s.default)((0,s.default)(n)),"getStyle",function(){return{overflow:"hidden",outline:0,position:"relative",minHeight:n.props.minHeight}}),(0,c.default)((0,s.default)((0,s.default)(n)),"_onScroll",function(){void 0!==n._scrollLeft&&(n.header.setScrollLeft(n._scrollLeft),n.viewport&&n.viewport.setScrollLeft(n._scrollLeft))}),(0,c.default)((0,s.default)((0,s.default)(n)),"onScroll",function(e){n.props.onScroll(e);var t=e.scrollLeft;(n._scrollLeft!==t||n.areFrozenColumnsScrolledLeft(t))&&(n._scrollLeft=t,n._onScroll())}),(0,c.default)((0,s.default)((0,s.default)(n)),"setHeaderRef",function(e){n.header=e}),(0,c.default)((0,s.default)((0,s.default)(n)),"setViewportRef",function(e){n.viewport=e}),(0,c.default)((0,s.default)((0,s.default)(n)),"setViewportContainerRef",function(e){n.viewPortContainer=e}),(0,c.default)((0,s.default)((0,s.default)(n)),"setEmptyViewRef",function(e){n.emptyView=e}),n}return(0,d.default)(t,e),(0,a.default)(t,[{key:"areFrozenColumnsScrolledLeft",value:function(e){return e>0&&this.props.columns.some(function(e){return(0,w.isFrozen)(e)})}},{key:"componentDidMount",value:function(){this._scrollLeft=this.viewport?this.viewport.getScroll().scrollLeft:0,this._onScroll()}},{key:"componentDidUpdate",value:function(){this._onScroll()}},{key:"componentWillUnmount",value:function(){this._scrollLeft=void 0}},{key:"render",value:function(){var e=this.props.headerRows,t=this.props.emptyRowsView;return f.default.createElement("div",{style:this.getStyle(),className:"react-grid-Grid"},f.default.createElement(g.default,{ref:this.setHeaderRef,columnMetrics:this.props.columnMetrics,onColumnResize:this.props.onColumnResize,height:this.props.rowHeight,totalWidth:this.props.totalWidth,headerRows:e,sortColumn:this.props.sortColumn,sortDirection:this.props.sortDirection,draggableHeaderCell:this.props.draggableHeaderCell,onSort:this.props.onSort,onHeaderDrop:this.props.onHeaderDrop,getValidFilterValues:this.props.getValidFilterValues,cellMetaData:this.props.cellMetaData}),this.props.rowsCount>=1||0===this.props.rowsCount&&!this.props.emptyRowsView?f.default.createElement("div",{ref:this.setViewportContainerRef,onKeyDown:this.props.onViewportKeydown,onKeyUp:this.props.onViewportKeyup},f.default.createElement(h.default,(0,o.default)({},this.props,{ref:this.setViewportRef,rowKey:this.props.rowKey,width:this.props.columnMetrics.width,rowHeight:this.props.rowHeight,rowRenderer:this.props.rowRenderer,rowGetter:this.props.rowGetter,rowsCount:this.props.rowsCount,selectedRows:this.props.selectedRows,expandedRows:this.props.expandedRows,columnMetrics:this.props.columnMetrics,totalWidth:this.props.totalWidth,onScroll:this.onScroll,onRows:this.props.onRows,cellMetaData:this.props.cellMetaData,rowOffsetHeight:this.props.rowOffsetHeight||this.props.rowHeight*e.length,minHeight:this.props.minHeight,rowScrollTimeout:this.props.rowScrollTimeout,scrollToRowIndex:this.props.scrollToRowIndex,contextMenu:this.props.contextMenu,rowSelection:this.props.rowSelection,getSubRowDetails:this.props.getSubRowDetails,rowGroupRenderer:this.props.rowGroupRenderer,overScan:this.props.overScan,enableCellSelect:this.props.enableCellSelect,enableCellAutoFocus:this.props.enableCellAutoFocus,cellNavigationMode:this.props.cellNavigationMode,eventBus:this.props.eventBus,onCheckCellIsEditable:this.props.onCheckCellIsEditable,onCellCopyPaste:this.props.onCellCopyPaste,onGridRowsUpdated:this.props.onGridRowsUpdated,onDragHandleDoubleClick:this.props.onDragHandleDoubleClick,onCellSelected:this.props.onCellSelected,onCellDeSelected:this.props.onCellDeSelected,onCellRangeSelectionStarted:this.props.onCellRangeSelectionStarted,onCellRangeSelectionUpdated:this.props.onCellRangeSelectionUpdated,onCellRangeSelectionCompleted:this.props.onCellRangeSelectionCompleted,onCommit:this.props.onCommit,RowsContainer:this.props.RowsContainer}))):f.default.createElement("div",{ref:this.setEmptyViewRef,className:"react-grid-Empty"},f.default.createElement(t,null)))}}]),t}(f.default.Component);(0,c.default)(C,"displayName","Grid"),(0,c.default)(C,"propTypes",{rowGetter:p.default.oneOfType([p.default.array,p.default.func]).isRequired,columns:p.default.oneOfType([p.default.array,p.default.object]),columnMetrics:p.default.object,minHeight:p.default.number,totalWidth:p.default.oneOfType([p.default.number,p.default.string]),headerRows:p.default.oneOfType([p.default.array,p.default.func]),rowHeight:p.default.number,rowRenderer:p.default.oneOfType([p.default.element,p.default.func]),emptyRowsView:p.default.func,expandedRows:p.default.oneOfType([p.default.array,p.default.func]),selectedRows:p.default.oneOfType([p.default.array,p.default.func]),rowSelection:p.default.oneOfType([p.default.shape({indexes:p.default.arrayOf(p.default.number).isRequired}),p.default.shape({isSelectedKey:p.default.string.isRequired}),p.default.shape({keys:p.default.shape({values:p.default.array.isRequired,rowKey:p.default.string.isRequired}).isRequired})]),rowsCount:p.default.number,onRows:p.default.func,sortColumn:p.default.string,cellMetaData:p.default.shape(m.default).isRequired,sortDirection:p.default.oneOf(["ASC","DESC","NONE"]),rowOffsetHeight:p.default.number.isRequired,onViewportKeydown:p.default.func.isRequired,onViewportKeyup:p.default.func,onColumnResize:p.default.func,onSort:p.default.func,onHeaderDrop:p.default.func,rowKey:p.default.string.isRequired,rowScrollTimeout:p.default.number,scrollToRowIndex:p.default.number,contextMenu:p.default.element,getSubRowDetails:p.default.func,draggableHeaderCell:p.default.func,getValidFilterValues:p.default.func,rowGroupRenderer:p.default.func,overScan:p.default.object,enableCellSelect:p.default.bool.isRequired,enableCellAutoFocus:p.default.bool.isRequired,cellNavigationMode:p.default.string.isRequired,eventBus:p.default.object.isRequired,onCheckCellIsEditable:p.default.func,onCellCopyPaste:p.default.func,onGridRowsUpdated:p.default.func.isRequired,onDragHandleDoubleClick:p.default.func.isRequired,onCellSelected:p.default.func,onCellDeSelected:p.default.func,onCellRangeSelectionStarted:p.default.func,onCellRangeSelectionUpdated:p.default.func,onCellRangeSelectionCompleted:p.default.func,onCommit:p.default.func.isRequired,onScroll:p.default.func,scrollLeft:p.default.number,RowsContainer:p.default.node}),(0,c.default)(C,"defaultProps",{rowHeight:35,minHeight:350});var v=C;t.default=v},function(e,t,n){"use strict";var r=n(2),o=r(n(15)),l=r(n(3)),a=r(n(4)),i=r(n(5)),u=r(n(6)),d=r(n(7)),s=r(n(12)),c=r(n(10)),f=r(n(1)),p=r(n(16)),g=r(n(8)),h=r(n(151)),m=r(n(152)),w=n(24),C=r(n(267)),v=r(n(103)),b=r(n(0)),R=r(n(58)),y=r(n(75)),x=n(26);n(59);var S=["height","onScroll"],E=function(e){function t(){var e,n;(0,l.default)(this,t);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return n=(0,i.default)(this,(e=(0,u.default)(t)).call.apply(e,[this].concat(o))),(0,c.default)((0,s.default)((0,s.default)(n)),"state",{resizing:null}),(0,c.default)((0,s.default)((0,s.default)(n)),"onColumnResize",function(e,t){var r=n.state.resizing||n.props,o=n.getColumnPosition(e);if(null!=o){var l={columnMetrics:(0,h.default)(r.columnMetrics)};l.columnMetrics=m.default.resizeColumn(l.columnMetrics,o,t),l.columnMetrics.totalWidth<r.columnMetrics.totalWidth&&(l.columnMetrics.totalWidth=r.columnMetrics.totalWidth),l.column=(0,w.getColumn)(l.columnMetrics.columns,o),n.setState({resizing:l})}}),(0,c.default)((0,s.default)((0,s.default)(n)),"onColumnResizeEnd",function(e,t){var r=n.getColumnPosition(e);null!==r&&n.props.onColumnResize&&n.props.onColumnResize(r,t||e.width)}),(0,c.default)((0,s.default)((0,s.default)(n)),"setRowRef",function(e){n.row=e}),(0,c.default)((0,s.default)((0,s.default)(n)),"setFilterRowRef",function(e){n.filterRow=e}),(0,c.default)((0,s.default)((0,s.default)(n)),"getHeaderRows",function(){var e=n.getColumnMetrics(),t=n.state.resizing?n.state.resizing.column:void 0;return n.props.headerRows.map(function(r,o){var l=r.rowType===x.HeaderRowType.FILTER,a=l?"500px":"auto",i=(0,v.default)()>0?(0,v.default)():0,u=isNaN(n.props.totalWidth-i)?n.props.totalWidth:n.props.totalWidth-i,d={position:"absolute",top:n.getCombinedHeaderHeights(o),left:0,width:u,overflowX:"hidden",minHeight:a};return f.default.createElement(C.default,{key:r.rowType,ref:l?n.setFilterRowRef:n.setRowRef,rowType:r.rowType,style:d,onColumnResize:n.onColumnResize,onColumnResizeEnd:n.onColumnResizeEnd,width:e.width,height:r.height||n.props.height,columns:e.columns,resizing:t,draggableHeaderCell:n.props.draggableHeaderCell,filterable:r.filterable,onFilterChange:r.onFilterChange,onHeaderDrop:n.props.onHeaderDrop,sortColumn:n.props.sortColumn,sortDirection:n.props.sortDirection,onSort:n.props.onSort,onScroll:n.props.onScroll,getValidFilterValues:n.props.getValidFilterValues})})}),(0,c.default)((0,s.default)((0,s.default)(n)),"getColumnMetrics",function(){return n.state.resizing?n.state.resizing.columnMetrics:n.props.columnMetrics}),(0,c.default)((0,s.default)((0,s.default)(n)),"getColumnPosition",function(e){var t=n.getColumnMetrics(),r=-1;return t.columns.forEach(function(t,n){t.key===e.key&&(r=n)}),-1===r?null:r}),(0,c.default)((0,s.default)((0,s.default)(n)),"getCombinedHeaderHeights",function(e){var t=n.props.headerRows.length;void 0!==e&&(t=e);for(var r=0,o=0;o<t;o++)r+=n.props.headerRows[o].height||n.props.height;return r}),(0,c.default)((0,s.default)((0,s.default)(n)),"getStyle",function(){return{position:"relative",height:n.getCombinedHeaderHeights()}}),(0,c.default)((0,s.default)((0,s.default)(n)),"setScrollLeft",function(e){(p.default.findDOMNode(n.row).scrollLeft=e,n.row.setScrollLeft(e),n.filterRow)&&(p.default.findDOMNode(n.filterRow).scrollLeft=e,n.filterRow.setScrollLeft(e))}),(0,c.default)((0,s.default)((0,s.default)(n)),"getKnownDivProps",function(){return(0,R.default)(n.props,S)}),(0,c.default)((0,s.default)((0,s.default)(n)),"onHeaderClick",function(){n.props.cellMetaData.onCellClick({rowIdx:-1,idx:-1})}),n}return(0,d.default)(t,e),(0,a.default)(t,[{key:"componentWillReceiveProps",value:function(){this.setState({resizing:null})}},{key:"shouldComponentUpdate",value:function(e,t){return!m.default.sameColumns(this.props.columnMetrics.columns,e.columnMetrics.columns,m.default.sameColumn)||this.props.totalWidth!==e.totalWidth||this.props.headerRows.length!==e.headerRows.length||this.state.resizing!==t.resizing||this.props.sortColumn!==e.sortColumn||this.props.sortDirection!==e.sortDirection}},{key:"render",value:function(){var e=(0,g.default)({"react-grid-Header":!0,"react-grid-Header--resizing":!!this.state.resizing}),t=this.getHeaderRows();return f.default.createElement("div",(0,o.default)({},this.getKnownDivProps(),{style:this.getStyle(),className:e,onClick:this.onHeaderClick}),t)}}]),t}(f.default.Component);(0,c.default)(E,"propTypes",{columnMetrics:b.default.shape({width:b.default.number.isRequired,columns:b.default.any}).isRequired,totalWidth:b.default.oneOfType([b.default.number,b.default.string]),height:b.default.number.isRequired,headerRows:b.default.array.isRequired,sortColumn:b.default.string,sortDirection:b.default.oneOf(["ASC","DESC","NONE"]),onSort:b.default.func,onColumnResize:b.default.func,onScroll:b.default.func,onHeaderDrop:b.default.func,draggableHeaderCell:b.default.func,getValidFilterValues:b.default.func,cellMetaData:b.default.shape(y.default)}),e.exports=E},function(e,t,n){"use strict";var r=n(1).isValidElement;e.exports=function(e,t){var n;for(n in e)if(e.hasOwnProperty(n)){if("function"==typeof e[n]&&"function"==typeof t[n]||r(e[n])&&r(t[n]))continue;if(!t.hasOwnProperty(n)||e[n]!==t[n])return!1}for(n in t)if(t.hasOwnProperty(n)&&!e.hasOwnProperty(n))return!1;return!0}},function(e,t,n){"use strict";var r=n(2),o=r(n(40)),l=r(n(15)),a=r(n(3)),i=r(n(4)),u=r(n(5)),d=r(n(6)),s=r(n(7)),c=r(n(12)),f=r(n(10)),p=r(n(1)),g=r(n(268)),h=r(n(153)),m=r(n(103)),w=n(24),C=r(n(154)),v=r(n(272)),b=r(n(273)),R=r(n(58)),y=n(26);n(59);var x=r(n(0)),S={overflow:x.default.string,width:x.default.oneOfType([x.default.number,x.default.string]),height:x.default.number,position:x.default.string},E=["width","height","style","onScroll"],I=function(e){function t(){var e,n;(0,a.default)(this,t);for(var r=arguments.length,i=new Array(r),s=0;s<r;s++)i[s]=arguments[s];return n=(0,u.default)(this,(e=(0,d.default)(t)).call.apply(e,[this].concat(i))),(0,f.default)((0,c.default)((0,c.default)(n)),"cells",[]),(0,f.default)((0,c.default)((0,c.default)(n)),"getHeaderCellType",function(e){return e.filterable&&n.props.filterable?b.default.FILTERABLE:e.sortable&&e.rowType!==y.HeaderRowType.FILTER?b.default.SORTABLE:b.default.NONE}),(0,f.default)((0,c.default)((0,c.default)(n)),"getFilterableHeaderCell",function(e){var t=v.default;return void 0!==e.filterRenderer&&(t=e.filterRenderer),p.default.createElement(t,(0,l.default)({},n.props,{onChange:n.props.onFilterChange}))}),(0,f.default)((0,c.default)((0,c.default)(n)),"getSortableHeaderCell",function(e){var t=n.props.sortColumn===e.key?n.props.sortDirection:C.default.DEFINE_SORT.NONE,r=void 0!==e.sortDescendingFirst&&e.sortDescendingFirst;return p.default.createElement(C.default,{columnKey:e.key,onSort:n.props.onSort,sortDirection:t,sortDescendingFirst:r,headerRenderer:e.headerRenderer})}),(0,f.default)((0,c.default)((0,c.default)(n)),"getHeaderRenderer",function(e){if(e.headerRenderer&&!e.sortable&&!n.props.filterable)return e.headerRenderer;switch(n.getHeaderCellType(e)){case b.default.SORTABLE:return n.getSortableHeaderCell(e);case b.default.FILTERABLE:return n.getFilterableHeaderCell(e);default:return}}),(0,f.default)((0,c.default)((0,c.default)(n)),"getStyle",function(){return{overflow:"hidden",width:"100%",height:n.props.height,position:"absolute"}}),(0,f.default)((0,c.default)((0,c.default)(n)),"getCells",function(){for(var e=[],t=[],r=n.props,l=r.columns,a=r.rowType,i=function(r,i){var u=(0,o.default)({rowType:a},(0,w.getColumn)(l,r)),d="select-row"===u.key&&a===y.HeaderRowType.FILTER?p.default.createElement("div",null):n.getHeaderRenderer(u),s=p.default.createElement(h.default,{key:u.key,ref:function(e){return n.cells[r]=e},column:u,rowType:a,height:n.props.height,renderer:d,resizing:n.props.resizing===u,onResize:n.props.onColumnResize,onResizeEnd:n.props.onColumnResizeEnd,onHeaderDrop:n.props.onHeaderDrop,draggableHeaderCell:n.props.draggableHeaderCell});(0,w.isFrozen)(u)?t.push(s):e.push(s)},u=0,d=(0,w.getSize)(l);u<d;u++)i(u);return e.concat(t)}),(0,f.default)((0,c.default)((0,c.default)(n)),"setScrollLeft",function(e){n.props.columns.forEach(function(t,r){(0,w.isFrozen)(t)?n.cells[r].setScrollLeft(e):n.cells[r]&&n.cells[r].removeScroll&&n.cells[r].removeScroll()})}),(0,f.default)((0,c.default)((0,c.default)(n)),"getKnownDivProps",function(){return(0,R.default)(n.props,E)}),n}return(0,s.default)(t,e),(0,i.default)(t,[{key:"shouldComponentUpdate",value:function(e){return e.width!==this.props.width||e.height!==this.props.height||e.columns!==this.props.columns||!(0,g.default)(e.style,this.props.style)||this.props.sortColumn!==e.sortColumn||this.props.sortDirection!==e.sortDirection}},{key:"render",value:function(){var e={width:this.props.width?this.props.width+(0,m.default)():"100%",height:this.props.height,whiteSpace:"nowrap",overflowX:"hidden",overflowY:"hidden"},t=this.getCells();return p.default.createElement("div",(0,l.default)({},this.getKnownDivProps(),{className:"react-grid-HeaderRow"}),p.default.createElement("div",{style:e},t))}}]),t}(p.default.Component);(0,f.default)(I,"displayName","HeaderRow"),(0,f.default)(I,"propTypes",{width:x.default.oneOfType([x.default.number,x.default.string]),height:x.default.number.isRequired,columns:x.default.oneOfType([x.default.array,x.default.object]).isRequired,onColumnResize:x.default.func,onSort:x.default.func.isRequired,onColumnResizeEnd:x.default.func,style:x.default.shape(S),sortColumn:x.default.string,sortDirection:x.default.oneOf(Object.keys(C.default.DEFINE_SORT)),cellRenderer:x.default.func,headerCellRenderer:x.default.func,filterable:x.default.bool,onFilterChange:x.default.func,resizing:x.default.object,onScroll:x.default.func,rowType:x.default.string,draggableHeaderCell:x.default.func,onHeaderDrop:x.default.func}),e.exports=I},function(e,t){e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var l=Object.keys(e),a=Object.keys(t);if(l.length!==a.length)return!1;for(var i=Object.prototype.hasOwnProperty.bind(t),u=0;u<l.length;u++){var d=l[u];if(!i(d))return!1;var s=e[d],c=t[d];if(!1===(o=n?n.call(r,s,c,d):void 0)||void 0===o&&s!==c)return!1}return!0}},function(e,t,n){"use strict";var r=n(2),o=r(n(15)),l=r(n(3)),a=r(n(4)),i=r(n(5)),u=r(n(6)),d=r(n(7)),s=n(1),c=n(270);n(59);var f={position:"absolute",top:0,right:0,width:6,height:"100%"},p=function(e){function t(){return(0,l.default)(this,t),(0,i.default)(this,(0,u.default)(t).apply(this,arguments))}return(0,d.default)(t,e),(0,a.default)(t,[{key:"render",value:function(){return s.createElement(c,(0,o.default)({},this.props,{className:"react-grid-HeaderCell__resizeHandle",style:f}))}}]),t}(s.Component);e.exports=p},function(e,t,n){"use strict";var r=n(2),o=r(n(15)),l=r(n(3)),a=r(n(4)),i=r(n(5)),u=r(n(6)),d=r(n(7)),s=r(n(12)),c=r(n(10)),f=r(n(1)),p=r(n(0)),g=r(n(58));n(59);var h=["onDragStart","onDragEnd","onDrag","style"],m=function(e){function t(){var e,n;(0,l.default)(this,t);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return n=(0,i.default)(this,(e=(0,u.default)(t)).call.apply(e,[this].concat(o))),(0,c.default)((0,s.default)((0,s.default)(n)),"state",{drag:null}),(0,c.default)((0,s.default)((0,s.default)(n)),"onMouseDown",function(e){var t=n.props.onDragStart(e);e.preventDefault&&e.preventDefault(),null===t&&0!==e.button||(window.addEventListener("mouseup",n.onMouseUp),window.addEventListener("mousemove",n.onMouseMove),window.addEventListener("touchend",n.onMouseUp),window.addEventListener("touchmove",n.onMouseMove),n.setState({drag:t}))}),(0,c.default)((0,s.default)((0,s.default)(n)),"onMouseMove",function(e){null!==n.state.drag&&(e.preventDefault&&e.preventDefault(),n.props.onDrag(e))}),(0,c.default)((0,s.default)((0,s.default)(n)),"onMouseUp",function(e){n.cleanUp(),n.props.onDragEnd(e,n.state.drag),n.setState({drag:null})}),(0,c.default)((0,s.default)((0,s.default)(n)),"cleanUp",function(){window.removeEventListener("mouseup",n.onMouseUp),window.removeEventListener("mousemove",n.onMouseMove),window.removeEventListener("touchend",n.onMouseUp),window.removeEventListener("touchmove",n.onMouseMove)}),(0,c.default)((0,s.default)((0,s.default)(n)),"getKnownDivProps",function(){return(0,g.default)(n.props,h)}),n}return(0,d.default)(t,e),(0,a.default)(t,[{key:"componentWillUnmount",value:function(){this.cleanUp()}},{key:"render",value:function(){return f.default.createElement("div",(0,o.default)({},this.getKnownDivProps(),{onMouseDown:this.onMouseDown,onTouchStart:this.onMouseDown,className:"react-grid-HeaderCell__draggable"}))}}]),t}(f.default.Component);(0,c.default)(m,"propTypes",{onDragStart:p.default.func,onDragEnd:p.default.func,onDrag:p.default.func,component:p.default.oneOfType([p.default.func,p.default.constructor]),style:p.default.object}),(0,c.default)(m,"defaultProps",{onDragStart:function(){return!0},onDragEnd:function(){},onDrag:function(){}}),e.exports=m},function(e,t,n){(e.exports=n(22)()).push([e.i,".react-grid-Header {\r\n  box-shadow: 0px 0px 4px 0px #dddddd;\r\n  background: #f9f9f9;\r\n}\r\n.react-grid-Header--resizing {\r\n  cursor: ew-resize;\r\n}\r\n.react-grid-HeaderRow {\r\n  -webkit-user-select: none;\r\n  -moz-user-select: none;\r\n  -ms-user-select: none;\r\n  user-select: none;\r\n}\r\n.react-grid-HeaderCell {\r\n  -webkit-user-select: none;\r\n  -moz-user-select: none;\r\n  -ms-user-select: none;\r\n  user-select: none;\r\n  background: #f9f9f9;\r\n  padding: 8px;\r\n  font-weight: bold;\r\n  border-right: 1px solid #dddddd;\r\n  border-bottom: 1px solid #dddddd;\r\n}\r\n.react-grid-HeaderCell__value {\r\n  white-space: nowrap;\r\n  text-overflow: ellipsis;\r\n  overflow: hidden;\r\n  position: relative;\r\n  top: 50%;\r\n  transform: translateY(-50%);\r\n}\r\n.react-grid-HeaderCell__resizeHandle:hover {\r\n  cursor: ew-resize;\r\n  background: #dddddd;\r\n}\r\n.react-grid-HeaderCell--frozen:last-of-type {\r\n    box-shadow: 2px 0 5px -2px rgba(136, 136, 136, .3);\r\n}\r\n.react-grid-HeaderCell--resizing .react-grid-HeaderCell__resizeHandle {\r\n  background: #dddddd;\r\n}\r\n.react-grid-HeaderCell__draggable {\r\n    cursor: col-resize\r\n}\r\n.rdg-can-drop > .react-grid-HeaderCell {\r\n  background: #ececec;\r\n}\r\n\r\n.react-grid-HeaderCell .Select {\r\n    max-height: 30px;\r\n    font-size: 12px;\r\n    font-weight: normal;\r\n}\r\n\r\n.react-grid-HeaderCell .Select-control {\r\n    max-height: 30px;\r\n    border: 1px solid #cccccc;\r\n    color: #555;\r\n    border-radius: 3px;\r\n}\r\n\r\n.react-grid-HeaderCell .is-focused:not(.is-open) > .Select-control {\r\n    border-color: #66afe9;\r\n    outline: 0;\r\n    -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102,175,233,.6);\r\n    box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102,175,233,.6);\r\n}\r\n\r\n.react-grid-HeaderCell .Select-control .Select-placeholder {\r\n    line-height: 20px;\r\n    color: #999;\r\n    padding: 4px;\r\n}\r\n\r\n.react-grid-HeaderCell .Select-control .Select-input {\r\n    max-height: 28px;\r\n    padding: 4px;\r\n    margin-left: 0px\r\n}\r\n\r\n.react-grid-HeaderCell .Select-control .Select-input input {\r\n    padding: 0px;\r\n    height: 100%;\r\n}\r\n\r\n.react-grid-HeaderCell .Select-control .Select-arrow-zone .Select-arrow {\r\n    border-color: gray transparent transparent;\r\n    border-width: 4px 4px 2.5px;\r\n}\r\n\r\n\r\n.react-grid-HeaderCell .Select-control .Select-value {\r\n    padding: 4px;\r\n    line-height: 20px !important;\r\n}\r\n\r\n.react-grid-HeaderCell .Select--multi .Select-control .Select-value {\r\n    padding: 0px;\r\n    line-height: 16px !important;\r\n    max-height: 20px;\r\n}\r\n\r\n.react-grid-HeaderCell .Select--multi .Select-control .Select-value .Select-value-icon {\r\n    max-height: 20px;\r\n}\r\n\r\n.react-grid-HeaderCell .Select--multi .Select-control .Select-value .Select-value-label {\r\n    max-height: 20px;\r\n}\r\n\r\n.react-grid-HeaderCell .Select-control .Select-value .Select-value-label {\r\n    color: #555555 !important;\r\n}\r\n\r\n.react-grid-HeaderCell .Select-menu-outer {\r\n  z-index: 2;\r\n}\r\n\r\n.react-grid-HeaderCell .Select-menu-outer .Select-option {\r\n    padding: 4px;\r\n    line-height: 20px;\r\n}\r\n\r\n.react-grid-HeaderCell .Select-menu-outer .Select-menu .Select-option.is-selected {\r\n    color: #555555;\r\n}\r\n\r\n.react-grid-HeaderCell .Select-menu-outer .Select-menu .Select-option.is-focused {\r\n    color: #555555;\r\n}\r\n\r\n",""])},function(e,t,n){"use strict";var r=n(2),o=r(n(3)),l=r(n(4)),a=r(n(5)),i=r(n(6)),u=r(n(7)),d=r(n(12)),s=r(n(10)),c=r(n(1)),f=r(n(34)),p=r(n(0)),g=function(e){function t(){var e,n;(0,o.default)(this,t);for(var r=arguments.length,l=new Array(r),u=0;u<r;u++)l[u]=arguments[u];return n=(0,a.default)(this,(e=(0,i.default)(t)).call.apply(e,[this].concat(l))),(0,s.default)((0,d.default)((0,d.default)(n)),"state",{filterTerm:""}),(0,s.default)((0,d.default)((0,d.default)(n)),"handleChange",function(e){var t=e.target.value;n.setState({filterTerm:t}),n.props.onChange({filterTerm:t,column:n.props.column})}),(0,s.default)((0,d.default)((0,d.default)(n)),"renderInput",function(){if(!1===n.props.column.filterable)return c.default.createElement("span",null);var e="header-filter-"+n.props.column.key;return c.default.createElement("input",{key:e,type:"text",className:"form-control input-sm",placeholder:"Search",value:n.state.filterTerm,onChange:n.handleChange})}),n}return(0,u.default)(t,e),(0,l.default)(t,[{key:"render",value:function(){return c.default.createElement("div",null,c.default.createElement("div",{className:"form-group"},this.renderInput()))}}]),t}(c.default.Component);(0,s.default)(g,"propTypes",{onChange:p.default.func.isRequired,column:p.default.shape(f.default)}),e.exports=g},function(e,t,n){"use strict";e.exports={SORTABLE:0,FILTERABLE:1,NONE:2,CHECKBOX:3}},function(e,t,n){"use strict";var r=n(2),o=r(n(3)),l=r(n(4)),a=r(n(5)),i=r(n(6)),u=r(n(7)),d=r(n(12)),s=r(n(10)),c=r(n(1)),f=r(n(275)),p=r(n(75)),g=r(n(0)),h=n(24),m=n(295),w=function(e){function t(){var e,n;(0,o.default)(this,t);for(var r=arguments.length,l=new Array(r),u=0;u<r;u++)l[u]=arguments[u];return n=(0,a.default)(this,(e=(0,i.default)(t)).call.apply(e,[this].concat(l))),(0,s.default)((0,d.default)((0,d.default)(n)),"state",(0,m.getGridState)(n.props)),(0,s.default)((0,d.default)((0,d.default)(n)),"onScroll",function(e){var t=e.scrollTop,r=e.scrollLeft,o=n.props,l=o.rowHeight,a=o.rowsCount,i=o.onScroll,u=n.updateScroll({scrollTop:t,scrollLeft:r,height:n.state.height,rowHeight:l,rowsCount:a});i&&i(u)}),(0,s.default)((0,d.default)((0,d.default)(n)),"getScroll",function(){return n.canvas.getScroll()}),(0,s.default)((0,d.default)((0,d.default)(n)),"setScrollLeft",function(e){n.canvas.setScrollLeft(e)}),(0,s.default)((0,d.default)((0,d.default)(n)),"getDOMNodeOffsetWidth",function(){return n.viewport?n.viewport.offsetWidth:0}),(0,s.default)((0,d.default)((0,d.default)(n)),"clearScrollTimer",function(){n.resetScrollStateTimeoutId&&clearTimeout(n.resetScrollStateTimeoutId)}),(0,s.default)((0,d.default)((0,d.default)(n)),"resetScrollStateAfterDelay",function(){n.clearScrollTimer(),n.resetScrollStateTimeoutId=setTimeout(n.resetScrollStateAfterDelayCallback,500)}),(0,s.default)((0,d.default)((0,d.default)(n)),"resetScrollStateAfterDelayCallback",function(){n.resetScrollStateTimeoutId=null,n.setState({isScrolling:!1})}),(0,s.default)((0,d.default)((0,d.default)(n)),"updateScroll",function(e){n.resetScrollStateAfterDelay();var t=n.getNextScrollState(e);return n.setState(t),t}),(0,s.default)((0,d.default)((0,d.default)(n)),"metricsUpdated",function(){var e=n.viewportHeight(),t=n.viewportWidth();if(e){var r=n.state,o=r.scrollTop,l=r.scrollLeft,a=n.props,i=a.rowHeight,u=a.rowsCount;n.updateScroll({scrollTop:o,scrollLeft:l,height:e,rowHeight:i,rowsCount:u,width:t})}}),(0,s.default)((0,d.default)((0,d.default)(n)),"viewportHeight",function(){return n.viewport?n.viewport.offsetHeight:0}),(0,s.default)((0,d.default)((0,d.default)(n)),"viewportWidth",function(){return n.viewport?n.viewport.offsetWidth:0}),(0,s.default)((0,d.default)((0,d.default)(n)),"setViewportRef",function(e){n.viewport=e}),(0,s.default)((0,d.default)((0,d.default)(n)),"setCanvasRef",function(e){n.canvas=e}),n}return(0,u.default)(t,e),(0,l.default)(t,[{key:"getNextScrollState",value:function(e){var t=e.scrollTop,n=e.scrollLeft,r=e.height,o=e.rowHeight,l=e.rowsCount,a=this.props.columnMetrics.columns,i=(0,m.getScrollDirection)(this.state,t,n),u=(0,m.getVisibleBoundaries)(r,o,t,l),d=u.rowVisibleStartIdx,s=u.rowVisibleEndIdx,c=(0,m.getRowOverscanStartIdx)(i,d),f=(0,m.getRowOverscanEndIdx)(i,s,l),p=(0,h.getSize)(a),g=(0,m.findLastFrozenColumnIndex)(a),w=(0,m.getNonFrozenVisibleColStartIdx)(a,n),C=(0,m.getNonFrozenRenderedColumnCount)(this.props.columnMetrics,this.getDOMNodeOffsetWidth(),n),v=Math.min(w+C,p);return{height:r,scrollTop:t,scrollLeft:n,rowVisibleStartIdx:d,rowVisibleEndIdx:s,rowOverscanStartIdx:c,rowOverscanEndIdx:f,colVisibleStartIdx:w,colVisibleEndIdx:v,colOverscanStartIdx:(0,m.getColOverscanStartIdx)(i,w,g),colOverscanEndIdx:(0,m.getColOverscanEndIdx)(i,v,p),scrollDirection:i,lastFrozenColumnIndex:g,isScrolling:!0}}},{key:"componentWillReceiveProps",value:function(e){var t=e.rowHeight,n=e.rowsCount;if(this.props.rowHeight!==e.rowHeight||this.props.minHeight!==e.minHeight){var r=(0,m.getGridState)(e),o=r.scrollTop,l=r.scrollLeft,a=r.height;this.updateScroll({scrollTop:o,scrollLeft:l,height:a,rowHeight:t,rowsCount:n})}else if((0,h.getSize)(this.props.columnMetrics.columns)!==(0,h.getSize)(e.columnMetrics.columns))this.setState((0,m.getGridState)(e));else if(this.props.rowsCount!==e.rowsCount){var i=this.state,u=i.scrollTop,d=i.scrollLeft,s=i.height;this.updateScroll({scrollTop:u,scrollLeft:d,height:s,rowHeight:t,rowsCount:n})}else if(this.props.rowOffsetHeight!==e.rowOffsetHeight){var c=this.state,f=c.scrollTop,p=c.scrollLeft,g=this.state.height+this.props.rowOffsetHeight-e.rowOffsetHeight;this.updateScroll({scrollTop:f,scrollLeft:p,height:g,rowHeight:t,rowsCount:n})}}},{key:"componentDidMount",value:function(){window.addEventListener("resize",this.metricsUpdated),this.metricsUpdated()}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.metricsUpdated),this.clearScrollTimer()}},{key:"render",value:function(){var e={padding:0,bottom:0,left:0,right:0,overflow:"hidden",position:"absolute",top:this.props.rowOffsetHeight};return c.default.createElement("div",{className:"react-grid-Viewport",style:e,ref:this.setViewportRef},c.default.createElement(f.default,{ref:this.setCanvasRef,rowKey:this.props.rowKey,totalWidth:this.props.totalWidth,width:this.props.columnMetrics.width,totalColumnWidth:this.props.columnMetrics.totalColumnWidth,rowGetter:this.props.rowGetter,rowsCount:this.props.rowsCount,selectedRows:this.props.selectedRows,expandedRows:this.props.expandedRows,columns:this.props.columnMetrics.columns,rowRenderer:this.props.rowRenderer,rowOverscanStartIdx:this.state.rowOverscanStartIdx,rowOverscanEndIdx:this.state.rowOverscanEndIdx,rowVisibleStartIdx:this.state.rowVisibleStartIdx,rowVisibleEndIdx:this.state.rowVisibleEndIdx,colVisibleStartIdx:this.state.colVisibleStartIdx,colVisibleEndIdx:this.state.colVisibleEndIdx,colOverscanStartIdx:this.state.colOverscanStartIdx,colOverscanEndIdx:this.state.colOverscanEndIdx,lastFrozenColumnIndex:this.state.lastFrozenColumnIndex,cellMetaData:this.props.cellMetaData,height:this.state.height,rowHeight:this.props.rowHeight,onScroll:this.onScroll,onRows:this.props.onRows,rowScrollTimeout:this.props.rowScrollTimeout,scrollToRowIndex:this.props.scrollToRowIndex,contextMenu:this.props.contextMenu,rowSelection:this.props.rowSelection,getSubRowDetails:this.props.getSubRowDetails,rowGroupRenderer:this.props.rowGroupRenderer,isScrolling:this.state.isScrolling||!1,enableCellSelect:this.props.enableCellSelect,enableCellAutoFocus:this.props.enableCellAutoFocus,cellNavigationMode:this.props.cellNavigationMode,eventBus:this.props.eventBus,onCheckCellIsEditable:this.props.onCheckCellIsEditable,onCellCopyPaste:this.props.onCellCopyPaste,onGridRowsUpdated:this.props.onGridRowsUpdated,onDragHandleDoubleClick:this.props.onDragHandleDoubleClick,onCellSelected:this.props.onCellSelected,onCellDeSelected:this.props.onCellDeSelected,onCellRangeSelectionStarted:this.props.onCellRangeSelectionStarted,onCellRangeSelectionUpdated:this.props.onCellRangeSelectionUpdated,onCellRangeSelectionCompleted:this.props.onCellRangeSelectionCompleted,onCommit:this.props.onCommit,RowsContainer:this.props.RowsContainer,prevScrollLeft:this.state.prevScrollLeft,prevScrollTop:this.state.prevScrollTop}))}}]),t}(c.default.Component);(0,s.default)(w,"displayName","Viewport"),(0,s.default)(w,"propTypes",{rowOffsetHeight:g.default.number.isRequired,totalWidth:g.default.oneOfType([g.default.number,g.default.string]).isRequired,columnMetrics:g.default.object.isRequired,rowGetter:g.default.oneOfType([g.default.array,g.default.func]).isRequired,selectedRows:g.default.array,rowSelection:g.default.oneOfType([g.default.shape({indexes:g.default.arrayOf(g.default.number).isRequired}),g.default.shape({isSelectedKey:g.default.string.isRequired}),g.default.shape({keys:g.default.shape({values:g.default.array.isRequired,rowKey:g.default.string.isRequired}).isRequired})]),expandedRows:g.default.array,rowRenderer:g.default.oneOfType([g.default.element,g.default.func]),rowsCount:g.default.number.isRequired,rowHeight:g.default.number.isRequired,onRows:g.default.func,onScroll:g.default.func,minHeight:g.default.number,cellMetaData:g.default.shape(p.default),rowKey:g.default.string.isRequired,rowScrollTimeout:g.default.number,scrollToRowIndex:g.default.number,contextMenu:g.default.element,getSubRowDetails:g.default.func,rowGroupRenderer:g.default.func,enableCellSelect:g.default.bool.isRequired,enableCellAutoFocus:g.default.bool.isRequired,cellNavigationMode:g.default.string.isRequired,eventBus:g.default.object.isRequired,onCheckCellIsEditable:g.default.func,onCellCopyPaste:g.default.func,onGridRowsUpdated:g.default.func.isRequired,onDragHandleDoubleClick:g.default.func.isRequired,onCellSelected:g.default.func,onCellDeSelected:g.default.func,onCellRangeSelectionStarted:g.default.func,onCellRangeSelectionUpdated:g.default.func,onCellRangeSelectionCompleted:g.default.func,onCommit:g.default.func.isRequired,RowsContainer:g.default.node}),(0,s.default)(w,"defaultProps",{rowHeight:30}),e.exports=w},function(e,t,n){"use strict";var r=n(21),o=n(2),l=o(n(15)),a=o(n(40)),i=o(n(108)),u=o(n(3)),d=o(n(4)),s=o(n(5)),c=o(n(6)),f=o(n(7)),p=o(n(12)),g=o(n(10)),h=o(n(1)),m=o(n(0)),w=o(n(155)),C=o(n(280)),v=o(n(158)),b=r(n(112)),R=o(n(281)),y=n(159),x=n(294),S=n(20),E=n(26);n(78);var I=function(e){function t(){var e,n;(0,u.default)(this,t);for(var r=arguments.length,o=new Array(r),l=0;l<r;l++)o[l]=arguments[l];return n=(0,s.default)(this,(e=(0,c.default)(t)).call.apply(e,[this].concat(o))),(0,g.default)((0,p.default)((0,p.default)(n)),"state",{scrollingTimeout:null}),(0,g.default)((0,p.default)((0,p.default)(n)),"rows",[]),(0,g.default)((0,p.default)((0,p.default)(n)),"_currentRowsRange",{start:0,end:0}),(0,g.default)((0,p.default)((0,p.default)(n)),"_scroll",{scrollTop:0,scrollLeft:0}),(0,g.default)((0,p.default)((0,p.default)(n)),"onRows",function(){n._currentRowsRange!=={start:0,end:0}&&(n.props.onRows(n._currentRowsRange),n._currentRowsRange={start:0,end:0})}),(0,g.default)((0,p.default)((0,p.default)(n)),"scrollToRow",function(e){var t=n.props,r=t.rowHeight,o=t.rowsCount,l=t.height;n.canvas.scrollTop=Math.min(e*r,o*r-l)}),(0,g.default)((0,p.default)((0,p.default)(n)),"onScroll",function(e){if(n.canvas===e.target){var t=e.target,r=t.scrollLeft,o={scrollTop:t.scrollTop,scrollLeft:r};n._scroll=o,n.props.onScroll(o)}}),(0,g.default)((0,p.default)((0,p.default)(n)),"getClientScrollTopOffset",function(e){var t=n.props.rowHeight,r=e.scrollTop%t;return r>0?t-r:0}),(0,g.default)((0,p.default)((0,p.default)(n)),"onHitBottomCanvas",function(){var e=n.props.rowHeight,t=n.canvas;t.scrollTop+=e+n.getClientScrollTopOffset(t)}),(0,g.default)((0,p.default)((0,p.default)(n)),"onHitTopCanvas",function(){var e=n.props.rowHeight,t=n.canvas;t.scrollTop-=e-n.getClientScrollTopOffset(t)}),(0,g.default)((0,p.default)((0,p.default)(n)),"scrollToColumn",function(e){var t=n.canvas,r=t.scrollLeft,o=t.clientWidth,l=(0,x.getColumnScrollPosition)(n.props.columns,e,r,o);null!=l&&(n.canvas.scrollLeft=r+l)}),(0,g.default)((0,p.default)((0,p.default)(n)),"onHitLeftCanvas",function(e){var t=e.idx;n.scrollToColumn(t)}),(0,g.default)((0,p.default)((0,p.default)(n)),"onHitRightCanvas",function(e){var t=e.idx;n.scrollToColumn(t)}),(0,g.default)((0,p.default)((0,p.default)(n)),"getRows",function(e,t){if(n._currentRowsRange={start:e,end:t},Array.isArray(n.props.rowGetter))return n.props.rowGetter.slice(e,t);for(var r=[],o=e;o<t;){var l=n.props.rowGetter(o),a={};n.props.getSubRowDetails&&(a=n.props.getSubRowDetails(l)),r.push({row:l,subRowDetails:a}),o++}return r}),(0,g.default)((0,p.default)((0,p.default)(n)),"getScroll",function(){var e=n.canvas;return{scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}}),(0,g.default)((0,p.default)((0,p.default)(n)),"isRowSelected",function(e,t){if(null!==n.props.selectedRows){var r=n.props.selectedRows.filter(function(e){var r=t.get?t.get(n.props.rowKey):t[n.props.rowKey];return e[n.props.rowKey]===r});return r.length>0&&r[0].isSelected}if(n.props.rowSelection){var o=n.props.rowSelection,l=o.keys,a=o.indexes,i=o.isSelectedKey;return b.isRowSelected(l,a,i,t,e)}return!1}),(0,g.default)((0,p.default)((0,p.default)(n)),"setScrollLeft",function(e){n.interactionMasks&&n.interactionMasks.setScrollLeft&&n.interactionMasks.setScrollLeft(e),n.rows.forEach(function(t,r){if(t){var o=n.getRowByRef(r);o&&o.setScrollLeft&&o.setScrollLeft(e)}})}),(0,g.default)((0,p.default)((0,p.default)(n)),"getRowByRef",function(e){var t=n.rows[e]&&n.rows[e].getDecoratedComponentInstance?n.rows[e].getDecoratedComponentInstance(e):null;return t?t.row:n.rows[e]}),(0,g.default)((0,p.default)((0,p.default)(n)),"getRowTop",function(e){var t=n.getRowByRef(e);return t&&(0,S.isFunction)(t.getRowTop)?t.getRowTop():n.props.rowHeight*e}),(0,g.default)((0,p.default)((0,p.default)(n)),"getRowHeight",function(e){var t=n.getRowByRef(e);return t&&(0,S.isFunction)(t.getRowHeight)?t.getRowHeight():n.props.rowHeight}),(0,g.default)((0,p.default)((0,p.default)(n)),"getRowColumns",function(e){var t=n.getRowByRef(e);return t&&t.props?t.props.columns:n.props.columns}),(0,g.default)((0,p.default)((0,p.default)(n)),"setCanvasRef",function(e){n.canvas=e}),(0,g.default)((0,p.default)((0,p.default)(n)),"setRowRef",function(e){return function(t){n.rows[e]=t}}),(0,g.default)((0,p.default)((0,p.default)(n)),"setInteractionMasksRef",function(e){n.interactionMasks=e}),(0,g.default)((0,p.default)((0,p.default)(n)),"renderRow",function(e){var t=e.row;return t.__metaData&&t.__metaData.getRowRenderer?t.__metaData.getRowRenderer(n.props,e.idx):t.__metaData&&t.__metaData.isGroup?n.renderGroupRow(e):n.props.rowRenderer?n.renderCustomRowRenderer(e):h.default.createElement(w.default,e)}),(0,g.default)((0,p.default)((0,p.default)(n)),"renderPlaceholder",function(e,t){return h.default.createElement("div",{key:e,style:{height:t}},n.props.columns.map(function(e,t){return h.default.createElement("div",{style:{width:e.width},key:t})}))}),n}return(0,f.default)(t,e),(0,d.default)(t,[{key:"componentDidMount",value:function(){this.unsubscribeScrollToColumn=this.props.eventBus.subscribe(E.EventTypes.SCROLL_TO_COLUMN,this.scrollToColumn),this.onRows()}},{key:"componentWillUnmount",value:function(){this._currentRowsRange={start:0,end:0},this._scroll={scrollTop:0,scrollLeft:0},this.rows=[],this.unsubscribeScrollToColumn()}},{key:"componentDidUpdate",value:function(e){var t=this.props.scrollToRowIndex;e.scrollToRowIndex!==t&&0!==t&&this.scrollToRow(t),this.onRows()}},{key:"renderCustomRowRenderer",value:function(e){var t=e.ref,n=(0,i.default)(e,["ref"]),r=this.props.rowRenderer,o=(0,a.default)({},n,{renderBaseRow:function(e){return h.default.createElement(w.default,(0,l.default)({ref:t},e))}});return r.type===w.default?h.default.createElement(w.default,e):(0,S.isFunction)(r)?h.default.createElement(r,o):h.default.isValidElement(r)?h.default.cloneElement(r,o):void 0}},{key:"renderGroupRow",value:function(e){var t=e.ref,n=(0,i.default)(e,["ref"]);return h.default.createElement(R.default,(0,l.default)({},n,e.row.__metaData,{rowRef:e.ref,name:e.row.name,eventBus:this.props.eventBus,renderer:this.props.rowGroupRenderer,renderBaseRow:function(e){return h.default.createElement(w.default,(0,l.default)({ref:t},e))}}))}},{key:"render",value:function(){var e=this,t=this.props,n=t.rowOverscanStartIdx,r=t.rowOverscanEndIdx,o=t.cellMetaData,l=t.columns,a=t.colOverscanStartIdx,i=t.colOverscanEndIdx,u=t.colVisibleStartIdx,d=t.colVisibleEndIdx,s=t.lastFrozenColumnIndex,c=t.expandedRows,f=t.rowHeight,p=t.rowsCount,g=t.totalColumnWidth,m=t.totalWidth,w=t.height,C=t.rowGetter,v=t.RowsContainer,b=t.contextMenu,R=this.getRows(n,r).map(function(t,p){var g=n+p,h="row-".concat(g);return t.row&&e.renderRow({key:h,ref:e.setRowRef(g),idx:g,rowVisibleStartIdx:e.props.rowVisibleStartIdx,rowVisibleEndIdx:e.props.rowVisibleEndIdx,row:t.row,height:f,onMouseOver:e.onMouseOver,columns:l,isSelected:e.isRowSelected(g,t.row,n,r),expandedRows:c,cellMetaData:o,subRowDetails:t.subRowDetails,colVisibleStartIdx:u,colVisibleEndIdx:d,colOverscanStartIdx:a,colOverscanEndIdx:i,lastFrozenColumnIndex:s,isScrolling:e.props.isScrolling,scrollLeft:e._scroll.scrollLeft})});n>0&&R.unshift(this.renderPlaceholder("top",n*f)),p-r>0&&R.push(this.renderPlaceholder("bottom",(p-r)*f));var x={position:"absolute",top:0,left:0,overflowX:"auto",overflowY:"scroll",width:m,height:w};return h.default.createElement("div",{ref:this.setCanvasRef,style:x,onScroll:this.onScroll,className:"react-grid-Canvas"},h.default.createElement(y.InteractionMasks,{ref:this.setInteractionMasksRef,rowGetter:C,rowsCount:p,width:this.props.totalWidth,height:w,rowHeight:f,columns:l,rowOverscanStartIdx:this.props.rowOverscanStartIdx,rowVisibleStartIdx:this.props.rowVisibleStartIdx,rowVisibleEndIdx:this.props.rowVisibleEndIdx,colVisibleStartIdx:u,colVisibleEndIdx:d,enableCellSelect:this.props.enableCellSelect,enableCellAutoFocus:this.props.enableCellAutoFocus,cellNavigationMode:this.props.cellNavigationMode,eventBus:this.props.eventBus,contextMenu:this.props.contextMenu,onHitBottomBoundary:this.onHitBottomCanvas,onHitTopBoundary:this.onHitTopCanvas,onHitLeftBoundary:this.onHitLeftCanvas,onHitRightBoundary:this.onHitRightCanvas,onCommit:this.props.onCommit,onCheckCellIsEditable:this.props.onCheckCellIsEditable,onCellCopyPaste:this.props.onCellCopyPaste,onGridRowsUpdated:this.props.onGridRowsUpdated,onDragHandleDoubleClick:this.props.onDragHandleDoubleClick,onCellSelected:this.props.onCellSelected,onCellDeSelected:this.props.onCellDeSelected,onCellRangeSelectionStarted:this.props.onCellRangeSelectionStarted,onCellRangeSelectionUpdated:this.props.onCellRangeSelectionUpdated,onCellRangeSelectionCompleted:this.props.onCellRangeSelectionCompleted,scrollLeft:this._scroll.scrollLeft,scrollTop:this._scroll.scrollTop,getRowHeight:this.getRowHeight,getRowTop:this.getRowTop,getRowColumns:this.getRowColumns}),h.default.createElement(v,{id:b?b.props.id:"rowsContainer"},h.default.createElement("div",{style:{width:g}},R)))}}]),t}(h.default.PureComponent);(0,g.default)(I,"propTypes",{rowRenderer:m.default.oneOfType([m.default.func,m.default.element]),rowHeight:m.default.number.isRequired,height:m.default.number.isRequired,width:m.default.number,totalWidth:m.default.oneOfType([m.default.number,m.default.string]),style:m.default.string,className:m.default.string,rowOverscanStartIdx:m.default.number.isRequired,rowOverscanEndIdx:m.default.number.isRequired,rowVisibleStartIdx:m.default.number.isRequired,rowVisibleEndIdx:m.default.number.isRequired,colVisibleStartIdx:m.default.number.isRequired,colVisibleEndIdx:m.default.number.isRequired,colOverscanStartIdx:m.default.number.isRequired,colOverscanEndIdx:m.default.number.isRequired,rowsCount:m.default.number.isRequired,rowGetter:m.default.oneOfType([m.default.func.isRequired,m.default.array.isRequired]),expandedRows:m.default.array,onRows:m.default.func,onScroll:m.default.func,columns:m.default.oneOfType([m.default.object,m.default.array]).isRequired,cellMetaData:m.default.shape(v.default).isRequired,selectedRows:m.default.array,rowKey:m.default.string,rowScrollTimeout:m.default.number,scrollToRowIndex:m.default.number,contextMenu:m.default.element,getSubRowDetails:m.default.func,rowSelection:m.default.oneOfType([m.default.shape({indexes:m.default.arrayOf(m.default.number).isRequired}),m.default.shape({isSelectedKey:m.default.string.isRequired}),m.default.shape({keys:m.default.shape({values:m.default.array.isRequired,rowKey:m.default.string.isRequired}).isRequired})]),rowGroupRenderer:m.default.func,isScrolling:m.default.bool,length:m.default.number,enableCellSelect:m.default.bool.isRequired,enableCellAutoFocus:m.default.bool.isRequired,cellNavigationMode:m.default.string.isRequired,eventBus:m.default.object.isRequired,onCheckCellIsEditable:m.default.func,onCellCopyPaste:m.default.func,onGridRowsUpdated:m.default.func.isRequired,onDragHandleDoubleClick:m.default.func.isRequired,onCellSelected:m.default.func,onCellDeSelected:m.default.func,onCellRangeSelectionStarted:m.default.func,onCellRangeSelectionUpdated:m.default.func,onCellRangeSelectionCompleted:m.default.func,onCommit:m.default.func.isRequired}),(0,g.default)(I,"defaultProps",{onRows:function(){},selectedRows:[],rowScrollTimeout:0,scrollToRowIndex:0,RowsContainer:C.default}),e.exports=I},function(e,t){e.exports=function(e,t){if(null==e)return{};var n,r,o={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(3)),l=r(n(4)),a=r(n(5)),i=r(n(6)),u=r(n(7)),d=r(n(12)),s=r(n(10)),c=r(n(8)),f=r(n(1)),p=r(n(0)),g=r(n(158)),h=function(e){function t(){var e,n;(0,o.default)(this,t);for(var r=arguments.length,l=new Array(r),u=0;u<r;u++)l[u]=arguments[u];return n=(0,a.default)(this,(e=(0,i.default)(t)).call.apply(e,[this].concat(l))),(0,s.default)((0,d.default)((0,d.default)(n)),"state",{isMenuOpen:!1}),(0,s.default)((0,d.default)((0,d.default)(n)),"onToggleMenu",function(){n.setState(function(e){return{isMenuOpen:!e.isMenuOpen}})}),(0,s.default)((0,d.default)((0,d.default)(n)),"onHideMenu",function(){n.setState({isMenuOpen:!1})}),(0,s.default)((0,d.default)((0,d.default)(n)),"onGetMenuOptions",function(){return n.props.action.actions.map(function(e,t){return f.default.createElement("span",{key:t,onClick:e.callback},e.text)})}),(0,s.default)((0,d.default)((0,d.default)(n)),"isActionMenu",function(){return!n.props.action.callback&&n.props.action.actions&&n.props.action.actions.length}),(0,s.default)((0,d.default)((0,d.default)(n)),"onActionButtonBlur",function(){n.isActionMenu()&&n.onHideMenu()}),(0,s.default)((0,d.default)((0,d.default)(n)),"onActionIconClick",function(){n.isActionMenu()?n.props.action.actions&&n.props.action.actions.length&&n.onToggleMenu():n.props.action.callback()}),n}return(0,u.default)(t,e),(0,l.default)(t,[{key:"render",value:function(){var e=this.isActionMenu(),t=(0,c.default)("rdg-cell-action",{"rdg-cell-action-last":this.props.isFirst}),n=(0,c.default)("rdg-cell-action-button",{"rdg-cell-action-button-toggled":this.state.isMenuOpen});return f.default.createElement("div",{className:t,onMouseLeave:this.onActionButtonBlur},f.default.createElement("div",{className:n,onClick:this.onActionIconClick},"string"==typeof this.props.action.icon?f.default.createElement("span",{className:this.props.action.icon}):this.props.action.icon),e&&this.state.isMenuOpen&&f.default.createElement("div",{className:"rdg-cell-action-menu"},this.onGetMenuOptions()))}}]),t}(f.default.Component);(0,s.default)(h,"propTypes",{action:p.default.shape(g.default).isRequired,isFirst:p.default.bool.isRequired});var m=h;t.default=m},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(3)),l=r(n(4)),a=r(n(5)),i=r(n(6)),u=r(n(7)),d=r(n(12)),s=r(n(10)),c=r(n(1)),f=r(n(0)),p=n(26),g=function(e){function t(e){var n;(0,o.default)(this,t),n=(0,a.default)(this,(0,i.default)(t).call(this,e)),(0,s.default)((0,d.default)((0,d.default)(n)),"onCellExpand",function(e){n.setState({expanded:!n.state.expanded}),n.props.onCellExpand(e)});var r=e.expandableOptions&&e.expandableOptions.expanded;return n.state={expanded:r},n}return(0,u.default)(t,e),(0,l.default)(t,[{key:"componentWillReceiveProps",value:function(e){var t=e.expandableOptions&&e.expandableOptions.expanded;this.state.expanded!==t&&this.setState({expanded:t})}},{key:"render",value:function(){return c.default.createElement("div",{className:"rdg-cell-expand"},c.default.createElement("span",{onClick:this.onCellExpand},this.state.expanded?p.CellExpand.DOWN_TRIANGLE:p.CellExpand.RIGHT_TRIANGLE))}}]),t}(c.default.Component);(0,s.default)(g,"propTypes",{expandableOptions:f.default.object.isRequired,onCellExpand:f.default.func.isRequired});var h=g;t.default=h},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(1)),l=r(n(8)),a=function(e){var t=e.treeDepth,n=e.cellHeight,r=e.siblingIndex,a=e.numberSiblings,i=e.onDeleteSubRow,u=e.isDeleteSubRowEnabled,d=e.allowAddChildRow,s=void 0===d||d,c=r===a-1,f=(0,l.default)({"rdg-child-row-action-cross":!0===s||!c},{"rdg-child-row-action-cross-last":!1===s&&(c||1===a)}),p=15*t,g=(n-12)/2;return o.default.createElement("div",null,o.default.createElement("div",{className:f}),u&&o.default.createElement("div",{style:{left:p,top:g,width:12,height:12},className:"rdg-child-row-btn",onClick:i},o.default.createElement("div",{className:"glyphicon glyphicon-remove-sign"})))};t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=function(e){return e.children}},function(e,t,n){"use strict";var r=n(21),o=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var l=o(n(15)),a=o(n(3)),i=o(n(4)),u=o(n(5)),d=o(n(6)),s=o(n(7)),c=o(n(12)),f=o(n(10)),p=r(n(1)),g=o(n(0)),h=n(20),m=o(n(75)),w=n(26);n(61);var C=function(e){function t(){var e,n;(0,a.default)(this,t);for(var r=arguments.length,o=new Array(r),l=0;l<r;l++)o[l]=arguments[l];return n=(0,u.default)(this,(e=(0,d.default)(t)).call.apply(e,[this].concat(o))),(0,f.default)((0,c.default)((0,c.default)(n)),"onRowExpandToggle",function(e){var t=null==e?!n.props.isExpanded:e,r=n.props.cellMetaData;null!=r&&"function"==typeof r.onRowExpandToggle&&r.onRowExpandToggle({rowIdx:n.props.idx,shouldExpand:t,columnGroupName:n.props.columnGroupName,name:n.props.name})}),(0,f.default)((0,c.default)((0,c.default)(n)),"onClick",function(){n.props.eventBus.dispatch(w.EventTypes.SELECT_CELL,{rowIdx:n.props.idx})}),(0,f.default)((0,c.default)((0,c.default)(n)),"onRowExpandClick",function(){n.onRowExpandToggle(!n.props.isExpanded)}),n}return(0,s.default)(t,e),(0,i.default)(t,[{key:"render",value:function(){var e=(0,h.last)(this.props.columns),t={width:e.left+e.width};return p.default.createElement("div",{style:t,className:"react-grid-row-group",onClick:this.onClick},p.default.createElement(this.props.renderer,(0,l.default)({},this.props,{onRowExpandClick:this.onRowExpandClick,onRowExpandToggle:this.onRowExpandToggle})))}}]),t}(p.Component);C.propTypes={height:g.default.number.isRequired,columns:g.default.oneOfType([g.default.object,g.default.array]).isRequired,row:g.default.any.isRequired,cellRenderer:g.default.func,cellMetaData:g.default.shape(m.default),isSelected:g.default.bool,idx:g.default.number.isRequired,expandedRows:g.default.arrayOf(g.default.object),extraClasses:g.default.string,forceUpdate:g.default.bool,subRowDetails:g.default.object,isRowHovered:g.default.bool,colVisibleStartIdx:g.default.number.isRequired,colVisibleEndIdx:g.default.number.isRequired,colOverscanStartIdx:g.default.number.isRequired,colOverscanEndIdx:g.default.number.isRequired,isScrolling:g.default.bool.isRequired,columnGroupName:g.default.string.isRequired,isExpanded:g.default.bool.isRequired,treeDepth:g.default.number.isRequired,name:g.default.string.isRequired,renderer:g.default.func,eventBus:g.default.object.isRequired,rowRef:g.default.func.isRequired};var v=function(e){function t(){var e,n;(0,a.default)(this,t);for(var r=arguments.length,o=new Array(r),l=0;l<r;l++)o[l]=arguments[l];return n=(0,u.default)(this,(e=(0,d.default)(t)).call.apply(e,[this].concat(o))),(0,f.default)((0,c.default)((0,c.default)(n)),"onKeyDown",function(e){var t=n.props,r=t.onRowExpandToggle,o=t.isExpanded;"ArrowLeft"===e.key&&r(!1),"ArrowRight"===e.key&&r(!0),"Enter"===e.key&&r(!o)}),n}return(0,s.default)(t,e),(0,i.default)(t,[{key:"render",value:function(){var e=this.props,t=e.treeDepth,n=void 0===t?0:t,r=e.height,o=e.rowRef,l=e.onRowExpandClick,a=e.isExpanded,i=e.columnGroupDisplayName,u=e.name,d=20*n,s={height:r,border:"1px solid #dddddd",paddingTop:"15px",paddingLeft:"5px"};return p.default.createElement("div",{style:s,onKeyDown:this.onKeyDown,tabIndex:0,ref:o},p.default.createElement("span",{className:"row-expand-icon",style:{float:"left",marginLeft:d,cursor:"pointer"},onClick:l},a?String.fromCharCode(9660):String.fromCharCode(9658)),p.default.createElement("strong",null,i,": ",u))}}]),t}(p.Component);v.propTypes={onRowExpandClick:g.default.func.isRequired,onRowExpandToggle:g.default.func.isRequired,isExpanded:g.default.bool.isRequired,height:g.default.number.isRequired,treeDepth:g.default.number.isRequired,name:g.default.string.isRequired,columnGroupName:g.default.string.isRequired,columnGroupDisplayName:g.default.string.isRequired,rowRef:g.default.func.isRequired,hideColumnName:g.default.bool},C.defaultProps={renderer:v};var b=C;t.default=b},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(3)),l=r(n(4)),a=r(n(10)),i=function(){function e(){(0,o.default)(this,e),(0,a.default)(this,"subscribers",{})}return(0,l.default)(e,[{key:"subscribe",value:function(e,t){this.subscribers[e]||(this.subscribers[e]=[]);var n=this.subscribers[e];return n.push(t),function(){var e=n.indexOf(t);e>0&&n.splice(e,1)}}},{key:"dispatch",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o=this.subscribers[e];Array.isArray(o)&&o.forEach(function(e){return e.apply(void 0,n)})}}]),e}();t.default=i},function(e,t,n){"use strict";var r=n(21),o=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var l=o(n(15)),a=o(n(108)),i=o(n(40)),u=o(n(3)),d=o(n(4)),s=o(n(5)),c=o(n(6)),f=o(n(7)),p=o(n(12)),g=o(n(10)),h=r(n(1)),m=o(n(0)),w=o(n(284)),C=o(n(285)),v=o(n(286)),b=o(n(287)),R=o(n(288)),y=o(n(289)),x=n(26),S=n(161),E=n(160),I=n(20),D=n(24),k=r(n(162));n(292);var O=function(e){function t(){var e,n;(0,u.default)(this,t);for(var r=arguments.length,o=new Array(r),l=0;l<r;l++)o[l]=arguments[l];return n=(0,s.default)(this,(e=(0,c.default)(t)).call.apply(e,[this].concat(o))),(0,g.default)((0,p.default)((0,p.default)(n)),"state",{selectedPosition:{idx:-1,rowIdx:-1},selectedRange:{topLeft:{idx:-1,rowIdx:-1},bottomRight:{idx:-1,rowIdx:-1}},copiedPosition:null,draggedPosition:null,isEditorEnabled:!1,firstEditorKeyPress:null}),(0,g.default)((0,p.default)((0,p.default)(n)),"saveEditorPosition",function(){if(n.selectionMask){var e=n.selectionMask.getBoundingClientRect(),t=e.left,r=e.top,o=document.documentElement,l=o.scrollLeft,a=o.scrollTop;n.editorPosition={left:t+l,top:r+a}}}),(0,g.default)((0,p.default)((0,p.default)(n)),"setMaskScollLeft",function(e,t,r){if(e){var o=t.idx,l=t.rowIdx;if(o>=0&&l>=0){var a=n.props,i=a.columns,u=a.getRowTop,d=(0,D.getColumn)(i,o);if((0,D.isFrozen)(d)){var s=u(l),c=r+d.left,f="translate(".concat(c,"px, ").concat(s,"px)");e.style.transform!==f&&(e.style.transform=f)}}}}),(0,g.default)((0,p.default)((0,p.default)(n)),"setScrollLeft",function(e){var t=(0,p.default)((0,p.default)(n)),r=t.selectionMask,o=t.copyMask,l=t.state,a=l.selectedPosition,i=l.copiedPosition;n.setMaskScollLeft(r,a,e),n.setMaskScollLeft(o,i,e)}),(0,g.default)((0,p.default)((0,p.default)(n)),"onKeyDown",function(e){(0,S.isCtrlKeyHeldDown)(e)?n.onPressKeyWithCtrl(e):e.keyCode===k.Escape?n.onPressEscape(e):e.keyCode===k.Tab?n.onPressTab(e):n.isKeyboardNavigationEvent(e)?n.changeCellFromEvent(e):((0,S.isKeyPrintable)(e.keyCode)||-1!==[k.Backspace,k.Delete,k.Enter].indexOf(e.keyCode))&&n.openEditor(e)}),(0,g.default)((0,p.default)((0,p.default)(n)),"isSelectedCellEditable",function(){var e=n.props,t=e.enableCellSelect,r=e.columns,o=e.rowGetter,l=e.onCheckCellIsEditable,a=n.state.selectedPosition;return(0,E.isSelectedCellEditable)({enableCellSelect:t,columns:r,rowGetter:o,selectedPosition:a,onCheckCellIsEditable:l})}),(0,g.default)((0,p.default)((0,p.default)(n)),"openEditor",function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).key;n.isSelectedCellEditable()&&!n.state.isEditorEnabled&&n.setState({isEditorEnabled:!0,firstEditorKeyPress:e})}),(0,g.default)((0,p.default)((0,p.default)(n)),"closeEditor",function(){n.setState({isEditorEnabled:!1,firstEditorKeyPress:null})}),(0,g.default)((0,p.default)((0,p.default)(n)),"onPressKeyWithCtrl",function(e){var t=e.keyCode;if(n.copyPasteEnabled())if(t===k.c){var r=n.props,o=r.columns,l=r.rowGetter,a=n.state.selectedPosition,i=(0,E.getSelectedCellValue)({selectedPosition:a,columns:o,rowGetter:l});n.handleCopy({value:i})}else t===k.v&&n.handlePaste()}),(0,g.default)((0,p.default)((0,p.default)(n)),"onFocus",function(e){var t=!0===e.shiftKey,r=n.state.selectedPosition,o=r.idx,l=r.rowIdx;-1===o&&-1===l&&(t?n.selectLastCell():n.selectFirstCell())}),(0,g.default)((0,p.default)((0,p.default)(n)),"onPressTab",function(e){var t=n.props,r=t.cellNavigationMode,o=t.columns,l=t.rowsCount,a=n.state,i=a.selectedPosition,u=a.isEditorEnabled;if(0!==l)return(0,E.canExitGrid)(e,{cellNavigationMode:r,columns:o,rowsCount:l,selectedPosition:i})?u?void n.closeEditor():void n.setState({selectedPosition:{idx:-1,rowIdx:-1}}):void n.changeCellFromEvent(e)}),(0,g.default)((0,p.default)((0,p.default)(n)),"onPressEscape",function(){n.copyPasteEnabled()&&(n.handleCancelCopy(),n.closeEditor())}),(0,g.default)((0,p.default)((0,p.default)(n)),"copyPasteEnabled",function(){return null!==n.props.onCellCopyPaste&&n.isSelectedCellEditable()}),(0,g.default)((0,p.default)((0,p.default)(n)),"handleCopy",function(e){var t=e.value,r=n.state.selectedPosition,o=r.rowIdx,l=r.idx;n.setState({copiedPosition:{rowIdx:o,idx:l,value:t}})}),(0,g.default)((0,p.default)((0,p.default)(n)),"handleCancelCopy",function(){n.setState({copiedPosition:null})}),(0,g.default)((0,p.default)((0,p.default)(n)),"handlePaste",function(){var e=n.props,t=e.columns,r=e.onCellCopyPaste,o=e.onGridRowsUpdated,l=n.state,a=l.selectedPosition,i=l.copiedPosition,u=a.rowIdx;if(null!=i){var d=(0,E.getSelectedColumn)({selectedPosition:a,columns:t}).key,s=i.rowIdx,c=i.value;(0,I.isFunction)(r)&&r({cellKey:d,rowIdx:u,fromRow:s,toRow:u,value:c}),o(d,u,u,(0,g.default)({},d,c),x.UpdateActions.COPY_PASTE,s)}}),(0,g.default)((0,p.default)((0,p.default)(n)),"isCellWithinBounds",function(e){var t=e.idx,r=e.rowIdx,o=n.props,l=o.columns,a=o.rowsCount;return r>=0&&r<a&&t>=0&&t<(0,D.getSize)(l)}),(0,g.default)((0,p.default)((0,p.default)(n)),"isGridSelected",function(){return n.isCellWithinBounds(n.state.selectedPosition)}),(0,g.default)((0,p.default)((0,p.default)(n)),"isFocused",function(){return document.activeElement===n.selectionMask}),(0,g.default)((0,p.default)((0,p.default)(n)),"isFocusedOnBody",function(){return document.activeElement===document.body}),(0,g.default)((0,p.default)((0,p.default)(n)),"focus",function(){n.selectionMask&&!n.isFocused()&&n.selectionMask.focus()}),(0,g.default)((0,p.default)((0,p.default)(n)),"selectFirstCell",function(){n.selectCell({rowIdx:0,idx:0})}),(0,g.default)((0,p.default)((0,p.default)(n)),"selectLastCell",function(){var e=n.props,t=e.rowsCount,r=e.columns;n.selectCell({rowIdx:t-1,idx:(0,D.getSize)(r)-1})}),(0,g.default)((0,p.default)((0,p.default)(n)),"selectCell",function(e,t){var r=t?n.openEditor:function(){return null};n.setState(function(t){var r=(0,i.default)({},t.selectedPosition,e);return n.isCellWithinBounds(r)?{selectedPosition:r,selectedRange:{topLeft:r,bottomRight:r,startCell:r,cursorCell:r,isDragging:!1}}:t},r)}),(0,g.default)((0,p.default)((0,p.default)(n)),"onSelectCellRangeStarted",function(e){n.setState({selectedRange:n.createSingleCellSelectedRange(e,!0),selectedPosition:e},function(){(0,I.isFunction)(n.props.onCellRangeSelectionStarted)&&n.props.onCellRangeSelectionStarted(n.state.selectedRange)})}),(0,g.default)((0,p.default)((0,p.default)(n)),"onSelectCellRangeUpdated",function(e,t,r){if((n.state.selectedRange.isDragging||t)&&n.isCellWithinBounds(e)){var o=n.state.selectedRange.startCell||n.state.selectedPosition,l=[o.idx,e.idx].sort(function(e,t){return e-t}),a=[o.rowIdx,e.rowIdx].sort(function(e,t){return e-t}),u={idx:l[0],rowIdx:a[0]},d={idx:l[1],rowIdx:a[1]},s=(0,i.default)({startCell:n.state.selectedPosition},n.state.selectedRange,{topLeft:u,bottomRight:d,cursorCell:e});n.setState({selectedRange:s},function(){(0,I.isFunction)(n.props.onCellRangeSelectionUpdated)&&n.props.onCellRangeSelectionUpdated(n.state.selectedRange),(0,I.isFunction)(r)&&r()})}}),(0,g.default)((0,p.default)((0,p.default)(n)),"onSelectCellRangeEnded",function(){var e=(0,i.default)({},n.state.selectedRange,{isDragging:!1});n.setState({selectedRange:e},function(){(0,I.isFunction)(n.props.onCellRangeSelectionCompleted)&&n.props.onCellRangeSelectionCompleted(n.state.selectedRange),n.focus()})}),(0,g.default)((0,p.default)((0,p.default)(n)),"isDragEnabled",function(){var e=n.props,t=e.onGridRowsUpdated,r=e.onCellsDragged;return n.isSelectedCellEditable()&&((0,I.isFunction)(t)||(0,I.isFunction)(r))}),(0,g.default)((0,p.default)((0,p.default)(n)),"handleDragStart",function(e){var t=n.state.selectedPosition,r=t.idx,o=t.rowIdx,l=e&&e.target&&e.target.className;if(r>-1&&l){e.dataTransfer.effectAllowed="copy";var a=JSON.stringify({idx:r,rowIdx:o});try{e.dataTransfer.setData("text/plain",a)}catch(t){e.dataTransfer.setData("text",a)}n.setState({draggedPosition:{idx:r,rowIdx:o}})}}),(0,g.default)((0,p.default)((0,p.default)(n)),"handleDragEnter",function(e){var t=e.overRowIdx;null!=n.state.draggedPosition&&n.setState(function(e){var n=e.draggedPosition;return{draggedPosition:(0,i.default)({},n,{overRowIdx:t})}})}),(0,g.default)((0,p.default)((0,p.default)(n)),"handleDragEnd",function(){var e=n.state.draggedPosition;if(null!=e){var t=e.rowIdx,r=e.overRowIdx;if(null!=r){var o=n.props,l=o.columns,a=o.onCellsDragged,i=o.onGridRowsUpdated,u=o.rowGetter,d=(0,E.getSelectedColumn)({selectedPosition:e,columns:l}),s=(0,E.getSelectedCellValue)({selectedPosition:e,columns:l,rowGetter:u}),c=d.key,f=t<r?t:r,p=t>r?t:r;(0,I.isFunction)(a)&&a({cellKey:c,fromRow:f,toRow:p,value:s}),(0,I.isFunction)(i)&&i(c,f,p,(0,g.default)({},c,s),x.UpdateActions.CELL_DRAG)}n.setState({draggedPosition:null})}}),(0,g.default)((0,p.default)((0,p.default)(n)),"onDragHandleDoubleClick",function(){var e=n.props,t=e.onDragHandleDoubleClick,r=e.rowGetter,o=n.state.selectedPosition;t({idx:o.idx,rowIdx:o.rowIdx,rowData:(0,E.getSelectedRow)({selectedPosition:o,rowGetter:r})})}),(0,g.default)((0,p.default)((0,p.default)(n)),"onCommit",function(){var e;(e=n.props).onCommit.apply(e,arguments),n.closeEditor()}),(0,g.default)((0,p.default)((0,p.default)(n)),"onCommitCancel",function(){n.closeEditor()}),(0,g.default)((0,p.default)((0,p.default)(n)),"setSelectionMaskRef",function(e){n.selectionMask=e}),(0,g.default)((0,p.default)((0,p.default)(n)),"setCopyMaskRef",function(e){n.copyMask=e}),(0,g.default)((0,p.default)((0,p.default)(n)),"getSelectedDimensions",function(e){var t=n.props,r=t.scrollLeft,o=t.getRowHeight,l=t.getRowTop,a=(0,t.getRowColumns)(e.idx),u=l(e.rowIdx),d=o(e.rowIdx);return(0,i.default)({},(0,E.getSelectedDimensions)({selectedPosition:e,columns:a,scrollLeft:r,rowHeight:d}),{top:u})}),(0,g.default)((0,p.default)((0,p.default)(n)),"renderSingleCellSelectView",function(){var e=n.state.selectedPosition;return!n.state.isEditorEnabled&&n.isGridSelected()&&h.default.createElement(w.default,{selectedPosition:e,innerRef:n.setSelectionMaskRef,getSelectedDimensions:n.getSelectedDimensions},n.isDragEnabled()&&h.default.createElement(R.default,{onDragStart:n.handleDragStart,onDragEnd:n.handleDragEnd,onDoubleClick:n.onDragHandleDoubleClick}))}),(0,g.default)((0,p.default)((0,p.default)(n)),"renderCellRangeSelectView",function(){var e=n.props,t=e.columns,r=e.rowHeight;return[h.default.createElement(C.default,{key:"range-mask",selectedRange:n.state.selectedRange,columns:t,rowHeight:r}),h.default.createElement(w.default,{key:"selection-mask",selectedPosition:n.state.selectedRange.startCell,innerRef:n.setSelectionMaskRef,getSelectedDimensions:n.getSelectedDimensions})]}),n}return(0,f.default)(t,e),(0,d.default)(t,[{key:"componentDidUpdate",value:function(e,t){var n=this.state,r=n.selectedPosition,o=n.isEditorEnabled,l=t.selectedPosition,a=t.isEditorEnabled,u=r!==l&&(r.rowIdx!==l.rowIdx||r.idx!==l.idx),d=o!==a&&!o;if(u){var s=this.props,c=s.onCellSelected,f=s.onCellDeSelected;(0,I.isFunction)(f)&&this.isCellWithinBounds(l)&&f((0,i.default)({},l)),(0,I.isFunction)(c)&&this.isCellWithinBounds(r)&&c((0,i.default)({},r))}(u&&this.isCellWithinBounds(r)||d)&&(this.focus(),this.saveEditorPosition())}},{key:"componentDidMount",value:function(){var e=this.props,t=e.eventBus,n=e.enableCellAutoFocus;this.unsubscribeSelectCell=t.subscribe(x.EventTypes.SELECT_CELL,this.selectCell),this.unsubscribeSelectStart=t.subscribe(x.EventTypes.SELECT_START,this.onSelectCellRangeStarted),this.unsubscribeSelectUpdate=t.subscribe(x.EventTypes.SELECT_UPDATE,this.onSelectCellRangeUpdated),this.unsubscribeSelectEnd=t.subscribe(x.EventTypes.SELECT_END,this.onSelectCellRangeEnded),this.unsubscribeDragEnter=t.subscribe(x.EventTypes.DRAG_ENTER,this.handleDragEnter),n&&this.isFocusedOnBody()&&this.selectFirstCell()}},{key:"componentWillUnmount",value:function(){this.unsubscribeSelectCell(),this.unsubscribeSelectStart(),this.unsubscribeSelectUpdate(),this.unsubscribeSelectEnd(),this.unsubscribeDragEnter()}},{key:"isKeyboardNavigationEvent",value:function(e){return null!=this.getKeyNavActionFromEvent(e)}},{key:"isGroupedRowSelected",value:function(){var e=this.props.rowGetter,t=this.state.selectedPosition,n=(0,E.getSelectedRow)({selectedPosition:t,rowGetter:e});return!(!n||!n.__metaData)&&n.__metaData.isGroup}},{key:"getKeyNavActionFromEvent",value:function(e){var t=this.props,n=t.rowVisibleEndIdx,r=t.rowVisibleStartIdx,o=t.colVisibleEndIdx,l=t.colVisibleStartIdx,a=t.onHitBottomBoundary,u=t.onHitRightBoundary,d=t.onHitLeftBoundary,s=t.onHitTopBoundary,c=function(e){return e.rowIdx>=n-2},f=function(e){return 0!==e.rowIdx&&e.rowIdx<=r-1},p={ArrowDown:{getNext:function(e){return(0,i.default)({},e,{rowIdx:e.rowIdx+1})},isCellAtBoundary:c,onHitBoundary:a},ArrowUp:{getNext:function(e){return(0,i.default)({},e,{rowIdx:e.rowIdx-1})},isCellAtBoundary:f,onHitBoundary:s},ArrowRight:{getNext:function(e){return(0,i.default)({},e,{idx:e.idx+1})},isCellAtBoundary:function(e){return 0!==e.idx&&e.idx>=o-1},onHitBoundary:function(e){u(e),c(e)&&a(e)}},ArrowLeft:{getNext:function(e){return(0,i.default)({},e,{idx:e.idx-1})},isCellAtBoundary:function(e){return 0!==e.idx&&e.idx<=l+1},onHitBoundary:function(e){d(e),f(e)&&s(e)}}};return e.keyCode===k.Tab?!0===e.shiftKey?p.ArrowLeft:p.ArrowRight:p[e.key]}},{key:"changeCellFromEvent",value:function(e){e.preventDefault();var t=e.keyCode===k.Tab,n=e.shiftKey;if(t){var r=this.props.cellNavigationMode===x.CellNavigationMode.NONE?x.CellNavigationMode.CHANGE_ROW:this.props.cellNavigationMode;this.changeCellFromKeyAction(e,r)}else n?this.changeSelectedRangeFromArrowKeyAction(e):this.changeCellFromKeyAction(e,this.props.cellNavigationMode)}},{key:"changeCellFromKeyAction",value:function(e,t){var n=this.state.selectedPosition,r=this.getKeyNavActionFromEvent(e),o=this.getNextSelectedCellPositionForKeyNavAction(r,n,t);this.checkIsAtGridBoundary(r,o),this.selectCell((0,i.default)({},o))}},{key:"changeSelectedRangeFromArrowKeyAction",value:function(e){var t=this,n=this.props.cellNavigationMode,r=this.state.selectedRange.cursorCell||this.state.selectedPosition,o=this.getKeyNavActionFromEvent(e),l=this.getNextSelectedCellPositionForKeyNavAction(o,r,n);this.checkIsAtGridBoundary(o,l),this.onSelectCellRangeUpdated((0,i.default)({},l),!0,function(){t.onSelectCellRangeEnded()})}},{key:"getNextSelectedCellPositionForKeyNavAction",value:function(e,t,n){var r=(0,e.getNext)(t),o=this.props,l=o.columns,a=o.rowsCount;return(0,E.getNextSelectedCellPosition)({columns:l,rowsCount:a,cellNavigationMode:n},r)}},{key:"checkIsAtGridBoundary",value:function(e,t){var n=e.isCellAtBoundary,r=e.onHitBoundary,o=t.changeRowOrColumn,l=(0,a.default)(t,["changeRowOrColumn"]);(n(l)||o)&&r(l)}},{key:"createSingleCellSelectedRange",value:function(e,t){return{topLeft:e,bottomRight:e,startCell:e,cursorCell:e,isDragging:t}}},{key:"render",value:function(){var e=this.props,t=e.rowGetter,n=e.contextMenu,r=e.getRowColumns,o=e.scrollLeft,a=e.scrollTop,u=this.state,d=u.isEditorEnabled,s=u.firstEditorKeyPress,c=u.selectedPosition,f=u.draggedPosition,p=u.copiedPosition,g=(0,E.getSelectedRow)({selectedPosition:c,rowGetter:t}),m=r(c.rowIdx);return h.default.createElement("div",{onKeyDown:this.onKeyDown,onFocus:this.onFocus},p&&h.default.createElement(v.default,{copiedPosition:p,innerRef:this.setCopyMaskRef,getSelectedDimensions:this.getSelectedDimensions}),f&&h.default.createElement(b.default,{draggedPosition:f,getSelectedDimensions:this.getSelectedDimensions}),(0,E.selectedRangeIsSingleCell)(this.state.selectedRange)?this.renderSingleCellSelectView():this.renderCellRangeSelectView(),d&&h.default.createElement(y.default,(0,l.default)({firstEditorKeyPress:s,onCommit:this.onCommit,onCommitCancel:this.onCommitCancel,rowIdx:c.rowIdx,value:(0,E.getSelectedCellValue)({selectedPosition:c,columns:m,rowGetter:t}),rowData:g,column:(0,E.getSelectedColumn)({selectedPosition:c,columns:m}),scrollLeft:o,scrollTop:a},(0,i.default)({},this.getSelectedDimensions(c),this.editorPosition))),(0,h.isValidElement)(n)&&(0,h.cloneElement)(n,(0,i.default)({},c)))}}]),t}(h.default.Component);(0,g.default)(O,"dispplayName","InteractionMasks"),(0,g.default)(O,"propTypes",{colVisibleStartIdx:m.default.number.isRequired,colVisibleEndIdx:m.default.number.isRequired,rowVisibleStartIdx:m.default.number.isRequired,rowVisibleEndIdx:m.default.number.isRequired,rowOverscanStartIdx:m.default.number.isRequired,columns:m.default.array,width:m.default.number,rowHeight:m.default.number.isRequired,rowGetter:m.default.func.isRequired,rowsCount:m.default.number.isRequired,enableCellSelect:m.default.bool.isRequired,enableCellAutoFocus:m.default.bool.isRequired,cellNavigationMode:m.default.oneOf([x.CellNavigationMode.NONE,x.CellNavigationMode.LOOP_OVER_ROW,x.CellNavigationMode.CHANGE_ROW]).isRequired,eventBus:m.default.object.isRequired,contextMenu:m.default.element,onCheckCellIsEditable:m.default.func,onCellCopyPaste:m.default.func,onGridRowsUpdated:m.default.func.isRequired,onHitBottomBoundary:m.default.func.isRequired,onHitTopBoundary:m.default.func.isRequired,onHitRightBoundary:m.default.func.isRequired,onHitLeftBoundary:m.default.func.isRequired,onCommit:m.default.func.isRequired,onCommitCancel:m.default.func,onCellSelected:m.default.func,onCellDeSelected:m.default.func,onCellRangeSelectionStarted:m.default.func,onCellRangeSelectionUpdated:m.default.func,onCellRangeSelectionCompleted:m.default.func,onCellsDragged:m.default.func,onDragHandleDoubleClick:m.default.func.isRequired,scrollLeft:m.default.number.isRequired,scrollTop:m.default.number.isRequired,rows:m.default.array.isRequired,getRowHeight:m.default.func.isRequired,getRowTop:m.default.func.isRequired,getRowColumns:m.default.func.isRequired});var A=O;t.default=A},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(15)),l=r(n(1)),a=r(n(0)),i=r(n(76));n(24),r(n(113));function u(e){var t=e.selectedPosition,n=e.innerRef,r=e.getSelectedDimensions,a=e.children,u=r(t);return l.default.createElement(i.default,(0,o.default)({},u,{className:"rdg-selected",innerRef:n,tabIndex:"0"}),a)}u.propTypes={selectedPosition:a.default.object.isRequired,getSelectedDimensions:a.default.func.isRequired,innerRef:a.default.func.isRequired};var d=u;t.default=d},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(15)),l=r(n(1)),a=r(n(0)),i=n(160),u=r(n(76));function d(e){var t=e.selectedRange,n=e.columns,r=e.rowHeight,a=e.children,d=(0,i.getSelectedRangeDimensions)({selectedRange:t,columns:n,rowHeight:r});return l.default.createElement(u.default,(0,o.default)({},d,{className:"rdg-selected-range"}),a)}d.propTypes={selectedRange:a.default.shape({topLeft:a.default.shape({idx:a.default.number.isRequired,rowIdx:a.default.number.isRequired}).isRequired,bottomRight:a.default.shape({idx:a.default.number.isRequired,rowIdx:a.default.number.isRequired}).isRequired,startCell:a.default.shape({idx:a.default.number.isRequired,rowIdx:a.default.number.isRequired}).isRequired,cursorCell:a.default.shape({idx:a.default.number.isRequired,rowIdx:a.default.number.isRequired}).isRequired}).isRequired,columns:a.default.array.isRequired,rowHeight:a.default.number.isRequired};var s=d;t.default=s},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(15)),l=r(n(1)),a=r(n(0)),i=r(n(76));function u(e){var t=e.copiedPosition,n=e.innerRef,r=(0,e.getSelectedDimensions)(t);return l.default.createElement(i.default,(0,o.default)({},r,{className:"react-grid-cell-copied",innerRef:n}))}u.propTypes={copiedPosition:a.default.object.isRequired,getSelectedDimensions:a.default.func.isRequired,innerRef:a.default.func.isRequired};var d=u;t.default=d},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(15)),l=r(n(1)),a=r(n(0)),i=r(n(76));function u(e){var t=e.draggedPosition,n=e.getSelectedDimensions,r=t.overRowIdx,a=t.idx,u=t.rowIdx;if(null!=r&&u!==r){for(var d=u<r,s=d?u+1:r,c=d?r:u-1,f=d?"react-grid-cell-dragged-over-down":"react-grid-cell-dragged-over-up",p=n({idx:a,rowIdx:s}),g=s+1;g<=c;g++){var h=n({idx:a,rowIdx:g}).height;p.height+=h}return l.default.createElement(i.default,(0,o.default)({},p,{className:f}))}return null}u.propTypes={draggedPosition:a.default.object.isRequired,getSelectedDimensions:a.default.func.isRequired};var d=u;t.default=d},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(1)),l=r(n(0));function a(e){var t=e.onDragStart,n=e.onDragEnd,r=e.onDoubleClick;return o.default.createElement("div",{className:"drag-handle",draggable:"true",onDragStart:t,onDragEnd:n,onDoubleClick:r})}a.propTypes={onDragStart:l.default.func.isRequired,onDragEnd:l.default.func.isRequired,onDoubleClick:l.default.func.isRequired};var i=a;t.default=i},function(e,t,n){"use strict";var r=n(21),o=n(2),l=o(n(15)),a=o(n(3)),i=o(n(4)),u=o(n(5)),d=o(n(6)),s=o(n(7)),c=o(n(12)),f=o(n(10)),p=o(n(1)),g=o(n(16)),h=o(n(0)),m=o(n(8)),w=o(n(77)),C=n(20),v=n(161),b=r(n(113)),R=o(n(290));n(78);var y=function(e){function t(){var e,n;(0,a.default)(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=(0,u.default)(this,(e=(0,d.default)(t)).call.apply(e,[this].concat(o))),(0,f.default)((0,c.default)((0,c.default)(n)),"state",{isInvalid:!1}),(0,f.default)((0,c.default)((0,c.default)(n)),"changeCommitted",!1),(0,f.default)((0,c.default)((0,c.default)(n)),"changeCanceled",!1),(0,f.default)((0,c.default)((0,c.default)(n)),"handleDocumentClick",function(e){var t=e.target,r=(0,c.default)((0,c.default)(n)),o=r.container,l=r.editor;if(!o||t!==o&&!o.contains(t)){if(l){var a=g.default.findDOMNode(l);if(a&&(t===a||a.contains(t)))return}n.commit(e)}}),(0,f.default)((0,c.default)((0,c.default)(n)),"isKeyExplicitlyHandled",function(e){return(0,C.isFunction)(n["onPress"+e])}),(0,f.default)((0,c.default)((0,c.default)(n)),"checkAndCall",function(e,t){(0,C.isFunction)(n[e])&&n[e](t)}),(0,f.default)((0,c.default)((0,c.default)(n)),"onKeyDown",function(e){if((0,v.isCtrlKeyHeldDown)(e))n.checkAndCall("onPressKeyWithCtrl",e);else if(n.isKeyExplicitlyHandled(e.key)){var t="onPress"+e.key;n.checkAndCall(t,e)}else(0,v.isKeyPrintable)(e.keyCode)&&(e.stopPropagation(),n.checkAndCall("onPressChar",e));n._keysDown=n._keysDown||{},n._keysDown[e.keyCode]=!0,(0,C.isFunction)(n.props.onGridKeyDown)&&n.props.onGridKeyDown(e)}),(0,f.default)((0,c.default)((0,c.default)(n)),"setEditorRef",function(e){n.editor=e}),(0,f.default)((0,c.default)((0,c.default)(n)),"setContainerRef",function(e){n.container=e}),(0,f.default)((0,c.default)((0,c.default)(n)),"createEditor",function(){var e={ref:n.setEditorRef,column:n.props.column,value:n.getInitialValue(),onCommit:n.commit,onCommitCancel:n.commitCancel,rowMetaData:n.getRowMetaData(),rowData:n.props.rowData,height:n.props.height,onBlur:n.commit,onOverrideKeyDown:n.onKeyDown},t=n.props.column.editor;return p.default.isValidElement(t)?p.default.cloneElement(t,e):(0,C.isFunction)(t)?p.default.createElement(t,(0,l.default)({ref:n.setEditorRef},e)):p.default.createElement(w.default,{ref:n.setEditorRef,column:n.props.column,value:n.getInitialValue(),onBlur:n.commit,rowMetaData:n.getRowMetaData()})}),(0,f.default)((0,c.default)((0,c.default)(n)),"onPressEnter",function(){n.commit({key:"Enter"})}),(0,f.default)((0,c.default)((0,c.default)(n)),"onPressTab",function(){n.commit({key:"Tab"})}),(0,f.default)((0,c.default)((0,c.default)(n)),"onPressEscape",function(e){n.editorIsSelectOpen()?e.stopPropagation():n.commitCancel()}),(0,f.default)((0,c.default)((0,c.default)(n)),"onPressArrowDown",function(e){n.editorHasResults()?e.stopPropagation():n.commit(e)}),(0,f.default)((0,c.default)((0,c.default)(n)),"onPressArrowUp",function(e){n.editorHasResults()?e.stopPropagation():n.commit(e)}),(0,f.default)((0,c.default)((0,c.default)(n)),"onPressArrowLeft",function(e){n.isCaretAtBeginningOfInput()?n.commit(e):e.stopPropagation()}),(0,f.default)((0,c.default)((0,c.default)(n)),"onPressArrowRight",function(e){n.isCaretAtEndOfInput()?n.commit(e):e.stopPropagation()}),(0,f.default)((0,c.default)((0,c.default)(n)),"editorHasResults",function(){return!!(0,C.isFunction)(n.getEditor().hasResults)&&n.getEditor().hasResults()}),(0,f.default)((0,c.default)((0,c.default)(n)),"editorIsSelectOpen",function(){return!!(0,C.isFunction)(n.getEditor().isSelectOpen)&&n.getEditor().isSelectOpen()}),(0,f.default)((0,c.default)((0,c.default)(n)),"getRowMetaData",function(){if("function"==typeof n.props.column.getRowMetaData)return n.props.column.getRowMetaData(n.props.rowData,n.props.column)}),(0,f.default)((0,c.default)((0,c.default)(n)),"getEditor",function(){return n.editor}),(0,f.default)((0,c.default)((0,c.default)(n)),"getInputNode",function(){return n.getEditor().getInputNode()}),(0,f.default)((0,c.default)((0,c.default)(n)),"getInitialValue",function(){var e=n.props,t=e.firstEditorKeyPress,r=e.value;return"Delete"===t||"Backspace"===t?"":"Enter"===t?r:t||r}),(0,f.default)((0,c.default)((0,c.default)(n)),"getContainerClass",function(){return(0,m.default)({"rdg-editor-container":!0,"has-error":!0===n.state.isInvalid})}),(0,f.default)((0,c.default)((0,c.default)(n)),"commit",function(e){var t=n.props.onCommit,r=e||{},o=n.getEditor().getValue();n.isNewValueValid(o)&&(n.changeCommitted=!0,t({cellKey:n.props.column.key,rowIdx:n.props.rowIdx,updated:o,key:r.key}))}),(0,f.default)((0,c.default)((0,c.default)(n)),"commitCancel",function(){n.changeCanceled=!0,n.props.onCommitCancel()}),(0,f.default)((0,c.default)((0,c.default)(n)),"isNewValueValid",function(e){if((0,C.isFunction)(n.getEditor().validate)){var t=n.getEditor().validate(e);return n.setState({isInvalid:!t}),t}return!0}),(0,f.default)((0,c.default)((0,c.default)(n)),"setCaretAtEndOfInput",function(){var e=n.getInputNode(),t=e.value.length;if(e.setSelectionRange)e.setSelectionRange(t,t);else if(e.createTextRange){var r=e.createTextRange();r.moveStart("character",t),r.collapse(),r.select()}}),(0,f.default)((0,c.default)((0,c.default)(n)),"isCaretAtBeginningOfInput",function(){var e=n.getInputNode();return e.selectionStart===e.selectionEnd&&0===e.selectionStart}),(0,f.default)((0,c.default)((0,c.default)(n)),"isCaretAtEndOfInput",function(){var e=n.getInputNode();return e.selectionStart===e.value.length}),(0,f.default)((0,c.default)((0,c.default)(n)),"handleRightClick",function(e){e.stopPropagation()}),(0,f.default)((0,c.default)((0,c.default)(n)),"setTextInputFocus",function(){var e=n.props.firstEditorKeyPress,t=n.getInputNode();t.focus(),"INPUT"===t.tagName&&((0,v.isKeyPrintable)(e)?t.select():(t.focus(),t.select()))}),(0,f.default)((0,c.default)((0,c.default)(n)),"renderStatusIcon",function(){if(!0===n.state.isInvalid)return p.default.createElement("span",{className:"glyphicon glyphicon-remove form-control-feedback"})}),n}return(0,s.default)(t,e),(0,i.default)(t,[{key:"componentDidMount",value:function(){document.addEventListener("click",this.handleDocumentClick);var e=this.getInputNode();void 0!==e&&(this.setTextInputFocus(),this.getEditor().disableContainerStyles||(e.className+=" editor-main",e.style.height=this.props.height-1+"px"))}},{key:"componentDidUpdate",value:function(e){e.scrollLeft===this.props.scrollLeft&&e.scrollTop===this.props.scrollTop||this.commitCancel()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("click",this.handleDocumentClick),this.changeCommitted||this.changeCanceled||this.commit({key:"Enter"})}},{key:"render",value:function(){var e=this.props,t=e.width,n=e.height,r=e.left,o=e.top,l=(e.column,{position:"absolute",height:n,width:t,left:r,top:o,zIndex:b.EDITOR_CONTAINER});return p.default.createElement(R.default,null,p.default.createElement("div",{style:l,ref:this.setContainerRef,className:this.getContainerClass(),onKeyDown:this.onKeyDown,onContextMenu:this.handleRightClick},this.createEditor(),this.renderStatusIcon()))}}]),t}(p.default.Component);(0,f.default)(y,"displayName","EditorContainer"),(0,f.default)(y,"propTypes",{rowIdx:h.default.number,rowData:h.default.object.isRequired,value:h.default.oneOfType([h.default.string,h.default.number,h.default.object,h.default.bool]).isRequired,column:h.default.object.isRequired,width:h.default.number.isRequired,height:h.default.number.isRequired,left:h.default.number.isRequired,top:h.default.number.isRequired,onGridKeyDown:h.default.func,onCommit:h.default.func,onCommitCancel:h.default.func,firstEditorKeyPress:h.default.string,scrollLeft:h.default.number,scrollTop:h.default.number}),e.exports=y},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(3)),l=r(n(4)),a=r(n(5)),i=r(n(6)),u=r(n(7)),d=r(n(12)),s=r(n(10)),c=r(n(1)),f=r(n(16)),p=r(n(0)),g=document.body,h=function(e){function t(){var e,n;(0,o.default)(this,t);for(var r=arguments.length,l=new Array(r),u=0;u<r;u++)l[u]=arguments[u];return n=(0,a.default)(this,(e=(0,i.default)(t)).call.apply(e,[this].concat(l))),(0,s.default)((0,d.default)((0,d.default)(n)),"el",document.createElement("div")),n}return(0,u.default)(t,e),(0,l.default)(t,[{key:"componentDidMount",value:function(){g.appendChild(this.el)}},{key:"componentWillUnmount",value:function(){g.removeChild(this.el)}},{key:"render",value:function(){return f.default.createPortal(this.props.children,this.el)}}]),t}(c.default.Component);t.default=h,(0,s.default)(h,"propTypes",{children:p.default.node})},function(e,t,n){(e.exports=n(22)()).push([e.i,".react-grid-Container {\r\n  clear: both;\r\n  margin-top: 0;\r\n  padding: 0;\r\n}\r\n\r\n.react-grid-Main {\r\n  background-color: #ffffff;\r\n  color: inherit;\r\n  padding: 0px;\r\n  outline: 1px solid #e7eaec;\r\n  clear : both;\r\n}\r\n\r\n.react-grid-Grid {\r\n  background-color: #ffffff;\r\n  border: 1px solid #dddddd;\r\n  -webkit-touch-callout: none;\r\n  -webkit-user-select: none;\r\n  -khtml-user-select: none;\r\n  -moz-user-select: none;\r\n  -ms-user-select: none;\r\n  user-select: none;\r\n}\r\n\r\n.react-grid-Canvas {\r\n  background-color: #ffffff;\r\n}\r\n",""])},function(e,t,n){var r=n(293);"string"==typeof r&&(r=[[e.i,r,""]]);n(23)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(22)()).push([e.i,".rdg-selected {\r\n  border: 2px solid #66afe9;\r\n}\r\n\r\n.rdg-selected .drag-handle {\r\n  pointer-events: auto;\r\n  position: absolute;\r\n  bottom: -5px;\r\n  right: -4px;\r\n  background: #66afe9;\r\n  width: 8px;\r\n  height: 8px;\r\n  border: 1px solid #fff;\r\n  border-right: 0px;\r\n  border-bottom: 0px;\r\n  cursor: crosshair;\r\n  cursor: -moz-grab;\r\n  cursor: -webkit-grab;\r\n  cursor: grab;\r\n}\r\n\r\n.rdg-selected:hover .drag-handle {\r\n  bottom: -8px;\r\n  right: -7px;\r\n  background: white;\r\n  width: 16px;\r\n  height: 16px;\r\n  border: 1px solid #66afe9;\r\n}\r\n\r\n.rdg-selected:hover .drag-handle .glyphicon-arrow-down {\r\n  display: 'block'\r\n}\r\n\r\n.react-grid-cell-dragged-over-up, .react-grid-cell-dragged-over-down {\r\n  border: 1px dashed black;\r\n  background: rgba(0, 0, 255, 0.2) !important;\r\n}\r\n\r\n.react-grid-cell-dragged-over-up {\r\n  border-bottom-width: 0;\r\n}\r\n\r\n.react-grid-cell-dragged-over-down {\r\n  border-top-width: 0;\r\n}\r\n\r\n.react-grid-cell-copied {\r\n  background: rgba(0, 0, 255, 0.2) !important;\r\n}\r\n\r\n.rdg-editor-container input.editor-main, select.editor-main {\r\n  display: block;\r\n  width: 100%;\r\n  height: 34px;\r\n  padding: 6px 12px;\r\n  font-size: 14px;\r\n  line-height: 1.42857143;\r\n  color: #555555;\r\n  background-color: #ffffff;\r\n  background-image: none;\r\n  border: 1px solid #cccccc;\r\n  border-radius: 4px;\r\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\r\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\r\n}\r\n\r\ninput.editor-main:focus, select.editor-main:focus {\r\n  border-color: #66afe9;\r\n  border: 2px solid #66afe9;\r\n  background: #eee;\r\n  border-radius: 4px;\r\n}\r\n\r\n.rdg-editor-container input.editor-main::-moz-placeholder, select.editor-main::-moz-placeholder {\r\n  color: #999999;\r\n  opacity: 1;\r\n}\r\n\r\n.rdg-editor-container input.editor-main:-ms-input-placeholder, select.editor-main:-ms-input-placeholder {\r\n  color: #999999;\r\n}\r\n\r\n.rdg-editor-container input.editor-main::-webkit-input-placeholder, select.editor-main::-webkit-input-placeholder {\r\n  color: #999999;\r\n}\r\n\r\n.rdg-editor-container input.editor-main[disabled], select.editor-main[disabled], .rdg-editor-container input.editor-main[readonly], select.editor-main[readonly], fieldset[disabled] .rdg-editor-container input.editor-main, fieldset[disabled] select.editor-main {\r\n  cursor: not-allowed;\r\n  background-color: #eeeeee;\r\n  opacity: 1;\r\n}\r\n\r\ntextarea.rdg-editor-container input.editor-main, textareaselect.editor-main {\r\n  height: auto;\r\n}\r\n",""])},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getColumnScrollPosition=function(e,t,n,o){for(var l=0,a=0,i=0;i<t;i++){var u=(0,r.getColumn)(e,i);u&&(u.width&&(l+=u.width),(0,r.isFrozen)(u)&&(a+=u.width))}var d=(0,r.getColumn)(e,t);if(d){var s=l-a-n,c=l+d.width-n;if(s<0)return s;if(c>o){var f=c-o;return f}}};var r=n(24)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getColOverscanEndIdx=t.getColOverscanStartIdx=t.getRowOverscanEndIdx=t.getRowOverscanStartIdx=t.getScrollDirection=t.getVisibleBoundaries=t.getNonFrozenRenderedColumnCount=t.getNonFrozenVisibleColStartIdx=t.findLastFrozenColumnIndex=t.getGridState=t.SCROLL_DIRECTION=t.OVERSCAN_ROWS=void 0;var r=n(24);t.OVERSCAN_ROWS=2;var o={UP:"upwards",DOWN:"downwards",LEFT:"left",RIGHT:"right",NONE:"none"};t.SCROLL_DIRECTION=o;var l=Math.min,a=Math.max,i=Math.ceil;t.getGridState=function(e){var t=(0,r.getSize)(e.columnMetrics.columns),n=e.minHeight-e.rowOffsetHeight,o=i((e.minHeight-e.rowHeight)/e.rowHeight);return{rowOverscanStartIdx:0,rowOverscanEndIdx:l(e.rowsCount,2*o),rowVisibleStartIdx:0,rowVisibleEndIdx:o,height:n,scrollTop:0,scrollLeft:0,colVisibleStartIdx:0,colVisibleEndIdx:t,colOverscanStartIdx:0,colOverscanEndIdx:t,isScrolling:!1,lastFrozenColumnIndex:0}};var u=function(e){var t=-1;return e.forEach(function(e,n){(0,r.isFrozen)(e)&&(t=n)}),t};t.findLastFrozenColumnIndex=u;var d=function(e,t){for(var n=t,o=u(e),l=e.slice(o+1),a=o;n>=0&&a<(0,r.getSize)(l);){a++;var i=(0,r.getColumn)(e,a);n-=i?i.width:0}return Math.max(a,0)};t.getNonFrozenVisibleColStartIdx=d;t.getNonFrozenRenderedColumnCount=function(e,t,n){var o=e.columns;if(0===(0,r.getSize)(o))return 0;var l=d(e.columns,n),a=function(e){var t=u(e);if(t>-1){var n=(0,r.getColumn)(e,t);return n.left+n.width}return 0}(e.columns),i=t>0?t:e.totalColumnWidth,s=(0,r.getColumn)(e.columns,l),c=a+n,f=i-a+(c>s.left?c-s.left:0);return function(e,t,n){var r={width:t,count:0};return e.slice(n).reduce(function(e,t){var n=e.width,r=e.count,o=n-t.width;return{width:o,count:o>=0?r+1:r}},r)}(e.columns,f,l).count};t.getVisibleBoundaries=function(e,t,n,r){var o=i(e/t),u=a(0,Math.round(n/t));return{rowVisibleStartIdx:u,rowVisibleEndIdx:l(u+o,r)}};t.getScrollDirection=function(e,t,n){return t!==e.scrollTop&&void 0!==e.scrollTop?t-e.scrollTop>=0?o.DOWN:o.UP:n!==e.scrollLeft&&void 0!==e.scrollLeft?n-e.scrollLeft>=0?o.RIGHT:o.LEFT:o.NONE};t.getRowOverscanStartIdx=function(e,t){return a(0,e===o.UP?t-2:t)};t.getRowOverscanEndIdx=function(e,t,n){return e===o.DOWN?l(t+2,n):t};t.getColOverscanStartIdx=function(e,t,n){return e===o.LEFT||e===o.RIGHT?n>-1?n+1:0:t};t.getColOverscanEndIdx=function(e,t,n){return e===o.DOWN||e===o.UP?t:n}},function(e,t,n){"use strict";var r=n(2);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(3)),l=r(n(4)),a=r(n(5)),i=r(n(6)),u=r(n(7)),d=r(n(12)),s=r(n(10)),c=r(n(1)),f=r(n(0)),p=n(24),g=function(e){function t(){var e,n;(0,o.default)(this,t);for(var r=arguments.length,l=new Array(r),u=0;u<r;u++)l[u]=arguments[u];return n=(0,a.default)(this,(e=(0,i.default)(t)).call.apply(e,[this].concat(l))),(0,s.default)((0,d.default)((0,d.default)(n)),"onAddSubRow",function(){n.props.onAddSubRow(n.props.parentRowId)}),n}return(0,u.default)(t,e),(0,l.default)(t,[{key:"getFrozenColumnsWidth",value:function(){for(var e=0,t=(0,p.getSize)(this.props.columns),n=0;n<t;n++){var r=(0,p.getColumn)(this.props.columns,n);r&&(0,p.getValue)(r,"frozen")&&(e+=(0,p.getValue)(r,"width"))}return e}},{key:"render",value:function(){var e=this,t=this.props,n=t.cellHeight,r=15*t.treeDepth,o=(n-12)/2,l={height:n,borderBottom:"1px solid #dddddd"},a=(0,p.getColumn)(this.props.columns.filter(function(t){return t.key===e.props.expandColumnKey}),0),i=a?a.left:0;return c.default.createElement("div",{className:"react-grid-Row rdg-add-child-row-container",style:l},c.default.createElement("div",{className:"react-grid-Cell",style:{position:"absolute",height:n,width:"100%",left:i}},c.default.createElement("div",{className:"rdg-empty-child-row",style:{marginLeft:"30px",lineHeight:"".concat(n,"px")}},c.default.createElement("div",{className:"'rdg-child-row-action-cross rdg-child-row-action-cross-last"}),c.default.createElement("div",{style:{left:r,top:o,width:12,height:12},className:"rdg-child-row-btn",onClick:this.onAddSubRow},c.default.createElement("div",{className:"glyphicon glyphicon-plus-sign"})))))}}]),t}(c.default.Component);g.propTypes={treeDepth:f.default.number.isRequired,cellHeight:f.default.number.isRequired,onAddSubRow:f.default.func.isRequired,parentRowId:f.default.number,columns:f.default.array.isRequired,expandColumnKey:f.default.string.isRequired};var h=g;t.default=h},function(e,t,n){"use strict";var r=n(2),o=r(n(157)),l=r(n(163));e.exports={SimpleCellFormatter:o.default,SelectAll:l.default}},function(e,t,n){"use strict";var r=n(2)(n(299));e.exports={test:{GridPropHelpers:r.default}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.fakeCellMetaData=t.default=void 0;for(var r=[],o=0;o<1e3;o++)r.push({id:o,title:"Title "+o,count:1e3*o});var l={columns:[{key:"id",name:"ID",width:100},{key:"title",name:"Title",width:100},{key:"count",name:"Count",width:100}],rowGetter:function(e){return r[e]},rowsCount:function(){return r.length},cellMetaData:{selected:{idx:2,rowIdx:3},dragged:null,copied:null}};t.default=l;t.fakeCellMetaData={rowKey:"id",onCellClick:function(){return null},onCellMouseDown:function(){return null},onColumnEvent:function(){return null},onCellExpand:function(){return null},onCellMouseEnter:function(){return null},onCellContextMenu:function(){return null},onRowExpandToggle:function(){return null},onCellDoubleClick:function(){return null},onDragEnter:function(){return null}}}])});

var _CSSTransition = __webpack_require__(992);

var _CSSTransition2 = _interopRequireDefault(_CSSTransition);

var _TransitionGroup = __webpack_require__(993);

var _TransitionGroup2 = _interopRequireDefault(_TransitionGroup);

var _Transition = __webpack_require__(622);

var _Transition2 = _interopRequireDefault(_Transition);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

module.exports = {
  Transition: _Transition2.default,
  TransitionGroup: _TransitionGroup2.default,
  CSSTransition: _CSSTransition2.default
};

exports.__esModule = true;

var _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; };

var _propTypes = __webpack_require__(3);

var PropTypes = _interopRequireWildcard(_propTypes);

var _addClass = __webpack_require__(583);

var _addClass2 = _interopRequireDefault(_addClass);

var _removeClass = __webpack_require__(584);

var _removeClass2 = _interopRequireDefault(_removeClass);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _Transition = __webpack_require__(622);

var _Transition2 = _interopRequireDefault(_Transition);

var _PropTypes = __webpack_require__(623);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var addClass = function addClass(node, classes) {
  return classes && classes.split(' ').forEach(function (c) {
    return (0, _addClass2.default)(node, c);
  });
};
var removeClass = function removeClass(node, classes) {
  return classes && classes.split(' ').forEach(function (c) {
    return (0, _removeClass2.default)(node, c);
  });
};

var propTypes = _extends({}, _Transition2.default.propTypes, {

  /**
   * The animation classNames applied to the component as it enters or exits.
   * A single name can be provided and it will be suffixed for each stage: e.g.
   *
   * `classNames="fade"` applies `fade-enter`, `fade-enter-active`,
   * `fade-exit`, `fade-exit-active`, `fade-appear`, and `fade-appear-active`.
   * Each individual classNames can also be specified independently like:
   *
   * ```js
   * classNames={{
   *  appear: 'my-appear',
   *  appearActive: 'my-active-appear',
   *  enter: 'my-enter',
   *  enterActive: 'my-active-enter',
   *  exit: 'my-exit',
   *  exitActive: 'my-active-exit',
   * }}
   * ```
   *
   * @type {string | {
   *  appear?: string,
   *  appearActive?: string,
   *  enter?: string,
   *  enterActive?: string,
   *  exit?: string,
   *  exitActive?: string,
   * }}
   */
  classNames: _PropTypes.classNamesShape,

  /**
   * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is
   * applied.
   *
   * @type Function(node: HtmlElement, isAppearing: bool)
   */
  onEnter: PropTypes.func,

  /**
   * A `<Transition>` callback fired immediately after the 'enter-active' or
   * 'appear-active' class is applied.
   *
   * @type Function(node: HtmlElement, isAppearing: bool)
   */
  onEntering: PropTypes.func,

  /**
   * A `<Transition>` callback fired immediately after the 'enter' or
   * 'appear' classes are **removed** from the DOM node.
   *
   * @type Function(node: HtmlElement, isAppearing: bool)
   */
  onEntered: PropTypes.func,

  /**
   * A `<Transition>` callback fired immediately after the 'exit' class is
   * applied.
   *
   * @type Function(node: HtmlElement)
   */
  onExit: PropTypes.func,

  /**
   * A `<Transition>` callback fired immediately after the 'exit-active' is applied.
   *
   * @type Function(node: HtmlElement
   */
  onExiting: PropTypes.func,

  /**
   * A `<Transition>` callback fired immediately after the 'exit' classes
   * are **removed** from the DOM node.
   *
   * @type Function(node: HtmlElement)
   */
  onExited: PropTypes.func
});

/**
 * A `Transition` component using CSS transitions and animations.
 * It's inspired by the excellent [ng-animate](http://www.nganimate.org/) library.
 *
 * `CSSTransition` applies a pair of class names during the `appear`, `enter`,
 * and `exit` stages of the transition. The first class is applied and then a
 * second "active" class in order to activate the css animation.
 *
 * When the `in` prop is toggled to `true` the Component will get
 * the `example-enter` CSS class and the `example-enter-active` CSS class
 * added in the next tick. This is a convention based on the `classNames` prop.
 *
 * ```js
 * import CSSTransition from 'react-transition-group/CSSTransition';
 *
 * const Fade = ({ children, ...props }) => (
 *  <CSSTransition
 *    {...props}
 *    timeout={500}
 *    classNames="fade"
 *  >
 *   {children}
 *  </CSSTransition>
 * );
 *
 * class FadeInAndOut extends React.Component {
 *   constructor(...args) {
 *     super(...args);
 *     this.state= { show: false }
 *
 *     setInterval(() => {
 *       this.setState({ show: !this.state.show })
 *     }, 5000)
 *   }
 *   render() {
 *     return (
 *       <Fade in={this.state.show}>
 *         <div>Hello world</div>
 *       </Fade>
 *     )
 *   }
 * }
 * ```
 *
 * And the coorresponding CSS for the `<Fade>` component:
 *
 * ```css
 * .fade-enter {
 *   opacity: 0.01;
 * }
 *
 * .fade-enter.fade-enter-active {
 *   opacity: 1;
 *   transition: opacity 500ms ease-in;
 * }
 *
 * .fade-exit {
 *   opacity: 1;
 * }
 *
 * .fade-exit.fade-exit-active {
 *   opacity: 0.01;
 *   transition: opacity 300ms ease-in;
 * }
 * ```
 */

var CSSTransition = function (_React$Component) {
  _inherits(CSSTransition, _React$Component);

  function CSSTransition() {
    var _temp, _this, _ret;

    _classCallCheck(this, CSSTransition);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.onEnter = function (node, appearing) {
      var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),
          className = _this$getClassNames.className;

      _this.removeClasses(node, 'exit');
      addClass(node, className);

      if (_this.props.onEnter) {
        _this.props.onEnter(node);
      }
    }, _this.onEntering = function (node, appearing) {
      var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),
          activeClassName = _this$getClassNames2.activeClassName;

      _this.reflowAndAddClass(node, activeClassName);

      if (_this.props.onEntering) {
        _this.props.onEntering(node);
      }
    }, _this.onEntered = function (node, appearing) {
      _this.removeClasses(node, appearing ? 'appear' : 'enter');

      if (_this.props.onEntered) {
        _this.props.onEntered(node);
      }
    }, _this.onExit = function (node) {
      var _this$getClassNames3 = _this.getClassNames('exit'),
          className = _this$getClassNames3.className;

      _this.removeClasses(node, 'appear');
      _this.removeClasses(node, 'enter');
      addClass(node, className);

      if (_this.props.onExit) {
        _this.props.onExit(node);
      }
    }, _this.onExiting = function (node) {
      var _this$getClassNames4 = _this.getClassNames('exit'),
          activeClassName = _this$getClassNames4.activeClassName;

      _this.reflowAndAddClass(node, activeClassName);

      if (_this.props.onExiting) {
        _this.props.onExiting(node);
      }
    }, _this.onExited = function (node) {
      _this.removeClasses(node, 'exit');

      if (_this.props.onExited) {
        _this.props.onExited(node);
      }
    }, _this.getClassNames = function (type) {
      var classNames = _this.props.classNames;


      var className = typeof classNames !== 'string' ? classNames[type] : classNames + '-' + type;

      var activeClassName = typeof classNames !== 'string' ? classNames[type + 'Active'] : className + '-active';

      return { className: className, activeClassName: activeClassName };
    }, _temp), _possibleConstructorReturn(_this, _ret);
  }

  CSSTransition.prototype.removeClasses = function removeClasses(node, type) {
    var _getClassNames = this.getClassNames(type),
        className = _getClassNames.className,
        activeClassName = _getClassNames.activeClassName;

    className && removeClass(node, className);
    activeClassName && removeClass(node, activeClassName);
  };

  CSSTransition.prototype.reflowAndAddClass = function reflowAndAddClass(node, className) {
    // This is for to force a repaint,
    // which is necessary in order to transition styles when adding a class name.
    /* eslint-disable no-unused-expressions */
    node.scrollTop;
    /* eslint-enable no-unused-expressions */
    addClass(node, className);
  };

  CSSTransition.prototype.render = function render() {
    var props = _extends({}, this.props);

    delete props.classNames;

    return _react2.default.createElement(_Transition2.default, _extends({}, props, {
      onEnter: this.onEnter,
      onEntered: this.onEntered,
      onEntering: this.onEntering,
      onExit: this.onExit,
      onExiting: this.onExiting,
      onExited: this.onExited
    }));
  };

  return CSSTransition;
}(_react2.default.Component);

CSSTransition.propTypes =  false ? undefined : {};

exports.default = CSSTransition;
module.exports = exports['default'];

exports.__esModule = true;
exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = undefined;

var _propTypes = __webpack_require__(3);

var PropTypes = _interopRequireWildcard(_propTypes);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _reactDom = __webpack_require__(40);

var _reactDom2 = _interopRequireDefault(_reactDom);

var _PropTypes = __webpack_require__(623);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }

function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var UNMOUNTED = exports.UNMOUNTED = 'unmounted';
var EXITED = exports.EXITED = 'exited';
var ENTERING = exports.ENTERING = 'entering';
var ENTERED = exports.ENTERED = 'entered';
var EXITING = exports.EXITING = 'exiting';

/**
 * The Transition component lets you describe a transition from one component
 * state to another _over time_ with a simple declarative API. Most commonly
 * it's used to animate the mounting and unmounting of a component, but can also
 * be used to describe in-place transition states as well.
 *
 * By default the `Transition` component does not alter the behavior of the
 * component it renders, it only tracks "enter" and "exit" states for the components.
 * It's up to you to give meaning and effect to those states. For example we can
 * add styles to a component when it enters or exits:
 *
 * ```jsx
 * import Transition from 'react-transition-group/Transition';
 *
 * const duration = 300;
 *
 * const defaultStyle = {
 *   transition: `opacity ${duration}ms ease-in-out`,
 *   opacity: 0,
 * }
 *
 * const transitionStyles = {
 *   entering: { opacity: 0 },
 *   entered:  { opacity: 1 },
 * };
 *
 * const Fade = ({ in: inProp }) => (
 *   <Transition in={inProp} timeout={duration}>
 *     {(state) => (
 *       <div style={{
 *         ...defaultStyle,
 *         ...transitionStyles[state]
 *       }}>
 *         I'm A fade Transition!
 *       </div>
 *     )}
 *   </Transition>
 * );
 * ```
 *
 * As noted the `Transition` component doesn't _do_ anything by itself to its child component.
 * What it does do is track transition states over time so you can update the
 * component (such as by adding styles or classes) when it changes states.
 *
 * There are 4 main states a Transition can be in:
 *  - `ENTERING`
 *  - `ENTERED`
 *  - `EXITING`
 *  - `EXITED`
 *
 * Transition state is toggled via the `in` prop. When `true` the component begins the
 * "Enter" stage. During this stage, the component will shift from its current transition state,
 * to `'entering'` for the duration of the transition and then to the `'entered'` stage once
 * it's complete. Let's take the following example:
 *
 * ```jsx
 * state= { in: false };
 *
 * toggleEnterState = () => {
 *   this.setState({ in: true });
 * }
 *
 * render() {
 *   return (
 *     <div>
 *       <Transition in={this.state.in} timeout={500} />
 *       <button onClick={this.toggleEnterState}>Click to Enter</button>
 *     </div>
 *   );
 * }
 * ```
 *
 * When the button is clicked the component will shift to the `'entering'` state and
 * stay there for 500ms (the value of `timeout`) when finally switches to `'entered'`.
 *
 * When `in` is `false` the same thing happens except the state moves from `'exiting'` to `'exited'`.
 */

var Transition = function (_React$Component) {
  _inherits(Transition, _React$Component);

  function Transition(props, context) {
    _classCallCheck(this, Transition);

    var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));

    var parentGroup = context.transitionGroup;
    // In the context of a TransitionGroup all enters are really appears
    var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;

    var initialStatus = void 0;
    _this.nextStatus = null;

    if (props.in) {
      if (appear) {
        initialStatus = EXITED;
        _this.nextStatus = ENTERING;
      } else {
        initialStatus = ENTERED;
      }
    } else {
      if (props.unmountOnExit || props.mountOnEnter) {
        initialStatus = UNMOUNTED;
      } else {
        initialStatus = EXITED;
      }
    }

    _this.state = { status: initialStatus };

    _this.nextCallback = null;
    return _this;
  }

  Transition.prototype.getChildContext = function getChildContext() {
    return { transitionGroup: null }; // allows for nested Transitions
  };

  Transition.prototype.componentDidMount = function componentDidMount() {
    this.updateStatus(true);
  };

  Transition.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
    var _ref = this.pendingState || this.state,
        status = _ref.status;

    if (nextProps.in) {
      if (status === UNMOUNTED) {
        this.setState({ status: EXITED });
      }
      if (status !== ENTERING && status !== ENTERED) {
        this.nextStatus = ENTERING;
      }
    } else {
      if (status === ENTERING || status === ENTERED) {
        this.nextStatus = EXITING;
      }
    }
  };

  Transition.prototype.componentDidUpdate = function componentDidUpdate() {
    this.updateStatus();
  };

  Transition.prototype.componentWillUnmount = function componentWillUnmount() {
    this.cancelNextCallback();
  };

  Transition.prototype.getTimeouts = function getTimeouts() {
    var timeout = this.props.timeout;

    var exit = void 0,
        enter = void 0,
        appear = void 0;

    exit = enter = appear = timeout;

    if (timeout != null && typeof timeout !== 'number') {
      exit = timeout.exit;
      enter = timeout.enter;
      appear = timeout.appear;
    }
    return { exit: exit, enter: enter, appear: appear };
  };

  Transition.prototype.updateStatus = function updateStatus() {
    var mounting = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;

    var nextStatus = this.nextStatus;

    if (nextStatus !== null) {
      this.nextStatus = null;
      // nextStatus will always be ENTERING or EXITING.
      this.cancelNextCallback();
      var node = _reactDom2.default.findDOMNode(this);

      if (nextStatus === ENTERING) {
        this.performEnter(node, mounting);
      } else {
        this.performExit(node);
      }
    } else if (this.props.unmountOnExit && this.state.status === EXITED) {
      this.setState({ status: UNMOUNTED });
    }
  };

  Transition.prototype.performEnter = function performEnter(node, mounting) {
    var _this2 = this;

    var enter = this.props.enter;

    var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;

    var timeouts = this.getTimeouts();

    // no enter animation skip right to ENTERED
    // if we are mounting and running this it means appear _must_ be set
    if (!mounting && !enter) {
      this.safeSetState({ status: ENTERED }, function () {
        _this2.props.onEntered(node);
      });
      return;
    }

    this.props.onEnter(node, appearing);

    this.safeSetState({ status: ENTERING }, function () {
      _this2.props.onEntering(node, appearing);

      // FIXME: appear timeout?
      _this2.onTransitionEnd(node, timeouts.enter, function () {
        _this2.safeSetState({ status: ENTERED }, function () {
          _this2.props.onEntered(node, appearing);
        });
      });
    });
  };

  Transition.prototype.performExit = function performExit(node) {
    var _this3 = this;

    var exit = this.props.exit;

    var timeouts = this.getTimeouts();

    // no exit animation skip right to EXITED
    if (!exit) {
      this.safeSetState({ status: EXITED }, function () {
        _this3.props.onExited(node);
      });
      return;
    }
    this.props.onExit(node);

    this.safeSetState({ status: EXITING }, function () {
      _this3.props.onExiting(node);

      _this3.onTransitionEnd(node, timeouts.exit, function () {
        _this3.safeSetState({ status: EXITED }, function () {
          _this3.props.onExited(node);
        });
      });
    });
  };

  Transition.prototype.cancelNextCallback = function cancelNextCallback() {
    if (this.nextCallback !== null) {
      this.nextCallback.cancel();
      this.nextCallback = null;
    }
  };

  Transition.prototype.safeSetState = function safeSetState(nextState, callback) {
    var _this4 = this;

    // We need to track pending updates for instances where a cWRP fires quickly
    // after cDM and before the state flushes, which would double trigger a
    // transition
    this.pendingState = nextState;

    // This shouldn't be necessary, but there are weird race conditions with
    // setState callbacks and unmounting in testing, so always make sure that
    // we can cancel any pending setState callbacks after we unmount.
    callback = this.setNextCallback(callback);
    this.setState(nextState, function () {
      _this4.pendingState = null;
      callback();
    });
  };

  Transition.prototype.setNextCallback = function setNextCallback(callback) {
    var _this5 = this;

    var active = true;

    this.nextCallback = function (event) {
      if (active) {
        active = false;
        _this5.nextCallback = null;

        callback(event);
      }
    };

    this.nextCallback.cancel = function () {
      active = false;
    };

    return this.nextCallback;
  };

  Transition.prototype.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {
    this.setNextCallback(handler);

    if (node) {
      if (this.props.addEndListener) {
        this.props.addEndListener(node, this.nextCallback);
      }
      if (timeout != null) {
        setTimeout(this.nextCallback, timeout);
      }
    } else {
      setTimeout(this.nextCallback, 0);
    }
  };

  Transition.prototype.render = function render() {
    var status = this.state.status;
    if (status === UNMOUNTED) {
      return null;
    }

    var _props = this.props,
        children = _props.children,
        childProps = _objectWithoutProperties(_props, ['children']);
    // filter props for Transtition


    delete childProps.in;
    delete childProps.mountOnEnter;
    delete childProps.unmountOnExit;
    delete childProps.appear;
    delete childProps.enter;
    delete childProps.exit;
    delete childProps.timeout;
    delete childProps.addEndListener;
    delete childProps.onEnter;
    delete childProps.onEntering;
    delete childProps.onEntered;
    delete childProps.onExit;
    delete childProps.onExiting;
    delete childProps.onExited;

    if (typeof children === 'function') {
      return children(status, childProps);
    }

    var child = _react2.default.Children.only(children);
    return _react2.default.cloneElement(child, childProps);
  };

  return Transition;
}(_react2.default.Component);

Transition.contextTypes = {
  transitionGroup: PropTypes.object
};
Transition.childContextTypes = {
  transitionGroup: function transitionGroup() {}
};


Transition.propTypes =  false ? undefined : {};

// Name the function so it is clearer in the documentation
function noop() {}

Transition.defaultProps = {
  in: false,
  mountOnEnter: false,
  unmountOnExit: false,
  appear: false,
  enter: true,
  exit: true,

  onEnter: noop,
  onEntering: noop,
  onEntered: noop,

  onExit: noop,
  onExiting: noop,
  onExited: noop
};

Transition.UNMOUNTED = 0;
Transition.EXITED = 1;
Transition.ENTERING = 2;
Transition.ENTERED = 3;
Transition.EXITING = 4;

exports.default = Transition;

exports.__esModule = true;
exports.classNamesShape = exports.timeoutsShape = undefined;
exports.transitionTimeout = transitionTimeout;

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function transitionTimeout(transitionType) {
  var timeoutPropName = 'transition' + transitionType + 'Timeout';
  var enabledPropName = 'transition' + transitionType;

  return function (props) {
    // If the transition is enabled
    if (props[enabledPropName]) {
      // If no timeout duration is provided
      if (props[timeoutPropName] == null) {
        return new Error(timeoutPropName + ' wasn\'t supplied to CSSTransitionGroup: ' + 'this can cause unreliable animations and won\'t be supported in ' + 'a future version of React. See ' + 'https://fb.me/react-animation-transition-group-timeout for more ' + 'information.');

        // If the duration isn't a number
      } else if (typeof props[timeoutPropName] !== 'number') {
        return new Error(timeoutPropName + ' must be a number (in milliseconds)');
      }
    }

    return null;
  };
}

var timeoutsShape = exports.timeoutsShape = _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({
  enter: _propTypes2.default.number,
  exit: _propTypes2.default.number
}).isRequired]);

var classNamesShape = exports.classNamesShape = _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({
  enter: _propTypes2.default.string,
  exit: _propTypes2.default.string,
  active: _propTypes2.default.string
}), _propTypes2.default.shape({
  enter: _propTypes2.default.string,
  enterActive: _propTypes2.default.string,
  exit: _propTypes2.default.string,
  exitActive: _propTypes2.default.string
})]);

exports.__esModule = true;

var _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; };

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _ChildMapping = __webpack_require__(994);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var values = Object.values || function (obj) {
  return Object.keys(obj).map(function (k) {
    return obj[k];
  });
};

var propTypes = {
  /**
   * `<TransitionGroup>` renders a `<div>` by default. You can change this
   * behavior by providing a `component` prop.
   */
  component: _propTypes2.default.any,
  /**
   * A set of `<Transition>` components, that are toggled `in` and out as they
   * leave. the `<TransitionGroup>` will inject specific transition props, so
   * remember to spread them through if you are wrapping the `<Transition>` as
   * with our `<Fade>` example.
   */
  children: _propTypes2.default.node,

  /**
   * A convenience prop that enables or disabled appear animations
   * for all children. Note that specifying this will override any defaults set
   * on individual children Transitions.
   */
  appear: _propTypes2.default.bool,
  /**
   * A convenience prop that enables or disabled enter animations
   * for all children. Note that specifying this will override any defaults set
   * on individual children Transitions.
   */
  enter: _propTypes2.default.bool,
  /**
    * A convenience prop that enables or disabled exit animations
    * for all children. Note that specifying this will override any defaults set
    * on individual children Transitions.
    */
  exit: _propTypes2.default.bool,

  /**
   * You may need to apply reactive updates to a child as it is exiting.
   * This is generally done by using `cloneElement` however in the case of an exiting
   * child the element has already been removed and not accessible to the consumer.
   *
   * If you do need to update a child as it leaves you can provide a `childFactory`
   * to wrap every child, even the ones that are leaving.
   *
   * @type Function(child: ReactElement) -> ReactElement
   */
  childFactory: _propTypes2.default.func
};

var defaultProps = {
  component: 'div',
  childFactory: function childFactory(child) {
    return child;
  }
};

/**
 * The `<TransitionGroup>` component manages a set of `<Transition>` components
 * in a list. Like with the `<Transition>` component, `<TransitionGroup>`, is a
 * state machine for managing the mounting and unmounting of components over
 * time.
 *
 * Consider the example below using the `Fade` CSS transition from before.
 * As items are removed or added to the TodoList the `in` prop is toggled
 * automatically by the `<TransitionGroup>`. You can use _any_ `<Transition>`
 * component in a `<TransitionGroup>`, not just css.
 *
 * ```jsx
 * import TransitionGroup from 'react-transition-group/TransitionGroup';
 *
 * class TodoList extends React.Component {
 *   constructor(props) {
 *     super(props)
 *     this.state = {items: ['hello', 'world', 'click', 'me']}
 *   }
 *   handleAdd() {
 *     const newItems = this.state.items.concat([
 *       prompt('Enter some text')
 *     ]);
 *     this.setState({ items: newItems });
 *   }
 *   handleRemove(i) {
 *     let newItems = this.state.items.slice();
 *     newItems.splice(i, 1);
 *     this.setState({items: newItems});
 *   }
 *   render() {
 *     return (
 *       <div>
 *         <button onClick={() => this.handleAdd()}>Add Item</button>
 *         <TransitionGroup>
 *           {this.state.items.map((item, i) => (
 *             <FadeTransition key={item}>
 *               <div>
 *                 {item}{' '}
 *                 <button onClick={() => this.handleRemove(i)}>
 *                   remove
 *                 </button>
 *               </div>
 *             </FadeTransition>
 *           ))}
 *         </TransitionGroup>
 *       </div>
 *     );
 *   }
 * }
 * ```
 *
 * Note that `<TransitionGroup>`  does not define any animation behavior!
 * Exactly _how_ a list item animates is up to the individual `<Transition>`
 * components. This means you can mix and match animations across different
 * list items.
 */

var TransitionGroup = function (_React$Component) {
  _inherits(TransitionGroup, _React$Component);

  function TransitionGroup(props, context) {
    _classCallCheck(this, TransitionGroup);

    // Initial children should all be entering, dependent on appear
    var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));

    _this.handleExited = function (key, node, originalHandler) {
      var currentChildMapping = (0, _ChildMapping.getChildMapping)(_this.props.children);

      if (key in currentChildMapping) return;

      if (originalHandler) originalHandler(node);

      _this.setState(function (state) {
        var children = _extends({}, state.children);

        delete children[key];
        return { children: children };
      });
    };

    _this.state = {
      children: (0, _ChildMapping.getChildMapping)(props.children, function (child) {
        var onExited = function onExited(node) {
          _this.handleExited(child.key, node, child.props.onExited);
        };

        return (0, _react.cloneElement)(child, {
          onExited: onExited,
          in: true,
          appear: _this.getProp(child, 'appear'),
          enter: _this.getProp(child, 'enter'),
          exit: _this.getProp(child, 'exit')
        });
      })
    };
    return _this;
  }

  TransitionGroup.prototype.getChildContext = function getChildContext() {
    return {
      transitionGroup: { isMounting: !this.appeared }
    };
  };
  // use child config unless explictly set by the Group


  TransitionGroup.prototype.getProp = function getProp(child, prop) {
    var props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.props;

    return props[prop] != null ? props[prop] : child.props[prop];
  };

  TransitionGroup.prototype.componentDidMount = function componentDidMount() {
    this.appeared = true;
  };

  TransitionGroup.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
    var _this2 = this;

    var prevChildMapping = this.state.children;
    var nextChildMapping = (0, _ChildMapping.getChildMapping)(nextProps.children);

    var children = (0, _ChildMapping.mergeChildMappings)(prevChildMapping, nextChildMapping);

    Object.keys(children).forEach(function (key) {
      var child = children[key];

      if (!(0, _react.isValidElement)(child)) return;

      var onExited = function onExited(node) {
        _this2.handleExited(child.key, node, child.props.onExited);
      };

      var hasPrev = key in prevChildMapping;
      var hasNext = key in nextChildMapping;

      var prevChild = prevChildMapping[key];
      var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in;

      // item is new (entering)
      if (hasNext && (!hasPrev || isLeaving)) {
        // console.log('entering', key)
        children[key] = (0, _react.cloneElement)(child, {
          onExited: onExited,
          in: true,
          exit: _this2.getProp(child, 'exit', nextProps),
          enter: _this2.getProp(child, 'enter', nextProps)
        });
      }
      // item is old (exiting)
      else if (!hasNext && hasPrev && !isLeaving) {
          // console.log('leaving', key)
          children[key] = (0, _react.cloneElement)(child, { in: false });
        }
        // item hasn't changed transition states
        // copy over the last transition props;
        else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {
            // console.log('unchanged', key)
            children[key] = (0, _react.cloneElement)(child, {
              onExited: onExited,
              in: prevChild.props.in,
              exit: _this2.getProp(child, 'exit', nextProps),
              enter: _this2.getProp(child, 'enter', nextProps)
            });
          }
    });

    this.setState({ children: children });
  };

  TransitionGroup.prototype.render = function render() {
    var _props = this.props,
        Component = _props.component,
        childFactory = _props.childFactory,
        props = _objectWithoutProperties(_props, ['component', 'childFactory']);

    var children = this.state.children;


    delete props.appear;
    delete props.enter;
    delete props.exit;

    return _react2.default.createElement(
      Component,
      props,
      values(children).map(childFactory)
    );
  };

  return TransitionGroup;
}(_react2.default.Component);

TransitionGroup.childContextTypes = {
  transitionGroup: _propTypes2.default.object.isRequired
};


TransitionGroup.propTypes =  false ? undefined : {};
TransitionGroup.defaultProps = defaultProps;

exports.default = TransitionGroup;
module.exports = exports['default'];

exports.__esModule = true;
exports.getChildMapping = getChildMapping;
exports.mergeChildMappings = mergeChildMappings;

var _react = __webpack_require__(2);

/**
 * Given `this.props.children`, return an object mapping key to child.
 *
 * @param {*} children `this.props.children`
 * @return {object} Mapping of key to child
 */
function getChildMapping(children, mapFn) {
  var mapper = function mapper(child) {
    return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;
  };

  var result = Object.create(null);
  if (children) _react.Children.map(children, function (c) {
    return c;
  }).forEach(function (child) {
    // run the map function here instead so that the key is the computed one
    result[child.key] = mapper(child);
  });
  return result;
}

/**
 * When you're adding or removing children some may be added or removed in the
 * same render pass. We want to show *both* since we want to simultaneously
 * animate elements in and out. This function takes a previous set of keys
 * and a new set of keys and merges them with its best guess of the correct
 * ordering. In the future we may expose some of the utilities in
 * ReactMultiChild to make this easy, but for now React itself does not
 * directly have this concept of the union of prevChildren and nextChildren
 * so we implement it here.
 *
 * @param {object} prev prev children as returned from
 * `ReactTransitionChildMapping.getChildMapping()`.
 * @param {object} next next children as returned from
 * `ReactTransitionChildMapping.getChildMapping()`.
 * @return {object} a key set that contains all keys in `prev` and all keys
 * in `next` in a reasonable order.
 */
function mergeChildMappings(prev, next) {
  prev = prev || {};
  next = next || {};

  function getValueForKey(key) {
    return key in next ? next[key] : prev[key];
  }

  // For each key of `next`, the list of keys to insert before that key in
  // the combined list
  var nextKeysPending = Object.create(null);

  var pendingKeys = [];
  for (var prevKey in prev) {
    if (prevKey in next) {
      if (pendingKeys.length) {
        nextKeysPending[prevKey] = pendingKeys;
        pendingKeys = [];
      }
    } else {
      pendingKeys.push(prevKey);
    }
  }

  var i = void 0;
  var childMapping = {};
  for (var nextKey in next) {
    if (nextKeysPending[nextKey]) {
      for (i = 0; i < nextKeysPending[nextKey].length; i++) {
        var pendingNextKey = nextKeysPending[nextKey][i];
        childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);
      }
    }
    childMapping[nextKey] = getValueForKey(nextKey);
  }

  // Finally, add the keys which didn't appear before any key in `next`
  for (i = 0; i < pendingKeys.length; i++) {
    childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);
  }

  return childMapping;
}var createCompounder = __webpack_require__(364);

/**
 * Converts `string` to
 * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).
 *
 * @static
 * @memberOf _
 * @since 3.0.0
 * @category String
 * @param {string} [string=''] The string to convert.
 * @returns {string} Returns the kebab cased string.
 * @example
 *
 * _.kebabCase('Foo Bar');
 * // => 'foo-bar'
 *
 * _.kebabCase('fooBar');
 * // => 'foo-bar'
 *
 * _.kebabCase('__FOO_BAR__');
 * // => 'foo-bar'
 */
var kebabCase = createCompounder(function(result, word, index) {
  return result + (index ? '-' : '') + word.toLowerCase();
});

module.exports = kebabCase;
/* WEBPACK VAR INJECTION */(function(global) {/**!
 * @fileOverview Kickass library to create and place poppers near their reference elements.
 * @version 1.14.4
 * @license
 * Copyright (c) 2016 Federico Zivolo and contributors
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */
var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';

var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
var timeoutDuration = 0;
for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
    timeoutDuration = 1;
    break;
  }
}

function microtaskDebounce(fn) {
  var called = false;
  return function () {
    if (called) {
      return;
    }
    called = true;
    window.Promise.resolve().then(function () {
      called = false;
      fn();
    });
  };
}

function taskDebounce(fn) {
  var scheduled = false;
  return function () {
    if (!scheduled) {
      scheduled = true;
      setTimeout(function () {
        scheduled = false;
        fn();
      }, timeoutDuration);
    }
  };
}

var supportsMicroTasks = isBrowser && window.Promise;

/**
* Create a debounced version of a method, that's asynchronously deferred
* but called in the minimum time possible.
*
* @method
* @memberof Popper.Utils
* @argument {Function} fn
* @returns {Function}
*/
var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;

/**
 * Check if the given variable is a function
 * @method
 * @memberof Popper.Utils
 * @argument {Any} functionToCheck - variable to check
 * @returns {Boolean} answer to: is a function?
 */
function isFunction(functionToCheck) {
  var getType = {};
  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
}

/**
 * Get CSS computed property of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Eement} element
 * @argument {String} property
 */
function getStyleComputedProperty(element, property) {
  if (element.nodeType !== 1) {
    return [];
  }
  // NOTE: 1 DOM access here
  var css = getComputedStyle(element, null);
  return property ? css[property] : css;
}

/**
 * Returns the parentNode or the host of the element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} parent
 */
function getParentNode(element) {
  if (element.nodeName === 'HTML') {
    return element;
  }
  return element.parentNode || element.host;
}

/**
 * Returns the scrolling parent of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} scroll parent
 */
function getScrollParent(element) {
  // Return body, `getScroll` will take care to get the correct `scrollTop` from it
  if (!element) {
    return document.body;
  }

  switch (element.nodeName) {
    case 'HTML':
    case 'BODY':
      return element.ownerDocument.body;
    case '#document':
      return element.body;
  }

  // Firefox want us to check `-x` and `-y` variations as well

  var _getStyleComputedProp = getStyleComputedProperty(element),
      overflow = _getStyleComputedProp.overflow,
      overflowX = _getStyleComputedProp.overflowX,
      overflowY = _getStyleComputedProp.overflowY;

  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
    return element;
  }

  return getScrollParent(getParentNode(element));
}

var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);

/**
 * Determines if the browser is Internet Explorer
 * @method
 * @memberof Popper.Utils
 * @param {Number} version to check
 * @returns {Boolean} isIE
 */
function isIE(version) {
  if (version === 11) {
    return isIE11;
  }
  if (version === 10) {
    return isIE10;
  }
  return isIE11 || isIE10;
}

/**
 * Returns the offset parent of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} offset parent
 */
function getOffsetParent(element) {
  if (!element) {
    return document.documentElement;
  }

  var noOffsetParent = isIE(10) ? document.body : null;

  // NOTE: 1 DOM access here
  var offsetParent = element.offsetParent;
  // Skip hidden elements which don't have an offsetParent
  while (offsetParent === noOffsetParent && element.nextElementSibling) {
    offsetParent = (element = element.nextElementSibling).offsetParent;
  }

  var nodeName = offsetParent && offsetParent.nodeName;

  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
    return element ? element.ownerDocument.documentElement : document.documentElement;
  }

  // .offsetParent will return the closest TD or TABLE in case
  // no offsetParent is present, I hate this job...
  if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
    return getOffsetParent(offsetParent);
  }

  return offsetParent;
}

function isOffsetContainer(element) {
  var nodeName = element.nodeName;

  if (nodeName === 'BODY') {
    return false;
  }
  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
}

/**
 * Finds the root node (document, shadowDOM root) of the given element
 * @method
 * @memberof Popper.Utils
 * @argument {Element} node
 * @returns {Element} root node
 */
function getRoot(node) {
  if (node.parentNode !== null) {
    return getRoot(node.parentNode);
  }

  return node;
}

/**
 * Finds the offset parent common to the two provided nodes
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element1
 * @argument {Element} element2
 * @returns {Element} common offset parent
 */
function findCommonOffsetParent(element1, element2) {
  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
    return document.documentElement;
  }

  // Here we make sure to give as "start" the element that comes first in the DOM
  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
  var start = order ? element1 : element2;
  var end = order ? element2 : element1;

  // Get common ancestor container
  var range = document.createRange();
  range.setStart(start, 0);
  range.setEnd(end, 0);
  var commonAncestorContainer = range.commonAncestorContainer;

  // Both nodes are inside #document

  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
    if (isOffsetContainer(commonAncestorContainer)) {
      return commonAncestorContainer;
    }

    return getOffsetParent(commonAncestorContainer);
  }

  // one of the nodes is inside shadowDOM, find which one
  var element1root = getRoot(element1);
  if (element1root.host) {
    return findCommonOffsetParent(element1root.host, element2);
  } else {
    return findCommonOffsetParent(element1, getRoot(element2).host);
  }
}

/**
 * Gets the scroll value of the given element in the given side (top and left)
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @argument {String} side `top` or `left`
 * @returns {number} amount of scrolled pixels
 */
function getScroll(element) {
  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';

  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
  var nodeName = element.nodeName;

  if (nodeName === 'BODY' || nodeName === 'HTML') {
    var html = element.ownerDocument.documentElement;
    var scrollingElement = element.ownerDocument.scrollingElement || html;
    return scrollingElement[upperSide];
  }

  return element[upperSide];
}

/*
 * Sum or subtract the element scroll values (left and top) from a given rect object
 * @method
 * @memberof Popper.Utils
 * @param {Object} rect - Rect object you want to change
 * @param {HTMLElement} element - The element from the function reads the scroll values
 * @param {Boolean} subtract - set to true if you want to subtract the scroll values
 * @return {Object} rect - The modifier rect object
 */
function includeScroll(rect, element) {
  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;

  var scrollTop = getScroll(element, 'top');
  var scrollLeft = getScroll(element, 'left');
  var modifier = subtract ? -1 : 1;
  rect.top += scrollTop * modifier;
  rect.bottom += scrollTop * modifier;
  rect.left += scrollLeft * modifier;
  rect.right += scrollLeft * modifier;
  return rect;
}

/*
 * Helper to detect borders of a given element
 * @method
 * @memberof Popper.Utils
 * @param {CSSStyleDeclaration} styles
 * Result of `getStyleComputedProperty` on the given element
 * @param {String} axis - `x` or `y`
 * @return {number} borders - The borders size of the given axis
 */

function getBordersSize(styles, axis) {
  var sideA = axis === 'x' ? 'Left' : 'Top';
  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';

  return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);
}

function getSize(axis, body, html, computedStyle) {
  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);
}

function getWindowSizes(document) {
  var body = document.body;
  var html = document.documentElement;
  var computedStyle = isIE(10) && getComputedStyle(html);

  return {
    height: getSize('Height', body, html, computedStyle),
    width: getSize('Width', body, html, computedStyle)
  };
}

var classCallCheck = function (instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
};

var createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();





var defineProperty = function (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;
};

var _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;
};

/**
 * Given element offsets, generate an output similar to getBoundingClientRect
 * @method
 * @memberof Popper.Utils
 * @argument {Object} offsets
 * @returns {Object} ClientRect like output
 */
function getClientRect(offsets) {
  return _extends({}, offsets, {
    right: offsets.left + offsets.width,
    bottom: offsets.top + offsets.height
  });
}

/**
 * Get bounding client rect of given element
 * @method
 * @memberof Popper.Utils
 * @param {HTMLElement} element
 * @return {Object} client rect
 */
function getBoundingClientRect(element) {
  var rect = {};

  // IE10 10 FIX: Please, don't ask, the element isn't
  // considered in DOM in some circumstances...
  // This isn't reproducible in IE10 compatibility mode of IE11
  try {
    if (isIE(10)) {
      rect = element.getBoundingClientRect();
      var scrollTop = getScroll(element, 'top');
      var scrollLeft = getScroll(element, 'left');
      rect.top += scrollTop;
      rect.left += scrollLeft;
      rect.bottom += scrollTop;
      rect.right += scrollLeft;
    } else {
      rect = element.getBoundingClientRect();
    }
  } catch (e) {}

  var result = {
    left: rect.left,
    top: rect.top,
    width: rect.right - rect.left,
    height: rect.bottom - rect.top
  };

  // subtract scrollbar size from sizes
  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
  var width = sizes.width || element.clientWidth || result.right - result.left;
  var height = sizes.height || element.clientHeight || result.bottom - result.top;

  var horizScrollbar = element.offsetWidth - width;
  var vertScrollbar = element.offsetHeight - height;

  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
  // we make this check conditional for performance reasons
  if (horizScrollbar || vertScrollbar) {
    var styles = getStyleComputedProperty(element);
    horizScrollbar -= getBordersSize(styles, 'x');
    vertScrollbar -= getBordersSize(styles, 'y');

    result.width -= horizScrollbar;
    result.height -= vertScrollbar;
  }

  return getClientRect(result);
}

function getOffsetRectRelativeToArbitraryNode(children, parent) {
  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;

  var isIE10 = isIE(10);
  var isHTML = parent.nodeName === 'HTML';
  var childrenRect = getBoundingClientRect(children);
  var parentRect = getBoundingClientRect(parent);
  var scrollParent = getScrollParent(children);

  var styles = getStyleComputedProperty(parent);
  var borderTopWidth = parseFloat(styles.borderTopWidth, 10);
  var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);

  // In cases where the parent is fixed, we must ignore negative scroll in offset calc
  if (fixedPosition && isHTML) {
    parentRect.top = Math.max(parentRect.top, 0);
    parentRect.left = Math.max(parentRect.left, 0);
  }
  var offsets = getClientRect({
    top: childrenRect.top - parentRect.top - borderTopWidth,
    left: childrenRect.left - parentRect.left - borderLeftWidth,
    width: childrenRect.width,
    height: childrenRect.height
  });
  offsets.marginTop = 0;
  offsets.marginLeft = 0;

  // Subtract margins of documentElement in case it's being used as parent
  // we do this only on HTML because it's the only element that behaves
  // differently when margins are applied to it. The margins are included in
  // the box of the documentElement, in the other cases not.
  if (!isIE10 && isHTML) {
    var marginTop = parseFloat(styles.marginTop, 10);
    var marginLeft = parseFloat(styles.marginLeft, 10);

    offsets.top -= borderTopWidth - marginTop;
    offsets.bottom -= borderTopWidth - marginTop;
    offsets.left -= borderLeftWidth - marginLeft;
    offsets.right -= borderLeftWidth - marginLeft;

    // Attach marginTop and marginLeft because in some circumstances we may need them
    offsets.marginTop = marginTop;
    offsets.marginLeft = marginLeft;
  }

  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
    offsets = includeScroll(offsets, parent);
  }

  return offsets;
}

function getViewportOffsetRectRelativeToArtbitraryNode(element) {
  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

  var html = element.ownerDocument.documentElement;
  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
  var width = Math.max(html.clientWidth, window.innerWidth || 0);
  var height = Math.max(html.clientHeight, window.innerHeight || 0);

  var scrollTop = !excludeScroll ? getScroll(html) : 0;
  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;

  var offset = {
    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
    width: width,
    height: height
  };

  return getClientRect(offset);
}

/**
 * Check if the given element is fixed or is inside a fixed parent
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @argument {Element} customContainer
 * @returns {Boolean} answer to "isFixed?"
 */
function isFixed(element) {
  var nodeName = element.nodeName;
  if (nodeName === 'BODY' || nodeName === 'HTML') {
    return false;
  }
  if (getStyleComputedProperty(element, 'position') === 'fixed') {
    return true;
  }
  return isFixed(getParentNode(element));
}

/**
 * Finds the first parent of an element that has a transformed property defined
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Element} first transformed parent or documentElement
 */

function getFixedPositionOffsetParent(element) {
  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
  if (!element || !element.parentElement || isIE()) {
    return document.documentElement;
  }
  var el = element.parentElement;
  while (el && getStyleComputedProperty(el, 'transform') === 'none') {
    el = el.parentElement;
  }
  return el || document.documentElement;
}

/**
 * Computed the boundaries limits and return them
 * @method
 * @memberof Popper.Utils
 * @param {HTMLElement} popper
 * @param {HTMLElement} reference
 * @param {number} padding
 * @param {HTMLElement} boundariesElement - Element used to define the boundaries
 * @param {Boolean} fixedPosition - Is in fixed position mode
 * @returns {Object} Coordinates of the boundaries
 */
function getBoundaries(popper, reference, padding, boundariesElement) {
  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;

  // NOTE: 1 DOM access here

  var boundaries = { top: 0, left: 0 };
  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);

  // Handle viewport case
  if (boundariesElement === 'viewport') {
    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
  } else {
    // Handle other cases based on DOM element used as boundaries
    var boundariesNode = void 0;
    if (boundariesElement === 'scrollParent') {
      boundariesNode = getScrollParent(getParentNode(reference));
      if (boundariesNode.nodeName === 'BODY') {
        boundariesNode = popper.ownerDocument.documentElement;
      }
    } else if (boundariesElement === 'window') {
      boundariesNode = popper.ownerDocument.documentElement;
    } else {
      boundariesNode = boundariesElement;
    }

    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);

    // In case of HTML, we need a different computation
    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
      var _getWindowSizes = getWindowSizes(popper.ownerDocument),
          height = _getWindowSizes.height,
          width = _getWindowSizes.width;

      boundaries.top += offsets.top - offsets.marginTop;
      boundaries.bottom = height + offsets.top;
      boundaries.left += offsets.left - offsets.marginLeft;
      boundaries.right = width + offsets.left;
    } else {
      // for all the other DOM elements, this one is good
      boundaries = offsets;
    }
  }

  // Add paddings
  padding = padding || 0;
  var isPaddingNumber = typeof padding === 'number';
  boundaries.left += isPaddingNumber ? padding : padding.left || 0;
  boundaries.top += isPaddingNumber ? padding : padding.top || 0;
  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;
  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;

  return boundaries;
}

function getArea(_ref) {
  var width = _ref.width,
      height = _ref.height;

  return width * height;
}

/**
 * Utility used to transform the `auto` placement to the placement with more
 * available space.
 * @method
 * @memberof Popper.Utils
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;

  if (placement.indexOf('auto') === -1) {
    return placement;
  }

  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);

  var rects = {
    top: {
      width: boundaries.width,
      height: refRect.top - boundaries.top
    },
    right: {
      width: boundaries.right - refRect.right,
      height: boundaries.height
    },
    bottom: {
      width: boundaries.width,
      height: boundaries.bottom - refRect.bottom
    },
    left: {
      width: refRect.left - boundaries.left,
      height: boundaries.height
    }
  };

  var sortedAreas = Object.keys(rects).map(function (key) {
    return _extends({
      key: key
    }, rects[key], {
      area: getArea(rects[key])
    });
  }).sort(function (a, b) {
    return b.area - a.area;
  });

  var filteredAreas = sortedAreas.filter(function (_ref2) {
    var width = _ref2.width,
        height = _ref2.height;
    return width >= popper.clientWidth && height >= popper.clientHeight;
  });

  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;

  var variation = placement.split('-')[1];

  return computedPlacement + (variation ? '-' + variation : '');
}

/**
 * Get offsets to the reference element
 * @method
 * @memberof Popper.Utils
 * @param {Object} state
 * @param {Element} popper - the popper element
 * @param {Element} reference - the reference element (the popper will be relative to this)
 * @param {Element} fixedPosition - is in fixed position mode
 * @returns {Object} An object containing the offsets which will be applied to the popper
 */
function getReferenceOffsets(state, popper, reference) {
  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;

  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
}

/**
 * Get the outer sizes of the given element (offset size + margins)
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element
 * @returns {Object} object containing width and height properties
 */
function getOuterSizes(element) {
  var styles = getComputedStyle(element);
  var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);
  var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
  var result = {
    width: element.offsetWidth + y,
    height: element.offsetHeight + x
  };
  return result;
}

/**
 * Get the opposite placement of the given one
 * @method
 * @memberof Popper.Utils
 * @argument {String} placement
 * @returns {String} flipped placement
 */
function getOppositePlacement(placement) {
  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
  return placement.replace(/left|right|bottom|top/g, function (matched) {
    return hash[matched];
  });
}

/**
 * Get offsets to the popper
 * @method
 * @memberof Popper.Utils
 * @param {Object} position - CSS position the Popper will get applied
 * @param {HTMLElement} popper - the popper element
 * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
 * @param {String} placement - one of the valid placement options
 * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
 */
function getPopperOffsets(popper, referenceOffsets, placement) {
  placement = placement.split('-')[0];

  // Get popper node sizes
  var popperRect = getOuterSizes(popper);

  // Add position, width and height to our offsets object
  var popperOffsets = {
    width: popperRect.width,
    height: popperRect.height
  };

  // depending by the popper placement we have to compute its offsets slightly differently
  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
  var mainSide = isHoriz ? 'top' : 'left';
  var secondarySide = isHoriz ? 'left' : 'top';
  var measurement = isHoriz ? 'height' : 'width';
  var secondaryMeasurement = !isHoriz ? 'height' : 'width';

  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
  if (placement === secondarySide) {
    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
  } else {
    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
  }

  return popperOffsets;
}

/**
 * Mimics the `find` method of Array
 * @method
 * @memberof Popper.Utils
 * @argument {Array} arr
 * @argument prop
 * @argument value
 * @returns index or -1
 */
function find(arr, check) {
  // use native find if supported
  if (Array.prototype.find) {
    return arr.find(check);
  }

  // use `filter` to obtain the same behavior of `find`
  return arr.filter(check)[0];
}

/**
 * Return the index of the matching object
 * @method
 * @memberof Popper.Utils
 * @argument {Array} arr
 * @argument prop
 * @argument value
 * @returns index or -1
 */
function findIndex(arr, prop, value) {
  // use native findIndex if supported
  if (Array.prototype.findIndex) {
    return arr.findIndex(function (cur) {
      return cur[prop] === value;
    });
  }

  // use `find` + `indexOf` if `findIndex` isn't supported
  var match = find(arr, function (obj) {
    return obj[prop] === value;
  });
  return arr.indexOf(match);
}

/**
 * Loop trough the list of modifiers and run them in order,
 * each of them will then edit the data object.
 * @method
 * @memberof Popper.Utils
 * @param {dataObject} data
 * @param {Array} modifiers
 * @param {String} ends - Optional modifier name used as stopper
 * @returns {dataObject}
 */
function runModifiers(modifiers, data, ends) {
  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));

  modifiersToRun.forEach(function (modifier) {
    if (modifier['function']) {
      // eslint-disable-line dot-notation
      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
    }
    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
    if (modifier.enabled && isFunction(fn)) {
      // Add properties to offsets to make them a complete clientRect object
      // we do this before each modifier to make sure the previous one doesn't
      // mess with these values
      data.offsets.popper = getClientRect(data.offsets.popper);
      data.offsets.reference = getClientRect(data.offsets.reference);

      data = fn(data, modifier);
    }
  });

  return data;
}

/**
 * Updates the position of the popper, computing the new offsets and applying
 * the new style.<br />
 * Prefer `scheduleUpdate` over `update` because of performance reasons.
 * @method
 * @memberof Popper
 */
function update() {
  // if popper is destroyed, don't perform any further update
  if (this.state.isDestroyed) {
    return;
  }

  var data = {
    instance: this,
    styles: {},
    arrowStyles: {},
    attributes: {},
    flipped: false,
    offsets: {}
  };

  // compute reference element offsets
  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);

  // compute auto placement, store placement inside the data object,
  // modifiers will be able to edit `placement` if needed
  // and refer to originalPlacement to know the original value
  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);

  // store the computed placement inside `originalPlacement`
  data.originalPlacement = data.placement;

  data.positionFixed = this.options.positionFixed;

  // compute the popper offsets
  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);

  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';

  // run the modifiers
  data = runModifiers(this.modifiers, data);

  // the first `update` will call `onCreate` callback
  // the other ones will call `onUpdate` callback
  if (!this.state.isCreated) {
    this.state.isCreated = true;
    this.options.onCreate(data);
  } else {
    this.options.onUpdate(data);
  }
}

/**
 * Helper used to know if the given modifier is enabled.
 * @method
 * @memberof Popper.Utils
 * @returns {Boolean}
 */
function isModifierEnabled(modifiers, modifierName) {
  return modifiers.some(function (_ref) {
    var name = _ref.name,
        enabled = _ref.enabled;
    return enabled && name === modifierName;
  });
}

/**
 * Get the prefixed supported property name
 * @method
 * @memberof Popper.Utils
 * @argument {String} property (camelCase)
 * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
 */
function getSupportedPropertyName(property) {
  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);

  for (var i = 0; i < prefixes.length; i++) {
    var prefix = prefixes[i];
    var toCheck = prefix ? '' + prefix + upperProp : property;
    if (typeof document.body.style[toCheck] !== 'undefined') {
      return toCheck;
    }
  }
  return null;
}

/**
 * Destroys the popper.
 * @method
 * @memberof Popper
 */
function destroy() {
  this.state.isDestroyed = true;

  // touch DOM only if `applyStyle` modifier is enabled
  if (isModifierEnabled(this.modifiers, 'applyStyle')) {
    this.popper.removeAttribute('x-placement');
    this.popper.style.position = '';
    this.popper.style.top = '';
    this.popper.style.left = '';
    this.popper.style.right = '';
    this.popper.style.bottom = '';
    this.popper.style.willChange = '';
    this.popper.style[getSupportedPropertyName('transform')] = '';
  }

  this.disableEventListeners();

  // remove the popper if user explicity asked for the deletion on destroy
  // do not use `remove` because IE11 doesn't support it
  if (this.options.removeOnDestroy) {
    this.popper.parentNode.removeChild(this.popper);
  }
  return this;
}

/**
 * Get the window associated with the element
 * @argument {Element} element
 * @returns {Window}
 */
function getWindow(element) {
  var ownerDocument = element.ownerDocument;
  return ownerDocument ? ownerDocument.defaultView : window;
}

function attachToScrollParents(scrollParent, event, callback, scrollParents) {
  var isBody = scrollParent.nodeName === 'BODY';
  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
  target.addEventListener(event, callback, { passive: true });

  if (!isBody) {
    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
  }
  scrollParents.push(target);
}

/**
 * Setup needed event listeners used to update the popper position
 * @method
 * @memberof Popper.Utils
 * @private
 */
function setupEventListeners(reference, options, state, updateBound) {
  // Resize event listener on window
  state.updateBound = updateBound;
  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });

  // Scroll event listener on scroll parents
  var scrollElement = getScrollParent(reference);
  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
  state.scrollElement = scrollElement;
  state.eventsEnabled = true;

  return state;
}

/**
 * It will add resize/scroll events and start recalculating
 * position of the popper element when they are triggered.
 * @method
 * @memberof Popper
 */
function enableEventListeners() {
  if (!this.state.eventsEnabled) {
    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
  }
}

/**
 * Remove event listeners used to update the popper position
 * @method
 * @memberof Popper.Utils
 * @private
 */
function removeEventListeners(reference, state) {
  // Remove resize event listener on window
  getWindow(reference).removeEventListener('resize', state.updateBound);

  // Remove scroll event listener on scroll parents
  state.scrollParents.forEach(function (target) {
    target.removeEventListener('scroll', state.updateBound);
  });

  // Reset state
  state.updateBound = null;
  state.scrollParents = [];
  state.scrollElement = null;
  state.eventsEnabled = false;
  return state;
}

/**
 * It will remove resize/scroll events and won't recalculate popper position
 * when they are triggered. It also won't trigger `onUpdate` callback anymore,
 * unless you call `update` method manually.
 * @method
 * @memberof Popper
 */
function disableEventListeners() {
  if (this.state.eventsEnabled) {
    cancelAnimationFrame(this.scheduleUpdate);
    this.state = removeEventListeners(this.reference, this.state);
  }
}

/**
 * Tells if a given input is a number
 * @method
 * @memberof Popper.Utils
 * @param {*} input to check
 * @return {Boolean}
 */
function isNumeric(n) {
  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
}

/**
 * Set the style to the given popper
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element - Element to apply the style to
 * @argument {Object} styles
 * Object with a list of properties and values which will be applied to the element
 */
function setStyles(element, styles) {
  Object.keys(styles).forEach(function (prop) {
    var unit = '';
    // add unit if the value is numeric and is one of the following
    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
      unit = 'px';
    }
    element.style[prop] = styles[prop] + unit;
  });
}

/**
 * Set the attributes to the given popper
 * @method
 * @memberof Popper.Utils
 * @argument {Element} element - Element to apply the attributes to
 * @argument {Object} styles
 * Object with a list of properties and values which will be applied to the element
 */
function setAttributes(element, attributes) {
  Object.keys(attributes).forEach(function (prop) {
    var value = attributes[prop];
    if (value !== false) {
      element.setAttribute(prop, attributes[prop]);
    } else {
      element.removeAttribute(prop);
    }
  });
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} data.styles - List of style properties - values to apply to popper element
 * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The same data object
 */
function applyStyle(data) {
  // any property present in `data.styles` will be applied to the popper,
  // in this way we can make the 3rd party modifiers add custom styles to it
  // Be aware, modifiers could override the properties defined in the previous
  // lines of this modifier!
  setStyles(data.instance.popper, data.styles);

  // any property present in `data.attributes` will be applied to the popper,
  // they will be set as HTML attributes of the element
  setAttributes(data.instance.popper, data.attributes);

  // if arrowElement is defined and arrowStyles has some properties
  if (data.arrowElement && Object.keys(data.arrowStyles).length) {
    setStyles(data.arrowElement, data.arrowStyles);
  }

  return data;
}

/**
 * Set the x-placement attribute before everything else because it could be used
 * to add margins to the popper margins needs to be calculated to get the
 * correct popper offsets.
 * @method
 * @memberof Popper.modifiers
 * @param {HTMLElement} reference - The reference element used to position the popper
 * @param {HTMLElement} popper - The HTML element used as popper
 * @param {Object} options - Popper.js options
 */
function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
  // compute reference element offsets
  var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);

  // compute auto placement, store placement inside the data object,
  // modifiers will be able to edit `placement` if needed
  // and refer to originalPlacement to know the original value
  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);

  popper.setAttribute('x-placement', placement);

  // Apply `position` to popper before anything else because
  // without the position applied we can't guarantee correct computations
  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });

  return options;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function computeStyle(data, options) {
  var x = options.x,
      y = options.y;
  var popper = data.offsets.popper;

  // Remove this legacy support in Popper.js v2

  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {
    return modifier.name === 'applyStyle';
  }).gpuAcceleration;
  if (legacyGpuAccelerationOption !== undefined) {
    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
  }
  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;

  var offsetParent = getOffsetParent(data.instance.popper);
  var offsetParentRect = getBoundingClientRect(offsetParent);

  // Styles
  var styles = {
    position: popper.position
  };

  // Avoid blurry text by using full pixel integers.
  // For pixel-perfect positioning, top/bottom prefers rounded
  // values, while left/right prefers floored values.
  var offsets = {
    left: Math.floor(popper.left),
    top: Math.round(popper.top),
    bottom: Math.round(popper.bottom),
    right: Math.floor(popper.right)
  };

  var sideA = x === 'bottom' ? 'top' : 'bottom';
  var sideB = y === 'right' ? 'left' : 'right';

  // if gpuAcceleration is set to `true` and transform is supported,
  //  we use `translate3d` to apply the position to the popper we
  // automatically use the supported prefixed version if needed
  var prefixedProperty = getSupportedPropertyName('transform');

  // now, let's make a step back and look at this code closely (wtf?)
  // If the content of the popper grows once it's been positioned, it
  // may happen that the popper gets misplaced because of the new content
  // overflowing its reference element
  // To avoid this problem, we provide two options (x and y), which allow
  // the consumer to define the offset origin.
  // If we position a popper on top of a reference element, we can set
  // `x` to `top` to make the popper grow towards its top instead of
  // its bottom.
  var left = void 0,
      top = void 0;
  if (sideA === 'bottom') {
    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)
    // and not the bottom of the html element
    if (offsetParent.nodeName === 'HTML') {
      top = -offsetParent.clientHeight + offsets.bottom;
    } else {
      top = -offsetParentRect.height + offsets.bottom;
    }
  } else {
    top = offsets.top;
  }
  if (sideB === 'right') {
    if (offsetParent.nodeName === 'HTML') {
      left = -offsetParent.clientWidth + offsets.right;
    } else {
      left = -offsetParentRect.width + offsets.right;
    }
  } else {
    left = offsets.left;
  }
  if (gpuAcceleration && prefixedProperty) {
    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
    styles[sideA] = 0;
    styles[sideB] = 0;
    styles.willChange = 'transform';
  } else {
    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
    var invertTop = sideA === 'bottom' ? -1 : 1;
    var invertLeft = sideB === 'right' ? -1 : 1;
    styles[sideA] = top * invertTop;
    styles[sideB] = left * invertLeft;
    styles.willChange = sideA + ', ' + sideB;
  }

  // Attributes
  var attributes = {
    'x-placement': data.placement
  };

  // Update `data` attributes, styles and arrowStyles
  data.attributes = _extends({}, attributes, data.attributes);
  data.styles = _extends({}, styles, data.styles);
  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);

  return data;
}

/**
 * Helper used to know if the given modifier depends from another one.<br />
 * It checks if the needed modifier is listed and enabled.
 * @method
 * @memberof Popper.Utils
 * @param {Array} modifiers - list of modifiers
 * @param {String} requestingName - name of requesting modifier
 * @param {String} requestedName - name of requested modifier
 * @returns {Boolean}
 */
function isModifierRequired(modifiers, requestingName, requestedName) {
  var requesting = find(modifiers, function (_ref) {
    var name = _ref.name;
    return name === requestingName;
  });

  var isRequired = !!requesting && modifiers.some(function (modifier) {
    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
  });

  if (!isRequired) {
    var _requesting = '`' + requestingName + '`';
    var requested = '`' + requestedName + '`';
    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
  }
  return isRequired;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function arrow(data, options) {
  var _data$offsets$arrow;

  // arrow depends on keepTogether in order to work
  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
    return data;
  }

  var arrowElement = options.element;

  // if arrowElement is a string, suppose it's a CSS selector
  if (typeof arrowElement === 'string') {
    arrowElement = data.instance.popper.querySelector(arrowElement);

    // if arrowElement is not found, don't run the modifier
    if (!arrowElement) {
      return data;
    }
  } else {
    // if the arrowElement isn't a query selector we must check that the
    // provided DOM node is child of its popper node
    if (!data.instance.popper.contains(arrowElement)) {
      console.warn('WARNING: `arrow.element` must be child of its popper element!');
      return data;
    }
  }

  var placement = data.placement.split('-')[0];
  var _data$offsets = data.offsets,
      popper = _data$offsets.popper,
      reference = _data$offsets.reference;

  var isVertical = ['left', 'right'].indexOf(placement) !== -1;

  var len = isVertical ? 'height' : 'width';
  var sideCapitalized = isVertical ? 'Top' : 'Left';
  var side = sideCapitalized.toLowerCase();
  var altSide = isVertical ? 'left' : 'top';
  var opSide = isVertical ? 'bottom' : 'right';
  var arrowElementSize = getOuterSizes(arrowElement)[len];

  //
  // extends keepTogether behavior making sure the popper and its
  // reference have enough pixels in conjunction
  //

  // top/left side
  if (reference[opSide] - arrowElementSize < popper[side]) {
    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
  }
  // bottom/right side
  if (reference[side] + arrowElementSize > popper[opSide]) {
    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
  }
  data.offsets.popper = getClientRect(data.offsets.popper);

  // compute center of the popper
  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;

  // Compute the sideValue using the updated popper offsets
  // take popper margin in account because we don't have this info available
  var css = getStyleComputedProperty(data.instance.popper);
  var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);
  var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);
  var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;

  // prevent arrowElement from being placed not contiguously to its popper
  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);

  data.arrowElement = arrowElement;
  data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);

  return data;
}

/**
 * Get the opposite placement variation of the given one
 * @method
 * @memberof Popper.Utils
 * @argument {String} placement variation
 * @returns {String} flipped placement variation
 */
function getOppositeVariation(variation) {
  if (variation === 'end') {
    return 'start';
  } else if (variation === 'start') {
    return 'end';
  }
  return variation;
}

/**
 * List of accepted placements to use as values of the `placement` option.<br />
 * Valid placements are:
 * - `auto`
 * - `top`
 * - `right`
 * - `bottom`
 * - `left`
 *
 * Each placement can have a variation from this list:
 * - `-start`
 * - `-end`
 *
 * Variations are interpreted easily if you think of them as the left to right
 * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
 * is right.<br />
 * Vertically (`left` and `right`), `start` is top and `end` is bottom.
 *
 * Some valid examples are:
 * - `top-end` (on top of reference, right aligned)
 * - `right-start` (on right of reference, top aligned)
 * - `bottom` (on bottom, centered)
 * - `auto-end` (on the side with more space available, alignment depends by placement)
 *
 * @static
 * @type {Array}
 * @enum {String}
 * @readonly
 * @method placements
 * @memberof Popper
 */
var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];

// Get rid of `auto` `auto-start` and `auto-end`
var validPlacements = placements.slice(3);

/**
 * Given an initial placement, returns all the subsequent placements
 * clockwise (or counter-clockwise).
 *
 * @method
 * @memberof Popper.Utils
 * @argument {String} placement - A valid placement (it accepts variations)
 * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
 * @returns {Array} placements including their variations
 */
function clockwise(placement) {
  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

  var index = validPlacements.indexOf(placement);
  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
  return counter ? arr.reverse() : arr;
}

var BEHAVIORS = {
  FLIP: 'flip',
  CLOCKWISE: 'clockwise',
  COUNTERCLOCKWISE: 'counterclockwise'
};

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function flip(data, options) {
  // if `inner` modifier is enabled, we can't use the `flip` modifier
  if (isModifierEnabled(data.instance.modifiers, 'inner')) {
    return data;
  }

  if (data.flipped && data.placement === data.originalPlacement) {
    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
    return data;
  }

  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);

  var placement = data.placement.split('-')[0];
  var placementOpposite = getOppositePlacement(placement);
  var variation = data.placement.split('-')[1] || '';

  var flipOrder = [];

  switch (options.behavior) {
    case BEHAVIORS.FLIP:
      flipOrder = [placement, placementOpposite];
      break;
    case BEHAVIORS.CLOCKWISE:
      flipOrder = clockwise(placement);
      break;
    case BEHAVIORS.COUNTERCLOCKWISE:
      flipOrder = clockwise(placement, true);
      break;
    default:
      flipOrder = options.behavior;
  }

  flipOrder.forEach(function (step, index) {
    if (placement !== step || flipOrder.length === index + 1) {
      return data;
    }

    placement = data.placement.split('-')[0];
    placementOpposite = getOppositePlacement(placement);

    var popperOffsets = data.offsets.popper;
    var refOffsets = data.offsets.reference;

    // using floor because the reference offsets may contain decimals we are not going to consider here
    var floor = Math.floor;
    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);

    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);

    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;

    // flip the variation if required
    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
    var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);

    if (overlapsRef || overflowsBoundaries || flippedVariation) {
      // this boolean to detect any flip loop
      data.flipped = true;

      if (overlapsRef || overflowsBoundaries) {
        placement = flipOrder[index + 1];
      }

      if (flippedVariation) {
        variation = getOppositeVariation(variation);
      }

      data.placement = placement + (variation ? '-' + variation : '');

      // this object contains `position`, we want to preserve it along with
      // any additional property we may add in the future
      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));

      data = runModifiers(data.instance.modifiers, data, 'flip');
    }
  });
  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function keepTogether(data) {
  var _data$offsets = data.offsets,
      popper = _data$offsets.popper,
      reference = _data$offsets.reference;

  var placement = data.placement.split('-')[0];
  var floor = Math.floor;
  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
  var side = isVertical ? 'right' : 'bottom';
  var opSide = isVertical ? 'left' : 'top';
  var measurement = isVertical ? 'width' : 'height';

  if (popper[side] < floor(reference[opSide])) {
    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
  }
  if (popper[opSide] > floor(reference[side])) {
    data.offsets.popper[opSide] = floor(reference[side]);
  }

  return data;
}

/**
 * Converts a string containing value + unit into a px value number
 * @function
 * @memberof {modifiers~offset}
 * @private
 * @argument {String} str - Value + unit string
 * @argument {String} measurement - `height` or `width`
 * @argument {Object} popperOffsets
 * @argument {Object} referenceOffsets
 * @returns {Number|String}
 * Value in pixels, or original string if no values were extracted
 */
function toValue(str, measurement, popperOffsets, referenceOffsets) {
  // separate value from unit
  var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
  var value = +split[1];
  var unit = split[2];

  // If it's not a number it's an operator, I guess
  if (!value) {
    return str;
  }

  if (unit.indexOf('%') === 0) {
    var element = void 0;
    switch (unit) {
      case '%p':
        element = popperOffsets;
        break;
      case '%':
      case '%r':
      default:
        element = referenceOffsets;
    }

    var rect = getClientRect(element);
    return rect[measurement] / 100 * value;
  } else if (unit === 'vh' || unit === 'vw') {
    // if is a vh or vw, we calculate the size based on the viewport
    var size = void 0;
    if (unit === 'vh') {
      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
    } else {
      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
    }
    return size / 100 * value;
  } else {
    // if is an explicit pixel unit, we get rid of the unit and keep the value
    // if is an implicit unit, it's px, and we return just the value
    return value;
  }
}

/**
 * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
 * @function
 * @memberof {modifiers~offset}
 * @private
 * @argument {String} offset
 * @argument {Object} popperOffsets
 * @argument {Object} referenceOffsets
 * @argument {String} basePlacement
 * @returns {Array} a two cells array with x and y offsets in numbers
 */
function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
  var offsets = [0, 0];

  // Use height if placement is left or right and index is 0 otherwise use width
  // in this way the first offset will use an axis and the second one
  // will use the other one
  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;

  // Split the offset string to obtain a list of values and operands
  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)
  var fragments = offset.split(/(\+|\-)/).map(function (frag) {
    return frag.trim();
  });

  // Detect if the offset string contains a pair of values or a single one
  // they could be separated by comma or space
  var divider = fragments.indexOf(find(fragments, function (frag) {
    return frag.search(/,|\s/) !== -1;
  }));

  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
  }

  // If divider is found, we divide the list of values and operands to divide
  // them by ofset X and Y.
  var splitRegex = /\s*,\s*|\s+/;
  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];

  // Convert the values with units to absolute pixels to allow our computations
  ops = ops.map(function (op, index) {
    // Most of the units rely on the orientation of the popper
    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
    var mergeWithPrevious = false;
    return op
    // This aggregates any `+` or `-` sign that aren't considered operators
    // e.g.: 10 + +5 => [10, +, +5]
    .reduce(function (a, b) {
      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
        a[a.length - 1] = b;
        mergeWithPrevious = true;
        return a;
      } else if (mergeWithPrevious) {
        a[a.length - 1] += b;
        mergeWithPrevious = false;
        return a;
      } else {
        return a.concat(b);
      }
    }, [])
    // Here we convert the string values into number values (in px)
    .map(function (str) {
      return toValue(str, measurement, popperOffsets, referenceOffsets);
    });
  });

  // Loop trough the offsets arrays and execute the operations
  ops.forEach(function (op, index) {
    op.forEach(function (frag, index2) {
      if (isNumeric(frag)) {
        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
      }
    });
  });
  return offsets;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @argument {Number|String} options.offset=0
 * The offset value as described in the modifier description
 * @returns {Object} The data object, properly modified
 */
function offset(data, _ref) {
  var offset = _ref.offset;
  var placement = data.placement,
      _data$offsets = data.offsets,
      popper = _data$offsets.popper,
      reference = _data$offsets.reference;

  var basePlacement = placement.split('-')[0];

  var offsets = void 0;
  if (isNumeric(+offset)) {
    offsets = [+offset, 0];
  } else {
    offsets = parseOffset(offset, popper, reference, basePlacement);
  }

  if (basePlacement === 'left') {
    popper.top += offsets[0];
    popper.left -= offsets[1];
  } else if (basePlacement === 'right') {
    popper.top += offsets[0];
    popper.left += offsets[1];
  } else if (basePlacement === 'top') {
    popper.left += offsets[0];
    popper.top -= offsets[1];
  } else if (basePlacement === 'bottom') {
    popper.left += offsets[0];
    popper.top += offsets[1];
  }

  data.popper = popper;
  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function preventOverflow(data, options) {
  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);

  // If offsetParent is the reference element, we really want to
  // go one step up and use the next offsetParent as reference to
  // avoid to make this modifier completely useless and look like broken
  if (data.instance.reference === boundariesElement) {
    boundariesElement = getOffsetParent(boundariesElement);
  }

  // NOTE: DOM access here
  // resets the popper's position so that the document size can be calculated excluding
  // the size of the popper element itself
  var transformProp = getSupportedPropertyName('transform');
  var popperStyles = data.instance.popper.style; // assignment to help minification
  var top = popperStyles.top,
      left = popperStyles.left,
      transform = popperStyles[transformProp];

  popperStyles.top = '';
  popperStyles.left = '';
  popperStyles[transformProp] = '';

  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);

  // NOTE: DOM access here
  // restores the original style properties after the offsets have been computed
  popperStyles.top = top;
  popperStyles.left = left;
  popperStyles[transformProp] = transform;

  options.boundaries = boundaries;

  var order = options.priority;
  var popper = data.offsets.popper;

  var check = {
    primary: function primary(placement) {
      var value = popper[placement];
      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
        value = Math.max(popper[placement], boundaries[placement]);
      }
      return defineProperty({}, placement, value);
    },
    secondary: function secondary(placement) {
      var mainSide = placement === 'right' ? 'left' : 'top';
      var value = popper[mainSide];
      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
      }
      return defineProperty({}, mainSide, value);
    }
  };

  order.forEach(function (placement) {
    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
    popper = _extends({}, popper, check[side](placement));
  });

  data.offsets.popper = popper;

  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function shift(data) {
  var placement = data.placement;
  var basePlacement = placement.split('-')[0];
  var shiftvariation = placement.split('-')[1];

  // if shift shiftvariation is specified, run the modifier
  if (shiftvariation) {
    var _data$offsets = data.offsets,
        reference = _data$offsets.reference,
        popper = _data$offsets.popper;

    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
    var side = isVertical ? 'left' : 'top';
    var measurement = isVertical ? 'width' : 'height';

    var shiftOffsets = {
      start: defineProperty({}, side, reference[side]),
      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])
    };

    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);
  }

  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by update method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function hide(data) {
  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
    return data;
  }

  var refRect = data.offsets.reference;
  var bound = find(data.instance.modifiers, function (modifier) {
    return modifier.name === 'preventOverflow';
  }).boundaries;

  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
    // Avoid unnecessary DOM access if visibility hasn't changed
    if (data.hide === true) {
      return data;
    }

    data.hide = true;
    data.attributes['x-out-of-boundaries'] = '';
  } else {
    // Avoid unnecessary DOM access if visibility hasn't changed
    if (data.hide === false) {
      return data;
    }

    data.hide = false;
    data.attributes['x-out-of-boundaries'] = false;
  }

  return data;
}

/**
 * @function
 * @memberof Modifiers
 * @argument {Object} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {Object} The data object, properly modified
 */
function inner(data) {
  var placement = data.placement;
  var basePlacement = placement.split('-')[0];
  var _data$offsets = data.offsets,
      popper = _data$offsets.popper,
      reference = _data$offsets.reference;

  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;

  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;

  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);

  data.placement = getOppositePlacement(placement);
  data.offsets.popper = getClientRect(popper);

  return data;
}

/**
 * Modifier function, each modifier can have a function of this type assigned
 * to its `fn` property.<br />
 * These functions will be called on each update, this means that you must
 * make sure they are performant enough to avoid performance bottlenecks.
 *
 * @function ModifierFn
 * @argument {dataObject} data - The data object generated by `update` method
 * @argument {Object} options - Modifiers configuration and options
 * @returns {dataObject} The data object, properly modified
 */

/**
 * Modifiers are plugins used to alter the behavior of your poppers.<br />
 * Popper.js uses a set of 9 modifiers to provide all the basic functionalities
 * needed by the library.
 *
 * Usually you don't want to override the `order`, `fn` and `onLoad` props.
 * All the other properties are configurations that could be tweaked.
 * @namespace modifiers
 */
var modifiers = {
  /**
   * Modifier used to shift the popper on the start or end of its reference
   * element.<br />
   * It will read the variation of the `placement` property.<br />
   * It can be one either `-end` or `-start`.
   * @memberof modifiers
   * @inner
   */
  shift: {
    /** @prop {number} order=100 - Index used to define the order of execution */
    order: 100,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: shift
  },

  /**
   * The `offset` modifier can shift your popper on both its axis.
   *
   * It accepts the following units:
   * - `px` or unit-less, interpreted as pixels
   * - `%` or `%r`, percentage relative to the length of the reference element
   * - `%p`, percentage relative to the length of the popper element
   * - `vw`, CSS viewport width unit
   * - `vh`, CSS viewport height unit
   *
   * For length is intended the main axis relative to the placement of the popper.<br />
   * This means that if the placement is `top` or `bottom`, the length will be the
   * `width`. In case of `left` or `right`, it will be the `height`.
   *
   * You can provide a single value (as `Number` or `String`), or a pair of values
   * as `String` divided by a comma or one (or more) white spaces.<br />
   * The latter is a deprecated method because it leads to confusion and will be
   * removed in v2.<br />
   * Additionally, it accepts additions and subtractions between different units.
   * Note that multiplications and divisions aren't supported.
   *
   * Valid examples are:
   * ```
   * 10
   * '10%'
   * '10, 10'
   * '10%, 10'
   * '10 + 10%'
   * '10 - 5vh + 3%'
   * '-10px + 5vh, 5px - 6%'
   * ```
   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).
   *
   * @memberof modifiers
   * @inner
   */
  offset: {
    /** @prop {number} order=200 - Index used to define the order of execution */
    order: 200,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: offset,
    /** @prop {Number|String} offset=0
     * The offset value as described in the modifier description
     */
    offset: 0
  },

  /**
   * Modifier used to prevent the popper from being positioned outside the boundary.
   *
   * A scenario exists where the reference itself is not within the boundaries.<br />
   * We can say it has "escaped the boundaries" — or just "escaped".<br />
   * In this case we need to decide whether the popper should either:
   *
   * - detach from the reference and remain "trapped" in the boundaries, or
   * - if it should ignore the boundary and "escape with its reference"
   *
   * When `escapeWithReference` is set to`true` and reference is completely
   * outside its boundaries, the popper will overflow (or completely leave)
   * the boundaries in order to remain attached to the edge of the reference.
   *
   * @memberof modifiers
   * @inner
   */
  preventOverflow: {
    /** @prop {number} order=300 - Index used to define the order of execution */
    order: 300,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: preventOverflow,
    /**
     * @prop {Array} [priority=['left','right','top','bottom']]
     * Popper will try to prevent overflow following these priorities by default,
     * then, it could overflow on the left and on top of the `boundariesElement`
     */
    priority: ['left', 'right', 'top', 'bottom'],
    /**
     * @prop {number} padding=5
     * Amount of pixel used to define a minimum distance between the boundaries
     * and the popper. This makes sure the popper always has a little padding
     * between the edges of its container
     */
    padding: 5,
    /**
     * @prop {String|HTMLElement} boundariesElement='scrollParent'
     * Boundaries used by the modifier. Can be `scrollParent`, `window`,
     * `viewport` or any DOM element.
     */
    boundariesElement: 'scrollParent'
  },

  /**
   * Modifier used to make sure the reference and its popper stay near each other
   * without leaving any gap between the two. Especially useful when the arrow is
   * enabled and you want to ensure that it points to its reference element.
   * It cares only about the first axis. You can still have poppers with margin
   * between the popper and its reference element.
   * @memberof modifiers
   * @inner
   */
  keepTogether: {
    /** @prop {number} order=400 - Index used to define the order of execution */
    order: 400,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: keepTogether
  },

  /**
   * This modifier is used to move the `arrowElement` of the popper to make
   * sure it is positioned between the reference element and its popper element.
   * It will read the outer size of the `arrowElement` node to detect how many
   * pixels of conjunction are needed.
   *
   * It has no effect if no `arrowElement` is provided.
   * @memberof modifiers
   * @inner
   */
  arrow: {
    /** @prop {number} order=500 - Index used to define the order of execution */
    order: 500,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: arrow,
    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
    element: '[x-arrow]'
  },

  /**
   * Modifier used to flip the popper's placement when it starts to overlap its
   * reference element.
   *
   * Requires the `preventOverflow` modifier before it in order to work.
   *
   * **NOTE:** this modifier will interrupt the current update cycle and will
   * restart it if it detects the need to flip the placement.
   * @memberof modifiers
   * @inner
   */
  flip: {
    /** @prop {number} order=600 - Index used to define the order of execution */
    order: 600,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: flip,
    /**
     * @prop {String|Array} behavior='flip'
     * The behavior used to change the popper's placement. It can be one of
     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
     * placements (with optional variations)
     */
    behavior: 'flip',
    /**
     * @prop {number} padding=5
     * The popper will flip if it hits the edges of the `boundariesElement`
     */
    padding: 5,
    /**
     * @prop {String|HTMLElement} boundariesElement='viewport'
     * The element which will define the boundaries of the popper position.
     * The popper will never be placed outside of the defined boundaries
     * (except if `keepTogether` is enabled)
     */
    boundariesElement: 'viewport'
  },

  /**
   * Modifier used to make the popper flow toward the inner of the reference element.
   * By default, when this modifier is disabled, the popper will be placed outside
   * the reference element.
   * @memberof modifiers
   * @inner
   */
  inner: {
    /** @prop {number} order=700 - Index used to define the order of execution */
    order: 700,
    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
    enabled: false,
    /** @prop {ModifierFn} */
    fn: inner
  },

  /**
   * Modifier used to hide the popper when its reference element is outside of the
   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can
   * be used to hide with a CSS selector the popper when its reference is
   * out of boundaries.
   *
   * Requires the `preventOverflow` modifier before it in order to work.
   * @memberof modifiers
   * @inner
   */
  hide: {
    /** @prop {number} order=800 - Index used to define the order of execution */
    order: 800,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: hide
  },

  /**
   * Computes the style that will be applied to the popper element to gets
   * properly positioned.
   *
   * Note that this modifier will not touch the DOM, it just prepares the styles
   * so that `applyStyle` modifier can apply it. This separation is useful
   * in case you need to replace `applyStyle` with a custom implementation.
   *
   * This modifier has `850` as `order` value to maintain backward compatibility
   * with previous versions of Popper.js. Expect the modifiers ordering method
   * to change in future major versions of the library.
   *
   * @memberof modifiers
   * @inner
   */
  computeStyle: {
    /** @prop {number} order=850 - Index used to define the order of execution */
    order: 850,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: computeStyle,
    /**
     * @prop {Boolean} gpuAcceleration=true
     * If true, it uses the CSS 3D transformation to position the popper.
     * Otherwise, it will use the `top` and `left` properties
     */
    gpuAcceleration: true,
    /**
     * @prop {string} [x='bottom']
     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
     * Change this if your popper should grow in a direction different from `bottom`
     */
    x: 'bottom',
    /**
     * @prop {string} [x='left']
     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
     * Change this if your popper should grow in a direction different from `right`
     */
    y: 'right'
  },

  /**
   * Applies the computed styles to the popper element.
   *
   * All the DOM manipulations are limited to this modifier. This is useful in case
   * you want to integrate Popper.js inside a framework or view library and you
   * want to delegate all the DOM manipulations to it.
   *
   * Note that if you disable this modifier, you must make sure the popper element
   * has its position set to `absolute` before Popper.js can do its work!
   *
   * Just disable this modifier and define your own to achieve the desired effect.
   *
   * @memberof modifiers
   * @inner
   */
  applyStyle: {
    /** @prop {number} order=900 - Index used to define the order of execution */
    order: 900,
    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
    enabled: true,
    /** @prop {ModifierFn} */
    fn: applyStyle,
    /** @prop {Function} */
    onLoad: applyStyleOnLoad,
    /**
     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
     * @prop {Boolean} gpuAcceleration=true
     * If true, it uses the CSS 3D transformation to position the popper.
     * Otherwise, it will use the `top` and `left` properties
     */
    gpuAcceleration: undefined
  }
};

/**
 * The `dataObject` is an object containing all the information used by Popper.js.
 * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
 * @name dataObject
 * @property {Object} data.instance The Popper.js instance
 * @property {String} data.placement Placement applied to popper
 * @property {String} data.originalPlacement Placement originally defined on init
 * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
 * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper
 * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
 * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)
 * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)
 * @property {Object} data.boundaries Offsets of the popper boundaries
 * @property {Object} data.offsets The measurements of popper, reference and arrow elements
 * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
 * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
 * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
 */

/**
 * Default options provided to Popper.js constructor.<br />
 * These can be overridden using the `options` argument of Popper.js.<br />
 * To override an option, simply pass an object with the same
 * structure of the `options` object, as the 3rd argument. For example:
 * ```
 * new Popper(ref, pop, {
 *   modifiers: {
 *     preventOverflow: { enabled: false }
 *   }
 * })
 * ```
 * @type {Object}
 * @static
 * @memberof Popper
 */
var Defaults = {
  /**
   * Popper's placement.
   * @prop {Popper.placements} placement='bottom'
   */
  placement: 'bottom',

  /**
   * Set this to true if you want popper to position it self in 'fixed' mode
   * @prop {Boolean} positionFixed=false
   */
  positionFixed: false,

  /**
   * Whether events (resize, scroll) are initially enabled.
   * @prop {Boolean} eventsEnabled=true
   */
  eventsEnabled: true,

  /**
   * Set to true if you want to automatically remove the popper when
   * you call the `destroy` method.
   * @prop {Boolean} removeOnDestroy=false
   */
  removeOnDestroy: false,

  /**
   * Callback called when the popper is created.<br />
   * By default, it is set to no-op.<br />
   * Access Popper.js instance with `data.instance`.
   * @prop {onCreate}
   */
  onCreate: function onCreate() {},

  /**
   * Callback called when the popper is updated. This callback is not called
   * on the initialization/creation of the popper, but only on subsequent
   * updates.<br />
   * By default, it is set to no-op.<br />
   * Access Popper.js instance with `data.instance`.
   * @prop {onUpdate}
   */
  onUpdate: function onUpdate() {},

  /**
   * List of modifiers used to modify the offsets before they are applied to the popper.
   * They provide most of the functionalities of Popper.js.
   * @prop {modifiers}
   */
  modifiers: modifiers
};

/**
 * @callback onCreate
 * @param {dataObject} data
 */

/**
 * @callback onUpdate
 * @param {dataObject} data
 */

// Utils
// Methods
var Popper = function () {
  /**
   * Creates a new Popper.js instance.
   * @class Popper
   * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper
   * @param {HTMLElement} popper - The HTML element used as the popper
   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
   * @return {Object} instance - The generated Popper.js instance
   */
  function Popper(reference, popper) {
    var _this = this;

    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
    classCallCheck(this, Popper);

    this.scheduleUpdate = function () {
      return requestAnimationFrame(_this.update);
    };

    // make update() debounced, so that it only runs at most once-per-tick
    this.update = debounce(this.update.bind(this));

    // with {} we create a new object with the options inside it
    this.options = _extends({}, Popper.Defaults, options);

    // init state
    this.state = {
      isDestroyed: false,
      isCreated: false,
      scrollParents: []
    };

    // get reference and popper elements (allow jQuery wrappers)
    this.reference = reference && reference.jquery ? reference[0] : reference;
    this.popper = popper && popper.jquery ? popper[0] : popper;

    // Deep merge modifiers options
    this.options.modifiers = {};
    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {
      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
    });

    // Refactoring modifiers' list (Object => Array)
    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {
      return _extends({
        name: name
      }, _this.options.modifiers[name]);
    })
    // sort the modifiers by order
    .sort(function (a, b) {
      return a.order - b.order;
    });

    // modifiers have the ability to execute arbitrary code when Popper.js get inited
    // such code is executed in the same order of its modifier
    // they could add new properties to their options configuration
    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
    this.modifiers.forEach(function (modifierOptions) {
      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);
      }
    });

    // fire the first update to position the popper in the right place
    this.update();

    var eventsEnabled = this.options.eventsEnabled;
    if (eventsEnabled) {
      // setup event listeners, they will take care of update the position in specific situations
      this.enableEventListeners();
    }

    this.state.eventsEnabled = eventsEnabled;
  }

  // We can't use class properties because they don't get listed in the
  // class prototype and break stuff like Sinon stubs


  createClass(Popper, [{
    key: 'update',
    value: function update$$1() {
      return update.call(this);
    }
  }, {
    key: 'destroy',
    value: function destroy$$1() {
      return destroy.call(this);
    }
  }, {
    key: 'enableEventListeners',
    value: function enableEventListeners$$1() {
      return enableEventListeners.call(this);
    }
  }, {
    key: 'disableEventListeners',
    value: function disableEventListeners$$1() {
      return disableEventListeners.call(this);
    }

    /**
     * Schedules an update. It will run on the next UI update available.
     * @method scheduleUpdate
     * @memberof Popper
     */


    /**
     * Collection of utilities useful when writing custom modifiers.
     * Starting from version 1.7, this method is available only if you
     * include `popper-utils.js` before `popper.js`.
     *
     * **DEPRECATION**: This way to access PopperUtils is deprecated
     * and will be removed in v2! Use the PopperUtils module directly instead.
     * Due to the high instability of the methods contained in Utils, we can't
     * guarantee them to follow semver. Use them at your own risk!
     * @static
     * @private
     * @type {Object}
     * @deprecated since version 1.8
     * @member Utils
     * @memberof Popper
     */

  }]);
  return Popper;
}();

/**
 * The `referenceObject` is an object that provides an interface compatible with Popper.js
 * and lets you use it as replacement of a real DOM node.<br />
 * You can use this method to position a popper relatively to a set of coordinates
 * in case you don't have a DOM node to use as reference.
 *
 * ```
 * new Popper(referenceObject, popperNode);
 * ```
 *
 * NB: This feature isn't supported in Internet Explorer 10.
 * @name referenceObject
 * @property {Function} data.getBoundingClientRect
 * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
 * @property {number} data.clientWidth
 * An ES6 getter that will return the width of the virtual reference element.
 * @property {number} data.clientHeight
 * An ES6 getter that will return the height of the virtual reference element.
 */


Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
Popper.placements = placements;
Popper.Defaults = Defaults;

/* harmony default export */ __webpack_exports__["a"] = (Popper);
//# sourceMappingURL=popper.js.map

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(108)))

Object.defineProperty(exports, "__esModule", {
  value: true
});

/**
 * Constants.
 */

var IS_MAC = typeof window != 'undefined' && /Mac|iPod|iPhone|iPad/.test(window.navigator.platform);

var MODIFIERS = {
  alt: 'altKey',
  control: 'ctrlKey',
  meta: 'metaKey',
  shift: 'shiftKey'
};

var ALIASES = {
  add: '+',
  break: 'pause',
  cmd: 'meta',
  command: 'meta',
  ctl: 'control',
  ctrl: 'control',
  del: 'delete',
  down: 'arrowdown',
  esc: 'escape',
  ins: 'insert',
  left: 'arrowleft',
  mod: IS_MAC ? 'meta' : 'control',
  opt: 'alt',
  option: 'alt',
  return: 'enter',
  right: 'arrowright',
  space: ' ',
  spacebar: ' ',
  up: 'arrowup',
  win: 'meta',
  windows: 'meta'
};

var CODES = {
  backspace: 8,
  tab: 9,
  enter: 13,
  shift: 16,
  control: 17,
  alt: 18,
  pause: 19,
  capslock: 20,
  escape: 27,
  ' ': 32,
  pageup: 33,
  pagedown: 34,
  end: 35,
  home: 36,
  arrowleft: 37,
  arrowup: 38,
  arrowright: 39,
  arrowdown: 40,
  insert: 45,
  delete: 46,
  meta: 91,
  numlock: 144,
  scrolllock: 145,
  ';': 186,
  '=': 187,
  ',': 188,
  '-': 189,
  '.': 190,
  '/': 191,
  '`': 192,
  '[': 219,
  '\\': 220,
  ']': 221,
  '\'': 222
};

for (var f = 1; f < 20; f++) {
  CODES['f' + f] = 111 + f;
}

/**
 * Is hotkey?
 */

function isHotkey(hotkey, options, event) {
  if (options && !('byKey' in options)) {
    event = options;
    options = null;
  }

  if (!Array.isArray(hotkey)) {
    hotkey = [hotkey];
  }

  var array = hotkey.map(function (string) {
    return parseHotkey(string, options);
  });
  var check = function check(e) {
    return array.some(function (object) {
      return compareHotkey(object, e);
    });
  };
  var ret = event == null ? check : check(event);
  return ret;
}

function isCodeHotkey(hotkey, event) {
  return isHotkey(hotkey, event);
}

function isKeyHotkey(hotkey, event) {
  return isHotkey(hotkey, { byKey: true }, event);
}

/**
 * Parse.
 */

function parseHotkey(hotkey, options) {
  var byKey = options && options.byKey;
  var ret = {};

  // Special case to handle the `+` key since we use it as a separator.
  hotkey = hotkey.replace('++', '+add');
  var values = hotkey.split('+');
  var length = values.length;

  // Ensure that all the modifiers are set to false unless the hotkey has them.

  for (var k in MODIFIERS) {
    ret[MODIFIERS[k]] = false;
  }

  var _iteratorNormalCompletion = true;
  var _didIteratorError = false;
  var _iteratorError = undefined;

  try {
    for (var _iterator = values[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
      var value = _step.value;

      var optional = value.endsWith('?') && value.length > 1;

      if (optional) {
        value = value.slice(0, -1);
      }

      var name = toKeyName(value);
      var modifier = MODIFIERS[name];

      if (length === 1 || !modifier) {
        if (byKey) {
          ret.key = name;
        } else {
          ret.which = toKeyCode(value);
        }
      }

      if (modifier) {
        ret[modifier] = optional ? null : true;
      }
    }
  } catch (err) {
    _didIteratorError = true;
    _iteratorError = err;
  } finally {
    try {
      if (!_iteratorNormalCompletion && _iterator.return) {
        _iterator.return();
      }
    } finally {
      if (_didIteratorError) {
        throw _iteratorError;
      }
    }
  }

  return ret;
}

/**
 * Compare.
 */

function compareHotkey(object, event) {
  for (var key in object) {
    var expected = object[key];
    var actual = void 0;

    if (expected == null) {
      continue;
    }

    if (key === 'key' && event.key != null) {
      actual = event.key.toLowerCase();
    } else if (key === 'which') {
      actual = expected === 91 && event.which === 93 ? 91 : event.which;
    } else {
      actual = event[key];
    }

    if (actual == null && expected === false) {
      continue;
    }

    if (actual !== expected) {
      return false;
    }
  }

  return true;
}

/**
 * Utils.
 */

function toKeyCode(name) {
  name = toKeyName(name);
  var code = CODES[name] || name.toUpperCase().charCodeAt(0);
  return code;
}

function toKeyName(name) {
  name = name.toLowerCase();
  name = ALIASES[name] || name;
  return name;
}

/**
 * Export.
 */

exports.default = isHotkey;
exports.isHotkey = isHotkey;
exports.isCodeHotkey = isCodeHotkey;
exports.isKeyHotkey = isKeyHotkey;
exports.parseHotkey = parseHotkey;
exports.compareHotkey = compareHotkey;
exports.toKeyCode = toKeyCode;
exports.toKeyName = toKeyName;var debounce = __webpack_require__(509),
    isObject = __webpack_require__(162);

/** Error message constants. */
var FUNC_ERROR_TEXT = 'Expected a function';

/**
 * Creates a throttled function that only invokes `func` at most once per
 * every `wait` milliseconds. The throttled function comes with a `cancel`
 * method to cancel delayed `func` invocations and a `flush` method to
 * immediately invoke them. Provide `options` to indicate whether `func`
 * should be invoked on the leading and/or trailing edge of the `wait`
 * timeout. The `func` is invoked with the last arguments provided to the
 * throttled function. Subsequent calls to the throttled function return the
 * result of the last `func` invocation.
 *
 * **Note:** If `leading` and `trailing` options are `true`, `func` is
 * invoked on the trailing edge of the timeout only if the throttled function
 * is invoked more than once during the `wait` timeout.
 *
 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
 *
 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
 * for details over the differences between `_.throttle` and `_.debounce`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to throttle.
 * @param {number} [wait=0] The number of milliseconds to throttle invocations to.
 * @param {Object} [options={}] The options object.
 * @param {boolean} [options.leading=true]
 *  Specify invoking on the leading edge of the timeout.
 * @param {boolean} [options.trailing=true]
 *  Specify invoking on the trailing edge of the timeout.
 * @returns {Function} Returns the new throttled function.
 * @example
 *
 * // Avoid excessively updating the position while scrolling.
 * jQuery(window).on('scroll', _.throttle(updatePosition, 100));
 *
 * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
 * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });
 * jQuery(element).on('click', throttled);
 *
 * // Cancel the trailing throttled invocation.
 * jQuery(window).on('popstate', throttled.cancel);
 */
function throttle(func, wait, options) {
  var leading = true,
      trailing = true;

  if (typeof func != 'function') {
    throw new TypeError(FUNC_ERROR_TEXT);
  }
  if (isObject(options)) {
    leading = 'leading' in options ? !!options.leading : leading;
    trailing = 'trailing' in options ? !!options.trailing : trailing;
  }
  return debounce(func, wait, {
    'leading': leading,
    'maxWait': wait,
    'trailing': trailing
  });
}

module.exports = throttle;


module.exports = direction

var RTL = '\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC'
var LTR =
  'A-Za-z\u00C0-\u00D6\u00D8-\u00F6' +
  '\u00F8-\u02B8\u0300-\u0590\u0800-\u1FFF\u200E\u2C00-\uFB1C' +
  '\uFE00-\uFE6F\uFEFD-\uFFFF'

var rtl = new RegExp('^[^' + LTR + ']*[' + RTL + ']')
var ltr = new RegExp('^[^' + RTL + ']*[' + LTR + ']')

function direction(value) {
  value = String(value || '')

  if (rtl.test(value)) {
    return 'rtl'
  }

  if (ltr.test(value)) {
    return 'ltr'
  }

  return 'neutral'
}

var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var generate_1 = __importDefault(__webpack_require__(995));
exports.generate = generate_1.default;
var presetPrimaryColors = {
    red: '#F5222D',
    volcano: '#FA541C',
    orange: '#FA8C16',
    gold: '#FAAD14',
    yellow: '#FADB14',
    lime: '#A0D911',
    green: '#52C41A',
    cyan: '#13C2C2',
    blue: '#1890FF',
    geekblue: '#2F54EB',
    purple: '#722ED1',
    magenta: '#EB2F96',
    grey: '#666666',
};
exports.presetPrimaryColors = presetPrimaryColors;
var presetPalettes = {};
exports.presetPalettes = presetPalettes;
Object.keys(presetPrimaryColors).forEach(function (key) {
    presetPalettes[key] = generate_1.default(presetPrimaryColors[key]);
    presetPalettes[key].primary = presetPalettes[key][5];
});
var red = presetPalettes.red;
exports.red = red;
var volcano = presetPalettes.volcano;
exports.volcano = volcano;
var gold = presetPalettes.gold;
exports.gold = gold;
var orange = presetPalettes.orange;
exports.orange = orange;
var yellow = presetPalettes.yellow;
exports.yellow = yellow;
var lime = presetPalettes.lime;
exports.lime = lime;
var green = presetPalettes.green;
exports.green = green;
var cyan = presetPalettes.cyan;
exports.cyan = cyan;
var blue = presetPalettes.blue;
exports.blue = blue;
var geekblue = presetPalettes.geekblue;
exports.geekblue = geekblue;
var purple = presetPalettes.purple;
exports.purple = purple;
var magenta = presetPalettes.magenta;
exports.magenta = magenta;
var grey = presetPalettes.grey;
exports.grey = grey;

var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var tinycolor2_1 = __importDefault(__webpack_require__(996));
var hueStep = 2; // 色相阶梯
var saturationStep = 16; // 饱和度阶梯，浅色部分
var saturationStep2 = 5; // 饱和度阶梯，深色部分
var brightnessStep1 = 5; // 亮度阶梯，浅色部分
var brightnessStep2 = 15; // 亮度阶梯，深色部分
var lightColorCount = 5; // 浅色数量，主色上
var darkColorCount = 4; // 深色数量，主色下
function getHue(hsv, i, light) {
    var hue;
    // 根据色相不同，色相转向不同
    if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {
        hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;
    }
    else {
        hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;
    }
    if (hue < 0) {
        hue += 360;
    }
    else if (hue >= 360) {
        hue -= 360;
    }
    return hue;
}
function getSaturation(hsv, i, light) {
    // grey color don't change saturation
    if (hsv.h === 0 && hsv.s === 0) {
        return hsv.s;
    }
    var saturation;
    if (light) {
        saturation = Math.round(hsv.s * 100) - saturationStep * i;
    }
    else if (i === darkColorCount) {
        saturation = Math.round(hsv.s * 100) + saturationStep;
    }
    else {
        saturation = Math.round(hsv.s * 100) + saturationStep2 * i;
    }
    // 边界值修正
    if (saturation > 100) {
        saturation = 100;
    }
    // 第一格的 s 限制在 6-10 之间
    if (light && i === lightColorCount && saturation > 10) {
        saturation = 10;
    }
    if (saturation < 6) {
        saturation = 6;
    }
    return saturation;
}
function getValue(hsv, i, light) {
    if (light) {
        return Math.round(hsv.v * 100) + brightnessStep1 * i;
    }
    return Math.round(hsv.v * 100) - brightnessStep2 * i;
}
function generate(color) {
    var patterns = [];
    var pColor = tinycolor2_1.default(color);
    for (var i = lightColorCount; i > 0; i -= 1) {
        var hsv = pColor.toHsv();
        var colorString = tinycolor2_1.default({
            h: getHue(hsv, i, true),
            s: getSaturation(hsv, i, true),
            v: getValue(hsv, i, true),
        }).toHexString();
        patterns.push(colorString);
    }
    patterns.push(pColor.toHexString());
    for (var i = 1; i <= darkColorCount; i += 1) {
        var hsv = pColor.toHsv();
        var colorString = tinycolor2_1.default({
            h: getHue(hsv, i),
            s: getSaturation(hsv, i),
            v: getValue(hsv, i),
        }).toHexString();
        patterns.push(colorString);
    }
    return patterns;
}
exports.default = generate;
var __WEBPACK_AMD_DEFINE_RESULT__;// TinyColor v1.4.1
// https://github.com/bgrins/TinyColor
// Brian Grinstead, MIT License

(function(Math) {

var trimLeft = /^\s+/,
    trimRight = /\s+$/,
    tinyCounter = 0,
    mathRound = Math.round,
    mathMin = Math.min,
    mathMax = Math.max,
    mathRandom = Math.random;

function tinycolor (color, opts) {

    color = (color) ? color : '';
    opts = opts || { };

    // If input is already a tinycolor, return itself
    if (color instanceof tinycolor) {
       return color;
    }
    // If we are called as a function, call using new instead
    if (!(this instanceof tinycolor)) {
        return new tinycolor(color, opts);
    }

    var rgb = inputToRGB(color);
    this._originalInput = color,
    this._r = rgb.r,
    this._g = rgb.g,
    this._b = rgb.b,
    this._a = rgb.a,
    this._roundA = mathRound(100*this._a) / 100,
    this._format = opts.format || rgb.format;
    this._gradientType = opts.gradientType;

    // Don't let the range of [0,255] come back in [0,1].
    // Potentially lose a little bit of precision here, but will fix issues where
    // .5 gets interpreted as half of the total, instead of half of 1
    // If it was supposed to be 128, this was already taken care of by `inputToRgb`
    if (this._r < 1) { this._r = mathRound(this._r); }
    if (this._g < 1) { this._g = mathRound(this._g); }
    if (this._b < 1) { this._b = mathRound(this._b); }

    this._ok = rgb.ok;
    this._tc_id = tinyCounter++;
}

tinycolor.prototype = {
    isDark: function() {
        return this.getBrightness() < 128;
    },
    isLight: function() {
        return !this.isDark();
    },
    isValid: function() {
        return this._ok;
    },
    getOriginalInput: function() {
      return this._originalInput;
    },
    getFormat: function() {
        return this._format;
    },
    getAlpha: function() {
        return this._a;
    },
    getBrightness: function() {
        //http://www.w3.org/TR/AERT#color-contrast
        var rgb = this.toRgb();
        return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;
    },
    getLuminance: function() {
        //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef
        var rgb = this.toRgb();
        var RsRGB, GsRGB, BsRGB, R, G, B;
        RsRGB = rgb.r/255;
        GsRGB = rgb.g/255;
        BsRGB = rgb.b/255;

        if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}
        if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}
        if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}
        return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);
    },
    setAlpha: function(value) {
        this._a = boundAlpha(value);
        this._roundA = mathRound(100*this._a) / 100;
        return this;
    },
    toHsv: function() {
        var hsv = rgbToHsv(this._r, this._g, this._b);
        return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };
    },
    toHsvString: function() {
        var hsv = rgbToHsv(this._r, this._g, this._b);
        var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);
        return (this._a == 1) ?
          "hsv("  + h + ", " + s + "%, " + v + "%)" :
          "hsva(" + h + ", " + s + "%, " + v + "%, "+ this._roundA + ")";
    },
    toHsl: function() {
        var hsl = rgbToHsl(this._r, this._g, this._b);
        return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };
    },
    toHslString: function() {
        var hsl = rgbToHsl(this._r, this._g, this._b);
        var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);
        return (this._a == 1) ?
          "hsl("  + h + ", " + s + "%, " + l + "%)" :
          "hsla(" + h + ", " + s + "%, " + l + "%, "+ this._roundA + ")";
    },
    toHex: function(allow3Char) {
        return rgbToHex(this._r, this._g, this._b, allow3Char);
    },
    toHexString: function(allow3Char) {
        return '#' + this.toHex(allow3Char);
    },
    toHex8: function(allow4Char) {
        return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);
    },
    toHex8String: function(allow4Char) {
        return '#' + this.toHex8(allow4Char);
    },
    toRgb: function() {
        return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };
    },
    toRgbString: function() {
        return (this._a == 1) ?
          "rgb("  + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ")" :
          "rgba(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ", " + this._roundA + ")";
    },
    toPercentageRgb: function() {
        return { r: mathRound(bound01(this._r, 255) * 100) + "%", g: mathRound(bound01(this._g, 255) * 100) + "%", b: mathRound(bound01(this._b, 255) * 100) + "%", a: this._a };
    },
    toPercentageRgbString: function() {
        return (this._a == 1) ?
          "rgb("  + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%)" :
          "rgba(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%, " + this._roundA + ")";
    },
    toName: function() {
        if (this._a === 0) {
            return "transparent";
        }

        if (this._a < 1) {
            return false;
        }

        return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;
    },
    toFilter: function(secondColor) {
        var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);
        var secondHex8String = hex8String;
        var gradientType = this._gradientType ? "GradientType = 1, " : "";

        if (secondColor) {
            var s = tinycolor(secondColor);
            secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);
        }

        return "progid:DXImageTransform.Microsoft.gradient("+gradientType+"startColorstr="+hex8String+",endColorstr="+secondHex8String+")";
    },
    toString: function(format) {
        var formatSet = !!format;
        format = format || this._format;

        var formattedString = false;
        var hasAlpha = this._a < 1 && this._a >= 0;
        var needsAlphaFormat = !formatSet && hasAlpha && (format === "hex" || format === "hex6" || format === "hex3" || format === "hex4" || format === "hex8" || format === "name");

        if (needsAlphaFormat) {
            // Special case for "transparent", all other non-alpha formats
            // will return rgba when there is transparency.
            if (format === "name" && this._a === 0) {
                return this.toName();
            }
            return this.toRgbString();
        }
        if (format === "rgb") {
            formattedString = this.toRgbString();
        }
        if (format === "prgb") {
            formattedString = this.toPercentageRgbString();
        }
        if (format === "hex" || format === "hex6") {
            formattedString = this.toHexString();
        }
        if (format === "hex3") {
            formattedString = this.toHexString(true);
        }
        if (format === "hex4") {
            formattedString = this.toHex8String(true);
        }
        if (format === "hex8") {
            formattedString = this.toHex8String();
        }
        if (format === "name") {
            formattedString = this.toName();
        }
        if (format === "hsl") {
            formattedString = this.toHslString();
        }
        if (format === "hsv") {
            formattedString = this.toHsvString();
        }

        return formattedString || this.toHexString();
    },
    clone: function() {
        return tinycolor(this.toString());
    },

    _applyModification: function(fn, args) {
        var color = fn.apply(null, [this].concat([].slice.call(args)));
        this._r = color._r;
        this._g = color._g;
        this._b = color._b;
        this.setAlpha(color._a);
        return this;
    },
    lighten: function() {
        return this._applyModification(lighten, arguments);
    },
    brighten: function() {
        return this._applyModification(brighten, arguments);
    },
    darken: function() {
        return this._applyModification(darken, arguments);
    },
    desaturate: function() {
        return this._applyModification(desaturate, arguments);
    },
    saturate: function() {
        return this._applyModification(saturate, arguments);
    },
    greyscale: function() {
        return this._applyModification(greyscale, arguments);
    },
    spin: function() {
        return this._applyModification(spin, arguments);
    },

    _applyCombination: function(fn, args) {
        return fn.apply(null, [this].concat([].slice.call(args)));
    },
    analogous: function() {
        return this._applyCombination(analogous, arguments);
    },
    complement: function() {
        return this._applyCombination(complement, arguments);
    },
    monochromatic: function() {
        return this._applyCombination(monochromatic, arguments);
    },
    splitcomplement: function() {
        return this._applyCombination(splitcomplement, arguments);
    },
    triad: function() {
        return this._applyCombination(triad, arguments);
    },
    tetrad: function() {
        return this._applyCombination(tetrad, arguments);
    }
};

// If input is an object, force 1 into "1.0" to handle ratios properly
// String input requires "1.0" as input, so 1 will be treated as 1
tinycolor.fromRatio = function(color, opts) {
    if (typeof color == "object") {
        var newColor = {};
        for (var i in color) {
            if (color.hasOwnProperty(i)) {
                if (i === "a") {
                    newColor[i] = color[i];
                }
                else {
                    newColor[i] = convertToPercentage(color[i]);
                }
            }
        }
        color = newColor;
    }

    return tinycolor(color, opts);
};

// Given a string or object, convert that input to RGB
// Possible string inputs:
//
//     "red"
//     "#f00" or "f00"
//     "#ff0000" or "ff0000"
//     "#ff000000" or "ff000000"
//     "rgb 255 0 0" or "rgb (255, 0, 0)"
//     "rgb 1.0 0 0" or "rgb (1, 0, 0)"
//     "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1"
//     "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1"
//     "hsl(0, 100%, 50%)" or "hsl 0 100% 50%"
//     "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1"
//     "hsv(0, 100%, 100%)" or "hsv 0 100% 100%"
//
function inputToRGB(color) {

    var rgb = { r: 0, g: 0, b: 0 };
    var a = 1;
    var s = null;
    var v = null;
    var l = null;
    var ok = false;
    var format = false;

    if (typeof color == "string") {
        color = stringInputToObject(color);
    }

    if (typeof color == "object") {
        if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {
            rgb = rgbToRgb(color.r, color.g, color.b);
            ok = true;
            format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb";
        }
        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {
            s = convertToPercentage(color.s);
            v = convertToPercentage(color.v);
            rgb = hsvToRgb(color.h, s, v);
            ok = true;
            format = "hsv";
        }
        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {
            s = convertToPercentage(color.s);
            l = convertToPercentage(color.l);
            rgb = hslToRgb(color.h, s, l);
            ok = true;
            format = "hsl";
        }

        if (color.hasOwnProperty("a")) {
            a = color.a;
        }
    }

    a = boundAlpha(a);

    return {
        ok: ok,
        format: color.format || format,
        r: mathMin(255, mathMax(rgb.r, 0)),
        g: mathMin(255, mathMax(rgb.g, 0)),
        b: mathMin(255, mathMax(rgb.b, 0)),
        a: a
    };
}


// Conversion Functions
// --------------------

// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:
// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>

// `rgbToRgb`
// Handle bounds / percentage checking to conform to CSS color spec
// <http://www.w3.org/TR/css3-color/>
// *Assumes:* r, g, b in [0, 255] or [0, 1]
// *Returns:* { r, g, b } in [0, 255]
function rgbToRgb(r, g, b){
    return {
        r: bound01(r, 255) * 255,
        g: bound01(g, 255) * 255,
        b: bound01(b, 255) * 255
    };
}

// `rgbToHsl`
// Converts an RGB color value to HSL.
// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]
// *Returns:* { h, s, l } in [0,1]
function rgbToHsl(r, g, b) {

    r = bound01(r, 255);
    g = bound01(g, 255);
    b = bound01(b, 255);

    var max = mathMax(r, g, b), min = mathMin(r, g, b);
    var h, s, l = (max + min) / 2;

    if(max == min) {
        h = s = 0; // achromatic
    }
    else {
        var d = max - min;
        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
        switch(max) {
            case r: h = (g - b) / d + (g < b ? 6 : 0); break;
            case g: h = (b - r) / d + 2; break;
            case b: h = (r - g) / d + 4; break;
        }

        h /= 6;
    }

    return { h: h, s: s, l: l };
}

// `hslToRgb`
// Converts an HSL color value to RGB.
// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]
// *Returns:* { r, g, b } in the set [0, 255]
function hslToRgb(h, s, l) {
    var r, g, b;

    h = bound01(h, 360);
    s = bound01(s, 100);
    l = bound01(l, 100);

    function hue2rgb(p, q, t) {
        if(t < 0) t += 1;
        if(t > 1) t -= 1;
        if(t < 1/6) return p + (q - p) * 6 * t;
        if(t < 1/2) return q;
        if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
        return p;
    }

    if(s === 0) {
        r = g = b = l; // achromatic
    }
    else {
        var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
        var p = 2 * l - q;
        r = hue2rgb(p, q, h + 1/3);
        g = hue2rgb(p, q, h);
        b = hue2rgb(p, q, h - 1/3);
    }

    return { r: r * 255, g: g * 255, b: b * 255 };
}

// `rgbToHsv`
// Converts an RGB color value to HSV
// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]
// *Returns:* { h, s, v } in [0,1]
function rgbToHsv(r, g, b) {

    r = bound01(r, 255);
    g = bound01(g, 255);
    b = bound01(b, 255);

    var max = mathMax(r, g, b), min = mathMin(r, g, b);
    var h, s, v = max;

    var d = max - min;
    s = max === 0 ? 0 : d / max;

    if(max == min) {
        h = 0; // achromatic
    }
    else {
        switch(max) {
            case r: h = (g - b) / d + (g < b ? 6 : 0); break;
            case g: h = (b - r) / d + 2; break;
            case b: h = (r - g) / d + 4; break;
        }
        h /= 6;
    }
    return { h: h, s: s, v: v };
}

// `hsvToRgb`
// Converts an HSV color value to RGB.
// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]
// *Returns:* { r, g, b } in the set [0, 255]
 function hsvToRgb(h, s, v) {

    h = bound01(h, 360) * 6;
    s = bound01(s, 100);
    v = bound01(v, 100);

    var i = Math.floor(h),
        f = h - i,
        p = v * (1 - s),
        q = v * (1 - f * s),
        t = v * (1 - (1 - f) * s),
        mod = i % 6,
        r = [v, q, p, p, t, v][mod],
        g = [t, v, v, q, p, p][mod],
        b = [p, p, t, v, v, q][mod];

    return { r: r * 255, g: g * 255, b: b * 255 };
}

// `rgbToHex`
// Converts an RGB color to hex
// Assumes r, g, and b are contained in the set [0, 255]
// Returns a 3 or 6 character hex
function rgbToHex(r, g, b, allow3Char) {

    var hex = [
        pad2(mathRound(r).toString(16)),
        pad2(mathRound(g).toString(16)),
        pad2(mathRound(b).toString(16))
    ];

    // Return a 3 character hex if possible
    if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {
        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);
    }

    return hex.join("");
}

// `rgbaToHex`
// Converts an RGBA color plus alpha transparency to hex
// Assumes r, g, b are contained in the set [0, 255] and
// a in [0, 1]. Returns a 4 or 8 character rgba hex
function rgbaToHex(r, g, b, a, allow4Char) {

    var hex = [
        pad2(mathRound(r).toString(16)),
        pad2(mathRound(g).toString(16)),
        pad2(mathRound(b).toString(16)),
        pad2(convertDecimalToHex(a))
    ];

    // Return a 4 character hex if possible
    if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {
        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);
    }

    return hex.join("");
}

// `rgbaToArgbHex`
// Converts an RGBA color to an ARGB Hex8 string
// Rarely used, but required for "toFilter()"
function rgbaToArgbHex(r, g, b, a) {

    var hex = [
        pad2(convertDecimalToHex(a)),
        pad2(mathRound(r).toString(16)),
        pad2(mathRound(g).toString(16)),
        pad2(mathRound(b).toString(16))
    ];

    return hex.join("");
}

// `equals`
// Can be called with any tinycolor input
tinycolor.equals = function (color1, color2) {
    if (!color1 || !color2) { return false; }
    return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();
};

tinycolor.random = function() {
    return tinycolor.fromRatio({
        r: mathRandom(),
        g: mathRandom(),
        b: mathRandom()
    });
};


// Modification Functions
// ----------------------
// Thanks to less.js for some of the basics here
// <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>

function desaturate(color, amount) {
    amount = (amount === 0) ? 0 : (amount || 10);
    var hsl = tinycolor(color).toHsl();
    hsl.s -= amount / 100;
    hsl.s = clamp01(hsl.s);
    return tinycolor(hsl);
}

function saturate(color, amount) {
    amount = (amount === 0) ? 0 : (amount || 10);
    var hsl = tinycolor(color).toHsl();
    hsl.s += amount / 100;
    hsl.s = clamp01(hsl.s);
    return tinycolor(hsl);
}

function greyscale(color) {
    return tinycolor(color).desaturate(100);
}

function lighten (color, amount) {
    amount = (amount === 0) ? 0 : (amount || 10);
    var hsl = tinycolor(color).toHsl();
    hsl.l += amount / 100;
    hsl.l = clamp01(hsl.l);
    return tinycolor(hsl);
}

function brighten(color, amount) {
    amount = (amount === 0) ? 0 : (amount || 10);
    var rgb = tinycolor(color).toRgb();
    rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));
    rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));
    rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));
    return tinycolor(rgb);
}

function darken (color, amount) {
    amount = (amount === 0) ? 0 : (amount || 10);
    var hsl = tinycolor(color).toHsl();
    hsl.l -= amount / 100;
    hsl.l = clamp01(hsl.l);
    return tinycolor(hsl);
}

// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.
// Values outside of this range will be wrapped into this range.
function spin(color, amount) {
    var hsl = tinycolor(color).toHsl();
    var hue = (hsl.h + amount) % 360;
    hsl.h = hue < 0 ? 360 + hue : hue;
    return tinycolor(hsl);
}

// Combination Functions
// ---------------------
// Thanks to jQuery xColor for some of the ideas behind these
// <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>

function complement(color) {
    var hsl = tinycolor(color).toHsl();
    hsl.h = (hsl.h + 180) % 360;
    return tinycolor(hsl);
}

function triad(color) {
    var hsl = tinycolor(color).toHsl();
    var h = hsl.h;
    return [
        tinycolor(color),
        tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),
        tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })
    ];
}

function tetrad(color) {
    var hsl = tinycolor(color).toHsl();
    var h = hsl.h;
    return [
        tinycolor(color),
        tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),
        tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),
        tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })
    ];
}

function splitcomplement(color) {
    var hsl = tinycolor(color).toHsl();
    var h = hsl.h;
    return [
        tinycolor(color),
        tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),
        tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})
    ];
}

function analogous(color, results, slices) {
    results = results || 6;
    slices = slices || 30;

    var hsl = tinycolor(color).toHsl();
    var part = 360 / slices;
    var ret = [tinycolor(color)];

    for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {
        hsl.h = (hsl.h + part) % 360;
        ret.push(tinycolor(hsl));
    }
    return ret;
}

function monochromatic(color, results) {
    results = results || 6;
    var hsv = tinycolor(color).toHsv();
    var h = hsv.h, s = hsv.s, v = hsv.v;
    var ret = [];
    var modification = 1 / results;

    while (results--) {
        ret.push(tinycolor({ h: h, s: s, v: v}));
        v = (v + modification) % 1;
    }

    return ret;
}

// Utility Functions
// ---------------------

tinycolor.mix = function(color1, color2, amount) {
    amount = (amount === 0) ? 0 : (amount || 50);

    var rgb1 = tinycolor(color1).toRgb();
    var rgb2 = tinycolor(color2).toRgb();

    var p = amount / 100;

    var rgba = {
        r: ((rgb2.r - rgb1.r) * p) + rgb1.r,
        g: ((rgb2.g - rgb1.g) * p) + rgb1.g,
        b: ((rgb2.b - rgb1.b) * p) + rgb1.b,
        a: ((rgb2.a - rgb1.a) * p) + rgb1.a
    };

    return tinycolor(rgba);
};


// Readability Functions
// ---------------------
// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)

// `contrast`
// Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)
tinycolor.readability = function(color1, color2) {
    var c1 = tinycolor(color1);
    var c2 = tinycolor(color2);
    return (Math.max(c1.getLuminance(),c2.getLuminance())+0.05) / (Math.min(c1.getLuminance(),c2.getLuminance())+0.05);
};

// `isReadable`
// Ensure that foreground and background color combinations meet WCAG2 guidelines.
// The third argument is an optional Object.
//      the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';
//      the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.
// If the entire object is absent, isReadable defaults to {level:"AA",size:"small"}.

// *Example*
//    tinycolor.isReadable("#000", "#111") => false
//    tinycolor.isReadable("#000", "#111",{level:"AA",size:"large"}) => false
tinycolor.isReadable = function(color1, color2, wcag2) {
    var readability = tinycolor.readability(color1, color2);
    var wcag2Parms, out;

    out = false;

    wcag2Parms = validateWCAG2Parms(wcag2);
    switch (wcag2Parms.level + wcag2Parms.size) {
        case "AAsmall":
        case "AAAlarge":
            out = readability >= 4.5;
            break;
        case "AAlarge":
            out = readability >= 3;
            break;
        case "AAAsmall":
            out = readability >= 7;
            break;
    }
    return out;

};

// `mostReadable`
// Given a base color and a list of possible foreground or background
// colors for that base, returns the most readable color.
// Optionally returns Black or White if the most readable color is unreadable.
// *Example*
//    tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:false}).toHexString(); // "#112255"
//    tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:true}).toHexString();  // "#ffffff"
//    tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"large"}).toHexString(); // "#faf3f3"
//    tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"small"}).toHexString(); // "#ffffff"
tinycolor.mostReadable = function(baseColor, colorList, args) {
    var bestColor = null;
    var bestScore = 0;
    var readability;
    var includeFallbackColors, level, size ;
    args = args || {};
    includeFallbackColors = args.includeFallbackColors ;
    level = args.level;
    size = args.size;

    for (var i= 0; i < colorList.length ; i++) {
        readability = tinycolor.readability(baseColor, colorList[i]);
        if (readability > bestScore) {
            bestScore = readability;
            bestColor = tinycolor(colorList[i]);
        }
    }

    if (tinycolor.isReadable(baseColor, bestColor, {"level":level,"size":size}) || !includeFallbackColors) {
        return bestColor;
    }
    else {
        args.includeFallbackColors=false;
        return tinycolor.mostReadable(baseColor,["#fff", "#000"],args);
    }
};


// Big List of Colors
// ------------------
// <http://www.w3.org/TR/css3-color/#svg-color>
var names = tinycolor.names = {
    aliceblue: "f0f8ff",
    antiquewhite: "faebd7",
    aqua: "0ff",
    aquamarine: "7fffd4",
    azure: "f0ffff",
    beige: "f5f5dc",
    bisque: "ffe4c4",
    black: "000",
    blanchedalmond: "ffebcd",
    blue: "00f",
    blueviolet: "8a2be2",
    brown: "a52a2a",
    burlywood: "deb887",
    burntsienna: "ea7e5d",
    cadetblue: "5f9ea0",
    chartreuse: "7fff00",
    chocolate: "d2691e",
    coral: "ff7f50",
    cornflowerblue: "6495ed",
    cornsilk: "fff8dc",
    crimson: "dc143c",
    cyan: "0ff",
    darkblue: "00008b",
    darkcyan: "008b8b",
    darkgoldenrod: "b8860b",
    darkgray: "a9a9a9",
    darkgreen: "006400",
    darkgrey: "a9a9a9",
    darkkhaki: "bdb76b",
    darkmagenta: "8b008b",
    darkolivegreen: "556b2f",
    darkorange: "ff8c00",
    darkorchid: "9932cc",
    darkred: "8b0000",
    darksalmon: "e9967a",
    darkseagreen: "8fbc8f",
    darkslateblue: "483d8b",
    darkslategray: "2f4f4f",
    darkslategrey: "2f4f4f",
    darkturquoise: "00ced1",
    darkviolet: "9400d3",
    deeppink: "ff1493",
    deepskyblue: "00bfff",
    dimgray: "696969",
    dimgrey: "696969",
    dodgerblue: "1e90ff",
    firebrick: "b22222",
    floralwhite: "fffaf0",
    forestgreen: "228b22",
    fuchsia: "f0f",
    gainsboro: "dcdcdc",
    ghostwhite: "f8f8ff",
    gold: "ffd700",
    goldenrod: "daa520",
    gray: "808080",
    green: "008000",
    greenyellow: "adff2f",
    grey: "808080",
    honeydew: "f0fff0",
    hotpink: "ff69b4",
    indianred: "cd5c5c",
    indigo: "4b0082",
    ivory: "fffff0",
    khaki: "f0e68c",
    lavender: "e6e6fa",
    lavenderblush: "fff0f5",
    lawngreen: "7cfc00",
    lemonchiffon: "fffacd",
    lightblue: "add8e6",
    lightcoral: "f08080",
    lightcyan: "e0ffff",
    lightgoldenrodyellow: "fafad2",
    lightgray: "d3d3d3",
    lightgreen: "90ee90",
    lightgrey: "d3d3d3",
    lightpink: "ffb6c1",
    lightsalmon: "ffa07a",
    lightseagreen: "20b2aa",
    lightskyblue: "87cefa",
    lightslategray: "789",
    lightslategrey: "789",
    lightsteelblue: "b0c4de",
    lightyellow: "ffffe0",
    lime: "0f0",
    limegreen: "32cd32",
    linen: "faf0e6",
    magenta: "f0f",
    maroon: "800000",
    mediumaquamarine: "66cdaa",
    mediumblue: "0000cd",
    mediumorchid: "ba55d3",
    mediumpurple: "9370db",
    mediumseagreen: "3cb371",
    mediumslateblue: "7b68ee",
    mediumspringgreen: "00fa9a",
    mediumturquoise: "48d1cc",
    mediumvioletred: "c71585",
    midnightblue: "191970",
    mintcream: "f5fffa",
    mistyrose: "ffe4e1",
    moccasin: "ffe4b5",
    navajowhite: "ffdead",
    navy: "000080",
    oldlace: "fdf5e6",
    olive: "808000",
    olivedrab: "6b8e23",
    orange: "ffa500",
    orangered: "ff4500",
    orchid: "da70d6",
    palegoldenrod: "eee8aa",
    palegreen: "98fb98",
    paleturquoise: "afeeee",
    palevioletred: "db7093",
    papayawhip: "ffefd5",
    peachpuff: "ffdab9",
    peru: "cd853f",
    pink: "ffc0cb",
    plum: "dda0dd",
    powderblue: "b0e0e6",
    purple: "800080",
    rebeccapurple: "663399",
    red: "f00",
    rosybrown: "bc8f8f",
    royalblue: "4169e1",
    saddlebrown: "8b4513",
    salmon: "fa8072",
    sandybrown: "f4a460",
    seagreen: "2e8b57",
    seashell: "fff5ee",
    sienna: "a0522d",
    silver: "c0c0c0",
    skyblue: "87ceeb",
    slateblue: "6a5acd",
    slategray: "708090",
    slategrey: "708090",
    snow: "fffafa",
    springgreen: "00ff7f",
    steelblue: "4682b4",
    tan: "d2b48c",
    teal: "008080",
    thistle: "d8bfd8",
    tomato: "ff6347",
    turquoise: "40e0d0",
    violet: "ee82ee",
    wheat: "f5deb3",
    white: "fff",
    whitesmoke: "f5f5f5",
    yellow: "ff0",
    yellowgreen: "9acd32"
};

// Make it easy to access colors via `hexNames[hex]`
var hexNames = tinycolor.hexNames = flip(names);


// Utilities
// ---------

// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`
function flip(o) {
    var flipped = { };
    for (var i in o) {
        if (o.hasOwnProperty(i)) {
            flipped[o[i]] = i;
        }
    }
    return flipped;
}

// Return a valid alpha value [0,1] with all invalid values being set to 1
function boundAlpha(a) {
    a = parseFloat(a);

    if (isNaN(a) || a < 0 || a > 1) {
        a = 1;
    }

    return a;
}

// Take input from [0, n] and return it as [0, 1]
function bound01(n, max) {
    if (isOnePointZero(n)) { n = "100%"; }

    var processPercent = isPercentage(n);
    n = mathMin(max, mathMax(0, parseFloat(n)));

    // Automatically convert percentage into number
    if (processPercent) {
        n = parseInt(n * max, 10) / 100;
    }

    // Handle floating point rounding errors
    if ((Math.abs(n - max) < 0.000001)) {
        return 1;
    }

    // Convert into [0, 1] range if it isn't already
    return (n % max) / parseFloat(max);
}

// Force a number between 0 and 1
function clamp01(val) {
    return mathMin(1, mathMax(0, val));
}

// Parse a base-16 hex value into a base-10 integer
function parseIntFromHex(val) {
    return parseInt(val, 16);
}

// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1
// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>
function isOnePointZero(n) {
    return typeof n == "string" && n.indexOf('.') != -1 && parseFloat(n) === 1;
}

// Check to see if string passed in is a percentage
function isPercentage(n) {
    return typeof n === "string" && n.indexOf('%') != -1;
}

// Force a hex value to have 2 characters
function pad2(c) {
    return c.length == 1 ? '0' + c : '' + c;
}

// Replace a decimal with it's percentage value
function convertToPercentage(n) {
    if (n <= 1) {
        n = (n * 100) + "%";
    }

    return n;
}

// Converts a decimal to a hex value
function convertDecimalToHex(d) {
    return Math.round(parseFloat(d) * 255).toString(16);
}
// Converts a hex value to a decimal
function convertHexToDecimal(h) {
    return (parseIntFromHex(h) / 255);
}

var matchers = (function() {

    // <http://www.w3.org/TR/css3-values/#integers>
    var CSS_INTEGER = "[-\\+]?\\d+%?";

    // <http://www.w3.org/TR/css3-values/#number-value>
    var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?";

    // Allow positive/negative integer/number.  Don't capture the either/or, just the entire outcome.
    var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")";

    // Actual matching.
    // Parentheses and commas are optional, but not required.
    // Whitespace can take the place of commas or opening paren
    var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
    var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";

    return {
        CSS_UNIT: new RegExp(CSS_UNIT),
        rgb: new RegExp("rgb" + PERMISSIVE_MATCH3),
        rgba: new RegExp("rgba" + PERMISSIVE_MATCH4),
        hsl: new RegExp("hsl" + PERMISSIVE_MATCH3),
        hsla: new RegExp("hsla" + PERMISSIVE_MATCH4),
        hsv: new RegExp("hsv" + PERMISSIVE_MATCH3),
        hsva: new RegExp("hsva" + PERMISSIVE_MATCH4),
        hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
        hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
        hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
        hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/
    };
})();

// `isValidCSSUnit`
// Take in a single string / number and check to see if it looks like a CSS unit
// (see `matchers` above for definition).
function isValidCSSUnit(color) {
    return !!matchers.CSS_UNIT.exec(color);
}

// `stringInputToObject`
// Permissive string parsing.  Take in a number of formats, and output an object
// based on detected format.  Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`
function stringInputToObject(color) {

    color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();
    var named = false;
    if (names[color]) {
        color = names[color];
        named = true;
    }
    else if (color == 'transparent') {
        return { r: 0, g: 0, b: 0, a: 0, format: "name" };
    }

    // Try to match string input using regular expressions.
    // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]
    // Just return an object and let the conversion functions handle that.
    // This way the result will be the same whether the tinycolor is initialized with string or object.
    var match;
    if ((match = matchers.rgb.exec(color))) {
        return { r: match[1], g: match[2], b: match[3] };
    }
    if ((match = matchers.rgba.exec(color))) {
        return { r: match[1], g: match[2], b: match[3], a: match[4] };
    }
    if ((match = matchers.hsl.exec(color))) {
        return { h: match[1], s: match[2], l: match[3] };
    }
    if ((match = matchers.hsla.exec(color))) {
        return { h: match[1], s: match[2], l: match[3], a: match[4] };
    }
    if ((match = matchers.hsv.exec(color))) {
        return { h: match[1], s: match[2], v: match[3] };
    }
    if ((match = matchers.hsva.exec(color))) {
        return { h: match[1], s: match[2], v: match[3], a: match[4] };
    }
    if ((match = matchers.hex8.exec(color))) {
        return {
            r: parseIntFromHex(match[1]),
            g: parseIntFromHex(match[2]),
            b: parseIntFromHex(match[3]),
            a: convertHexToDecimal(match[4]),
            format: named ? "name" : "hex8"
        };
    }
    if ((match = matchers.hex6.exec(color))) {
        return {
            r: parseIntFromHex(match[1]),
            g: parseIntFromHex(match[2]),
            b: parseIntFromHex(match[3]),
            format: named ? "name" : "hex"
        };
    }
    if ((match = matchers.hex4.exec(color))) {
        return {
            r: parseIntFromHex(match[1] + '' + match[1]),
            g: parseIntFromHex(match[2] + '' + match[2]),
            b: parseIntFromHex(match[3] + '' + match[3]),
            a: convertHexToDecimal(match[4] + '' + match[4]),
            format: named ? "name" : "hex8"
        };
    }
    if ((match = matchers.hex3.exec(color))) {
        return {
            r: parseIntFromHex(match[1] + '' + match[1]),
            g: parseIntFromHex(match[2] + '' + match[2]),
            b: parseIntFromHex(match[3] + '' + match[3]),
            format: named ? "name" : "hex"
        };
    }

    return false;
}

function validateWCAG2Parms(parms) {
    // return valid WCAG2 parms for isReadable.
    // If input parms are invalid, return {"level":"AA", "size":"small"}
    var level, size;
    parms = parms || {"level":"AA", "size":"small"};
    level = (parms.level || "AA").toUpperCase();
    size = (parms.size || "small").toLowerCase();
    if (level !== "AA" && level !== "AAA") {
        level = "AA";
    }
    if (size !== "small" && size !== "large") {
        size = "small";
    }
    return {"level":level, "size":size};
}

// Node: Export function
if ( true && module.exports) {
    module.exports = tinycolor;
}
// AMD/requirejs: Define the module
else if (true) {
    !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {return tinycolor;}).call(exports, __webpack_require__, exports, module),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
}
// Browser: Expose to window
else {}

})(Math);
var containers = []; // will store container HTMLElement references
var styleElements = []; // will store {prepend: HTMLElement, append: HTMLElement}

var usage = 'insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).';

function insertCss(css, options) {
    options = options || {};

    if (css === undefined) {
        throw new Error(usage);
    }

    var position = options.prepend === true ? 'prepend' : 'append';
    var container = options.container !== undefined ? options.container : document.querySelector('head');
    var containerId = containers.indexOf(container);

    // first time we see this container, create the necessary entries
    if (containerId === -1) {
        containerId = containers.push(container) - 1;
        styleElements[containerId] = {};
    }

    // try to get the correponding container + position styleElement, create it otherwise
    var styleElement;

    if (styleElements[containerId] !== undefined && styleElements[containerId][position] !== undefined) {
        styleElement = styleElements[containerId][position];
    } else {
        styleElement = styleElements[containerId][position] = createStyleElement();

        if (position === 'prepend') {
            container.insertBefore(styleElement, container.childNodes[0]);
        } else {
            container.appendChild(styleElement);
        }
    }

    // strip potential UTF-8 BOM if css was read from a file
    if (css.charCodeAt(0) === 0xFEFF) { css = css.substr(1, css.length); }

    // actually add the stylesheet
    if (styleElement.styleSheet) {
        styleElement.styleSheet.cssText += css
    } else {
        styleElement.textContent += css;
    }

    return styleElement;
};

function createStyleElement() {
    var styleElement = document.createElement('style');
    styleElement.setAttribute('type', 'text/css');
    return styleElement;
}

module.exports = insertCss;
module.exports.insertCss = insertCss;
module.exports = __webpack_require__(997);(function webpackUniversalModuleDefinition(root, factory) {
	if(true)
		module.exports = factory(__webpack_require__(2), __webpack_require__(40), __webpack_require__(998));
	else {}
})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_13__, __WEBPACK_EXTERNAL_MODULE_185__) {
return /******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};

/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {

/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId])
/******/ 			return installedModules[moduleId].exports;

/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			exports: {},
/******/ 			id: moduleId,
/******/ 			loaded: false
/******/ 		};

/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);

/******/ 		// Flag the module as loaded
/******/ 		module.loaded = true;

/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}


/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;

/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;

/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";

/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ((function(modules) {
	// Check all modules for deduplicated modules
	for(var i in modules) {
		if(Object.prototype.hasOwnProperty.call(modules, i)) {
			switch(typeof modules[i]) {
			case "function": break;
			case "object":
				// Module can be created from a template
				modules[i] = (function(_m) {
					var args = _m.slice(1), fn = modules[_m[0]];
					return function (a,b,c) {
						fn.apply(this, [a,b,c].concat(args));
					};
				}(modules[i]));
				break;
			default:
				// Module is a copy of another module
				modules[i] = modules[modules[i]];
				break;
			}
		}
	}
	return modules;
}([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {

	module.exports = __webpack_require__(242);


/***/ }),
/* 1 */
/***/ (function(module, exports) {

	module.exports = function(module) {
		if(!module.webpackPolyfill) {
			module.deprecate = function() {};
			module.paths = [];
			// module.parent = undefined by default
			module.children = [];
			module.webpackPolyfill = 1;
		}
		return module;
	}


/***/ }),
/* 2 */
/***/ (function(module, exports) {

	module.exports = __WEBPACK_EXTERNAL_MODULE_2__;

/***/ }),
/* 3 */
/***/ (function(module, exports, __webpack_require__) {

	/**
	 * Copyright (c) 2013-present, Facebook, Inc.
	 *
	 * This source code is licensed under the MIT license found in the
	 * LICENSE file in the root directory of this source tree.
	 */

	if (false) { var throwOnDirectAccess, isValidElement, REACT_ELEMENT_TYPE; } else {
	  // By explicitly using `prop-types` you are opting into new production behavior.
	  // http://fb.me/prop-types-in-prod
	  module.exports = __webpack_require__(118)();
	}


/***/ }),
/* 4 */
/***/ (function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
	  Copyright (c) 2017 Jed Watson.
	  Licensed under the MIT License (MIT), see
	  http://jedwatson.github.io/classnames
	*/
	/* global define */

	(function () {
		'use strict';

		var hasOwn = {}.hasOwnProperty;

		function classNames () {
			var classes = [];

			for (var i = 0; i < arguments.length; i++) {
				var arg = arguments[i];
				if (!arg) continue;

				var argType = typeof arg;

				if (argType === 'string' || argType === 'number') {
					classes.push(arg);
				} else if (Array.isArray(arg) && arg.length) {
					var inner = classNames.apply(null, arg);
					if (inner) {
						classes.push(inner);
					}
				} else if (argType === 'object') {
					for (var key in arg) {
						if (hasOwn.call(arg, key) && arg[key]) {
							classes.push(key);
						}
					}
				}
			}

			return classes.join(' ');
		}

		if (typeof module !== 'undefined' && module.exports) {
			classNames.default = classNames;
			module.exports = classNames;
		} else if (true) {
			// register as 'classnames', consistent with npm package name
			!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {
				return classNames;
			}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
		} else {}
	}());


/***/ }),
/* 5 */
/***/ (function(module, exports) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

	var isImmutableLoaded = function isImmutableLoaded() {
	  return typeof Immutable !== 'undefined';
	};

	var isColumnsImmutable = exports.isColumnsImmutable = function isColumnsImmutable(columns) {
	  return isImmutableLoaded() && columns instanceof Immutable.List;
	};

	var isEmptyArray = exports.isEmptyArray = function isEmptyArray(obj) {
	  return Array.isArray(obj) && obj.length === 0;
	};

	var isFunction = exports.isFunction = function isFunction(functionToCheck) {
	  var getType = {};
	  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
	};

	var isEmptyObject = exports.isEmptyObject = function isEmptyObject(obj) {
	  return Object.keys(obj).length === 0 && obj.constructor === Object;
	};

	var isImmutableCollection = exports.isImmutableCollection = function isImmutableCollection(objToVerify) {
	  return isImmutableLoaded() && Immutable.Iterable.isIterable(objToVerify);
	};

	var getMixedTypeValueRetriever = exports.getMixedTypeValueRetriever = function getMixedTypeValueRetriever(isImmutable) {
	  var retObj = {};
	  var retriever = function retriever(item, key) {
	    return item[key];
	  };
	  var immutableRetriever = function immutableRetriever(immutable, key) {
	    return immutable.get(key);
	  };

	  retObj.getValue = isImmutable ? immutableRetriever : retriever;

	  return retObj;
	};

	var isImmutableMap = exports.isImmutableMap = isImmutableLoaded() ? Immutable.Map.isMap : function () {
	  return false;
	};

	var last = exports.last = function last(arrayOrList) {
	  if (arrayOrList == null) {
	    throw new Error('arrayOrCollection is null');
	  }

	  if (isImmutableLoaded() && Immutable.List.isList(arrayOrList)) {
	    return arrayOrList.last();
	  }

	  if (Array.isArray(arrayOrList)) {
	    return arrayOrList[arrayOrList.length - 1];
	  }

	  throw new Error('Cant get last of: ' + (typeof arrayOrList === 'undefined' ? 'undefined' : _typeof(arrayOrList)));
	};

/***/ }),
/* 6 */,
/* 7 */
/***/ (function(module, exports) {

	/**
	 * Checks if `value` is classified as an `Array` object.
	 *
	 * @static
	 * @memberOf _
	 * @since 0.1.0
	 * @category Lang
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
	 * @example
	 *
	 * _.isArray([1, 2, 3]);
	 * // => true
	 *
	 * _.isArray(document.body.children);
	 * // => false
	 *
	 * _.isArray('abc');
	 * // => false
	 *
	 * _.isArray(_.noop);
	 * // => false
	 */
	var isArray = Array.isArray;

	module.exports = isArray;


/***/ }),
/* 8 */
/***/ (function(module, exports) {

	/*
		MIT License http://www.opensource.org/licenses/mit-license.php
		Author Tobias Koppers @sokra
	*/
	// css base code, injected by the css-loader
	module.exports = function() {
		var list = [];

		// return the list of modules as css string
		list.toString = function toString() {
			var result = [];
			for(var i = 0; i < this.length; i++) {
				var item = this[i];
				if(item[2]) {
					result.push("@media " + item[2] + "{" + item[1] + "}");
				} else {
					result.push(item[1]);
				}
			}
			return result.join("");
		};

		// import a list of modules into the list
		list.i = function(modules, mediaQuery) {
			if(typeof modules === "string")
				modules = [[null, modules, ""]];
			var alreadyImportedModules = {};
			for(var i = 0; i < this.length; i++) {
				var id = this[i][0];
				if(typeof id === "number")
					alreadyImportedModules[id] = true;
			}
			for(i = 0; i < modules.length; i++) {
				var item = modules[i];
				// skip already imported module
				// this implementation is not 100% perfect for weird media query combinations
				//  when a module is imported multiple times with different media queries.
				//  I hope this will never occur (Hey this way we have smaller bundles)
				if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
					if(mediaQuery && !item[2]) {
						item[2] = mediaQuery;
					} else if(mediaQuery) {
						item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
					}
					list.push(item);
				}
			}
		};
		return list;
	};


/***/ }),
/* 9 */
/***/ (function(module, exports, __webpack_require__) {

	/*
		MIT License http://www.opensource.org/licenses/mit-license.php
		Author Tobias Koppers @sokra
	*/
	var stylesInDom = {},
		memoize = function(fn) {
			var memo;
			return function () {
				if (typeof memo === "undefined") memo = fn.apply(this, arguments);
				return memo;
			};
		},
		isOldIE = memoize(function() {
			return /msie [6-9]\b/.test(self.navigator.userAgent.toLowerCase());
		}),
		getHeadElement = memoize(function () {
			return document.head || document.getElementsByTagName("head")[0];
		}),
		singletonElement = null,
		singletonCounter = 0,
		styleElementsInsertedAtTop = [];

	module.exports = function(list, options) {
		if(false) {}

		options = options || {};
		// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
		// tags it will allow on a page
		if (typeof options.singleton === "undefined") options.singleton = isOldIE();

		// By default, add <style> tags to the bottom of <head>.
		if (typeof options.insertAt === "undefined") options.insertAt = "bottom";

		var styles = listToStyles(list);
		addStylesToDom(styles, options);

		return function update(newList) {
			var mayRemove = [];
			for(var i = 0; i < styles.length; i++) {
				var item = styles[i];
				var domStyle = stylesInDom[item.id];
				domStyle.refs--;
				mayRemove.push(domStyle);
			}
			if(newList) {
				var newStyles = listToStyles(newList);
				addStylesToDom(newStyles, options);
			}
			for(var i = 0; i < mayRemove.length; i++) {
				var domStyle = mayRemove[i];
				if(domStyle.refs === 0) {
					for(var j = 0; j < domStyle.parts.length; j++)
						domStyle.parts[j]();
					delete stylesInDom[domStyle.id];
				}
			}
		};
	}

	function addStylesToDom(styles, options) {
		for(var i = 0; i < styles.length; i++) {
			var item = styles[i];
			var domStyle = stylesInDom[item.id];
			if(domStyle) {
				domStyle.refs++;
				for(var j = 0; j < domStyle.parts.length; j++) {
					domStyle.parts[j](item.parts[j]);
				}
				for(; j < item.parts.length; j++) {
					domStyle.parts.push(addStyle(item.parts[j], options));
				}
			} else {
				var parts = [];
				for(var j = 0; j < item.parts.length; j++) {
					parts.push(addStyle(item.parts[j], options));
				}
				stylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};
			}
		}
	}

	function listToStyles(list) {
		var styles = [];
		var newStyles = {};
		for(var i = 0; i < list.length; i++) {
			var item = list[i];
			var id = item[0];
			var css = item[1];
			var media = item[2];
			var sourceMap = item[3];
			var part = {css: css, media: media, sourceMap: sourceMap};
			if(!newStyles[id])
				styles.push(newStyles[id] = {id: id, parts: [part]});
			else
				newStyles[id].parts.push(part);
		}
		return styles;
	}

	function insertStyleElement(options, styleElement) {
		var head = getHeadElement();
		var lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];
		if (options.insertAt === "top") {
			if(!lastStyleElementInsertedAtTop) {
				head.insertBefore(styleElement, head.firstChild);
			} else if(lastStyleElementInsertedAtTop.nextSibling) {
				head.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);
			} else {
				head.appendChild(styleElement);
			}
			styleElementsInsertedAtTop.push(styleElement);
		} else if (options.insertAt === "bottom") {
			head.appendChild(styleElement);
		} else {
			throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");
		}
	}

	function removeStyleElement(styleElement) {
		styleElement.parentNode.removeChild(styleElement);
		var idx = styleElementsInsertedAtTop.indexOf(styleElement);
		if(idx >= 0) {
			styleElementsInsertedAtTop.splice(idx, 1);
		}
	}

	function createStyleElement(options) {
		var styleElement = document.createElement("style");
		styleElement.type = "text/css";
		insertStyleElement(options, styleElement);
		return styleElement;
	}

	function createLinkElement(options) {
		var linkElement = document.createElement("link");
		linkElement.rel = "stylesheet";
		insertStyleElement(options, linkElement);
		return linkElement;
	}

	function addStyle(obj, options) {
		var styleElement, update, remove;

		if (options.singleton) {
			var styleIndex = singletonCounter++;
			styleElement = singletonElement || (singletonElement = createStyleElement(options));
			update = applyToSingletonTag.bind(null, styleElement, styleIndex, false);
			remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);
		} else if(obj.sourceMap &&
			typeof URL === "function" &&
			typeof URL.createObjectURL === "function" &&
			typeof URL.revokeObjectURL === "function" &&
			typeof Blob === "function" &&
			typeof btoa === "function") {
			styleElement = createLinkElement(options);
			update = updateLink.bind(null, styleElement);
			remove = function() {
				removeStyleElement(styleElement);
				if(styleElement.href)
					URL.revokeObjectURL(styleElement.href);
			};
		} else {
			styleElement = createStyleElement(options);
			update = applyToTag.bind(null, styleElement);
			remove = function() {
				removeStyleElement(styleElement);
			};
		}

		update(obj);

		return function updateStyle(newObj) {
			if(newObj) {
				if(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)
					return;
				update(obj = newObj);
			} else {
				remove();
			}
		};
	}

	var replaceText = (function () {
		var textStore = [];

		return function (index, replacement) {
			textStore[index] = replacement;
			return textStore.filter(Boolean).join('\n');
		};
	})();

	function applyToSingletonTag(styleElement, index, remove, obj) {
		var css = remove ? "" : obj.css;

		if (styleElement.styleSheet) {
			styleElement.styleSheet.cssText = replaceText(index, css);
		} else {
			var cssNode = document.createTextNode(css);
			var childNodes = styleElement.childNodes;
			if (childNodes[index]) styleElement.removeChild(childNodes[index]);
			if (childNodes.length) {
				styleElement.insertBefore(cssNode, childNodes[index]);
			} else {
				styleElement.appendChild(cssNode);
			}
		}
	}

	function applyToTag(styleElement, obj) {
		var css = obj.css;
		var media = obj.media;

		if(media) {
			styleElement.setAttribute("media", media)
		}

		if(styleElement.styleSheet) {
			styleElement.styleSheet.cssText = css;
		} else {
			while(styleElement.firstChild) {
				styleElement.removeChild(styleElement.firstChild);
			}
			styleElement.appendChild(document.createTextNode(css));
		}
	}

	function updateLink(linkElement, obj) {
		var css = obj.css;
		var sourceMap = obj.sourceMap;

		if(sourceMap) {
			// http://stackoverflow.com/a/26603875
			css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */";
		}

		var blob = new Blob([css], { type: "text/css" });

		var oldSrc = linkElement.href;

		linkElement.href = URL.createObjectURL(blob);

		if(oldSrc)
			URL.revokeObjectURL(oldSrc);
	}


/***/ }),
/* 10 */
/***/ (function(module, exports, __webpack_require__) {

	/**
	 * Copyright (c) 2013-present, Facebook, Inc.
	 *
	 * This source code is licensed under the MIT license found in the
	 * LICENSE file in the root directory of this source tree.
	 */

	'use strict';

	/**
	 * Use invariant() to assert state which your program assumes to be true.
	 *
	 * Provide sprintf-style format (only %s is supported) and arguments
	 * to provide information about what broke and what you were
	 * expecting.
	 *
	 * The invariant message will be stripped in production, but the invariant
	 * will remain to ensure logic does not differ in production.
	 */

	var invariant = function(condition, format, a, b, c, d, e, f) {
	  if (false) {}

	  if (!condition) {
	    var error;
	    if (format === undefined) {
	      error = new Error(
	        'Minified exception occurred; use the non-minified dev environment ' +
	        'for the full error message and additional helpful warnings.'
	      );
	    } else {
	      var args = [a, b, c, d, e, f];
	      var argIndex = 0;
	      error = new Error(
	        format.replace(/%s/g, function() { return args[argIndex++]; })
	      );
	      error.name = 'Invariant Violation';
	    }

	    error.framesToPop = 1; // we don't care about invariant's own frame
	    throw error;
	  }
	};

	module.exports = invariant;


/***/ }),
/* 11 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});
	exports.DragItemTypes = exports.CellExpand = exports.UpdateActions = exports.HeaderRowType = exports.EventTypes = exports.CellNavigationMode = undefined;

	var _CellNavigationMode = __webpack_require__(105);

	var CellNavigationMode = _interopRequireWildcard(_CellNavigationMode);

	var _EventTypes = __webpack_require__(106);

	var EventTypes = _interopRequireWildcard(_EventTypes);

	var _HeaderRowType = __webpack_require__(107);

	var HeaderRowType = _interopRequireWildcard(_HeaderRowType);

	var _keymirror = __webpack_require__(111);

	var _keymirror2 = _interopRequireDefault(_keymirror);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }

	var UpdateActions = (0, _keymirror2['default'])({
	  CELL_UPDATE: null,
	  COLUMN_FILL: null,
	  COPY_PASTE: null,
	  CELL_DRAG: null
	});

	var DragItemTypes = {
	  Column: 'column'
	};

	var CellExpand = {
	  DOWN_TRIANGLE: String.fromCharCode(9660),
	  RIGHT_TRIANGLE: String.fromCharCode(9654)
	};

	exports.CellNavigationMode = CellNavigationMode;
	exports.EventTypes = EventTypes;
	exports.HeaderRowType = HeaderRowType;
	exports.UpdateActions = UpdateActions;
	exports.CellExpand = CellExpand;
	exports.DragItemTypes = DragItemTypes;

/***/ }),
/* 12 */,
/* 13 */
/***/ (function(module, exports) {

	module.exports = __WEBPACK_EXTERNAL_MODULE_13__;

/***/ }),
/* 14 */,
/* 15 */,
/* 16 */,
/* 17 */
[1948, 33, 23],
/* 18 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	var ExcelColumnShape = {
	  name: _propTypes2['default'].node.isRequired,
	  key: _propTypes2['default'].string.isRequired,
	  width: _propTypes2['default'].number.isRequired,
	  filterable: _propTypes2['default'].bool
	};

	module.exports = ExcelColumnShape;

/***/ }),
/* 19 */
[1931, 173],
/* 20 */
7,
/* 21 */,
/* 22 */
/***/ (function(module, exports, __webpack_require__) {

	var baseGetTag = __webpack_require__(33),
	    getPrototype = __webpack_require__(320),
	    isObjectLike = __webpack_require__(29);

	/** `Object#toString` result references. */
	var objectTag = '[object Object]';

	/** Used for built-in method references. */
	var funcProto = Function.prototype,
	    objectProto = Object.prototype;

	/** Used to resolve the decompiled source of functions. */
	var funcToString = funcProto.toString;

	/** Used to check objects for own properties. */
	var hasOwnProperty = objectProto.hasOwnProperty;

	/** Used to infer the `Object` constructor. */
	var objectCtorString = funcToString.call(Object);

	/**
	 * Checks if `value` is a plain object, that is, an object created by the
	 * `Object` constructor or one with a `[[Prototype]]` of `null`.
	 *
	 * @static
	 * @memberOf _
	 * @since 0.8.0
	 * @category Lang
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
	 * @example
	 *
	 * function Foo() {
	 *   this.a = 1;
	 * }
	 *
	 * _.isPlainObject(new Foo);
	 * // => false
	 *
	 * _.isPlainObject([1, 2, 3]);
	 * // => false
	 *
	 * _.isPlainObject({ 'x': 0, 'y': 0 });
	 * // => true
	 *
	 * _.isPlainObject(Object.create(null));
	 * // => true
	 */
	function isPlainObject(value) {
	  if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
	    return false;
	  }
	  var proto = getPrototype(value);
	  if (proto === null) {
	    return true;
	  }
	  var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
	  return typeof Ctor == 'function' && Ctor instanceof Ctor &&
	    funcToString.call(Ctor) == objectCtorString;
	}

	module.exports = isPlainObject;


/***/ }),
/* 23 */
/***/ (function(module, exports) {

	/**
	 * Checks if `value` is the
	 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
	 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
	 *
	 * @static
	 * @memberOf _
	 * @since 0.1.0
	 * @category Lang
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
	 * @example
	 *
	 * _.isObject({});
	 * // => true
	 *
	 * _.isObject([1, 2, 3]);
	 * // => true
	 *
	 * _.isObject(_.noop);
	 * // => true
	 *
	 * _.isObject(null);
	 * // => false
	 */
	function isObject(value) {
	  var type = typeof value;
	  return value != null && (type == 'object' || type == 'function');
	}

	module.exports = isObject;


/***/ }),
/* 24 */
[1931, 146],
/* 25 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _DragDropContext = __webpack_require__(154);

	Object.defineProperty(exports, 'DragDropContext', {
	  enumerable: true,
	  get: function get() {
	    return _interopRequireDefault(_DragDropContext).default;
	  }
	});

	var _DragDropContextProvider = __webpack_require__(367);

	Object.defineProperty(exports, 'DragDropContextProvider', {
	  enumerable: true,
	  get: function get() {
	    return _interopRequireDefault(_DragDropContextProvider).default;
	  }
	});

	var _DragLayer = __webpack_require__(368);

	Object.defineProperty(exports, 'DragLayer', {
	  enumerable: true,
	  get: function get() {
	    return _interopRequireDefault(_DragLayer).default;
	  }
	});

	var _DragSource = __webpack_require__(369);

	Object.defineProperty(exports, 'DragSource', {
	  enumerable: true,
	  get: function get() {
	    return _interopRequireDefault(_DragSource).default;
	  }
	});

	var _DropTarget = __webpack_require__(370);

	Object.defineProperty(exports, 'DropTarget', {
	  enumerable: true,
	  get: function get() {
	    return _interopRequireDefault(_DropTarget).default;
	  }
	});

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

/***/ }),
/* 26 */
[1871, 421, 445],
/* 27 */
/***/ (function(module, exports) {

	/*
	object-assign
	(c) Sindre Sorhus
	@license MIT
	*/

	'use strict';
	/* eslint-disable no-unused-vars */
	var getOwnPropertySymbols = Object.getOwnPropertySymbols;
	var hasOwnProperty = Object.prototype.hasOwnProperty;
	var propIsEnumerable = Object.prototype.propertyIsEnumerable;

	function toObject(val) {
		if (val === null || val === undefined) {
			throw new TypeError('Object.assign cannot be called with null or undefined');
		}

		return Object(val);
	}

	function shouldUseNative() {
		try {
			if (!Object.assign) {
				return false;
			}

			// Detect buggy property enumeration order in older V8 versions.

			// https://bugs.chromium.org/p/v8/issues/detail?id=4118
			var test1 = new String('abc');  // eslint-disable-line no-new-wrappers
			test1[5] = 'de';
			if (Object.getOwnPropertyNames(test1)[0] === '5') {
				return false;
			}

			// https://bugs.chromium.org/p/v8/issues/detail?id=3056
			var test2 = {};
			for (var i = 0; i < 10; i++) {
				test2['_' + String.fromCharCode(i)] = i;
			}
			var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
				return test2[n];
			});
			if (order2.join('') !== '0123456789') {
				return false;
			}

			// https://bugs.chromium.org/p/v8/issues/detail?id=3056
			var test3 = {};
			'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
				test3[letter] = letter;
			});
			if (Object.keys(Object.assign({}, test3)).join('') !==
					'abcdefghijklmnopqrst') {
				return false;
			}

			return true;
		} catch (err) {
			// We don't expect any of the above to throw, but better to be safe.
			return false;
		}
	}

	module.exports = shouldUseNative() ? Object.assign : function (target, source) {
		var from;
		var to = toObject(target);
		var symbols;

		for (var s = 1; s < arguments.length; s++) {
			from = Object(arguments[s]);

			for (var key in from) {
				if (hasOwnProperty.call(from, key)) {
					to[key] = from[key];
				}
			}

			if (getOwnPropertySymbols) {
				symbols = getOwnPropertySymbols(from);
				for (var i = 0; i < symbols.length; i++) {
					if (propIsEnumerable.call(from, symbols[i])) {
						to[symbols[i]] = from[symbols[i]];
					}
				}
			}
		}

		return to;
	};


/***/ }),
/* 28 */,
/* 29 */
/***/ (function(module, exports) {

	/**
	 * Checks if `value` is object-like. A value is object-like if it's not `null`
	 * and has a `typeof` result of "object".
	 *
	 * @static
	 * @memberOf _
	 * @since 4.0.0
	 * @category Lang
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
	 * @example
	 *
	 * _.isObjectLike({});
	 * // => true
	 *
	 * _.isObjectLike([1, 2, 3]);
	 * // => true
	 *
	 * _.isObjectLike(_.noop);
	 * // => false
	 *
	 * _.isObjectLike(null);
	 * // => false
	 */
	function isObjectLike(value) {
	  return value != null && typeof value == 'object';
	}

	module.exports = isObjectLike;


/***/ }),
/* 30 */,
/* 31 */,
/* 32 */
/***/ (function(module, exports) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	    value: true
	});
	exports.callIfExists = callIfExists;
	exports.hasOwnProp = hasOwnProp;
	exports.uniqueId = uniqueId;
	function callIfExists(func) {
	    for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
	        args[_key - 1] = arguments[_key];
	    }

	    return typeof func === 'function' && func.apply(undefined, args);
	}

	function hasOwnProp(obj, prop) {
	    return Object.prototype.hasOwnProperty.call(obj, prop);
	}

	function uniqueId() {
	    return Math.random().toString(36).substring(7);
	}

	var cssClasses = exports.cssClasses = {
	    menu: 'react-contextmenu',
	    menuVisible: 'react-contextmenu--visible',
	    menuWrapper: 'react-contextmenu-wrapper',
	    menuItem: 'react-contextmenu-item',
	    menuItemActive: 'react-contextmenu-item--active',
	    menuItemDisabled: 'react-contextmenu-item--disabled',
	    menuItemDivider: 'react-contextmenu-item--divider',
	    menuItemSelected: 'react-contextmenu-item--selected',
	    subMenu: 'react-contextmenu-submenu'
	};

	var store = exports.store = {};

	var canUseDOM = exports.canUseDOM = Boolean(typeof window !== 'undefined' && window.document && window.document.createElement);

/***/ }),
/* 33 */
[1833, 67, 321, 343],
/* 34 */
/***/ (function(module, exports, __webpack_require__) {

	var identity = __webpack_require__(75),
	    overRest = __webpack_require__(344),
	    setToString = __webpack_require__(347);

	/**
	 * The base implementation of `_.rest` which doesn't validate or coerce arguments.
	 *
	 * @private
	 * @param {Function} func The function to apply a rest parameter to.
	 * @param {number} [start=func.length-1] The start position of the rest parameter.
	 * @returns {Function} Returns the new function.
	 */
	function baseRest(func, start) {
	  return setToString(overRest(func, start, identity), func + '');
	}

	module.exports = baseRest;


/***/ }),
/* 35 */,
/* 36 */,
/* 37 */,
/* 38 */
[1871, 311, 322],
/* 39 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	    value: true
	});
	exports.MENU_HIDE = exports.MENU_SHOW = undefined;
	exports.dispatchGlobalEvent = dispatchGlobalEvent;
	exports.showMenu = showMenu;
	exports.hideMenu = hideMenu;

	var _objectAssign = __webpack_require__(27);

	var _objectAssign2 = _interopRequireDefault(_objectAssign);

	var _helpers = __webpack_require__(32);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	var MENU_SHOW = exports.MENU_SHOW = 'REACT_CONTEXTMENU_SHOW';
	var MENU_HIDE = exports.MENU_HIDE = 'REACT_CONTEXTMENU_HIDE';

	function dispatchGlobalEvent(eventName, opts) {
	    var target = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : window;

	    // Compatibale with IE
	    // @see http://stackoverflow.com/questions/26596123/internet-explorer-9-10-11-event-constructor-doesnt-work
	    var event = void 0;

	    if (typeof window.CustomEvent === 'function') {
	        event = new window.CustomEvent(eventName, { detail: opts });
	    } else {
	        event = document.createEvent('CustomEvent');
	        event.initCustomEvent(eventName, false, true, opts);
	    }

	    if (target) {
	        target.dispatchEvent(event);
	        (0, _objectAssign2.default)(_helpers.store, opts);
	    }
	}

	function showMenu() {
	    var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
	    var target = arguments[1];

	    dispatchGlobalEvent(MENU_SHOW, (0, _objectAssign2.default)({}, opts, { type: MENU_SHOW }), target);
	}

	function hideMenu() {
	    var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
	    var target = arguments[1];

	    dispatchGlobalEvent(MENU_HIDE, (0, _objectAssign2.default)({}, opts, { type: MENU_HIDE }), target);
	}

/***/ }),
/* 40 */,
/* 41 */
[1833, 61, 442, 469],
/* 42 */
29,
/* 43 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	module.exports = {
	  CheckboxEditor: __webpack_require__(69),
	  EditorBase: __webpack_require__(47),
	  SimpleTextEditor: __webpack_require__(70)
	};

/***/ }),
/* 44 */
/***/ (function(module, exports) {

	"use strict";

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});
	exports["default"] = shouldRowUpdate;
	function shouldRowUpdate(nextProps, currentProps) {
	  return currentProps.columns !== nextProps.columns || nextProps.row !== currentProps.row || currentProps.colOverscanStartIdx !== nextProps.colOverscanStartIdx || currentProps.colOverscanEndIdx !== nextProps.colOverscanEndIdx || currentProps.colVisibleStartIdx !== nextProps.colVisibleStartIdx || currentProps.colVisibleEndIdx !== nextProps.colVisibleEndIdx || currentProps.isSelected !== nextProps.isSelected || currentProps.isScrolling !== nextProps.isScrolling || nextProps.height !== currentProps.height || currentProps.isOver !== nextProps.isOver || currentProps.expandedRows !== nextProps.expandedRows || currentProps.canDrop !== nextProps.canDrop || currentProps.forceUpdate === true || currentProps.extraClasses !== nextProps.extraClasses;
	}

/***/ }),
/* 45 */
/***/ (function(module, exports, __webpack_require__) {

	// style-loader: Adds some css to the DOM by adding a <style> tag

	// load the styles
	var content = __webpack_require__(110);
	if(typeof content === 'string') content = [[module.id, content, '']];
	// add the styles to the DOM
	var update = __webpack_require__(9)(content, {});
	if(content.locals) module.exports = content.locals;
	// Hot Module Replacement
	if(false) {}

/***/ }),
/* 46 */
[1942, 17, 117],
/* 47 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _ExcelColumn = __webpack_require__(18);

	var _ExcelColumn2 = _interopRequireDefault(_ExcelColumn);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var React = __webpack_require__(2);
	var ReactDOM = __webpack_require__(13);

	var EditorBase = function (_React$Component) {
	  _inherits(EditorBase, _React$Component);

	  function EditorBase() {
	    _classCallCheck(this, EditorBase);

	    return _possibleConstructorReturn(this, (EditorBase.__proto__ || Object.getPrototypeOf(EditorBase)).apply(this, arguments));
	  }

	  _createClass(EditorBase, [{
	    key: 'getStyle',
	    value: function getStyle() {
	      return {
	        width: '100%'
	      };
	    }
	  }, {
	    key: 'getValue',
	    value: function getValue() {
	      var updated = {};
	      updated[this.props.column.key] = this.getInputNode().value;
	      return updated;
	    }
	  }, {
	    key: 'getInputNode',
	    value: function getInputNode() {
	      var domNode = ReactDOM.findDOMNode(this);
	      if (domNode.tagName === 'INPUT') {
	        return domNode;
	      }

	      return domNode.querySelector('input:not([type=hidden])');
	    }
	  }, {
	    key: 'inheritContainerStyles',
	    value: function inheritContainerStyles() {
	      return true;
	    }
	  }]);

	  return EditorBase;
	}(React.Component);

	EditorBase.propTypes = {
	  onKeyDown: _propTypes2['default'].func.isRequired,
	  value: _propTypes2['default'].any.isRequired,
	  onBlur: _propTypes2['default'].func.isRequired,
	  column: _propTypes2['default'].shape(_ExcelColumn2['default']).isRequired,
	  commit: _propTypes2['default'].func.isRequired
	};

	module.exports = EditorBase;

/***/ }),
/* 48 */,
/* 49 */,
/* 50 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.END_DRAG = exports.DROP = exports.HOVER = exports.PUBLISH_DRAG_SOURCE = exports.BEGIN_DRAG = undefined;

	var _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; };

	exports.beginDrag = beginDrag;
	exports.publishDragSource = publishDragSource;
	exports.hover = hover;
	exports.drop = drop;
	exports.endDrag = endDrag;

	var _invariant = __webpack_require__(10);

	var _invariant2 = _interopRequireDefault(_invariant);

	var _isArray = __webpack_require__(7);

	var _isArray2 = _interopRequireDefault(_isArray);

	var _isObject = __webpack_require__(23);

	var _isObject2 = _interopRequireDefault(_isObject);

	var _matchesType = __webpack_require__(142);

	var _matchesType2 = _interopRequireDefault(_matchesType);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	var BEGIN_DRAG = exports.BEGIN_DRAG = 'dnd-core/BEGIN_DRAG';
	var PUBLISH_DRAG_SOURCE = exports.PUBLISH_DRAG_SOURCE = 'dnd-core/PUBLISH_DRAG_SOURCE';
	var HOVER = exports.HOVER = 'dnd-core/HOVER';
	var DROP = exports.DROP = 'dnd-core/DROP';
	var END_DRAG = exports.END_DRAG = 'dnd-core/END_DRAG';

	function beginDrag(sourceIds) {
		var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { publishSource: true, clientOffset: null };
		var publishSource = options.publishSource,
		    clientOffset = options.clientOffset,
		    getSourceClientOffset = options.getSourceClientOffset;

		(0, _invariant2.default)((0, _isArray2.default)(sourceIds), 'Expected sourceIds to be an array.');

		var monitor = this.getMonitor();
		var registry = this.getRegistry();
		(0, _invariant2.default)(!monitor.isDragging(), 'Cannot call beginDrag while dragging.');

		for (var i = 0; i < sourceIds.length; i++) {
			(0, _invariant2.default)(registry.getSource(sourceIds[i]), 'Expected sourceIds to be registered.');
		}

		var sourceId = null;
		for (var _i = sourceIds.length - 1; _i >= 0; _i--) {
			if (monitor.canDragSource(sourceIds[_i])) {
				sourceId = sourceIds[_i];
				break;
			}
		}
		if (sourceId === null) {
			return;
		}

		var sourceClientOffset = null;
		if (clientOffset) {
			(0, _invariant2.default)(typeof getSourceClientOffset === 'function', 'When clientOffset is provided, getSourceClientOffset must be a function.');
			sourceClientOffset = getSourceClientOffset(sourceId);
		}

		var source = registry.getSource(sourceId);
		var item = source.beginDrag(monitor, sourceId);
		(0, _invariant2.default)((0, _isObject2.default)(item), 'Item must be an object.');

		registry.pinSource(sourceId);

		var itemType = registry.getSourceType(sourceId);
		return {
			type: BEGIN_DRAG,
			itemType: itemType,
			item: item,
			sourceId: sourceId,
			clientOffset: clientOffset,
			sourceClientOffset: sourceClientOffset,
			isSourcePublic: publishSource
		};
	}

	function publishDragSource() {
		var monitor = this.getMonitor();
		if (!monitor.isDragging()) {
			return;
		}

		return { type: PUBLISH_DRAG_SOURCE };
	}

	function hover(targetIdsArg) {
		var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
		    _ref$clientOffset = _ref.clientOffset,
		    clientOffset = _ref$clientOffset === undefined ? null : _ref$clientOffset;

		(0, _invariant2.default)((0, _isArray2.default)(targetIdsArg), 'Expected targetIds to be an array.');
		var targetIds = targetIdsArg.slice(0);

		var monitor = this.getMonitor();
		var registry = this.getRegistry();
		(0, _invariant2.default)(monitor.isDragging(), 'Cannot call hover while not dragging.');
		(0, _invariant2.default)(!monitor.didDrop(), 'Cannot call hover after drop.');

		// First check invariants.
		for (var i = 0; i < targetIds.length; i++) {
			var targetId = targetIds[i];
			(0, _invariant2.default)(targetIds.lastIndexOf(targetId) === i, 'Expected targetIds to be unique in the passed array.');

			var target = registry.getTarget(targetId);
			(0, _invariant2.default)(target, 'Expected targetIds to be registered.');
		}

		var draggedItemType = monitor.getItemType();

		// Remove those targetIds that don't match the targetType.  This
		// fixes shallow isOver which would only be non-shallow because of
		// non-matching targets.
		for (var _i2 = targetIds.length - 1; _i2 >= 0; _i2--) {
			var _targetId = targetIds[_i2];
			var targetType = registry.getTargetType(_targetId);
			if (!(0, _matchesType2.default)(targetType, draggedItemType)) {
				targetIds.splice(_i2, 1);
			}
		}

		// Finally call hover on all matching targets.
		for (var _i3 = 0; _i3 < targetIds.length; _i3++) {
			var _targetId2 = targetIds[_i3];
			var _target = registry.getTarget(_targetId2);
			_target.hover(monitor, _targetId2);
		}

		return {
			type: HOVER,
			targetIds: targetIds,
			clientOffset: clientOffset
		};
	}

	function drop() {
		var _this = this;

		var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

		var monitor = this.getMonitor();
		var registry = this.getRegistry();
		(0, _invariant2.default)(monitor.isDragging(), 'Cannot call drop while not dragging.');
		(0, _invariant2.default)(!monitor.didDrop(), 'Cannot call drop twice during one drag operation.');

		var targetIds = monitor.getTargetIds().filter(monitor.canDropOnTarget, monitor);

		targetIds.reverse();
		targetIds.forEach(function (targetId, index) {
			var target = registry.getTarget(targetId);

			var dropResult = target.drop(monitor, targetId);
			(0, _invariant2.default)(typeof dropResult === 'undefined' || (0, _isObject2.default)(dropResult), 'Drop result must either be an object or undefined.');
			if (typeof dropResult === 'undefined') {
				dropResult = index === 0 ? {} : monitor.getDropResult();
			}

			_this.store.dispatch({
				type: DROP,
				dropResult: _extends({}, options, dropResult)
			});
		});
	}

	function endDrag() {
		var monitor = this.getMonitor();
		var registry = this.getRegistry();
		(0, _invariant2.default)(monitor.isDragging(), 'Cannot call endDrag while not dragging.');

		var sourceId = monitor.getSourceId();
		var source = registry.getSource(sourceId, true);
		source.endDrag(monitor, sourceId);

		registry.unpinSource();

		return { type: END_DRAG };
	}

/***/ }),
/* 51 */
/***/ (function(module, exports) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.addSource = addSource;
	exports.addTarget = addTarget;
	exports.removeSource = removeSource;
	exports.removeTarget = removeTarget;
	var ADD_SOURCE = exports.ADD_SOURCE = 'dnd-core/ADD_SOURCE';
	var ADD_TARGET = exports.ADD_TARGET = 'dnd-core/ADD_TARGET';
	var REMOVE_SOURCE = exports.REMOVE_SOURCE = 'dnd-core/REMOVE_SOURCE';
	var REMOVE_TARGET = exports.REMOVE_TARGET = 'dnd-core/REMOVE_TARGET';

	function addSource(sourceId) {
		return {
			type: ADD_SOURCE,
			sourceId: sourceId
		};
	}

	function addTarget(targetId) {
		return {
			type: ADD_TARGET,
			targetId: targetId
		};
	}

	function removeSource(sourceId) {
		return {
			type: REMOVE_SOURCE,
			sourceId: sourceId
		};
	}

	function removeTarget(targetId) {
		return {
			type: REMOVE_TARGET,
			targetId: targetId
		};
	}

/***/ }),
/* 52 */
/***/ (function(module, exports) {

	/**
	 * A specialized version of `_.map` for arrays without support for iteratee
	 * shorthands.
	 *
	 * @private
	 * @param {Array} [array] The array to iterate over.
	 * @param {Function} iteratee The function invoked per iteration.
	 * @returns {Array} Returns the new mapped array.
	 */
	function arrayMap(array, iteratee) {
	  var index = -1,
	      length = array == null ? 0 : array.length,
	      result = Array(length);

	  while (++index < length) {
	    result[index] = iteratee(array[index], index, array);
	  }
	  return result;
	}

	module.exports = arrayMap;


/***/ }),
/* 53 */
[1823, 74],
/* 54 */
[1866, 329],
/* 55 */
[1925, 38],
/* 56 */
/***/ (function(module, exports, __webpack_require__) {

	var isArrayLike = __webpack_require__(46),
	    isObjectLike = __webpack_require__(29);

	/**
	 * This method is like `_.isArrayLike` except that it also checks if `value`
	 * is an object.
	 *
	 * @static
	 * @memberOf _
	 * @since 4.0.0
	 * @category Lang
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is an array-like object,
	 *  else `false`.
	 * @example
	 *
	 * _.isArrayLikeObject([1, 2, 3]);
	 * // => true
	 *
	 * _.isArrayLikeObject(document.body.children);
	 * // => true
	 *
	 * _.isArrayLikeObject('abc');
	 * // => false
	 *
	 * _.isArrayLikeObject(_.noop);
	 * // => false
	 */
	function isArrayLikeObject(value) {
	  return isObjectLike(value) && isArrayLike(value);
	}

	module.exports = isArrayLikeObject;


/***/ }),
/* 57 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.default = checkDecoratorArguments;
	function checkDecoratorArguments(functionName, signature) {
		if (false) { var arg, i; }
	}

/***/ }),
/* 58 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _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; };

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /*!
	                                                                                                                                                                                                                                                                                Copyright (c) 2018 Jed Watson.
	                                                                                                                                                                                                                                                                                Licensed under the MIT License (MIT), see
	                                                                                                                                                                                                                                                                                http://jedwatson.github.io/react-select
	                                                                                                                                                                                                                                                                              */


	var _reactInputAutosize = __webpack_require__(380);

	var _reactInputAutosize2 = _interopRequireDefault(_reactInputAutosize);

	var _classnames = __webpack_require__(4);

	var _classnames2 = _interopRequireDefault(_classnames);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _reactDom = __webpack_require__(13);

	var _defaultArrowRenderer = __webpack_require__(164);

	var _defaultArrowRenderer2 = _interopRequireDefault(_defaultArrowRenderer);

	var _defaultClearRenderer = __webpack_require__(165);

	var _defaultClearRenderer2 = _interopRequireDefault(_defaultClearRenderer);

	var _defaultFilterOptions = __webpack_require__(90);

	var _defaultFilterOptions2 = _interopRequireDefault(_defaultFilterOptions);

	var _defaultMenuRenderer = __webpack_require__(91);

	var _defaultMenuRenderer2 = _interopRequireDefault(_defaultMenuRenderer);

	var _Option = __webpack_require__(162);

	var _Option2 = _interopRequireDefault(_Option);

	var _Value = __webpack_require__(163);

	var _Value2 = _interopRequireDefault(_Value);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }

	function _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; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var stringifyValue = function stringifyValue(value) {
		return typeof value === 'string' ? value : value !== null && JSON.stringify(value) || '';
	};

	var stringOrNode = _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.node]);
	var stringOrNumber = _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]);

	var instanceId = 1;

	var shouldShowValue = function shouldShowValue(state, props) {
		var inputValue = state.inputValue,
		    isPseudoFocused = state.isPseudoFocused,
		    isFocused = state.isFocused;
		var onSelectResetsInput = props.onSelectResetsInput;


		if (!inputValue) return true;

		if (!onSelectResetsInput) {
			return !(!isFocused && isPseudoFocused || isFocused && !isPseudoFocused);
		}

		return false;
	};

	var shouldShowPlaceholder = function shouldShowPlaceholder(state, props, isOpen) {
		var inputValue = state.inputValue,
		    isPseudoFocused = state.isPseudoFocused,
		    isFocused = state.isFocused;
		var onSelectResetsInput = props.onSelectResetsInput;


		return !inputValue || !onSelectResetsInput && !isOpen && !isPseudoFocused && !isFocused;
	};

	/**
	 * Retrieve a value from the given options and valueKey
	 * @param {String|Number|Array} value	- the selected value(s)
	 * @param {Object}		 props	- the Select component's props (or nextProps)
	 */
	var expandValue = function expandValue(value, props) {
		var valueType = typeof value === 'undefined' ? 'undefined' : _typeof(value);
		if (valueType !== 'string' && valueType !== 'number' && valueType !== 'boolean') return value;
		var options = props.options,
		    valueKey = props.valueKey;

		if (!options) return;
		for (var i = 0; i < options.length; i++) {
			if (String(options[i][valueKey]) === String(value)) return options[i];
		}
	};

	var handleRequired = function handleRequired(value, multi) {
		if (!value) return true;
		return multi ? value.length === 0 : Object.keys(value).length === 0;
	};

	var Select = function (_React$Component) {
		_inherits(Select, _React$Component);

		function Select(props) {
			_classCallCheck(this, Select);

			var _this = _possibleConstructorReturn(this, (Select.__proto__ || Object.getPrototypeOf(Select)).call(this, props));

			['clearValue', 'focusOption', 'getOptionLabel', 'handleInputBlur', 'handleInputChange', 'handleInputFocus', 'handleInputValueChange', 'handleKeyDown', 'handleMenuScroll', 'handleMouseDown', 'handleMouseDownOnArrow', 'handleMouseDownOnMenu', 'handleTouchEnd', 'handleTouchEndClearValue', 'handleTouchMove', 'handleTouchOutside', 'handleTouchStart', 'handleValueClick', 'onOptionRef', 'removeValue', 'selectValue'].forEach(function (fn) {
				return _this[fn] = _this[fn].bind(_this);
			});

			_this.state = {
				inputValue: '',
				isFocused: false,
				isOpen: false,
				isPseudoFocused: false,
				required: false
			};
			return _this;
		}

		_createClass(Select, [{
			key: 'componentWillMount',
			value: function componentWillMount() {
				this._instancePrefix = 'react-select-' + (this.props.instanceId || ++instanceId) + '-';
				var valueArray = this.getValueArray(this.props.value);

				if (this.props.required) {
					this.setState({
						required: handleRequired(valueArray[0], this.props.multi)
					});
				}
			}
		}, {
			key: 'componentDidMount',
			value: function componentDidMount() {
				if (typeof this.props.autofocus !== 'undefined' && typeof console !== 'undefined') {
					console.warn('Warning: The autofocus prop has changed to autoFocus, support will be removed after react-select@1.0');
				}
				if (this.props.autoFocus || this.props.autofocus) {
					this.focus();
				}
			}
		}, {
			key: 'componentWillReceiveProps',
			value: function componentWillReceiveProps(nextProps) {
				var valueArray = this.getValueArray(nextProps.value, nextProps);

				if (nextProps.required) {
					this.setState({
						required: handleRequired(valueArray[0], nextProps.multi)
					});
				} else if (this.props.required) {
					// Used to be required but it's not any more
					this.setState({ required: false });
				}

				if (this.state.inputValue && this.props.value !== nextProps.value && nextProps.onSelectResetsInput) {
					this.setState({ inputValue: this.handleInputValueChange('') });
				}
			}
		}, {
			key: 'componentDidUpdate',
			value: function componentDidUpdate(prevProps, prevState) {
				// focus to the selected option
				if (this.menu && this.focused && this.state.isOpen && !this.hasScrolledToOption) {
					var focusedOptionNode = (0, _reactDom.findDOMNode)(this.focused);
					var menuNode = (0, _reactDom.findDOMNode)(this.menu);

					var scrollTop = menuNode.scrollTop;
					var scrollBottom = scrollTop + menuNode.offsetHeight;
					var optionTop = focusedOptionNode.offsetTop;
					var optionBottom = optionTop + focusedOptionNode.offsetHeight;

					if (scrollTop > optionTop || scrollBottom < optionBottom) {
						menuNode.scrollTop = focusedOptionNode.offsetTop;
					}

					// We still set hasScrolledToOption to true even if we didn't
					// actually need to scroll, as we've still confirmed that the
					// option is in view.
					this.hasScrolledToOption = true;
				} else if (!this.state.isOpen) {
					this.hasScrolledToOption = false;
				}

				if (this._scrollToFocusedOptionOnUpdate && this.focused && this.menu) {
					this._scrollToFocusedOptionOnUpdate = false;
					var focusedDOM = (0, _reactDom.findDOMNode)(this.focused);
					var menuDOM = (0, _reactDom.findDOMNode)(this.menu);
					var focusedRect = focusedDOM.getBoundingClientRect();
					var menuRect = menuDOM.getBoundingClientRect();
					if (focusedRect.bottom > menuRect.bottom) {
						menuDOM.scrollTop = focusedDOM.offsetTop + focusedDOM.clientHeight - menuDOM.offsetHeight;
					} else if (focusedRect.top < menuRect.top) {
						menuDOM.scrollTop = focusedDOM.offsetTop;
					}
				}
				if (this.props.scrollMenuIntoView && this.menuContainer) {
					var menuContainerRect = this.menuContainer.getBoundingClientRect();
					if (window.innerHeight < menuContainerRect.bottom + this.props.menuBuffer) {
						window.scrollBy(0, menuContainerRect.bottom + this.props.menuBuffer - window.innerHeight);
					}
				}
				if (prevProps.disabled !== this.props.disabled) {
					this.setState({ isFocused: false }); // eslint-disable-line react/no-did-update-set-state
					this.closeMenu();
				}
				if (prevState.isOpen !== this.state.isOpen) {
					this.toggleTouchOutsideEvent(this.state.isOpen);
					var handler = this.state.isOpen ? this.props.onOpen : this.props.onClose;
					handler && handler();
				}
			}
		}, {
			key: 'componentWillUnmount',
			value: function componentWillUnmount() {
				this.toggleTouchOutsideEvent(false);
			}
		}, {
			key: 'toggleTouchOutsideEvent',
			value: function toggleTouchOutsideEvent(enabled) {
				var eventTogglerName = enabled ? document.addEventListener ? 'addEventListener' : 'attachEvent' : document.removeEventListener ? 'removeEventListener' : 'detachEvent';
				var pref = document.addEventListener ? '' : 'on';

				document[eventTogglerName](pref + 'touchstart', this.handleTouchOutside);
				document[eventTogglerName](pref + 'mousedown', this.handleTouchOutside);
			}
		}, {
			key: 'handleTouchOutside',
			value: function handleTouchOutside(event) {
				// handle touch outside on ios to dismiss menu
				if (this.wrapper && !this.wrapper.contains(event.target)) {
					this.closeMenu();
				}
			}
		}, {
			key: 'focus',
			value: function focus() {
				if (!this.input) return;
				this.input.focus();
			}
		}, {
			key: 'blurInput',
			value: function blurInput() {
				if (!this.input) return;
				this.input.blur();
			}
		}, {
			key: 'handleTouchMove',
			value: function handleTouchMove() {
				// Set a flag that the view is being dragged
				this.dragging = true;
			}
		}, {
			key: 'handleTouchStart',
			value: function handleTouchStart() {
				// Set a flag that the view is not being dragged
				this.dragging = false;
			}
		}, {
			key: 'handleTouchEnd',
			value: function handleTouchEnd(event) {
				// Check if the view is being dragged, In this case
				// we don't want to fire the click event (because the user only wants to scroll)
				if (this.dragging) return;

				// Fire the mouse events
				this.handleMouseDown(event);
			}
		}, {
			key: 'handleTouchEndClearValue',
			value: function handleTouchEndClearValue(event) {
				// Check if the view is being dragged, In this case
				// we don't want to fire the click event (because the user only wants to scroll)
				if (this.dragging) return;

				// Clear the value
				this.clearValue(event);
			}
		}, {
			key: 'handleMouseDown',
			value: function handleMouseDown(event) {
				// if the event was triggered by a mousedown and not the primary
				// button, or if the component is disabled, ignore it.
				if (this.props.disabled || event.type === 'mousedown' && event.button !== 0) {
					return;
				}

				if (event.target.tagName === 'INPUT') {
					if (!this.state.isFocused) {
						this._openAfterFocus = this.props.openOnClick;
						this.focus();
					} else if (!this.state.isOpen) {
						this.setState({
							isOpen: true,
							isPseudoFocused: false,
							focusedOption: null
						});
					}

					return;
				}

				// prevent default event handlers
				event.preventDefault();

				// for the non-searchable select, toggle the menu
				if (!this.props.searchable) {
					// This code means that if a select is searchable, onClick the options menu will not appear, only on subsequent click will it open.
					this.focus();
					return this.setState({
						isOpen: !this.state.isOpen,
						focusedOption: null
					});
				}

				if (this.state.isFocused) {
					// On iOS, we can get into a state where we think the input is focused but it isn't really,
					// since iOS ignores programmatic calls to input.focus() that weren't triggered by a click event.
					// Call focus() again here to be safe.
					this.focus();

					var input = this.input;
					var toOpen = true;

					if (typeof input.getInput === 'function') {
						// Get the actual DOM input if the ref is an <AutosizeInput /> component
						input = input.getInput();
					}

					// clears the value so that the cursor will be at the end of input when the component re-renders
					input.value = '';

					if (this._focusAfterClear) {
						toOpen = false;
						this._focusAfterClear = false;
					}

					// if the input is focused, ensure the menu is open
					this.setState({
						isOpen: toOpen,
						isPseudoFocused: false,
						focusedOption: null
					});
				} else {
					// otherwise, focus the input and open the menu
					this._openAfterFocus = this.props.openOnClick;
					this.focus();
					this.setState({ focusedOption: null });
				}
			}
		}, {
			key: 'handleMouseDownOnArrow',
			value: function handleMouseDownOnArrow(event) {
				// if the event was triggered by a mousedown and not the primary
				// button, or if the component is disabled, ignore it.
				if (this.props.disabled || event.type === 'mousedown' && event.button !== 0) {
					return;
				}

				if (this.state.isOpen) {
					// prevent default event handlers
					event.stopPropagation();
					event.preventDefault();
					// close the menu
					this.closeMenu();
				} else {
					// If the menu isn't open, let the event bubble to the main handleMouseDown
					this.setState({
						isOpen: true
					});
				}
			}
		}, {
			key: 'handleMouseDownOnMenu',
			value: function handleMouseDownOnMenu(event) {
				// if the event was triggered by a mousedown and not the primary
				// button, or if the component is disabled, ignore it.
				if (this.props.disabled || event.type === 'mousedown' && event.button !== 0) {
					return;
				}

				event.stopPropagation();
				event.preventDefault();

				this._openAfterFocus = true;
				this.focus();
			}
		}, {
			key: 'closeMenu',
			value: function closeMenu() {
				if (this.props.onCloseResetsInput) {
					this.setState({
						inputValue: this.handleInputValueChange(''),
						isOpen: false,
						isPseudoFocused: this.state.isFocused && !this.props.multi
					});
				} else {
					this.setState({
						isOpen: false,
						isPseudoFocused: this.state.isFocused && !this.props.multi
					});
				}
				this.hasScrolledToOption = false;
			}
		}, {
			key: 'handleInputFocus',
			value: function handleInputFocus(event) {
				if (this.props.disabled) return;

				var toOpen = this.state.isOpen || this._openAfterFocus || this.props.openOnFocus;
				toOpen = this._focusAfterClear ? false : toOpen; //if focus happens after clear values, don't open dropdown yet.

				if (this.props.onFocus) {
					this.props.onFocus(event);
				}

				this.setState({
					isFocused: true,
					isOpen: !!toOpen
				});

				this._focusAfterClear = false;
				this._openAfterFocus = false;
			}
		}, {
			key: 'handleInputBlur',
			value: function handleInputBlur(event) {
				// The check for menu.contains(activeElement) is necessary to prevent IE11's scrollbar from closing the menu in certain contexts.
				if (this.menu && (this.menu === document.activeElement || this.menu.contains(document.activeElement))) {
					this.focus();
					return;
				}

				if (this.props.onBlur) {
					this.props.onBlur(event);
				}
				var onBlurredState = {
					isFocused: false,
					isOpen: false,
					isPseudoFocused: false
				};
				if (this.props.onBlurResetsInput) {
					onBlurredState.inputValue = this.handleInputValueChange('');
				}
				this.setState(onBlurredState);
			}
		}, {
			key: 'handleInputChange',
			value: function handleInputChange(event) {
				var newInputValue = event.target.value;

				if (this.state.inputValue !== event.target.value) {
					newInputValue = this.handleInputValueChange(newInputValue);
				}

				this.setState({
					inputValue: newInputValue,
					isOpen: true,
					isPseudoFocused: false
				});
			}
		}, {
			key: 'setInputValue',
			value: function setInputValue(newValue) {
				if (this.props.onInputChange) {
					var nextState = this.props.onInputChange(newValue);
					if (nextState != null && (typeof nextState === 'undefined' ? 'undefined' : _typeof(nextState)) !== 'object') {
						newValue = '' + nextState;
					}
				}
				this.setState({
					inputValue: newValue
				});
			}
		}, {
			key: 'handleInputValueChange',
			value: function handleInputValueChange(newValue) {
				if (this.props.onInputChange) {
					var nextState = this.props.onInputChange(newValue);
					// Note: != used deliberately here to catch undefined and null
					if (nextState != null && (typeof nextState === 'undefined' ? 'undefined' : _typeof(nextState)) !== 'object') {
						newValue = '' + nextState;
					}
				}
				return newValue;
			}
		}, {
			key: 'handleKeyDown',
			value: function handleKeyDown(event) {
				if (this.props.disabled) return;

				if (typeof this.props.onInputKeyDown === 'function') {
					this.props.onInputKeyDown(event);
					if (event.defaultPrevented) {
						return;
					}
				}

				switch (event.keyCode) {
					case 8:
						// backspace
						if (!this.state.inputValue && this.props.backspaceRemoves) {
							event.preventDefault();
							this.popValue();
						}
						break;
					case 9:
						// tab
						if (event.shiftKey || !this.state.isOpen || !this.props.tabSelectsValue) {
							break;
						}
						event.preventDefault();
						this.selectFocusedOption();
						break;
					case 13:
						// enter
						event.preventDefault();
						event.stopPropagation();
						if (this.state.isOpen) {
							this.selectFocusedOption();
						} else {
							this.focusNextOption();
						}
						break;
					case 27:
						// escape
						event.preventDefault();
						if (this.state.isOpen) {
							this.closeMenu();
							event.stopPropagation();
						} else if (this.props.clearable && this.props.escapeClearsValue) {
							this.clearValue(event);
							event.stopPropagation();
						}
						break;
					case 32:
						// space
						if (this.props.searchable) {
							break;
						}
						event.preventDefault();
						if (!this.state.isOpen) {
							this.focusNextOption();
							break;
						}
						event.stopPropagation();
						this.selectFocusedOption();
						break;
					case 38:
						// up
						event.preventDefault();
						this.focusPreviousOption();
						break;
					case 40:
						// down
						event.preventDefault();
						this.focusNextOption();
						break;
					case 33:
						// page up
						event.preventDefault();
						this.focusPageUpOption();
						break;
					case 34:
						// page down
						event.preventDefault();
						this.focusPageDownOption();
						break;
					case 35:
						// end key
						if (event.shiftKey) {
							break;
						}
						event.preventDefault();
						this.focusEndOption();
						break;
					case 36:
						// home key
						if (event.shiftKey) {
							break;
						}
						event.preventDefault();
						this.focusStartOption();
						break;
					case 46:
						// delete
						if (!this.state.inputValue && this.props.deleteRemoves) {
							event.preventDefault();
							this.popValue();
						}
						break;
				}
			}
		}, {
			key: 'handleValueClick',
			value: function handleValueClick(option, event) {
				if (!this.props.onValueClick) return;
				this.props.onValueClick(option, event);
			}
		}, {
			key: 'handleMenuScroll',
			value: function handleMenuScroll(event) {
				if (!this.props.onMenuScrollToBottom) return;
				var target = event.target;

				if (target.scrollHeight > target.offsetHeight && target.scrollHeight - target.offsetHeight - target.scrollTop <= 0) {
					this.props.onMenuScrollToBottom();
				}
			}
		}, {
			key: 'getOptionLabel',
			value: function getOptionLabel(op) {
				return op[this.props.labelKey];
			}

			/**
	   * Turns a value into an array from the given options
	   * @param {String|Number|Array} value		- the value of the select input
	   * @param {Object}		nextProps	- optionally specify the nextProps so the returned array uses the latest configuration
	   * @returns	{Array}	the value of the select represented in an array
	   */

		}, {
			key: 'getValueArray',
			value: function getValueArray(value) {
				var nextProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;

				/** support optionally passing in the `nextProps` so `componentWillReceiveProps` updates will function as expected */
				var props = (typeof nextProps === 'undefined' ? 'undefined' : _typeof(nextProps)) === 'object' ? nextProps : this.props;
				if (props.multi) {
					if (typeof value === 'string') {
						value = value.split(props.delimiter);
					}
					if (!Array.isArray(value)) {
						if (value === null || value === undefined) return [];
						value = [value];
					}
					return value.map(function (value) {
						return expandValue(value, props);
					}).filter(function (i) {
						return i;
					});
				}
				var expandedValue = expandValue(value, props);
				return expandedValue ? [expandedValue] : [];
			}
		}, {
			key: 'setValue',
			value: function setValue(value) {
				var _this2 = this;

				if (this.props.autoBlur) {
					this.blurInput();
				}
				if (this.props.required) {
					var required = handleRequired(value, this.props.multi);
					this.setState({ required: required });
				}
				if (this.props.simpleValue && value) {
					value = this.props.multi ? value.map(function (i) {
						return i[_this2.props.valueKey];
					}).join(this.props.delimiter) : value[this.props.valueKey];
				}
				if (this.props.onChange) {
					this.props.onChange(value);
				}
			}
		}, {
			key: 'selectValue',
			value: function selectValue(value) {
				var _this3 = this;

				// NOTE: we actually add/set the value in a callback to make sure the
				// input value is empty to avoid styling issues in Chrome
				if (this.props.closeOnSelect) {
					this.hasScrolledToOption = false;
				}
				var updatedValue = this.props.onSelectResetsInput ? '' : this.state.inputValue;
				if (this.props.multi) {
					this.setState({
						focusedIndex: null,
						inputValue: this.handleInputValueChange(updatedValue),
						isOpen: !this.props.closeOnSelect
					}, function () {
						var valueArray = _this3.getValueArray(_this3.props.value);
						if (valueArray.some(function (i) {
							return i[_this3.props.valueKey] === value[_this3.props.valueKey];
						})) {
							_this3.removeValue(value);
						} else {
							_this3.addValue(value);
						}
					});
				} else {
					this.setState({
						inputValue: this.handleInputValueChange(updatedValue),
						isOpen: !this.props.closeOnSelect,
						isPseudoFocused: this.state.isFocused
					}, function () {
						_this3.setValue(value);
					});
				}
			}
		}, {
			key: 'addValue',
			value: function addValue(value) {
				var valueArray = this.getValueArray(this.props.value);
				var visibleOptions = this._visibleOptions.filter(function (val) {
					return !val.disabled;
				});
				var lastValueIndex = visibleOptions.indexOf(value);
				this.setValue(valueArray.concat(value));
				if (!this.props.closeOnSelect) {
					return;
				}
				if (visibleOptions.length - 1 === lastValueIndex) {
					// the last option was selected; focus the second-last one
					this.focusOption(visibleOptions[lastValueIndex - 1]);
				} else if (visibleOptions.length > lastValueIndex) {
					// focus the option below the selected one
					this.focusOption(visibleOptions[lastValueIndex + 1]);
				}
			}
		}, {
			key: 'popValue',
			value: function popValue() {
				var valueArray = this.getValueArray(this.props.value);
				if (!valueArray.length) return;
				if (valueArray[valueArray.length - 1].clearableValue === false) return;
				this.setValue(this.props.multi ? valueArray.slice(0, valueArray.length - 1) : null);
			}
		}, {
			key: 'removeValue',
			value: function removeValue(value) {
				var _this4 = this;

				var valueArray = this.getValueArray(this.props.value);
				this.setValue(valueArray.filter(function (i) {
					return i[_this4.props.valueKey] !== value[_this4.props.valueKey];
				}));
				this.focus();
			}
		}, {
			key: 'clearValue',
			value: function clearValue(event) {
				// if the event was triggered by a mousedown and not the primary
				// button, ignore it.
				if (event && event.type === 'mousedown' && event.button !== 0) {
					return;
				}

				event.preventDefault();

				this.setValue(this.getResetValue());
				this.setState({
					inputValue: this.handleInputValueChange(''),
					isOpen: false
				}, this.focus);

				this._focusAfterClear = true;
			}
		}, {
			key: 'getResetValue',
			value: function getResetValue() {
				if (this.props.resetValue !== undefined) {
					return this.props.resetValue;
				} else if (this.props.multi) {
					return [];
				} else {
					return null;
				}
			}
		}, {
			key: 'focusOption',
			value: function focusOption(option) {
				this.setState({
					focusedOption: option
				});
			}
		}, {
			key: 'focusNextOption',
			value: function focusNextOption() {
				this.focusAdjacentOption('next');
			}
		}, {
			key: 'focusPreviousOption',
			value: function focusPreviousOption() {
				this.focusAdjacentOption('previous');
			}
		}, {
			key: 'focusPageUpOption',
			value: function focusPageUpOption() {
				this.focusAdjacentOption('page_up');
			}
		}, {
			key: 'focusPageDownOption',
			value: function focusPageDownOption() {
				this.focusAdjacentOption('page_down');
			}
		}, {
			key: 'focusStartOption',
			value: function focusStartOption() {
				this.focusAdjacentOption('start');
			}
		}, {
			key: 'focusEndOption',
			value: function focusEndOption() {
				this.focusAdjacentOption('end');
			}
		}, {
			key: 'focusAdjacentOption',
			value: function focusAdjacentOption(dir) {
				var options = this._visibleOptions.map(function (option, index) {
					return { option: option, index: index };
				}).filter(function (option) {
					return !option.option.disabled;
				});
				this._scrollToFocusedOptionOnUpdate = true;
				if (!this.state.isOpen) {
					var newState = {
						focusedOption: this._focusedOption || (options.length ? options[dir === 'next' ? 0 : options.length - 1].option : null),
						isOpen: true
					};
					if (this.props.onSelectResetsInput) {
						newState.inputValue = '';
					}
					this.setState(newState);
					return;
				}
				if (!options.length) return;
				var focusedIndex = -1;
				for (var i = 0; i < options.length; i++) {
					if (this._focusedOption === options[i].option) {
						focusedIndex = i;
						break;
					}
				}
				if (dir === 'next' && focusedIndex !== -1) {
					focusedIndex = (focusedIndex + 1) % options.length;
				} else if (dir === 'previous') {
					if (focusedIndex > 0) {
						focusedIndex = focusedIndex - 1;
					} else {
						focusedIndex = options.length - 1;
					}
				} else if (dir === 'start') {
					focusedIndex = 0;
				} else if (dir === 'end') {
					focusedIndex = options.length - 1;
				} else if (dir === 'page_up') {
					var potentialIndex = focusedIndex - this.props.pageSize;
					if (potentialIndex < 0) {
						focusedIndex = 0;
					} else {
						focusedIndex = potentialIndex;
					}
				} else if (dir === 'page_down') {
					var _potentialIndex = focusedIndex + this.props.pageSize;
					if (_potentialIndex > options.length - 1) {
						focusedIndex = options.length - 1;
					} else {
						focusedIndex = _potentialIndex;
					}
				}

				if (focusedIndex === -1) {
					focusedIndex = 0;
				}

				this.setState({
					focusedIndex: options[focusedIndex].index,
					focusedOption: options[focusedIndex].option
				});
			}
		}, {
			key: 'getFocusedOption',
			value: function getFocusedOption() {
				return this._focusedOption;
			}
		}, {
			key: 'selectFocusedOption',
			value: function selectFocusedOption() {
				if (this._focusedOption) {
					return this.selectValue(this._focusedOption);
				}
			}
		}, {
			key: 'renderLoading',
			value: function renderLoading() {
				if (!this.props.isLoading) return;
				return _react2.default.createElement(
					'span',
					{ className: 'Select-loading-zone', 'aria-hidden': 'true' },
					_react2.default.createElement('span', { className: 'Select-loading' })
				);
			}
		}, {
			key: 'renderValue',
			value: function renderValue(valueArray, isOpen) {
				var _this5 = this;

				var renderLabel = this.props.valueRenderer || this.getOptionLabel;
				var ValueComponent = this.props.valueComponent;
				if (!valueArray.length) {
					var showPlaceholder = shouldShowPlaceholder(this.state, this.props, isOpen);
					return showPlaceholder ? _react2.default.createElement(
						'div',
						{ className: 'Select-placeholder' },
						this.props.placeholder
					) : null;
				}
				var onClick = this.props.onValueClick ? this.handleValueClick : null;
				if (this.props.multi) {
					return valueArray.map(function (value, i) {
						return _react2.default.createElement(
							ValueComponent,
							{
								disabled: _this5.props.disabled || value.clearableValue === false,
								id: _this5._instancePrefix + '-value-' + i,
								instancePrefix: _this5._instancePrefix,
								key: 'value-' + i + '-' + value[_this5.props.valueKey],
								onClick: onClick,
								onRemove: _this5.removeValue,
								placeholder: _this5.props.placeholder,
								value: value,
								values: valueArray
							},
							renderLabel(value, i),
							_react2.default.createElement(
								'span',
								{ className: 'Select-aria-only' },
								'\xA0'
							)
						);
					});
				} else if (shouldShowValue(this.state, this.props)) {
					if (isOpen) onClick = null;
					return _react2.default.createElement(
						ValueComponent,
						{
							disabled: this.props.disabled,
							id: this._instancePrefix + '-value-item',
							instancePrefix: this._instancePrefix,
							onClick: onClick,
							placeholder: this.props.placeholder,
							value: valueArray[0]
						},
						renderLabel(valueArray[0])
					);
				}
			}
		}, {
			key: 'renderInput',
			value: function renderInput(valueArray, focusedOptionIndex) {
				var _classNames,
				    _this6 = this;

				var className = (0, _classnames2.default)('Select-input', this.props.inputProps.className);
				var isOpen = this.state.isOpen;

				var ariaOwns = (0, _classnames2.default)((_classNames = {}, _defineProperty(_classNames, this._instancePrefix + '-list', isOpen), _defineProperty(_classNames, this._instancePrefix + '-backspace-remove-message', this.props.multi && !this.props.disabled && this.state.isFocused && !this.state.inputValue), _classNames));

				var value = this.state.inputValue;
				if (value && !this.props.onSelectResetsInput && !this.state.isFocused) {
					// it hides input value when it is not focused and was not reset on select
					value = '';
				}

				var inputProps = _extends({}, this.props.inputProps, {
					'aria-activedescendant': isOpen ? this._instancePrefix + '-option-' + focusedOptionIndex : this._instancePrefix + '-value',
					'aria-describedby': this.props['aria-describedby'],
					'aria-expanded': '' + isOpen,
					'aria-haspopup': '' + isOpen,
					'aria-label': this.props['aria-label'],
					'aria-labelledby': this.props['aria-labelledby'],
					'aria-owns': ariaOwns,
					onBlur: this.handleInputBlur,
					onChange: this.handleInputChange,
					onFocus: this.handleInputFocus,
					ref: function ref(_ref) {
						return _this6.input = _ref;
					},
					role: 'combobox',
					required: this.state.required,
					tabIndex: this.props.tabIndex,
					value: value
				});

				if (this.props.inputRenderer) {
					return this.props.inputRenderer(inputProps);
				}

				if (this.props.disabled || !this.props.searchable) {
					var divProps = _objectWithoutProperties(this.props.inputProps, []);

					var _ariaOwns = (0, _classnames2.default)(_defineProperty({}, this._instancePrefix + '-list', isOpen));
					return _react2.default.createElement('div', _extends({}, divProps, {
						'aria-expanded': isOpen,
						'aria-owns': _ariaOwns,
						'aria-activedescendant': isOpen ? this._instancePrefix + '-option-' + focusedOptionIndex : this._instancePrefix + '-value',
						'aria-disabled': '' + this.props.disabled,
						'aria-label': this.props['aria-label'],
						'aria-labelledby': this.props['aria-labelledby'],
						className: className,
						onBlur: this.handleInputBlur,
						onFocus: this.handleInputFocus,
						ref: function ref(_ref2) {
							return _this6.input = _ref2;
						},
						role: 'combobox',
						style: { border: 0, width: 1, display: 'inline-block' },
						tabIndex: this.props.tabIndex || 0
					}));
				}

				if (this.props.autosize) {
					return _react2.default.createElement(_reactInputAutosize2.default, _extends({ id: this.props.id }, inputProps, { className: className, minWidth: '5' }));
				}
				return _react2.default.createElement(
					'div',
					{ className: className, key: 'input-wrap', style: { display: 'inline-block' } },
					_react2.default.createElement('input', _extends({ id: this.props.id }, inputProps))
				);
			}
		}, {
			key: 'renderClear',
			value: function renderClear() {
				var valueArray = this.getValueArray(this.props.value);
				if (!this.props.clearable || !valueArray.length || this.props.disabled || this.props.isLoading) return;
				var ariaLabel = this.props.multi ? this.props.clearAllText : this.props.clearValueText;
				var clear = this.props.clearRenderer();

				return _react2.default.createElement(
					'span',
					{
						'aria-label': ariaLabel,
						className: 'Select-clear-zone',
						onMouseDown: this.clearValue,
						onTouchEnd: this.handleTouchEndClearValue,
						onTouchMove: this.handleTouchMove,
						onTouchStart: this.handleTouchStart,
						title: ariaLabel
					},
					clear
				);
			}
		}, {
			key: 'renderArrow',
			value: function renderArrow() {
				if (!this.props.arrowRenderer) return;

				var onMouseDown = this.handleMouseDownOnArrow;
				var isOpen = this.state.isOpen;
				var arrow = this.props.arrowRenderer({ onMouseDown: onMouseDown, isOpen: isOpen });

				if (!arrow) {
					return null;
				}

				return _react2.default.createElement(
					'span',
					{
						className: 'Select-arrow-zone',
						onMouseDown: onMouseDown
					},
					arrow
				);
			}
		}, {
			key: 'filterOptions',
			value: function filterOptions(excludeOptions) {
				var filterValue = this.state.inputValue;
				var options = this.props.options || [];
				if (this.props.filterOptions) {
					// Maintain backwards compatibility with boolean attribute
					var filterOptions = typeof this.props.filterOptions === 'function' ? this.props.filterOptions : _defaultFilterOptions2.default;

					return filterOptions(options, filterValue, excludeOptions, {
						filterOption: this.props.filterOption,
						ignoreAccents: this.props.ignoreAccents,
						ignoreCase: this.props.ignoreCase,
						labelKey: this.props.labelKey,
						matchPos: this.props.matchPos,
						matchProp: this.props.matchProp,
						trimFilter: this.props.trimFilter,
						valueKey: this.props.valueKey
					});
				} else {
					return options;
				}
			}
		}, {
			key: 'onOptionRef',
			value: function onOptionRef(ref, isFocused) {
				if (isFocused) {
					this.focused = ref;
				}
			}
		}, {
			key: 'renderMenu',
			value: function renderMenu(options, valueArray, focusedOption) {
				if (options && options.length) {
					return this.props.menuRenderer({
						focusedOption: focusedOption,
						focusOption: this.focusOption,
						inputValue: this.state.inputValue,
						instancePrefix: this._instancePrefix,
						labelKey: this.props.labelKey,
						onFocus: this.focusOption,
						onOptionRef: this.onOptionRef,
						onSelect: this.selectValue,
						optionClassName: this.props.optionClassName,
						optionComponent: this.props.optionComponent,
						optionRenderer: this.props.optionRenderer || this.getOptionLabel,
						options: options,
						removeValue: this.removeValue,
						selectValue: this.selectValue,
						valueArray: valueArray,
						valueKey: this.props.valueKey
					});
				} else if (this.props.noResultsText) {
					return _react2.default.createElement(
						'div',
						{ className: 'Select-noresults' },
						this.props.noResultsText
					);
				} else {
					return null;
				}
			}
		}, {
			key: 'renderHiddenField',
			value: function renderHiddenField(valueArray) {
				var _this7 = this;

				if (!this.props.name) return;
				if (this.props.joinValues) {
					var value = valueArray.map(function (i) {
						return stringifyValue(i[_this7.props.valueKey]);
					}).join(this.props.delimiter);
					return _react2.default.createElement('input', {
						disabled: this.props.disabled,
						name: this.props.name,
						ref: function ref(_ref3) {
							return _this7.value = _ref3;
						},
						type: 'hidden',
						value: value
					});
				}
				return valueArray.map(function (item, index) {
					return _react2.default.createElement('input', {
						disabled: _this7.props.disabled,
						key: 'hidden.' + index,
						name: _this7.props.name,
						ref: 'value' + index,
						type: 'hidden',
						value: stringifyValue(item[_this7.props.valueKey])
					});
				});
			}
		}, {
			key: 'getFocusableOptionIndex',
			value: function getFocusableOptionIndex(selectedOption) {
				var options = this._visibleOptions;
				if (!options.length) return null;

				var valueKey = this.props.valueKey;
				var focusedOption = this.state.focusedOption || selectedOption;
				if (focusedOption && !focusedOption.disabled) {
					var focusedOptionIndex = -1;
					options.some(function (option, index) {
						var isOptionEqual = option[valueKey] === focusedOption[valueKey];
						if (isOptionEqual) {
							focusedOptionIndex = index;
						}
						return isOptionEqual;
					});
					if (focusedOptionIndex !== -1) {
						return focusedOptionIndex;
					}
				}

				for (var i = 0; i < options.length; i++) {
					if (!options[i].disabled) return i;
				}
				return null;
			}
		}, {
			key: 'renderOuter',
			value: function renderOuter(options, valueArray, focusedOption) {
				var _this8 = this;

				var menu = this.renderMenu(options, valueArray, focusedOption);
				if (!menu) {
					return null;
				}

				return _react2.default.createElement(
					'div',
					{ ref: function ref(_ref5) {
							return _this8.menuContainer = _ref5;
						}, className: 'Select-menu-outer', style: this.props.menuContainerStyle },
					_react2.default.createElement(
						'div',
						{
							className: 'Select-menu',
							id: this._instancePrefix + '-list',
							onMouseDown: this.handleMouseDownOnMenu,
							onScroll: this.handleMenuScroll,
							ref: function ref(_ref4) {
								return _this8.menu = _ref4;
							},
							role: 'listbox',
							style: this.props.menuStyle,
							tabIndex: -1
						},
						menu
					)
				);
			}
		}, {
			key: 'render',
			value: function render() {
				var _this9 = this;

				var valueArray = this.getValueArray(this.props.value);
				var options = this._visibleOptions = this.filterOptions(this.props.multi && this.props.removeSelected ? valueArray : null);
				var isOpen = this.state.isOpen;
				if (this.props.multi && !options.length && valueArray.length && !this.state.inputValue) isOpen = false;
				var focusedOptionIndex = this.getFocusableOptionIndex(valueArray[0]);

				var focusedOption = null;
				if (focusedOptionIndex !== null) {
					focusedOption = this._focusedOption = options[focusedOptionIndex];
				} else {
					focusedOption = this._focusedOption = null;
				}
				var className = (0, _classnames2.default)('Select', this.props.className, {
					'has-value': valueArray.length,
					'is-clearable': this.props.clearable,
					'is-disabled': this.props.disabled,
					'is-focused': this.state.isFocused,
					'is-loading': this.props.isLoading,
					'is-open': isOpen,
					'is-pseudo-focused': this.state.isPseudoFocused,
					'is-searchable': this.props.searchable,
					'Select--multi': this.props.multi,
					'Select--rtl': this.props.rtl,
					'Select--single': !this.props.multi
				});

				var removeMessage = null;
				if (this.props.multi && !this.props.disabled && valueArray.length && !this.state.inputValue && this.state.isFocused && this.props.backspaceRemoves) {
					removeMessage = _react2.default.createElement(
						'span',
						{ id: this._instancePrefix + '-backspace-remove-message', className: 'Select-aria-only', 'aria-live': 'assertive' },
						this.props.backspaceToRemoveMessage.replace('{label}', valueArray[valueArray.length - 1][this.props.labelKey])
					);
				}

				return _react2.default.createElement(
					'div',
					{ ref: function ref(_ref7) {
							return _this9.wrapper = _ref7;
						},
						className: className,
						style: this.props.wrapperStyle },
					this.renderHiddenField(valueArray),
					_react2.default.createElement(
						'div',
						{ ref: function ref(_ref6) {
								return _this9.control = _ref6;
							},
							className: 'Select-control',
							onKeyDown: this.handleKeyDown,
							onMouseDown: this.handleMouseDown,
							onTouchEnd: this.handleTouchEnd,
							onTouchMove: this.handleTouchMove,
							onTouchStart: this.handleTouchStart,
							style: this.props.style
						},
						_react2.default.createElement(
							'div',
							{ className: 'Select-multi-value-wrapper', id: this._instancePrefix + '-value' },
							this.renderValue(valueArray, isOpen),
							this.renderInput(valueArray, focusedOptionIndex)
						),
						removeMessage,
						this.renderLoading(),
						this.renderClear(),
						this.renderArrow()
					),
					isOpen ? this.renderOuter(options, valueArray, focusedOption) : null
				);
			}
		}]);

		return Select;
	}(_react2.default.Component);

	Select.propTypes = {
		'aria-describedby': _propTypes2.default.string, // html id(s) of element(s) that should be used to describe this input (for assistive tech)
		'aria-label': _propTypes2.default.string, // aria label (for assistive tech)
		'aria-labelledby': _propTypes2.default.string, // html id of an element that should be used as the label (for assistive tech)
		arrowRenderer: _propTypes2.default.func, // create the drop-down caret element
		autoBlur: _propTypes2.default.bool, // automatically blur the component when an option is selected
		autoFocus: _propTypes2.default.bool, // autofocus the component on mount
		autofocus: _propTypes2.default.bool, // deprecated; use autoFocus instead
		autosize: _propTypes2.default.bool, // whether to enable autosizing or not
		backspaceRemoves: _propTypes2.default.bool, // whether backspace removes an item if there is no text input
		backspaceToRemoveMessage: _propTypes2.default.string, // message to use for screenreaders to press backspace to remove the current item - {label} is replaced with the item label
		className: _propTypes2.default.string, // className for the outer element
		clearAllText: stringOrNode, // title for the "clear" control when multi: true
		clearRenderer: _propTypes2.default.func, // create clearable x element
		clearValueText: stringOrNode, // title for the "clear" control
		clearable: _propTypes2.default.bool, // should it be possible to reset value
		closeOnSelect: _propTypes2.default.bool, // whether to close the menu when a value is selected
		deleteRemoves: _propTypes2.default.bool, // whether delete removes an item if there is no text input
		delimiter: _propTypes2.default.string, // delimiter to use to join multiple values for the hidden field value
		disabled: _propTypes2.default.bool, // whether the Select is disabled or not
		escapeClearsValue: _propTypes2.default.bool, // whether escape clears the value when the menu is closed
		filterOption: _propTypes2.default.func, // method to filter a single option (option, filterString)
		filterOptions: _propTypes2.default.any, // boolean to enable default filtering or function to filter the options array ([options], filterString, [values])
		id: _propTypes2.default.string, // html id to set on the input element for accessibility or tests
		ignoreAccents: _propTypes2.default.bool, // whether to strip diacritics when filtering
		ignoreCase: _propTypes2.default.bool, // whether to perform case-insensitive filtering
		inputProps: _propTypes2.default.object, // custom attributes for the Input
		inputRenderer: _propTypes2.default.func, // returns a custom input component
		instanceId: _propTypes2.default.string, // set the components instanceId
		isLoading: _propTypes2.default.bool, // whether the Select is loading externally or not (such as options being loaded)
		joinValues: _propTypes2.default.bool, // joins multiple values into a single form field with the delimiter (legacy mode)
		labelKey: _propTypes2.default.string, // path of the label value in option objects
		matchPos: _propTypes2.default.string, // (any|start) match the start or entire string when filtering
		matchProp: _propTypes2.default.string, // (any|label|value) which option property to filter on
		menuBuffer: _propTypes2.default.number, // optional buffer (in px) between the bottom of the viewport and the bottom of the menu
		menuContainerStyle: _propTypes2.default.object, // optional style to apply to the menu container
		menuRenderer: _propTypes2.default.func, // renders a custom menu with options
		menuStyle: _propTypes2.default.object, // optional style to apply to the menu
		multi: _propTypes2.default.bool, // multi-value input
		name: _propTypes2.default.string, // generates a hidden <input /> tag with this field name for html forms
		noResultsText: stringOrNode, // placeholder displayed when there are no matching search results
		onBlur: _propTypes2.default.func, // onBlur handler: function (event) {}
		onBlurResetsInput: _propTypes2.default.bool, // whether input is cleared on blur
		onChange: _propTypes2.default.func, // onChange handler: function (newValue) {}
		onClose: _propTypes2.default.func, // fires when the menu is closed
		onCloseResetsInput: _propTypes2.default.bool, // whether input is cleared when menu is closed through the arrow
		onFocus: _propTypes2.default.func, // onFocus handler: function (event) {}
		onInputChange: _propTypes2.default.func, // onInputChange handler: function (inputValue) {}
		onInputKeyDown: _propTypes2.default.func, // input keyDown handler: function (event) {}
		onMenuScrollToBottom: _propTypes2.default.func, // fires when the menu is scrolled to the bottom; can be used to paginate options
		onOpen: _propTypes2.default.func, // fires when the menu is opened
		onSelectResetsInput: _propTypes2.default.bool, // whether input is cleared on select (works only for multiselect)
		onValueClick: _propTypes2.default.func, // onClick handler for value labels: function (value, event) {}
		openOnClick: _propTypes2.default.bool, // boolean to control opening the menu when the control is clicked
		openOnFocus: _propTypes2.default.bool, // always open options menu on focus
		optionClassName: _propTypes2.default.string, // additional class(es) to apply to the <Option /> elements
		optionComponent: _propTypes2.default.func, // option component to render in dropdown
		optionRenderer: _propTypes2.default.func, // optionRenderer: function (option) {}
		options: _propTypes2.default.array, // array of options
		pageSize: _propTypes2.default.number, // number of entries to page when using page up/down keys
		placeholder: stringOrNode, // field placeholder, displayed when there's no value
		removeSelected: _propTypes2.default.bool, // whether the selected option is removed from the dropdown on multi selects
		required: _propTypes2.default.bool, // applies HTML5 required attribute when needed
		resetValue: _propTypes2.default.any, // value to use when you clear the control
		rtl: _propTypes2.default.bool, // set to true in order to use react-select in right-to-left direction
		scrollMenuIntoView: _propTypes2.default.bool, // boolean to enable the viewport to shift so that the full menu fully visible when engaged
		searchable: _propTypes2.default.bool, // whether to enable searching feature or not
		simpleValue: _propTypes2.default.bool, // pass the value to onChange as a simple value (legacy pre 1.0 mode), defaults to false
		style: _propTypes2.default.object, // optional style to apply to the control
		tabIndex: stringOrNumber, // optional tab index of the control
		tabSelectsValue: _propTypes2.default.bool, // whether to treat tabbing out while focused to be value selection
		trimFilter: _propTypes2.default.bool, // whether to trim whitespace around filter value
		value: _propTypes2.default.any, // initial field value
		valueComponent: _propTypes2.default.func, // value component to render
		valueKey: _propTypes2.default.string, // path of the label value in option objects
		valueRenderer: _propTypes2.default.func, // valueRenderer: function (option) {}
		wrapperStyle: _propTypes2.default.object // optional style to apply to the component wrapper
	};

	Select.defaultProps = {
		arrowRenderer: _defaultArrowRenderer2.default,
		autosize: true,
		backspaceRemoves: true,
		backspaceToRemoveMessage: 'Press backspace to remove {label}',
		clearable: true,
		clearAllText: 'Clear all',
		clearRenderer: _defaultClearRenderer2.default,
		clearValueText: 'Clear value',
		closeOnSelect: true,
		deleteRemoves: true,
		delimiter: ',',
		disabled: false,
		escapeClearsValue: true,
		filterOptions: _defaultFilterOptions2.default,
		ignoreAccents: true,
		ignoreCase: true,
		inputProps: {},
		isLoading: false,
		joinValues: false,
		labelKey: 'label',
		matchPos: 'any',
		matchProp: 'any',
		menuBuffer: 0,
		menuRenderer: _defaultMenuRenderer2.default,
		multi: false,
		noResultsText: 'No results found',
		onBlurResetsInput: true,
		onCloseResetsInput: true,
		onSelectResetsInput: true,
		openOnClick: true,
		optionComponent: _Option2.default,
		pageSize: 5,
		placeholder: 'Select...',
		removeSelected: true,
		required: false,
		rtl: false,
		scrollMenuIntoView: true,
		searchable: true,
		simpleValue: false,
		tabSelectsValue: true,
		trimFilter: true,
		valueComponent: _Value2.default,
		valueKey: 'value'
	};

	exports.default = Select;

/***/ }),
/* 59 */,
/* 60 */
[1800, 455, 456, 457, 458, 459],
/* 61 */
[1815, 19],
/* 62 */
[1823, 178],
/* 63 */
[1866, 452],
/* 64 */
[1925, 26],
/* 65 */
/***/ (function(module, exports, __webpack_require__) {

	var isSymbol = __webpack_require__(97);

	/** Used as references for various `Number` constants. */
	var INFINITY = 1 / 0;

	/**
	 * Converts `value` to a string key if it's not a string or symbol.
	 *
	 * @private
	 * @param {*} value The value to inspect.
	 * @returns {string|symbol} Returns the key.
	 */
	function toKey(value) {
	  if (typeof value == 'string' || isSymbol(value)) {
	    return value;
	  }
	  var result = (value + '');
	  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
	}

	module.exports = toKey;


/***/ }),
/* 66 */,
/* 67 */
[1815, 24],
/* 68 */,
/* 69 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var React = __webpack_require__(2);

	__webpack_require__(76);

	var CheckboxEditor = function (_React$Component) {
	  _inherits(CheckboxEditor, _React$Component);

	  function CheckboxEditor() {
	    var _ref;

	    var _temp, _this, _ret;

	    _classCallCheck(this, CheckboxEditor);

	    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
	      args[_key] = arguments[_key];
	    }

	    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = CheckboxEditor.__proto__ || Object.getPrototypeOf(CheckboxEditor)).call.apply(_ref, [this].concat(args))), _this), _this.handleChange = function (e) {
	      _this.props.column.onCellChange(_this.props.rowIdx, _this.props.column.key, _this.props.dependentValues, e);
	    }, _temp), _possibleConstructorReturn(_this, _ret);
	  }

	  _createClass(CheckboxEditor, [{
	    key: 'render',
	    value: function render() {
	      var checked = this.props.value != null ? this.props.value : false;
	      var checkboxName = 'checkbox' + this.props.rowIdx;
	      return React.createElement(
	        'div',
	        { className: 'react-grid-checkbox-container checkbox-align', onClick: this.handleChange },
	        React.createElement('input', { className: 'react-grid-checkbox', type: 'checkbox', name: checkboxName, checked: checked }),
	        React.createElement('label', { htmlFor: checkboxName, className: 'react-grid-checkbox-label' })
	      );
	    }
	  }]);

	  return CheckboxEditor;
	}(React.Component);

	CheckboxEditor.propTypes = {
	  value: _propTypes2['default'].bool,
	  rowIdx: _propTypes2['default'].number,
	  column: _propTypes2['default'].shape({
	    key: _propTypes2['default'].string,
	    onCellChange: _propTypes2['default'].func
	  }),
	  dependentValues: _propTypes2['default'].object
	};


	module.exports = CheckboxEditor;

/***/ }),
/* 70 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var React = __webpack_require__(2);
	var EditorBase = __webpack_require__(47);

	var SimpleTextEditor = function (_EditorBase) {
	  _inherits(SimpleTextEditor, _EditorBase);

	  function SimpleTextEditor() {
	    var _ref;

	    var _temp, _this, _ret;

	    _classCallCheck(this, SimpleTextEditor);

	    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
	      args[_key] = arguments[_key];
	    }

	    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = SimpleTextEditor.__proto__ || Object.getPrototypeOf(SimpleTextEditor)).call.apply(_ref, [this].concat(args))), _this), _this.setInputRef = function (input) {
	      _this.input = input;
	    }, _temp), _possibleConstructorReturn(_this, _ret);
	  }

	  _createClass(SimpleTextEditor, [{
	    key: 'render',
	    value: function render() {
	      return React.createElement('input', { ref: this.setInputRef, type: 'text', onBlur: this.props.onBlur, className: 'form-control', defaultValue: this.props.value });
	    }
	  }]);

	  return SimpleTextEditor;
	}(EditorBase);

	module.exports = SimpleTextEditor;

/***/ }),
/* 71 */
[1812, 112, 345, 346],
/* 72 */
/***/ (function(module, exports) {

	/**
	 * The base implementation of `_.unary` without support for storing metadata.
	 *
	 * @private
	 * @param {Function} func The function to cap arguments for.
	 * @returns {Function} Returns the new capped function.
	 */
	function baseUnary(func) {
	  return function(value) {
	    return func(value);
	  };
	}

	module.exports = baseUnary;


/***/ }),
/* 73 */
/***/ (function(module, exports) {

	/**
	 * Checks if a `cache` value for `key` exists.
	 *
	 * @private
	 * @param {Object} cache The cache to query.
	 * @param {string} key The key of the entry to check.
	 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
	 */
	function cacheHas(cache, key) {
	  return cache.has(key);
	}

	module.exports = cacheHas;


/***/ }),
/* 74 */
/***/ (function(module, exports) {

	/**
	 * Performs a
	 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
	 * comparison between two values to determine if they are equivalent.
	 *
	 * @static
	 * @memberOf _
	 * @since 4.0.0
	 * @category Lang
	 * @param {*} value The value to compare.
	 * @param {*} other The other value to compare.
	 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
	 * @example
	 *
	 * var object = { 'a': 1 };
	 * var other = { 'a': 1 };
	 *
	 * _.eq(object, object);
	 * // => true
	 *
	 * _.eq(object, other);
	 * // => false
	 *
	 * _.eq('a', 'a');
	 * // => true
	 *
	 * _.eq('a', Object('a'));
	 * // => false
	 *
	 * _.eq(NaN, NaN);
	 * // => true
	 */
	function eq(value, other) {
	  return value === other || (value !== value && other !== other);
	}

	module.exports = eq;


/***/ }),
/* 75 */
/***/ (function(module, exports) {

	/**
	 * This method returns the first argument it receives.
	 *
	 * @static
	 * @since 0.1.0
	 * @memberOf _
	 * @category Util
	 * @param {*} value Any value.
	 * @returns {*} Returns `value`.
	 * @example
	 *
	 * var object = { 'a': 1 };
	 *
	 * console.log(_.identity(object) === object);
	 * // => true
	 */
	function identity(value) {
	  return value;
	}

	module.exports = identity;


/***/ }),
/* 76 */
/***/ (function(module, exports, __webpack_require__) {

	// style-loader: Adds some css to the DOM by adding a <style> tag

	// load the styles
	var content = __webpack_require__(109);
	if(typeof content === 'string') content = [[module.id, content, '']];
	// add the styles to the DOM
	var update = __webpack_require__(9)(content, {});
	if(content.locals) module.exports = content.locals;
	// Hot Module Replacement
	if(false) {}

/***/ }),
/* 77 */,
/* 78 */,
/* 79 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	__webpack_require__(390);

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _reactSelect = __webpack_require__(383);

	var _reactSelect2 = _interopRequireDefault(_reactSelect);

	var _utils = __webpack_require__(5);

	var _ExcelColumn = __webpack_require__(18);

	var _ExcelColumn2 = _interopRequireDefault(_ExcelColumn);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var AutoCompleteFilter = function (_React$Component) {
	  _inherits(AutoCompleteFilter, _React$Component);

	  function AutoCompleteFilter(props) {
	    _classCallCheck(this, AutoCompleteFilter);

	    var _this = _possibleConstructorReturn(this, (AutoCompleteFilter.__proto__ || Object.getPrototypeOf(AutoCompleteFilter)).call(this, props));

	    _this.getOptions = _this.getOptions.bind(_this);
	    _this.handleChange = _this.handleChange.bind(_this);
	    _this.filterValues = _this.filterValues.bind(_this);
	    _this.state = { options: _this.getOptions(), rawValue: '', placeholder: 'Search' };
	    return _this;
	  }

	  _createClass(AutoCompleteFilter, [{
	    key: 'componentWillReceiveProps',
	    value: function componentWillReceiveProps(newProps) {
	      this.setState({ options: this.getOptions(newProps) });
	    }
	  }, {
	    key: 'getOptions',
	    value: function getOptions(newProps) {
	      var props = newProps || this.props;
	      var options = props.getValidFilterValues(props.column.key);
	      options = options.map(function (o) {
	        if (typeof o === 'string') {
	          return { value: o, label: o };
	        }
	        return o;
	      });
	      return options;
	    }
	  }, {
	    key: 'columnValueContainsSearchTerms',
	    value: function columnValueContainsSearchTerms(columnValue, filterTermValue) {
	      if (columnValue !== undefined && filterTermValue !== undefined) {
	        var strColumnValue = columnValue.toString();
	        var strFilterTermValue = filterTermValue.toString();
	        var checkValueIndex = strColumnValue.trim().toLowerCase().indexOf(strFilterTermValue.trim().toLowerCase());
	        return checkValueIndex !== -1 && (checkValueIndex !== 0 || strColumnValue === strFilterTermValue);
	      }
	      return false;
	    }
	  }, {
	    key: 'filterValues',
	    value: function filterValues(row, columnFilter, columnKey) {
	      var _this2 = this;

	      var include = true;
	      if (columnFilter === null) {
	        include = false;
	      } else if (columnFilter.filterTerm && !(0, _utils.isEmptyArray)(columnFilter.filterTerm)) {
	        if (columnFilter.filterTerm.length) {
	          include = columnFilter.filterTerm.some(function (filterTerm) {
	            return _this2.columnValueContainsSearchTerms(row[columnKey], filterTerm.value) === true;
	          });
	        } else {
	          include = this.columnValueContainsSearchTerms(row[columnKey], columnFilter.filterTerm.value);
	        }
	      }
	      return include;
	    }
	  }, {
	    key: 'handleChange',
	    value: function handleChange(value) {
	      var filters = value;
	      this.setState({ filters: filters });
	      this.props.onChange({ filterTerm: filters, column: this.props.column, rawValue: value, filterValues: this.filterValues });
	    }
	  }, {
	    key: 'render',
	    value: function render() {
	      return _react2['default'].createElement(_reactSelect2['default'], {
	        autosize: false,
	        name: 'filter-' + this.props.column.key,
	        options: this.state.options,
	        placeholder: this.state.placeholder,
	        onChange: this.handleChange,
	        escapeClearsValue: true,
	        multi: this.props.multiSelection !== undefined && this.props.multiSelection !== null ? this.props.multiSelection : true,
	        value: this.state.filters });
	    }
	  }]);

	  return AutoCompleteFilter;
	}(_react2['default'].Component);

	AutoCompleteFilter.propTypes = {
	  onChange: _propTypes2['default'].func.isRequired,
	  column: _propTypes2['default'].shape(_ExcelColumn2['default']),
	  getValidFilterValues: _propTypes2['default'].func,
	  multiSelection: _propTypes2['default'].bool
	};

	exports['default'] = AutoCompleteFilter;

/***/ }),
/* 80 */,
/* 81 */,
/* 82 */
/***/ (function(module, exports) {

	'use strict';

	exports.__esModule = true;
	exports['default'] = isDisposable;

	function isDisposable(obj) {
	  return Boolean(obj && typeof obj.dispose === 'function');
	}

	module.exports = exports['default'];

/***/ }),
/* 83 */
/***/ (function(module, exports) {

	'use strict';

	/**
	 * Copyright 2015, Yahoo! Inc.
	 * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
	 */
	var REACT_STATICS = {
	    childContextTypes: true,
	    contextTypes: true,
	    defaultProps: true,
	    displayName: true,
	    getDefaultProps: true,
	    getDerivedStateFromProps: true,
	    mixins: true,
	    propTypes: true,
	    type: true
	};

	var KNOWN_STATICS = {
	    name: true,
	    length: true,
	    prototype: true,
	    caller: true,
	    callee: true,
	    arguments: true,
	    arity: true
	};

	var defineProperty = Object.defineProperty;
	var getOwnPropertyNames = Object.getOwnPropertyNames;
	var getOwnPropertySymbols = Object.getOwnPropertySymbols;
	var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
	var getPrototypeOf = Object.getPrototypeOf;
	var objectPrototype = getPrototypeOf && getPrototypeOf(Object);

	function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
	    if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components

	        if (objectPrototype) {
	            var inheritedComponent = getPrototypeOf(sourceComponent);
	            if (inheritedComponent && inheritedComponent !== objectPrototype) {
	                hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
	            }
	        }

	        var keys = getOwnPropertyNames(sourceComponent);

	        if (getOwnPropertySymbols) {
	            keys = keys.concat(getOwnPropertySymbols(sourceComponent));
	        }

	        for (var i = 0; i < keys.length; ++i) {
	            var key = keys[i];
	            if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) {
	                var descriptor = getOwnPropertyDescriptor(sourceComponent, key);
	                try { // Avoid failures from read-only properties
	                    defineProperty(targetComponent, key, descriptor);
	                } catch (e) {}
	            }
	        }

	        return targetComponent;
	    }

	    return targetComponent;
	}

	module.exports = hoistNonReactStatics;


/***/ }),
/* 84 */
/***/ (function(module, exports, __webpack_require__) {

	var baseIndexOf = __webpack_require__(307);

	/**
	 * A specialized version of `_.includes` for arrays without support for
	 * specifying an index to search from.
	 *
	 * @private
	 * @param {Array} [array] The array to inspect.
	 * @param {*} target The value to search for.
	 * @returns {boolean} Returns `true` if `target` is found, else `false`.
	 */
	function arrayIncludes(array, value) {
	  var length = array == null ? 0 : array.length;
	  return !!length && baseIndexOf(array, value, 0) > -1;
	}

	module.exports = arrayIncludes;


/***/ }),
/* 85 */
/***/ (function(module, exports) {

	/**
	 * This function is like `arrayIncludes` except that it accepts a comparator.
	 *
	 * @private
	 * @param {Array} [array] The array to inspect.
	 * @param {*} target The value to search for.
	 * @param {Function} comparator The comparator invoked per element.
	 * @returns {boolean} Returns `true` if `target` is found, else `false`.
	 */
	function arrayIncludesWith(array, value, comparator) {
	  var index = -1,
	      length = array == null ? 0 : array.length;

	  while (++index < length) {
	    if (comparator(value, array[index])) {
	      return true;
	    }
	  }
	  return false;
	}

	module.exports = arrayIncludesWith;


/***/ }),
/* 86 */,
/* 87 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	    value: true
	});

	var _actions = __webpack_require__(39);

	var _helpers = __webpack_require__(32);

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	var GlobalEventListener = function GlobalEventListener() {
	    var _this = this;

	    _classCallCheck(this, GlobalEventListener);

	    this.handleShowEvent = function (event) {
	        for (var id in _this.callbacks) {
	            if ((0, _helpers.hasOwnProp)(_this.callbacks, id)) _this.callbacks[id].show(event);
	        }
	    };

	    this.handleHideEvent = function (event) {
	        for (var id in _this.callbacks) {
	            if ((0, _helpers.hasOwnProp)(_this.callbacks, id)) _this.callbacks[id].hide(event);
	        }
	    };

	    this.register = function (showCallback, hideCallback) {
	        var id = (0, _helpers.uniqueId)();

	        _this.callbacks[id] = {
	            show: showCallback,
	            hide: hideCallback
	        };

	        return id;
	    };

	    this.unregister = function (id) {
	        if (id && _this.callbacks[id]) {
	            delete _this.callbacks[id];
	        }
	    };

	    this.callbacks = {};

	    if (_helpers.canUseDOM) {
	        window.addEventListener(_actions.MENU_SHOW, this.handleShowEvent);
	        window.addEventListener(_actions.MENU_HIDE, this.handleHideEvent);
	    }
	};

	exports.default = new GlobalEventListener();

/***/ }),
/* 88 */
/***/ (function(module, exports) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});
	var FILE = exports.FILE = '__NATIVE_FILE__';
	var URL = exports.URL = '__NATIVE_URL__';
	var TEXT = exports.TEXT = '__NATIVE_TEXT__';

/***/ }),
/* 89 */
/***/ (function(module, exports) {

	"use strict";

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.default = shallowEqual;
	function shallowEqual(objA, objB) {
		if (objA === objB) {
			return true;
		}

		var keysA = Object.keys(objA);
		var keysB = Object.keys(objB);

		if (keysA.length !== keysB.length) {
			return false;
		}

		// Test for A's keys different from B.
		var hasOwn = Object.prototype.hasOwnProperty;
		for (var i = 0; i < keysA.length; i += 1) {
			if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {
				return false;
			}

			var valA = objA[keysA[i]];
			var valB = objB[keysA[i]];

			if (valA !== valB) {
				return false;
			}
		}

		return true;
	}

/***/ }),
/* 90 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _stripDiacritics = __webpack_require__(166);

	var _stripDiacritics2 = _interopRequireDefault(_stripDiacritics);

	var _trim = __webpack_require__(385);

	var _trim2 = _interopRequireDefault(_trim);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	var isValid = function isValid(value) {
		return typeof value !== 'undefined' && value !== null && value !== '';
	};

	var filterOptions = function filterOptions(options, filterValue, excludeOptions, props) {
		if (props.ignoreAccents) {
			filterValue = (0, _stripDiacritics2.default)(filterValue);
		}

		if (props.ignoreCase) {
			filterValue = filterValue.toLowerCase();
		}

		if (props.trimFilter) {
			filterValue = (0, _trim2.default)(filterValue);
		}

		if (excludeOptions) excludeOptions = excludeOptions.map(function (i) {
			return i[props.valueKey];
		});

		return options.filter(function (option) {
			if (excludeOptions && excludeOptions.indexOf(option[props.valueKey]) > -1) return false;
			if (props.filterOption) return props.filterOption.call(undefined, option, filterValue);
			if (!filterValue) return true;

			var value = option[props.valueKey];
			var label = option[props.labelKey];
			var hasValue = isValid(value);
			var hasLabel = isValid(label);

			if (!hasValue && !hasLabel) {
				return false;
			}

			var valueTest = hasValue ? String(value) : null;
			var labelTest = hasLabel ? String(label) : null;

			if (props.ignoreAccents) {
				if (valueTest && props.matchProp !== 'label') valueTest = (0, _stripDiacritics2.default)(valueTest);
				if (labelTest && props.matchProp !== 'value') labelTest = (0, _stripDiacritics2.default)(labelTest);
			}

			if (props.ignoreCase) {
				if (valueTest && props.matchProp !== 'label') valueTest = valueTest.toLowerCase();
				if (labelTest && props.matchProp !== 'value') labelTest = labelTest.toLowerCase();
			}

			return props.matchPos === 'start' ? valueTest && props.matchProp !== 'label' && valueTest.substr(0, filterValue.length) === filterValue || labelTest && props.matchProp !== 'value' && labelTest.substr(0, filterValue.length) === filterValue : valueTest && props.matchProp !== 'label' && valueTest.indexOf(filterValue) >= 0 || labelTest && props.matchProp !== 'value' && labelTest.indexOf(filterValue) >= 0;
		});
	};

	exports.default = filterOptions;

/***/ }),
/* 91 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _classnames = __webpack_require__(4);

	var _classnames2 = _interopRequireDefault(_classnames);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	var menuRenderer = function menuRenderer(_ref) {
		var focusedOption = _ref.focusedOption,
		    focusOption = _ref.focusOption,
		    inputValue = _ref.inputValue,
		    instancePrefix = _ref.instancePrefix,
		    onFocus = _ref.onFocus,
		    onOptionRef = _ref.onOptionRef,
		    onSelect = _ref.onSelect,
		    optionClassName = _ref.optionClassName,
		    optionComponent = _ref.optionComponent,
		    optionRenderer = _ref.optionRenderer,
		    options = _ref.options,
		    removeValue = _ref.removeValue,
		    selectValue = _ref.selectValue,
		    valueArray = _ref.valueArray,
		    valueKey = _ref.valueKey;

		var Option = optionComponent;

		return options.map(function (option, i) {
			var isSelected = valueArray && valueArray.some(function (x) {
				return x[valueKey] === option[valueKey];
			});
			var isFocused = option === focusedOption;
			var optionClass = (0, _classnames2.default)(optionClassName, {
				'Select-option': true,
				'is-selected': isSelected,
				'is-focused': isFocused,
				'is-disabled': option.disabled
			});

			return _react2.default.createElement(
				Option,
				{
					className: optionClass,
					focusOption: focusOption,
					inputValue: inputValue,
					instancePrefix: instancePrefix,
					isDisabled: option.disabled,
					isFocused: isFocused,
					isSelected: isSelected,
					key: 'option-' + i + '-' + option[valueKey],
					onFocus: onFocus,
					onSelect: onSelect,
					option: option,
					optionIndex: i,
					ref: function ref(_ref2) {
						onOptionRef(_ref2, isFocused);
					},
					removeValue: removeValue,
					selectValue: selectValue
				},
				optionRenderer(option, i, inputValue)
			);
		});
	};

	menuRenderer.propTypes = {
		focusOption: _propTypes2.default.func,
		focusedOption: _propTypes2.default.object,
		inputValue: _propTypes2.default.string,
		instancePrefix: _propTypes2.default.string,
		onFocus: _propTypes2.default.func,
		onOptionRef: _propTypes2.default.func,
		onSelect: _propTypes2.default.func,
		optionClassName: _propTypes2.default.string,
		optionComponent: _propTypes2.default.func,
		optionRenderer: _propTypes2.default.func,
		options: _propTypes2.default.array,
		removeValue: _propTypes2.default.func,
		selectValue: _propTypes2.default.func,
		valueArray: _propTypes2.default.array,
		valueKey: _propTypes2.default.string
	};

	exports.default = menuRenderer;

/***/ }),
/* 92 */
[1803, 26, 19],
/* 93 */
[1805, 460, 461, 462, 463, 464],
/* 94 */
/***/ (function(module, exports, __webpack_require__) {

	var isArray = __webpack_require__(20),
	    isSymbol = __webpack_require__(97);

	/** Used to match property names within property paths. */
	var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
	    reIsPlainProp = /^\w*$/;

	/**
	 * Checks if `value` is a property name and not a property path.
	 *
	 * @private
	 * @param {*} value The value to check.
	 * @param {Object} [object] The object to query keys on.
	 * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
	 */
	function isKey(value, object) {
	  if (isArray(value)) {
	    return false;
	  }
	  var type = typeof value;
	  if (type == 'number' || type == 'symbol' || type == 'boolean' ||
	      value == null || isSymbol(value)) {
	    return true;
	  }
	  return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
	    (object != null && value in Object(object));
	}

	module.exports = isKey;


/***/ }),
/* 95 */
/***/ (function(module, exports) {

	/** Used as references for various `Number` constants. */
	var MAX_SAFE_INTEGER = 9007199254740991;

	/**
	 * Checks if `value` is a valid array-like length.
	 *
	 * **Note:** This method is loosely based on
	 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
	 *
	 * @static
	 * @memberOf _
	 * @since 4.0.0
	 * @category Lang
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
	 * @example
	 *
	 * _.isLength(3);
	 * // => true
	 *
	 * _.isLength(Number.MIN_VALUE);
	 * // => false
	 *
	 * _.isLength(Infinity);
	 * // => false
	 *
	 * _.isLength('3');
	 * // => false
	 */
	function isLength(value) {
	  return typeof value == 'number' &&
	    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
	}

	module.exports = isLength;


/***/ }),
/* 96 */
23,
/* 97 */
/***/ (function(module, exports, __webpack_require__) {

	var baseGetTag = __webpack_require__(41),
	    isObjectLike = __webpack_require__(42);

	/** `Object#toString` result references. */
	var symbolTag = '[object Symbol]';

	/**
	 * Checks if `value` is classified as a `Symbol` primitive or object.
	 *
	 * @static
	 * @memberOf _
	 * @since 4.0.0
	 * @category Lang
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
	 * @example
	 *
	 * _.isSymbol(Symbol.iterator);
	 * // => true
	 *
	 * _.isSymbol('abc');
	 * // => false
	 */
	function isSymbol(value) {
	  return typeof value == 'symbol' ||
	    (isObjectLike(value) && baseGetTag(value) == symbolTag);
	}

	module.exports = isSymbol;


/***/ }),
/* 98 */
/***/ (function(module, exports, __webpack_require__) {

	var arrayLikeKeys = __webpack_require__(407),
	    baseKeys = __webpack_require__(424),
	    isArrayLike = __webpack_require__(180);

	/**
	 * Creates an array of the own enumerable property names of `object`.
	 *
	 * **Note:** Non-object values are coerced to objects. See the
	 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
	 * for more details.
	 *
	 * @static
	 * @since 0.1.0
	 * @memberOf _
	 * @category Object
	 * @param {Object} object The object to query.
	 * @returns {Array} Returns the array of property names.
	 * @example
	 *
	 * function Foo() {
	 *   this.a = 1;
	 *   this.b = 2;
	 * }
	 *
	 * Foo.prototype.c = 3;
	 *
	 * _.keys(new Foo);
	 * // => ['a', 'b'] (iteration order is not guaranteed)
	 *
	 * _.keys('hi');
	 * // => ['0', '1']
	 */
	function keys(object) {
	  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
	}

	module.exports = keys;


/***/ }),
/* 99 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _ExcelColumn = __webpack_require__(18);

	var _ExcelColumn2 = _interopRequireDefault(_ExcelColumn);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	exports['default'] = { ExcelColumn: _ExcelColumn2['default'] };

/***/ }),
/* 100 */
/***/ (function(module, exports, __webpack_require__) {

	var arrayPush = __webpack_require__(198),
	    isFlattenable = __webpack_require__(328);

	/**
	 * The base implementation of `_.flatten` with support for restricting flattening.
	 *
	 * @private
	 * @param {Array} array The array to flatten.
	 * @param {number} depth The maximum recursion depth.
	 * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.
	 * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.
	 * @param {Array} [result=[]] The initial result value.
	 * @returns {Array} Returns the new flattened array.
	 */
	function baseFlatten(array, depth, predicate, isStrict, result) {
	  var index = -1,
	      length = array.length;

	  predicate || (predicate = isFlattenable);
	  result || (result = []);

	  while (++index < length) {
	    var value = array[index];
	    if (depth > 0 && predicate(value)) {
	      if (depth > 1) {
	        // Recursively flatten arrays (susceptible to call stack limits).
	        baseFlatten(value, depth - 1, predicate, isStrict, result);
	      } else {
	        arrayPush(result, value);
	      }
	    } else if (!isStrict) {
	      result[result.length] = value;
	    }
	  }
	  return result;
	}

	module.exports = baseFlatten;


/***/ }),
/* 101 */,
/* 102 */,
/* 103 */
/***/ (function(module, exports, __webpack_require__) {

	// style-loader: Adds some css to the DOM by adding a <style> tag

	// load the styles
	var content = __webpack_require__(108);
	if(typeof content === 'string') content = [[module.id, content, '']];
	// add the styles to the DOM
	var update = __webpack_require__(9)(content, {});
	if(content.locals) module.exports = content.locals;
	// Hot Module Replacement
	if(false) {}

/***/ }),
/* 104 */,
/* 105 */
/***/ (function(module, exports) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});
	var NONE = exports.NONE = 'none';
	var CHANGE_ROW = exports.CHANGE_ROW = 'changeRow';
	var LOOP_OVER_ROW = exports.LOOP_OVER_ROW = 'loopOverRow';

/***/ }),
/* 106 */
/***/ (function(module, exports) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});
	var SELECT_CELL = exports.SELECT_CELL = 'SELECT_CELL';
	var SELECT_START = exports.SELECT_START = 'SELECT_START';
	var SELECT_UPDATE = exports.SELECT_UPDATE = 'SELECT_UPDATE';
	var SELECT_END = exports.SELECT_END = 'SELECT_END';
	var DRAG_ENTER = exports.DRAG_ENTER = 'DRAG_ENTER';
	var SCROLL_TO_COLUMN = exports.SCROLL_TO_COLUMN = 'SCROLL_TO_COLUMN';

/***/ }),
/* 107 */
/***/ (function(module, exports) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});
	var HEADER = exports.HEADER = 'header';
	var FILTER = exports.FILTER = 'filter';

/***/ }),
/* 108 */
/***/ (function(module, exports, __webpack_require__) {

	exports = module.exports = __webpack_require__(8)();
	// imports


	// module
	exports.push([module.id, ".react-grid-Cell{background-color:#fff;padding-left:8px;padding-right:8px;border-right:1px solid #eee;border-bottom:1px solid #ddd}.rdg-selected{border:2px solid #66afe9}.rdg-selected-range{border:1px solid #66afe9;background-color:#66afe930}.moving-element{will-change:transform}.react-grid-Cell--frozen,.react-grid-Cell--frozen:focus{z-index:12}.rdg-last--frozen{border-right:1px solid #ddd;box-shadow:2px 0 5px -2px hsla(0,0%,53%,.3)!important}.react-grid-Cell.has-tooltip:hover{z-index:5}.react-grid-Cell.react-grid-Cell--frozen.has-tooltip:hover{z-index:15}.react-contextmenu--visible{z-index:1000}.react-grid-Cell:not(.editing) .react-grid-Cell__value{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;height:inherit}.react-grid-Cell.readonly{background-color:#000}.react-grid-Cell:hover{background:#eee}.react-grid-cell .form-control-feedback{color:#a94442;position:absolute;top:0;right:10px;z-index:1000000;display:block;width:34px;height:34px}.react-grid-Row.row-selected .react-grid-Cell{background-color:#dbecfa}.react-grid-Cell.editing{padding:0;overflow:visible!important}.react-grid-Cell--frozen.editing{z-index:100}.react-grid-Cell.editing .has-error input{border:2px solid red!important;border-radius:2px!important}.react-grid-Cell__value ul{margin-top:0;margin-bottom:0;display:inline-block}.react-grid-Cell__value .btn-sm{padding:0}.cell-tooltip .cell-tooltip-text{white-space:normal;visibility:hidden;width:150px;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:5px 0;position:absolute;top:50%;bottom:auto;left:50%;margin-top:15px;margin-left:-75px}.cell-tooltip:hover .cell-tooltip-text{visibility:visible;opacity:.8}.cell-tooltip .cell-tooltip-text:after{content:\" \";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent #000}.react-grid-Canvas.opaque .react-grid-Cell.cell-tooltip:hover .cell-tooltip-text{visibility:hidden}.rdg-cell-expand{float:right;display:table;height:100%}.rdg-cell-expand>span{display:table-cell;vertical-align:middle;cursor:pointer}.rdg-child-row-action-cross-last:before,.rdg-child-row-action-cross:before,rdg-child-row-action-cross-last:after,rdg-child-row-action-cross:after{content:\"\";position:absolute;background:grey;height:50%}.rdg-child-row-action-cross:before{left:21px;width:1px;height:100%}.rdg-child-row-action-cross-last:before{left:21px;width:1px}.rdg-child-row-action-cross-last:after,.rdg-child-row-action-cross:after{top:50%;left:20px;height:1px;width:15px;content:\"\";position:absolute;background:grey}.rdg-child-row-action-cross:hover{background:red}.rdg-child-row-btn{position:absolute;cursor:pointer;border:1px solid grey;border-radius:14px;z-index:3;background:#fff}.rdg-child-row-btn div{font-size:12px;text-align:center;line-height:19px;color:grey;height:20px;width:20px;position:absolute;top:60%;left:53%;margin-top:-10px;margin-left:-10px}.rdg-empty-child-row:hover .glyphicon-plus-sign,.rdg-empty-child-row:hover a{color:green}.rdg-child-row-btn .glyphicon-remove-sign:hover{color:red}.last-column .cell-tooltip-text{right:100%;left:0!important}.rdg-cell-action{float:right;height:100%}.rdg-cell-action-last{margin-right:-8px}.rdg-cell-action-button{width:35px;height:100%;text-align:center;position:relative;display:table;color:#4a9de2}.rdg-cell-action-button>span{display:table-cell;vertical-align:middle}.rdg-cell-action-button-toggled,.rdg-cell-action-button:hover{color:#447bbb}.rdg-cell-action-menu{position:absolute;top:100%;z-index:1000;float:left;min-width:160px;padding:5px 0;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;box-shadow:0 0 3px 0 #ccc}.rdg-cell-action-menu>span{display:block;padding:3px 10px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.rdg-cell-action-menu>span:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}", ""]);

	// exports


/***/ }),
/* 109 */
/***/ (function(module, exports, __webpack_require__) {

	exports = module.exports = __webpack_require__(8)();
	// imports


	// module
	exports.push([module.id, ".radio-custom,.react-grid-checkbox{opacity:0;position:absolute}.radio-custom,.radio-custom-label,.react-grid-checkbox,.react-grid-checkbox-label{display:inline-block;vertical-align:middle;cursor:pointer}.radio-custom-label,.react-grid-checkbox-label{position:relative}.radio-custom+.radio-custom-label:before,.react-grid-checkbox+.react-grid-checkbox-label:before{content:\"\";background:#fff;border:2px solid #ddd;display:inline-block;vertical-align:middle;width:20px;height:20px;text-align:center}.react-grid-checkbox:checked+.react-grid-checkbox-label:before{background:#005295;box-shadow:inset 0 0 0 4px #fff}.radio-custom:focus+.radio-custom-label,.react-grid-checkbox:focus+.react-grid-checkbox-label{outline:1px solid #ddd}.react-grid-HeaderCell input[type=checkbox]{z-index:99999}.react-grid-HeaderCell>.react-grid-checkbox-container{padding:0 10px;height:100%}.react-grid-HeaderCell>.react-grid-checkbox-container>.react-grid-checkbox-label{margin:0;position:relative;top:50%;transform:translateY(-50%)}.radio-custom+.radio-custom-label:before{border-radius:50%}.radio-custom:checked+.radio-custom-label:before{background:#ccc;box-shadow:inset 0 0 0 4px #fff}.checkbox-align{text-align:center}", ""]);

	// exports


/***/ }),
/* 110 */
/***/ (function(module, exports, __webpack_require__) {

	exports = module.exports = __webpack_require__(8)();
	// imports


	// module
	exports.push([module.id, ".react-grid-Row.row-context-menu .react-grid-Cell,.react-grid-Row:hover .react-grid-Cell{background-color:#f9f9f9}.react-grid-Row:hover .rdg-row-index{display:none}.react-grid-Row:hover .rdg-actions-checkbox{display:block}.react-grid-Row:hover .rdg-drag-row-handle{cursor:move;cursor:grab;cursor:-moz-grab;cursor:-webkit-grab;width:12px;height:30px;margin-left:0;background-image:url(\"data:image/svg+xml;base64, PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjlweCIgaGVpZ2h0PSIyOXB4IiB2aWV3Qm94PSIwIDAgOSAyOSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgIDwhLS0gR2VuZXJhdG9yOiBTa2V0Y2ggMzkgKDMxNjY3KSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5kcmFnIGljb248L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz48L2RlZnM+CiAgICA8ZyBpZD0iQWN0dWFsaXNhdGlvbi12MiIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IkRlc2t0b3AiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNS4wMDAwMDAsIC0yNjIuMDAwMDAwKSIgZmlsbD0iI0Q4RDhEOCI+CiAgICAgICAgICAgIDxnIGlkPSJJbnRlcmFjdGlvbnMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE1LjAwMDAwMCwgMjU4LjAwMDAwMCkiPgogICAgICAgICAgICAgICAgPGcgaWQ9IlJvdy1Db250cm9scyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDIuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9ImRyYWctaWNvbiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDIuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwtMzAiIGN4PSIyIiBjeT0iMiIgcj0iMiI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwtMzAiIGN4PSI3IiBjeT0iMiIgcj0iMiI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwtMzAiIGN4PSIyIiBjeT0iNyIgcj0iMiI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwtMzAiIGN4PSI3IiBjeT0iNyIgcj0iMiI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwtMzAiIGN4PSIyIiBjeT0iMTIiIHI9IjIiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGlkPSJPdmFsLTMwIiBjeD0iNyIgY3k9IjEyIiByPSIyIj48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBpZD0iT3ZhbC0zMCIgY3g9IjIiIGN5PSIxNyIgcj0iMiI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwtMzAiIGN4PSI3IiBjeT0iMTciIHI9IjIiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGlkPSJPdmFsLTMwIiBjeD0iMiIgY3k9IjIyIiByPSIyIj48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBpZD0iT3ZhbC0zMCIgY3g9IjciIGN5PSIyMiIgcj0iMiI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwtMzAiIGN4PSIyIiBjeT0iMjciIHI9IjIiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGlkPSJPdmFsLTMwIiBjeD0iNyIgY3k9IjI3IiByPSIyIj48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==\");background-repeat:no-repeat}.react-grid-Row.row-selected,.react-grid-Row .row-selected{background-color:#dbecfa}.react-grid-row-group .row-expand-icon:hover{color:#777}.react-grid-row-index{padding:0 18px}.rdg-row-index{display:block;text-align:center}.rdg-row-actions-cell{padding:0}.rdg-actions-checkbox{display:none;text-align:center}.rdg-actions-checkbox.selected{display:block}.rdg-dragging{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.rdg-dragged-row{border-bottom:1px solid #000}.rdg-scrolling{pointer-events:none}", ""]);

	// exports


/***/ }),
/* 111 */
/***/ (function(module, exports) {

	/**
	 * Copyright 2013-2014 Facebook, Inc.
	 *
	 * Licensed under the Apache License, Version 2.0 (the "License");
	 * you may not use this file except in compliance with the License.
	 * You may obtain a copy of the License at
	 *
	 * http://www.apache.org/licenses/LICENSE-2.0
	 *
	 * Unless required by applicable law or agreed to in writing, software
	 * distributed under the License is distributed on an "AS IS" BASIS,
	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
	 * See the License for the specific language governing permissions and
	 * limitations under the License.
	 *
	 */

	"use strict";

	/**
	 * Constructs an enumeration with keys equal to their value.
	 *
	 * For example:
	 *
	 *   var COLORS = keyMirror({blue: null, red: null});
	 *   var myColor = COLORS.blue;
	 *   var isColorValid = !!COLORS[myColor];
	 *
	 * The last line could not be performed if the values of the generated enum were
	 * not equal to their keys.
	 *
	 *   Input:  {key1: val1, key2: val2}
	 *   Output: {key1: key1, key2: key2}
	 *
	 * @param {object} obj
	 * @return {object}
	 */
	var keyMirror = function(obj) {
	  var ret = {};
	  var key;
	  if (!(obj instanceof Object && !Array.isArray(obj))) {
	    throw new Error('keyMirror(...): Argument must be an object.');
	  }
	  for (key in obj) {
	    if (!obj.hasOwnProperty(key)) {
	      continue;
	    }
	    ret[key] = key;
	  }
	  return ret;
	};

	module.exports = keyMirror;


/***/ }),
/* 112 */
[1805, 336, 337, 338, 339, 340],
/* 113 */
/***/ (function(module, exports) {

	/** Used as references for various `Number` constants. */
	var MAX_SAFE_INTEGER = 9007199254740991;

	/** Used to detect unsigned integer values. */
	var reIsUint = /^(?:0|[1-9]\d*)$/;

	/**
	 * Checks if `value` is a valid array-like index.
	 *
	 * @private
	 * @param {*} value The value to check.
	 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
	 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
	 */
	function isIndex(value, length) {
	  var type = typeof value;
	  length = length == null ? MAX_SAFE_INTEGER : length;

	  return !!length &&
	    (type == 'number' ||
	      (type != 'symbol' && reIsUint.test(value))) &&
	        (value > -1 && value % 1 == 0 && value < length);
	}

	module.exports = isIndex;


/***/ }),
/* 114 */
/***/ (function(module, exports, __webpack_require__) {

	var eq = __webpack_require__(74),
	    isArrayLike = __webpack_require__(46),
	    isIndex = __webpack_require__(113),
	    isObject = __webpack_require__(23);

	/**
	 * Checks if the given arguments are from an iteratee call.
	 *
	 * @private
	 * @param {*} value The potential iteratee value argument.
	 * @param {*} index The potential iteratee index or key argument.
	 * @param {*} object The potential iteratee object argument.
	 * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
	 *  else `false`.
	 */
	function isIterateeCall(value, index, object) {
	  if (!isObject(object)) {
	    return false;
	  }
	  var type = typeof index;
	  if (type == 'number'
	        ? (isArrayLike(object) && isIndex(index, object.length))
	        : (type == 'string' && index in object)
	      ) {
	    return eq(object[index], value);
	  }
	  return false;
	}

	module.exports = isIterateeCall;


/***/ }),
/* 115 */
/***/ (function(module, exports) {

	/**
	 * Converts `set` to an array of its values.
	 *
	 * @private
	 * @param {Object} set The set to convert.
	 * @returns {Array} Returns the values.
	 */
	function setToArray(set) {
	  var index = -1,
	      result = Array(set.size);

	  set.forEach(function(value) {
	    result[++index] = value;
	  });
	  return result;
	}

	module.exports = setToArray;


/***/ }),
/* 116 */
[1940, 309, 29],
/* 117 */
95,
/* 118 */
/***/ (function(module, exports, __webpack_require__) {

	/**
	 * Copyright (c) 2013-present, Facebook, Inc.
	 *
	 * This source code is licensed under the MIT license found in the
	 * LICENSE file in the root directory of this source tree.
	 */

	'use strict';

	var ReactPropTypesSecret = __webpack_require__(119);

	function emptyFunction() {}

	module.exports = function() {
	  function shim(props, propName, componentName, location, propFullName, secret) {
	    if (secret === ReactPropTypesSecret) {
	      // It is still safe when called from React.
	      return;
	    }
	    var err = new Error(
	      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
	      'Use PropTypes.checkPropTypes() to call them. ' +
	      'Read more at http://fb.me/use-check-prop-types'
	    );
	    err.name = 'Invariant Violation';
	    throw err;
	  };
	  shim.isRequired = shim;
	  function getShim() {
	    return shim;
	  };
	  // Important!
	  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
	  var ReactPropTypes = {
	    array: shim,
	    bool: shim,
	    func: shim,
	    number: shim,
	    object: shim,
	    string: shim,
	    symbol: shim,

	    any: shim,
	    arrayOf: getShim,
	    element: shim,
	    instanceOf: getShim,
	    node: shim,
	    objectOf: getShim,
	    oneOf: getShim,
	    oneOfType: getShim,
	    shape: getShim,
	    exact: getShim
	  };

	  ReactPropTypes.checkPropTypes = emptyFunction;
	  ReactPropTypes.PropTypes = ReactPropTypes;

	  return ReactPropTypes;
	};


/***/ }),
/* 119 */
/***/ (function(module, exports) {

	/**
	 * Copyright (c) 2013-present, Facebook, Inc.
	 *
	 * This source code is licensed under the MIT license found in the
	 * LICENSE file in the root directory of this source tree.
	 */

	'use strict';

	var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';

	module.exports = ReactPropTypesSecret;


/***/ }),
/* 120 */,
/* 121 */,
/* 122 */,
/* 123 */,
/* 124 */,
/* 125 */,
/* 126 */,
/* 127 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _reselect = __webpack_require__(387);

	var _utils = __webpack_require__(5);

	var groupRows = __webpack_require__(223);
	var filterRows = __webpack_require__(222);
	var sortRows = __webpack_require__(225);

	var getInputRows = function getInputRows(state) {
	  return state.rows;
	};
	var getFilters = function getFilters(state) {
	  return state.filters;
	};
	var getFilteredRows = (0, _reselect.createSelector)([getFilters, getInputRows], function (filters) {
	  var rows = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];

	  if (!filters || (0, _utils.isEmptyObject)(filters)) {
	    return rows;
	  }
	  return filterRows(filters, rows);
	});

	var getSortColumn = function getSortColumn(state) {
	  return state.sortColumn;
	};
	var getSortDirection = function getSortDirection(state) {
	  return state.sortDirection;
	};
	var getSortedRows = (0, _reselect.createSelector)([getFilteredRows, getSortColumn, getSortDirection], function (rows, sortColumn, sortDirection) {
	  if (!sortDirection && !sortColumn) {
	    return rows;
	  }
	  return sortRows(rows, sortColumn, sortDirection);
	});

	var getGroupedColumns = function getGroupedColumns(state) {
	  return state.groupBy;
	};
	var getExpandedRows = function getExpandedRows(state) {
	  return state.expandedRows;
	};
	var getFlattenedGroupedRows = (0, _reselect.createSelector)([getSortedRows, getGroupedColumns, getExpandedRows], function (rows, groupedColumns) {
	  var expandedRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};

	  if (!groupedColumns || (0, _utils.isEmptyObject)(groupedColumns) || (0, _utils.isEmptyArray)(groupedColumns)) {
	    return rows;
	  }
	  return groupRows(rows, groupedColumns, expandedRows);
	});

	var getSelectedKeys = function getSelectedKeys(state) {
	  return state.selectedKeys;
	};
	var getRowKey = function getRowKey(state) {
	  return state.rowKey;
	};
	var getSelectedRowsByKey = (0, _reselect.createSelector)([getRowKey, getSelectedKeys, getInputRows], function (rowKey, selectedKeys) {
	  var rows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];

	  return selectedKeys.map(function (k) {
	    return rows.filter(function (r) {
	      return r[rowKey] === k;
	    })[0];
	  });
	});

	var Selectors = {
	  getRows: getFlattenedGroupedRows,
	  getSelectedRowsByKey: getSelectedRowsByKey
	};
	module.exports = Selectors;

/***/ }),
/* 128 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _reactDnd = __webpack_require__(25);

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _constants = __webpack_require__(11);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var DraggableHeaderCell = function (_Component) {
	  _inherits(DraggableHeaderCell, _Component);

	  function DraggableHeaderCell() {
	    _classCallCheck(this, DraggableHeaderCell);

	    return _possibleConstructorReturn(this, (DraggableHeaderCell.__proto__ || Object.getPrototypeOf(DraggableHeaderCell)).apply(this, arguments));
	  }

	  _createClass(DraggableHeaderCell, [{
	    key: 'componentDidMount',
	    value: function componentDidMount() {
	      var connectDragPreview = this.props.connectDragPreview;

	      var img = new Image();
	      img.src = './assets/images/drag_column_full.png';
	      img.onload = function () {
	        return connectDragPreview(img);
	      };
	    }
	  }, {
	    key: 'render',
	    value: function render() {
	      var _props = this.props,
	          connectDragSource = _props.connectDragSource,
	          isDragging = _props.isDragging;

	      if (isDragging) {
	        return null;
	      }
	      return connectDragSource(_react2['default'].createElement(
	        'div',
	        { style: { cursor: 'move' } },
	        this.props.children
	      ));
	    }
	  }]);

	  return DraggableHeaderCell;
	}(_react.Component);

	DraggableHeaderCell.propTypes = {
	  connectDragSource: _propTypes2['default'].func.isRequired,
	  connectDragPreview: _propTypes2['default'].func.isRequired,
	  isDragging: _propTypes2['default'].bool.isRequired,
	  children: _propTypes2['default'].element.isRequired
	};

	function collect(connect, monitor) {
	  return {
	    connectDragSource: connect.dragSource(),
	    isDragging: monitor.isDragging(),
	    connectDragPreview: connect.dragPreview()
	  };
	}

	var headerCellSource = {
	  beginDrag: function beginDrag(props) {
	    return props.column;
	  },
	  endDrag: function endDrag(props) {
	    return props.column;
	  }
	};

	exports['default'] = (0, _reactDnd.DragSource)(_constants.DragItemTypes.Column, headerCellSource, collect)(DraggableHeaderCell);

/***/ }),
/* 129 */
/***/ (function(module, exports) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	var OWNER_COMPONENT_KEY = 'Owner > component';
	var WASTED_TIME_KEY = 'Wasted time (ms)';
	var WASTED_INSTANCES_KEY = 'Instances';

	var SummaryItemModel = function () {
	  function SummaryItemModel(summary) {
	    _classCallCheck(this, SummaryItemModel);

	    if ((typeof summary === 'undefined' ? 'undefined' : _typeof(summary)) === 'object') {
	      this._createModel(summary);
	    } else {
	      this._createEmptyModel(summary);
	    }
	  }

	  _createClass(SummaryItemModel, [{
	    key: '_createModel',
	    value: function _createModel(summary) {
	      var _getComponentAndOwner2 = this._getComponentAndOwner(summary),
	          owner = _getComponentAndOwner2.owner,
	          component = _getComponentAndOwner2.component;

	      this.owner = owner;
	      this.component = component;
	      this.wastedInstances = summary[WASTED_INSTANCES_KEY];
	      this.wastedTime = summary[WASTED_TIME_KEY];
	    }
	  }, {
	    key: '_createEmptyModel',
	    value: function _createEmptyModel(componentName) {
	      this.owner = componentName;
	      this.component = componentName;
	      this.wastedInstances = 0;
	      this.wastedTime = 0;
	    }
	  }, {
	    key: '_getComponentAndOwner',
	    value: function _getComponentAndOwner(summary) {
	      var ownerAndComponent = summary[OWNER_COMPONENT_KEY];
	      var splitOwnerComponent = ownerAndComponent.split('>');

	      return {
	        owner: splitOwnerComponent[0].trim(),
	        component: splitOwnerComponent[1].trim()
	      };
	    }
	  }]);

	  return SummaryItemModel;
	}();

	exports['default'] = SummaryItemModel;

/***/ }),
/* 130 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _reactDnd = __webpack_require__(25);

	var _reactDndHtml5Backend = __webpack_require__(365);

	var _reactDndHtml5Backend2 = _interopRequireDefault(_reactDndHtml5Backend);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	exports['default'] = (0, _reactDnd.DragDropContext)(_reactDndHtml5Backend2['default']);

/***/ }),
/* 131 */,
/* 132 */,
/* 133 */,
/* 134 */,
/* 135 */,
/* 136 */,
/* 137 */,
/* 138 */,
/* 139 */,
/* 140 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.default = dirtyHandlerIds;
	exports.areDirty = areDirty;

	var _xor = __webpack_require__(355);

	var _xor2 = _interopRequireDefault(_xor);

	var _intersection = __webpack_require__(204);

	var _intersection2 = _interopRequireDefault(_intersection);

	var _dragDrop = __webpack_require__(50);

	var _registry = __webpack_require__(51);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	var NONE = [];
	var ALL = [];

	function dirtyHandlerIds() {
		var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : NONE;
		var action = arguments[1];
		var dragOperation = arguments[2];

		switch (action.type) {
			case _dragDrop.HOVER:
				break;
			case _registry.ADD_SOURCE:
			case _registry.ADD_TARGET:
			case _registry.REMOVE_TARGET:
			case _registry.REMOVE_SOURCE:
				return NONE;
			case _dragDrop.BEGIN_DRAG:
			case _dragDrop.PUBLISH_DRAG_SOURCE:
			case _dragDrop.END_DRAG:
			case _dragDrop.DROP:
			default:
				return ALL;
		}

		var targetIds = action.targetIds;
		var prevTargetIds = dragOperation.targetIds;

		var result = (0, _xor2.default)(targetIds, prevTargetIds);

		var didChange = false;
		if (result.length === 0) {
			for (var i = 0; i < targetIds.length; i++) {
				if (targetIds[i] !== prevTargetIds[i]) {
					didChange = true;
					break;
				}
			}
		} else {
			didChange = true;
		}

		if (!didChange) {
			return NONE;
		}

		var prevInnermostTargetId = prevTargetIds[prevTargetIds.length - 1];
		var innermostTargetId = targetIds[targetIds.length - 1];

		if (prevInnermostTargetId !== innermostTargetId) {
			if (prevInnermostTargetId) {
				result.push(prevInnermostTargetId);
			}
			if (innermostTargetId) {
				result.push(innermostTargetId);
			}
		}

		return result;
	}

	function areDirty(state, handlerIds) {
		if (state === NONE) {
			return false;
		}

		if (state === ALL || typeof handlerIds === 'undefined') {
			return true;
		}

		return (0, _intersection2.default)(handlerIds, state).length > 0;
	}

/***/ }),
/* 141 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _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; };

	exports.default = dragOffset;
	exports.getSourceClientOffset = getSourceClientOffset;
	exports.getDifferenceFromInitialOffset = getDifferenceFromInitialOffset;

	var _dragDrop = __webpack_require__(50);

	var initialState = {
		initialSourceClientOffset: null,
		initialClientOffset: null,
		clientOffset: null
	};

	function areOffsetsEqual(offsetA, offsetB) {
		if (offsetA === offsetB) {
			return true;
		}
		return offsetA && offsetB && offsetA.x === offsetB.x && offsetA.y === offsetB.y;
	}

	function dragOffset() {
		var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
		var action = arguments[1];

		switch (action.type) {
			case _dragDrop.BEGIN_DRAG:
				return {
					initialSourceClientOffset: action.sourceClientOffset,
					initialClientOffset: action.clientOffset,
					clientOffset: action.clientOffset
				};
			case _dragDrop.HOVER:
				if (areOffsetsEqual(state.clientOffset, action.clientOffset)) {
					return state;
				}
				return _extends({}, state, {
					clientOffset: action.clientOffset
				});
			case _dragDrop.END_DRAG:
			case _dragDrop.DROP:
				return initialState;
			default:
				return state;
		}
	}

	function getSourceClientOffset(state) {
		var clientOffset = state.clientOffset,
		    initialClientOffset = state.initialClientOffset,
		    initialSourceClientOffset = state.initialSourceClientOffset;

		if (!clientOffset || !initialClientOffset || !initialSourceClientOffset) {
			return null;
		}
		return {
			x: clientOffset.x + initialSourceClientOffset.x - initialClientOffset.x,
			y: clientOffset.y + initialSourceClientOffset.y - initialClientOffset.y
		};
	}

	function getDifferenceFromInitialOffset(state) {
		var clientOffset = state.clientOffset,
		    initialClientOffset = state.initialClientOffset;

		if (!clientOffset || !initialClientOffset) {
			return null;
		}
		return {
			x: clientOffset.x - initialClientOffset.x,
			y: clientOffset.y - initialClientOffset.y
		};
	}

/***/ }),
/* 142 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.default = matchesType;

	var _isArray = __webpack_require__(7);

	var _isArray2 = _interopRequireDefault(_isArray);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function matchesType(targetType, draggedItemType) {
		if ((0, _isArray2.default)(targetType)) {
			return targetType.some(function (t) {
				return t === draggedItemType;
			});
		} else {
			return targetType === draggedItemType;
		}
	}

/***/ }),
/* 143 */
[1800, 331, 332, 333, 334, 335],
/* 144 */
/***/ (function(module, exports, __webpack_require__) {

	var SetCache = __webpack_require__(71),
	    arrayIncludes = __webpack_require__(84),
	    arrayIncludesWith = __webpack_require__(85),
	    arrayMap = __webpack_require__(52),
	    baseUnary = __webpack_require__(72),
	    cacheHas = __webpack_require__(73);

	/** Used as the size to enable large array optimizations. */
	var LARGE_ARRAY_SIZE = 200;

	/**
	 * The base implementation of methods like `_.difference` without support
	 * for excluding multiple arrays or iteratee shorthands.
	 *
	 * @private
	 * @param {Array} array The array to inspect.
	 * @param {Array} values The values to exclude.
	 * @param {Function} [iteratee] The iteratee invoked per element.
	 * @param {Function} [comparator] The comparator invoked per element.
	 * @returns {Array} Returns the new array of filtered values.
	 */
	function baseDifference(array, values, iteratee, comparator) {
	  var index = -1,
	      includes = arrayIncludes,
	      isCommon = true,
	      length = array.length,
	      result = [],
	      valuesLength = values.length;

	  if (!length) {
	    return result;
	  }
	  if (iteratee) {
	    values = arrayMap(values, baseUnary(iteratee));
	  }
	  if (comparator) {
	    includes = arrayIncludesWith;
	    isCommon = false;
	  }
	  else if (values.length >= LARGE_ARRAY_SIZE) {
	    includes = cacheHas;
	    isCommon = false;
	    values = new SetCache(values);
	  }
	  outer:
	  while (++index < length) {
	    var value = array[index],
	        computed = iteratee == null ? value : iteratee(value);

	    value = (comparator || value !== 0) ? value : 0;
	    if (isCommon && computed === computed) {
	      var valuesIndex = valuesLength;
	      while (valuesIndex--) {
	        if (values[valuesIndex] === computed) {
	          continue outer;
	        }
	      }
	      result.push(value);
	    }
	    else if (!includes(values, computed, comparator)) {
	      result.push(value);
	    }
	  }
	  return result;
	}

	module.exports = baseDifference;


/***/ }),
/* 145 */
/***/ (function(module, exports, __webpack_require__) {

	var SetCache = __webpack_require__(71),
	    arrayIncludes = __webpack_require__(84),
	    arrayIncludesWith = __webpack_require__(85),
	    cacheHas = __webpack_require__(73),
	    createSet = __webpack_require__(319),
	    setToArray = __webpack_require__(115);

	/** Used as the size to enable large array optimizations. */
	var LARGE_ARRAY_SIZE = 200;

	/**
	 * The base implementation of `_.uniqBy` without support for iteratee shorthands.
	 *
	 * @private
	 * @param {Array} array The array to inspect.
	 * @param {Function} [iteratee] The iteratee invoked per element.
	 * @param {Function} [comparator] The comparator invoked per element.
	 * @returns {Array} Returns the new duplicate free array.
	 */
	function baseUniq(array, iteratee, comparator) {
	  var index = -1,
	      includes = arrayIncludes,
	      length = array.length,
	      isCommon = true,
	      result = [],
	      seen = result;

	  if (comparator) {
	    isCommon = false;
	    includes = arrayIncludesWith;
	  }
	  else if (length >= LARGE_ARRAY_SIZE) {
	    var set = iteratee ? null : createSet(array);
	    if (set) {
	      return setToArray(set);
	    }
	    isCommon = false;
	    includes = cacheHas;
	    seen = new SetCache;
	  }
	  else {
	    seen = iteratee ? [] : result;
	  }
	  outer:
	  while (++index < length) {
	    var value = array[index],
	        computed = iteratee ? iteratee(value) : value;

	    value = (comparator || value !== 0) ? value : 0;
	    if (isCommon && computed === computed) {
	      var seenIndex = seen.length;
	      while (seenIndex--) {
	        if (seen[seenIndex] === computed) {
	          continue outer;
	        }
	      }
	      if (iteratee) {
	        seen.push(computed);
	      }
	      result.push(value);
	    }
	    else if (!includes(seen, computed, comparator)) {
	      if (seen !== result) {
	        seen.push(computed);
	      }
	      result.push(value);
	    }
	  }
	  return result;
	}

	module.exports = baseUniq;


/***/ }),
/* 146 */
/***/ (function(module, exports, __webpack_require__) {

	/** Detect free variable `global` from Node.js. */
	var freeGlobal = typeof (window) == 'object' && (window) && (window).Object === Object && (window);

	module.exports = freeGlobal;


/***/ }),
/* 147 */
/***/ (function(module, exports) {

	/**
	 * This method returns `undefined`.
	 *
	 * @static
	 * @memberOf _
	 * @since 2.3.0
	 * @category Util
	 * @example
	 *
	 * _.times(2, _.noop);
	 * // => [undefined, undefined]
	 */
	function noop() {
	  // No operation performed.
	}

	module.exports = noop;


/***/ }),
/* 148 */
/***/ (function(module, exports, __webpack_require__) {

	var baseDifference = __webpack_require__(144),
	    baseRest = __webpack_require__(34),
	    isArrayLikeObject = __webpack_require__(56);

	/**
	 * Creates an array excluding all given values using
	 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
	 * for equality comparisons.
	 *
	 * **Note:** Unlike `_.pull`, this method returns a new array.
	 *
	 * @static
	 * @memberOf _
	 * @since 0.1.0
	 * @category Array
	 * @param {Array} array The array to inspect.
	 * @param {...*} [values] The values to exclude.
	 * @returns {Array} Returns the new array of filtered values.
	 * @see _.difference, _.xor
	 * @example
	 *
	 * _.without([2, 1, 2, 3], 1, 2);
	 * // => [3]
	 */
	var without = baseRest(function(array, values) {
	  return isArrayLikeObject(array)
	    ? baseDifference(array, values)
	    : [];
	});

	module.exports = without;


/***/ }),
/* 149 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	    value: true
	});

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _MenuItem = __webpack_require__(151);

	var _MenuItem2 = _interopRequireDefault(_MenuItem);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var AbstractMenu = function (_Component) {
	    _inherits(AbstractMenu, _Component);

	    function AbstractMenu(props) {
	        _classCallCheck(this, AbstractMenu);

	        var _this = _possibleConstructorReturn(this, (AbstractMenu.__proto__ || Object.getPrototypeOf(AbstractMenu)).call(this, props));

	        _initialiseProps.call(_this);

	        _this.seletedItemRef = null;
	        _this.state = {
	            selectedItem: null,
	            forceSubMenuOpen: false
	        };
	        return _this;
	    }

	    return AbstractMenu;
	}(_react.Component);

	AbstractMenu.propTypes = {
	    children: _propTypes2.default.node.isRequired
	};

	var _initialiseProps = function _initialiseProps() {
	    var _this2 = this;

	    this.handleKeyNavigation = function (e) {
	        // check for isVisible strictly here as it might be undefined when this code executes in the context of SubMenu
	        // but we only need to check when it runs in the ContextMenu context
	        if (_this2.state.isVisible === false) {
	            return;
	        }

	        switch (e.keyCode) {
	            case 37: // left arrow
	            case 27:
	                // escape
	                e.preventDefault();
	                _this2.hideMenu(e);
	                break;
	            case 38:
	                // up arrow
	                e.preventDefault();
	                _this2.selectChildren(true);
	                break;
	            case 40:
	                // down arrow
	                e.preventDefault();
	                _this2.selectChildren(false);
	                break;
	            case 39:
	                // right arrow
	                _this2.tryToOpenSubMenu(e);
	                break;
	            case 13:
	                // enter
	                e.preventDefault();
	                _this2.tryToOpenSubMenu(e);
	                {
	                    // determine the selected item is disabled or not
	                    var disabled = _this2.seletedItemRef && _this2.seletedItemRef.props && _this2.seletedItemRef.props.disabled;

	                    if (_this2.seletedItemRef && _this2.seletedItemRef.ref instanceof HTMLElement && !disabled) {
	                        _this2.seletedItemRef.ref.click();
	                    } else {
	                        _this2.hideMenu(e);
	                    }
	                }
	                break;
	            default:
	            // do nothing
	        }
	    };

	    this.handleForceClose = function () {
	        _this2.setState({ forceSubMenuOpen: false });
	    };

	    this.tryToOpenSubMenu = function (e) {
	        if (_this2.state.selectedItem && _this2.state.selectedItem.type === _this2.getSubMenuType()) {
	            e.preventDefault();
	            _this2.setState({ forceSubMenuOpen: true });
	        }
	    };

	    this.selectChildren = function (forward) {
	        var selectedItem = _this2.state.selectedItem;

	        var children = [];
	        var childCollector = function childCollector(child) {
	            // child can be empty in case you do conditional rendering of components, in which
	            // case it should not be accounted for as a real child
	            if (!child) {
	                return;
	            }

	            if ([_MenuItem2.default, _this2.getSubMenuType()].indexOf(child.type) < 0) {
	                // Maybe the MenuItem or SubMenu is capsuled in a wrapper div or something else
	                _react2.default.Children.forEach(child.props.children, childCollector);
	            } else if (!child.props.divider) {
	                children.push(child);
	            }
	        };
	        _react2.default.Children.forEach(_this2.props.children, childCollector);
	        var currentIndex = children.indexOf(selectedItem);
	        if (currentIndex < 0) {
	            _this2.setState({
	                selectedItem: forward ? children[children.length - 1] : children[0],
	                forceSubMenuOpen: false
	            });
	        } else if (forward) {
	            _this2.setState({
	                selectedItem: children[currentIndex - 1 < 0 ? children.length - 1 : currentIndex - 1],
	                forceSubMenuOpen: false
	            });
	        } else {
	            _this2.setState({
	                selectedItem: children[currentIndex + 1 < children.length ? currentIndex + 1 : 0],
	                forceSubMenuOpen: false
	            });
	        }
	    };

	    this.onChildMouseMove = function (child) {
	        if (_this2.state.selectedItem !== child) {
	            _this2.setState({ selectedItem: child, forceSubMenuOpen: false });
	        }
	    };

	    this.onChildMouseLeave = function () {
	        _this2.setState({ selectedItem: null, forceSubMenuOpen: false });
	    };

	    this.renderChildren = function (children) {
	        return _react2.default.Children.map(children, function (child) {
	            var props = {};
	            if (!_react2.default.isValidElement(child)) return child;
	            if ([_MenuItem2.default, _this2.getSubMenuType()].indexOf(child.type) < 0) {
	                // Maybe the MenuItem or SubMenu is capsuled in a wrapper div or something else
	                props.children = _this2.renderChildren(child.props.children);
	                return _react2.default.cloneElement(child, props);
	            }
	            props.onMouseLeave = _this2.onChildMouseLeave.bind(_this2);
	            if (child.type === _this2.getSubMenuType()) {
	                // special props for SubMenu only
	                props.forceOpen = _this2.state.forceSubMenuOpen && _this2.state.selectedItem === child;
	                props.forceClose = _this2.handleForceClose;
	                props.parentKeyNavigationHandler = _this2.handleKeyNavigation;
	            }
	            if (!child.props.divider && _this2.state.selectedItem === child) {
	                // special props for selected item only
	                props.selected = true;
	                props.ref = function (ref) {
	                    _this2.seletedItemRef = ref;
	                };
	                return _react2.default.cloneElement(child, props);
	            }
	            // onMouseMove is only needed for non selected items
	            props.onMouseMove = function () {
	                return _this2.onChildMouseMove(child);
	            };
	            return _react2.default.cloneElement(child, props);
	        });
	    };
	};

	exports.default = AbstractMenu;

/***/ }),
/* 150 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	    value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _classnames = __webpack_require__(4);

	var _classnames2 = _interopRequireDefault(_classnames);

	var _objectAssign = __webpack_require__(27);

	var _objectAssign2 = _interopRequireDefault(_objectAssign);

	var _actions = __webpack_require__(39);

	var _helpers = __webpack_require__(32);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var ContextMenuTrigger = function (_Component) {
	    _inherits(ContextMenuTrigger, _Component);

	    function ContextMenuTrigger() {
	        var _ref;

	        var _temp, _this, _ret;

	        _classCallCheck(this, ContextMenuTrigger);

	        for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
	            args[_key] = arguments[_key];
	        }

	        return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = ContextMenuTrigger.__proto__ || Object.getPrototypeOf(ContextMenuTrigger)).call.apply(_ref, [this].concat(args))), _this), _this.touchHandled = false, _this.handleMouseDown = function (event) {
	            if (_this.props.holdToDisplay >= 0 && event.button === 0) {
	                event.persist();
	                event.stopPropagation();

	                _this.mouseDownTimeoutId = setTimeout(function () {
	                    return _this.handleContextClick(event);
	                }, _this.props.holdToDisplay);
	            }
	            (0, _helpers.callIfExists)(_this.props.attributes.onMouseDown, event);
	        }, _this.handleMouseUp = function (event) {
	            if (event.button === 0) {
	                clearTimeout(_this.mouseDownTimeoutId);
	            }
	            (0, _helpers.callIfExists)(_this.props.attributes.onMouseUp, event);
	        }, _this.handleMouseOut = function (event) {
	            if (event.button === 0) {
	                clearTimeout(_this.mouseDownTimeoutId);
	            }
	            (0, _helpers.callIfExists)(_this.props.attributes.onMouseOut, event);
	        }, _this.handleTouchstart = function (event) {
	            _this.touchHandled = false;

	            if (_this.props.holdToDisplay >= 0) {
	                event.persist();
	                event.stopPropagation();

	                _this.touchstartTimeoutId = setTimeout(function () {
	                    _this.handleContextClick(event);
	                    _this.touchHandled = true;
	                }, _this.props.holdToDisplay);
	            }
	            (0, _helpers.callIfExists)(_this.props.attributes.onTouchStart, event);
	        }, _this.handleTouchEnd = function (event) {
	            if (_this.touchHandled) {
	                event.preventDefault();
	            }
	            clearTimeout(_this.touchstartTimeoutId);
	            (0, _helpers.callIfExists)(_this.props.attributes.onTouchEnd, event);
	        }, _this.handleContextMenu = function (event) {
	            _this.handleContextClick(event);
	            (0, _helpers.callIfExists)(_this.props.attributes.onContextMenu, event);
	        }, _this.handleContextClick = function (event) {
	            if (_this.props.disable) return;

	            event.preventDefault();
	            event.stopPropagation();

	            var x = event.clientX || event.touches && event.touches[0].pageX;
	            var y = event.clientY || event.touches && event.touches[0].pageY;

	            if (_this.props.posX) {
	                x -= _this.props.posX;
	            }
	            if (_this.props.posY) {
	                y -= _this.props.posY;
	            }

	            (0, _actions.hideMenu)();

	            var data = (0, _helpers.callIfExists)(_this.props.collect, _this.props);
	            var showMenuConfig = {
	                position: { x: x, y: y },
	                target: _this.elem,
	                id: _this.props.id,
	                data: data
	            };
	            if (data && typeof data.then === 'function') {
	                // it's promise
	                data.then(function (resp) {
	                    showMenuConfig.data = resp;
	                    (0, _actions.showMenu)(showMenuConfig);
	                });
	            } else {
	                (0, _actions.showMenu)(showMenuConfig);
	            }
	        }, _this.elemRef = function (c) {
	            _this.elem = c;
	        }, _temp), _possibleConstructorReturn(_this, _ret);
	    }

	    _createClass(ContextMenuTrigger, [{
	        key: 'render',
	        value: function render() {
	            var _props = this.props,
	                renderTag = _props.renderTag,
	                attributes = _props.attributes,
	                children = _props.children;

	            var newAttrs = (0, _objectAssign2.default)({}, attributes, {
	                className: (0, _classnames2.default)(_helpers.cssClasses.menuWrapper, attributes.className),
	                onContextMenu: this.handleContextMenu,
	                onMouseDown: this.handleMouseDown,
	                onMouseUp: this.handleMouseUp,
	                onTouchStart: this.handleTouchstart,
	                onTouchEnd: this.handleTouchEnd,
	                onMouseOut: this.handleMouseOut,
	                ref: this.elemRef
	            });

	            return _react2.default.createElement(renderTag, newAttrs, children);
	        }
	    }]);

	    return ContextMenuTrigger;
	}(_react.Component);

	ContextMenuTrigger.propTypes = {
	    id: _propTypes2.default.string.isRequired,
	    children: _propTypes2.default.node.isRequired,
	    attributes: _propTypes2.default.object,
	    collect: _propTypes2.default.func,
	    disable: _propTypes2.default.bool,
	    holdToDisplay: _propTypes2.default.number,
	    posX: _propTypes2.default.number,
	    posY: _propTypes2.default.number,
	    renderTag: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func])
	};
	ContextMenuTrigger.defaultProps = {
	    attributes: {},
	    collect: function collect() {
	        return null;
	    },

	    disable: false,
	    holdToDisplay: 1000,
	    renderTag: 'div',
	    posX: 0,
	    posY: 0
	};
	exports.default = ContextMenuTrigger;

/***/ }),
/* 151 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	    value: true
	});

	var _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; };

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _classnames = __webpack_require__(4);

	var _classnames2 = _interopRequireDefault(_classnames);

	var _objectAssign = __webpack_require__(27);

	var _objectAssign2 = _interopRequireDefault(_objectAssign);

	var _actions = __webpack_require__(39);

	var _helpers = __webpack_require__(32);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _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; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var MenuItem = function (_Component) {
	    _inherits(MenuItem, _Component);

	    function MenuItem() {
	        var _ref;

	        var _temp, _this, _ret;

	        _classCallCheck(this, MenuItem);

	        for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
	            args[_key] = arguments[_key];
	        }

	        return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = MenuItem.__proto__ || Object.getPrototypeOf(MenuItem)).call.apply(_ref, [this].concat(args))), _this), _this.handleClick = function (event) {
	            event.preventDefault();

	            if (_this.props.disabled || _this.props.divider) return;

	            (0, _helpers.callIfExists)(_this.props.onClick, event, (0, _objectAssign2.default)({}, _this.props.data, _helpers.store.data), _helpers.store.target);

	            if (_this.props.preventClose) return;

	            (0, _actions.hideMenu)();
	        }, _temp), _possibleConstructorReturn(_this, _ret);
	    }

	    _createClass(MenuItem, [{
	        key: 'render',
	        value: function render() {
	            var _cx,
	                _this2 = this;

	            var _props = this.props,
	                disabled = _props.disabled,
	                divider = _props.divider,
	                children = _props.children,
	                attributes = _props.attributes,
	                selected = _props.selected;

	            var menuItemClassNames = (0, _classnames2.default)(_helpers.cssClasses.menuItem, attributes.className, (_cx = {}, _defineProperty(_cx, (0, _classnames2.default)(_helpers.cssClasses.menuItemDisabled, attributes.disabledClassName), disabled), _defineProperty(_cx, (0, _classnames2.default)(_helpers.cssClasses.menuItemDivider, attributes.dividerClassName), divider), _defineProperty(_cx, (0, _classnames2.default)(_helpers.cssClasses.menuItemSelected, attributes.selectedClassName), selected), _cx));

	            return _react2.default.createElement(
	                'div',
	                _extends({}, attributes, { className: menuItemClassNames,
	                    role: 'menuitem', tabIndex: '-1', 'aria-disabled': disabled ? 'true' : 'false',
	                    'aria-orientation': divider ? 'horizontal' : null,
	                    ref: function ref(_ref2) {
	                        _this2.ref = _ref2;
	                    },
	                    onMouseMove: this.props.onMouseMove, onMouseLeave: this.props.onMouseLeave,
	                    onTouchEnd: this.handleClick, onClick: this.handleClick }),
	                divider ? null : children
	            );
	        }
	    }]);

	    return MenuItem;
	}(_react.Component);

	MenuItem.propTypes = {
	    children: _propTypes2.default.node,
	    attributes: _propTypes2.default.object,
	    data: _propTypes2.default.object,
	    disabled: _propTypes2.default.bool,
	    divider: _propTypes2.default.bool,
	    preventClose: _propTypes2.default.bool,
	    onClick: _propTypes2.default.func,
	    selected: _propTypes2.default.bool,
	    onMouseMove: _propTypes2.default.func,
	    onMouseLeave: _propTypes2.default.func
	};
	MenuItem.defaultProps = {
	    disabled: false,
	    data: {},
	    divider: false,
	    attributes: {},
	    preventClose: false,
	    onClick: function onClick() {
	        return null;
	    },

	    children: null,
	    selected: false,
	    onMouseMove: function onMouseMove() {
	        return null;
	    },
	    onMouseLeave: function onMouseLeave() {
	        return null;
	    }
	};
	exports.default = MenuItem;

/***/ }),
/* 152 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	    value: true
	});

	var _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; };

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _classnames = __webpack_require__(4);

	var _classnames2 = _interopRequireDefault(_classnames);

	var _objectAssign = __webpack_require__(27);

	var _objectAssign2 = _interopRequireDefault(_objectAssign);

	var _AbstractMenu2 = __webpack_require__(149);

	var _AbstractMenu3 = _interopRequireDefault(_AbstractMenu2);

	var _helpers = __webpack_require__(32);

	var _globalEventListener = __webpack_require__(87);

	var _globalEventListener2 = _interopRequireDefault(_globalEventListener);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _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; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var SubMenu = function (_AbstractMenu) {
	    _inherits(SubMenu, _AbstractMenu);

	    function SubMenu(props) {
	        _classCallCheck(this, SubMenu);

	        var _this = _possibleConstructorReturn(this, (SubMenu.__proto__ || Object.getPrototypeOf(SubMenu)).call(this, props));

	        _this.getMenuPosition = function () {
	            var _window = window,
	                innerWidth = _window.innerWidth,
	                innerHeight = _window.innerHeight;

	            var rect = _this.subMenu.getBoundingClientRect();
	            var position = {};

	            if (rect.bottom > innerHeight) {
	                position.bottom = 0;
	            } else {
	                position.top = 0;
	            }

	            if (rect.right < innerWidth) {
	                position.left = '100%';
	            } else {
	                position.right = '100%';
	            }

	            return position;
	        };

	        _this.getRTLMenuPosition = function () {
	            var _window2 = window,
	                innerHeight = _window2.innerHeight;

	            var rect = _this.subMenu.getBoundingClientRect();
	            var position = {};

	            if (rect.bottom > innerHeight) {
	                position.bottom = 0;
	            } else {
	                position.top = 0;
	            }

	            if (rect.left < 0) {
	                position.left = '100%';
	            } else {
	                position.right = '100%';
	            }

	            return position;
	        };

	        _this.hideMenu = function (e) {
	            // avoid closing submenus of a different menu tree
	            if (e.detail && e.detail.id && _this.menu && e.detail.id !== _this.menu.id) {
	                return;
	            }

	            if (_this.props.forceOpen) {
	                _this.props.forceClose();
	            }
	            _this.setState({ visible: false, selectedItem: null });
	            _this.unregisterHandlers();
	        };

	        _this.handleClick = function (event) {
	            event.preventDefault();

	            if (_this.props.disabled) return;

	            (0, _helpers.callIfExists)(_this.props.onClick, event, (0, _objectAssign2.default)({}, _this.props.data, _helpers.store.data), _helpers.store.target);
	        };

	        _this.handleMouseEnter = function () {
	            if (_this.closetimer) clearTimeout(_this.closetimer);

	            if (_this.props.disabled || _this.state.visible) return;

	            _this.opentimer = setTimeout(function () {
	                return _this.setState({
	                    visible: true,
	                    selectedItem: null
	                });
	            }, _this.props.hoverDelay);
	        };

	        _this.handleMouseLeave = function () {
	            if (_this.opentimer) clearTimeout(_this.opentimer);

	            if (!_this.state.visible) return;

	            _this.closetimer = setTimeout(function () {
	                return _this.setState({
	                    visible: false,
	                    selectedItem: null
	                });
	            }, _this.props.hoverDelay);
	        };

	        _this.menuRef = function (c) {
	            _this.menu = c;
	        };

	        _this.subMenuRef = function (c) {
	            _this.subMenu = c;
	        };

	        _this.registerHandlers = function () {
	            document.removeEventListener('keydown', _this.props.parentKeyNavigationHandler);
	            document.addEventListener('keydown', _this.handleKeyNavigation);
	        };

	        _this.unregisterHandlers = function (dismounting) {
	            document.removeEventListener('keydown', _this.handleKeyNavigation);
	            if (!dismounting) {
	                document.addEventListener('keydown', _this.props.parentKeyNavigationHandler);
	            }
	        };

	        _this.state = (0, _objectAssign2.default)({}, _this.state, {
	            visible: false
	        });
	        return _this;
	    }

	    _createClass(SubMenu, [{
	        key: 'componentDidMount',
	        value: function componentDidMount() {
	            this.listenId = _globalEventListener2.default.register(function () {}, this.hideMenu);
	        }
	    }, {
	        key: 'getSubMenuType',
	        value: function getSubMenuType() {
	            // eslint-disable-line class-methods-use-this
	            return SubMenu;
	        }
	    }, {
	        key: 'shouldComponentUpdate',
	        value: function shouldComponentUpdate(nextProps, nextState) {
	            this.isVisibilityChange = (this.state.visible !== nextState.visible || this.props.forceOpen !== nextProps.forceOpen) && !(this.state.visible && nextProps.forceOpen) && !(this.props.forceOpen && nextState.visible);
	            return true;
	        }
	    }, {
	        key: 'componentDidUpdate',
	        value: function componentDidUpdate() {
	            var _this2 = this;

	            if (!this.isVisibilityChange) return;
	            if (this.props.forceOpen || this.state.visible) {
	                var wrapper = window.requestAnimationFrame || setTimeout;
	                wrapper(function () {
	                    var styles = _this2.props.rtl ? _this2.getRTLMenuPosition() : _this2.getMenuPosition();

	                    _this2.subMenu.style.removeProperty('top');
	                    _this2.subMenu.style.removeProperty('bottom');
	                    _this2.subMenu.style.removeProperty('left');
	                    _this2.subMenu.style.removeProperty('right');

	                    if ((0, _helpers.hasOwnProp)(styles, 'top')) _this2.subMenu.style.top = styles.top;
	                    if ((0, _helpers.hasOwnProp)(styles, 'left')) _this2.subMenu.style.left = styles.left;
	                    if ((0, _helpers.hasOwnProp)(styles, 'bottom')) _this2.subMenu.style.bottom = styles.bottom;
	                    if ((0, _helpers.hasOwnProp)(styles, 'right')) _this2.subMenu.style.right = styles.right;
	                    _this2.subMenu.classList.add(_helpers.cssClasses.menuVisible);

	                    _this2.registerHandlers();
	                    _this2.setState({ selectedItem: null });
	                });
	            } else {
	                var cleanup = function cleanup() {
	                    _this2.subMenu.removeEventListener('transitionend', cleanup);
	                    _this2.subMenu.style.removeProperty('bottom');
	                    _this2.subMenu.style.removeProperty('right');
	                    _this2.subMenu.style.top = 0;
	                    _this2.subMenu.style.left = '100%';
	                    _this2.unregisterHandlers();
	                };
	                this.subMenu.addEventListener('transitionend', cleanup);
	                this.subMenu.classList.remove(_helpers.cssClasses.menuVisible);
	            }
	        }
	    }, {
	        key: 'componentWillUnmount',
	        value: function componentWillUnmount() {
	            if (this.listenId) {
	                _globalEventListener2.default.unregister(this.listenId);
	            }

	            if (this.opentimer) clearTimeout(this.opentimer);

	            if (this.closetimer) clearTimeout(this.closetimer);

	            this.unregisterHandlers(true);
	        }
	    }, {
	        key: 'render',
	        value: function render() {
	            var _cx;

	            var _props = this.props,
	                children = _props.children,
	                attributes = _props.attributes,
	                disabled = _props.disabled,
	                title = _props.title,
	                selected = _props.selected;
	            var visible = this.state.visible;

	            var menuProps = {
	                ref: this.menuRef,
	                onMouseEnter: this.handleMouseEnter,
	                onMouseLeave: this.handleMouseLeave,
	                className: (0, _classnames2.default)(_helpers.cssClasses.menuItem, _helpers.cssClasses.subMenu, attributes.listClassName),
	                style: {
	                    position: 'relative'
	                }
	            };
	            var menuItemProps = {
	                className: (0, _classnames2.default)(_helpers.cssClasses.menuItem, attributes.className, (_cx = {}, _defineProperty(_cx, (0, _classnames2.default)(_helpers.cssClasses.menuItemDisabled, attributes.disabledClassName), disabled), _defineProperty(_cx, (0, _classnames2.default)(_helpers.cssClasses.menuItemActive, attributes.visibleClassName), visible), _defineProperty(_cx, (0, _classnames2.default)(_helpers.cssClasses.menuItemSelected, attributes.selectedClassName), selected), _cx)),
	                onMouseMove: this.props.onMouseMove,
	                onMouseOut: this.props.onMouseOut,
	                onClick: this.handleClick
	            };
	            var subMenuProps = {
	                ref: this.subMenuRef,
	                style: {
	                    position: 'absolute',
	                    transition: 'opacity 1ms', // trigger transitionend event
	                    top: 0,
	                    left: '100%'
	                },
	                className: (0, _classnames2.default)(_helpers.cssClasses.menu, this.props.className)
	            };

	            return _react2.default.createElement(
	                'nav',
	                _extends({}, menuProps, { role: 'menuitem', tabIndex: '-1', 'aria-haspopup': 'true' }),
	                _react2.default.createElement(
	                    'div',
	                    _extends({}, attributes, menuItemProps),
	                    title
	                ),
	                _react2.default.createElement(
	                    'nav',
	                    _extends({}, subMenuProps, { role: 'menu', tabIndex: '-1' }),
	                    this.renderChildren(children)
	                )
	            );
	        }
	    }]);

	    return SubMenu;
	}(_AbstractMenu3.default);

	SubMenu.propTypes = {
	    children: _propTypes2.default.node.isRequired,
	    attributes: _propTypes2.default.object,
	    title: _propTypes2.default.node.isRequired,
	    className: _propTypes2.default.string,
	    disabled: _propTypes2.default.bool,
	    hoverDelay: _propTypes2.default.number,
	    rtl: _propTypes2.default.bool,
	    selected: _propTypes2.default.bool,
	    onMouseMove: _propTypes2.default.func,
	    onMouseOut: _propTypes2.default.func,
	    forceOpen: _propTypes2.default.bool,
	    forceClose: _propTypes2.default.func,
	    parentKeyNavigationHandler: _propTypes2.default.func
	};
	SubMenu.defaultProps = {
	    disabled: false,
	    hoverDelay: 500,
	    attributes: {},
	    className: '',
	    rtl: false,
	    selected: false,
	    onMouseMove: function onMouseMove() {
	        return null;
	    },
	    onMouseOut: function onMouseOut() {
	        return null;
	    },
	    forceOpen: false,
	    forceClose: function forceClose() {
	        return null;
	    },
	    parentKeyNavigationHandler: function parentKeyNavigationHandler() {
	        return null;
	    }
	};
	exports.default = SubMenu;

/***/ }),
/* 153 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});
	exports.isSafari = exports.isFirefox = undefined;

	var _memoize = __webpack_require__(208);

	var _memoize2 = _interopRequireDefault(_memoize);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	var isFirefox = exports.isFirefox = (0, _memoize2.default)(function () {
	  return (/firefox/i.test(navigator.userAgent)
	  );
	});
	var isSafari = exports.isSafari = (0, _memoize2.default)(function () {
	  return Boolean(window.safari);
	});

/***/ }),
/* 154 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.unpackBackendForEs5Users = exports.createChildContext = exports.CHILD_CONTEXT_TYPES = undefined;

	var _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; };

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

	exports.default = DragDropContext;

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _dndCore = __webpack_require__(299);

	var _invariant = __webpack_require__(10);

	var _invariant2 = _interopRequireDefault(_invariant);

	var _hoistNonReactStatics = __webpack_require__(83);

	var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);

	var _checkDecoratorArguments = __webpack_require__(57);

	var _checkDecoratorArguments2 = _interopRequireDefault(_checkDecoratorArguments);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var CHILD_CONTEXT_TYPES = exports.CHILD_CONTEXT_TYPES = {
		dragDropManager: _propTypes2.default.object.isRequired
	};

	var createChildContext = exports.createChildContext = function createChildContext(backend, context) {
		return {
			dragDropManager: new _dndCore.DragDropManager(backend, context)
		};
	};

	var unpackBackendForEs5Users = exports.unpackBackendForEs5Users = function unpackBackendForEs5Users(backendOrModule) {
		// Auto-detect ES6 default export for people still using ES5
		var backend = backendOrModule;
		if ((typeof backend === 'undefined' ? 'undefined' : _typeof(backend)) === 'object' && typeof backend.default === 'function') {
			backend = backend.default;
		}
		(0, _invariant2.default)(typeof backend === 'function', 'Expected the backend to be a function or an ES6 module exporting a default function. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drag-drop-context.html');
		return backend;
	};

	function DragDropContext(backendOrModule) {
		_checkDecoratorArguments2.default.apply(undefined, ['DragDropContext', 'backend'].concat(Array.prototype.slice.call(arguments))); // eslint-disable-line prefer-rest-params

		var backend = unpackBackendForEs5Users(backendOrModule);
		var childContext = createChildContext(backend);

		return function decorateContext(DecoratedComponent) {
			var _class, _temp;

			var displayName = DecoratedComponent.displayName || DecoratedComponent.name || 'Component';

			var DragDropContextContainer = (_temp = _class = function (_Component) {
				_inherits(DragDropContextContainer, _Component);

				function DragDropContextContainer() {
					_classCallCheck(this, DragDropContextContainer);

					return _possibleConstructorReturn(this, (DragDropContextContainer.__proto__ || Object.getPrototypeOf(DragDropContextContainer)).apply(this, arguments));
				}

				_createClass(DragDropContextContainer, [{
					key: 'getDecoratedComponentInstance',
					value: function getDecoratedComponentInstance() {
						(0, _invariant2.default)(this.child, 'In order to access an instance of the decorated component it can not be a stateless component.');
						return this.child;
					}
				}, {
					key: 'getManager',
					value: function getManager() {
						return childContext.dragDropManager;
					}
				}, {
					key: 'getChildContext',
					value: function getChildContext() {
						return childContext;
					}
				}, {
					key: 'render',
					value: function render() {
						var _this2 = this;

						return _react2.default.createElement(DecoratedComponent, _extends({}, this.props, {
							ref: function ref(child) {
								_this2.child = child;
							}
						}));
					}
				}]);

				return DragDropContextContainer;
			}(_react.Component), _class.DecoratedComponent = DecoratedComponent, _class.displayName = 'DragDropContext(' + displayName + ')', _class.childContextTypes = CHILD_CONTEXT_TYPES, _temp);


			return (0, _hoistNonReactStatics2.default)(DragDropContextContainer, DecoratedComponent);
		};
	}

/***/ }),
/* 155 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.default = areOptionsEqual;

	var _shallowEqual = __webpack_require__(89);

	var _shallowEqual2 = _interopRequireDefault(_shallowEqual);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function areOptionsEqual(nextOptions, currentOptions) {
		if (currentOptions === nextOptions) {
			return true;
		}

		return currentOptions !== null && nextOptions !== null && (0, _shallowEqual2.default)(currentOptions, nextOptions);
	}

/***/ }),
/* 156 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _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; };

	var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	exports.default = decorateHandler;

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _disposables = __webpack_require__(292);

	var _isPlainObject = __webpack_require__(22);

	var _isPlainObject2 = _interopRequireDefault(_isPlainObject);

	var _invariant = __webpack_require__(10);

	var _invariant2 = _interopRequireDefault(_invariant);

	var _hoistNonReactStatics = __webpack_require__(83);

	var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);

	var _shallowEqual = __webpack_require__(89);

	var _shallowEqual2 = _interopRequireDefault(_shallowEqual);

	var _shallowEqualScalar = __webpack_require__(158);

	var _shallowEqualScalar2 = _interopRequireDefault(_shallowEqualScalar);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var isClassComponent = function isClassComponent(Comp) {
		return Boolean(Comp && Comp.prototype && typeof Comp.prototype.render === 'function');
	};

	function decorateHandler(_ref) {
		var _class, _temp;

		var DecoratedComponent = _ref.DecoratedComponent,
		    createHandler = _ref.createHandler,
		    createMonitor = _ref.createMonitor,
		    createConnector = _ref.createConnector,
		    registerHandler = _ref.registerHandler,
		    containerDisplayName = _ref.containerDisplayName,
		    getType = _ref.getType,
		    collect = _ref.collect,
		    options = _ref.options;
		var _options$arePropsEqua = options.arePropsEqual,
		    arePropsEqual = _options$arePropsEqua === undefined ? _shallowEqualScalar2.default : _options$arePropsEqua;

		var displayName = DecoratedComponent.displayName || DecoratedComponent.name || 'Component';

		var DragDropContainer = (_temp = _class = function (_Component) {
			_inherits(DragDropContainer, _Component);

			_createClass(DragDropContainer, [{
				key: 'getHandlerId',
				value: function getHandlerId() {
					return this.handlerId;
				}
			}, {
				key: 'getDecoratedComponentInstance',
				value: function getDecoratedComponentInstance() {
					return this.decoratedComponentInstance;
				}
			}, {
				key: 'shouldComponentUpdate',
				value: function shouldComponentUpdate(nextProps, nextState) {
					return !arePropsEqual(nextProps, this.props) || !(0, _shallowEqual2.default)(nextState, this.state);
				}
			}]);

			function DragDropContainer(props, context) {
				_classCallCheck(this, DragDropContainer);

				var _this = _possibleConstructorReturn(this, (DragDropContainer.__proto__ || Object.getPrototypeOf(DragDropContainer)).call(this, props, context));

				_this.handleChange = _this.handleChange.bind(_this);
				_this.handleChildRef = _this.handleChildRef.bind(_this);

				(0, _invariant2.default)(_typeof(_this.context.dragDropManager) === 'object', 'Could not find the drag and drop manager in the context of %s. ' + 'Make sure to wrap the top-level component of your app with DragDropContext. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-troubleshooting.html#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName);

				_this.manager = _this.context.dragDropManager;
				_this.handlerMonitor = createMonitor(_this.manager);
				_this.handlerConnector = createConnector(_this.manager.getBackend());
				_this.handler = createHandler(_this.handlerMonitor);

				_this.disposable = new _disposables.SerialDisposable();
				_this.receiveProps(props);
				_this.state = _this.getCurrentState();
				_this.dispose();
				return _this;
			}

			_createClass(DragDropContainer, [{
				key: 'componentDidMount',
				value: function componentDidMount() {
					this.isCurrentlyMounted = true;
					this.disposable = new _disposables.SerialDisposable();
					this.currentType = null;
					this.receiveProps(this.props);
					this.handleChange();
				}
			}, {
				key: 'componentWillReceiveProps',
				value: function componentWillReceiveProps(nextProps) {
					if (!arePropsEqual(nextProps, this.props)) {
						this.receiveProps(nextProps);
						this.handleChange();
					}
				}
			}, {
				key: 'componentWillUnmount',
				value: function componentWillUnmount() {
					this.dispose();
					this.isCurrentlyMounted = false;
				}
			}, {
				key: 'receiveProps',
				value: function receiveProps(props) {
					this.handler.receiveProps(props);
					this.receiveType(getType(props));
				}
			}, {
				key: 'receiveType',
				value: function receiveType(type) {
					if (type === this.currentType) {
						return;
					}

					this.currentType = type;

					var _registerHandler = registerHandler(type, this.handler, this.manager),
					    handlerId = _registerHandler.handlerId,
					    unregister = _registerHandler.unregister;

					this.handlerId = handlerId;
					this.handlerMonitor.receiveHandlerId(handlerId);
					this.handlerConnector.receiveHandlerId(handlerId);

					var globalMonitor = this.manager.getMonitor();
					var unsubscribe = globalMonitor.subscribeToStateChange(this.handleChange, { handlerIds: [handlerId] });

					this.disposable.setDisposable(new _disposables.CompositeDisposable(new _disposables.Disposable(unsubscribe), new _disposables.Disposable(unregister)));
				}
			}, {
				key: 'handleChange',
				value: function handleChange() {
					if (!this.isCurrentlyMounted) {
						return;
					}

					var nextState = this.getCurrentState();
					if (!(0, _shallowEqual2.default)(nextState, this.state)) {
						this.setState(nextState);
					}
				}
			}, {
				key: 'dispose',
				value: function dispose() {
					this.disposable.dispose();
					this.handlerConnector.receiveHandlerId(null);
				}
			}, {
				key: 'handleChildRef',
				value: function handleChildRef(component) {
					this.decoratedComponentInstance = component;
					this.handler.receiveComponent(component);
				}
			}, {
				key: 'getCurrentState',
				value: function getCurrentState() {
					var nextState = collect(this.handlerConnector.hooks, this.handlerMonitor);

					if (false) {}

					return nextState;
				}
			}, {
				key: 'render',
				value: function render() {
					return _react2.default.createElement(DecoratedComponent, _extends({}, this.props, this.state, {
						ref: isClassComponent(DecoratedComponent) ? this.handleChildRef : null
					}));
				}
			}]);

			return DragDropContainer;
		}(_react.Component), _class.DecoratedComponent = DecoratedComponent, _class.displayName = containerDisplayName + '(' + displayName + ')', _class.contextTypes = {
			dragDropManager: _propTypes2.default.object.isRequired
		}, _temp);


		return (0, _hoistNonReactStatics2.default)(DragDropContainer, DecoratedComponent);
	}

/***/ }),
/* 157 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

	exports.default = isValidType;

	var _isArray = __webpack_require__(7);

	var _isArray2 = _interopRequireDefault(_isArray);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function isValidType(type, allowArray) {
		return typeof type === 'string' || (typeof type === 'undefined' ? 'undefined' : _typeof(type)) === 'symbol' || allowArray && (0, _isArray2.default)(type) && type.every(function (t) {
			return isValidType(t, false);
		});
	}

/***/ }),
/* 158 */
/***/ (function(module, exports) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

	exports.default = shallowEqualScalar;
	function shallowEqualScalar(objA, objB) {
		if (objA === objB) {
			return true;
		}

		if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || objB === null) {
			return false;
		}

		var keysA = Object.keys(objA);
		var keysB = Object.keys(objB);

		if (keysA.length !== keysB.length) {
			return false;
		}

		// Test for A's keys different from B.
		var hasOwn = Object.prototype.hasOwnProperty;
		for (var i = 0; i < keysA.length; i += 1) {
			if (!hasOwn.call(objB, keysA[i])) {
				return false;
			}

			var valA = objA[keysA[i]];
			var valB = objB[keysA[i]];

			if (valA !== valB || (typeof valA === 'undefined' ? 'undefined' : _typeof(valA)) === 'object' || (typeof valB === 'undefined' ? 'undefined' : _typeof(valB)) === 'object') {
				return false;
			}
		}

		return true;
	}

/***/ }),
/* 159 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.default = wrapConnectorHooks;

	var _react = __webpack_require__(2);

	var _cloneWithRef = __webpack_require__(379);

	var _cloneWithRef2 = _interopRequireDefault(_cloneWithRef);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function throwIfCompositeComponentElement(element) {
		// Custom components can no longer be wrapped directly in React DnD 2.0
		// so that we don't need to depend on findDOMNode() from react-dom.
		if (typeof element.type === 'string') {
			return;
		}

		var displayName = element.type.displayName || element.type.name || 'the component';

		throw new Error('Only native element nodes can now be passed to React DnD connectors.' + ('You can either wrap ' + displayName + ' into a <div>, or turn it into a ') + 'drag source or a drop target itself.');
	}

	function wrapHookToRecognizeElement(hook) {
		return function () {
			var elementOrNode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
			var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;

			// When passed a node, call the hook straight away.
			if (!(0, _react.isValidElement)(elementOrNode)) {
				var node = elementOrNode;
				hook(node, options);
				return undefined;
			}

			// If passed a ReactElement, clone it and attach this function as a ref.
			// This helps us achieve a neat API where user doesn't even know that refs
			// are being used under the hood.
			var element = elementOrNode;
			throwIfCompositeComponentElement(element);

			// When no options are passed, use the hook directly
			var ref = options ? function (node) {
				return hook(node, options);
			} : hook;

			return (0, _cloneWithRef2.default)(element, ref);
		};
	}

	function wrapConnectorHooks(hooks) {
		var wrappedHooks = {};

		Object.keys(hooks).forEach(function (key) {
			var hook = hooks[key];
			var wrappedHook = wrapHookToRecognizeElement(hook);
			wrappedHooks[key] = function () {
				return wrappedHook;
			};
		});

		return wrappedHooks;
	}

/***/ }),
/* 160 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _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; };

	var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _Select = __webpack_require__(58);

	var _Select2 = _interopRequireDefault(_Select);

	var _stripDiacritics = __webpack_require__(166);

	var _stripDiacritics2 = _interopRequireDefault(_stripDiacritics);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var propTypes = {
		autoload: _propTypes2.default.bool.isRequired, // automatically call the `loadOptions` prop on-mount; defaults to true
		cache: _propTypes2.default.any, // object to use to cache results; set to null/false to disable caching
		children: _propTypes2.default.func.isRequired, // Child function responsible for creating the inner Select component; (props: Object): PropTypes.element
		ignoreAccents: _propTypes2.default.bool, // strip diacritics when filtering; defaults to true
		ignoreCase: _propTypes2.default.bool, // perform case-insensitive filtering; defaults to true
		loadOptions: _propTypes2.default.func.isRequired, // callback to load options asynchronously; (inputValue: string, callback: Function): ?Promise
		loadingPlaceholder: _propTypes2.default.oneOfType([// replaces the placeholder while options are loading
		_propTypes2.default.string, _propTypes2.default.node]),
		multi: _propTypes2.default.bool, // multi-value input
		noResultsText: _propTypes2.default.oneOfType([// field noResultsText, displayed when no options come back from the server
		_propTypes2.default.string, _propTypes2.default.node]),
		onChange: _propTypes2.default.func, // onChange handler: function (newValue) {}
		onInputChange: _propTypes2.default.func, // optional for keeping track of what is being typed
		options: _propTypes2.default.array.isRequired, // array of options
		placeholder: _propTypes2.default.oneOfType([// field placeholder, displayed when there's no value (shared with Select)
		_propTypes2.default.string, _propTypes2.default.node]),
		searchPromptText: _propTypes2.default.oneOfType([// label to prompt for search input
		_propTypes2.default.string, _propTypes2.default.node]),
		value: _propTypes2.default.any // initial field value
	};

	var defaultCache = {};

	var defaultChildren = function defaultChildren(props) {
		return _react2.default.createElement(_Select2.default, props);
	};

	var defaultProps = {
		autoload: true,
		cache: defaultCache,
		children: defaultChildren,
		ignoreAccents: true,
		ignoreCase: true,
		loadingPlaceholder: 'Loading...',
		options: [],
		searchPromptText: 'Type to search'
	};

	var Async = function (_Component) {
		_inherits(Async, _Component);

		function Async(props, context) {
			_classCallCheck(this, Async);

			var _this = _possibleConstructorReturn(this, (Async.__proto__ || Object.getPrototypeOf(Async)).call(this, props, context));

			_this._cache = props.cache === defaultCache ? {} : props.cache;

			_this.state = {
				inputValue: '',
				isLoading: false,
				options: props.options
			};

			_this.onInputChange = _this.onInputChange.bind(_this);
			return _this;
		}

		_createClass(Async, [{
			key: 'componentDidMount',
			value: function componentDidMount() {
				var autoload = this.props.autoload;


				if (autoload) {
					this.loadOptions('');
				}
			}
		}, {
			key: 'componentWillReceiveProps',
			value: function componentWillReceiveProps(nextProps) {
				if (nextProps.options !== this.props.options) {
					this.setState({
						options: nextProps.options
					});
				}
			}
		}, {
			key: 'componentWillUnmount',
			value: function componentWillUnmount() {
				this._callback = null;
			}
		}, {
			key: 'loadOptions',
			value: function loadOptions(inputValue) {
				var _this2 = this;

				var loadOptions = this.props.loadOptions;

				var cache = this._cache;

				if (cache && Object.prototype.hasOwnProperty.call(cache, inputValue)) {
					this._callback = null;

					this.setState({
						isLoading: false,
						options: cache[inputValue]
					});

					return;
				}

				var callback = function callback(error, data) {
					var options = data && data.options || [];

					if (cache) {
						cache[inputValue] = options;
					}

					if (callback === _this2._callback) {
						_this2._callback = null;

						_this2.setState({
							isLoading: false,
							options: options
						});
					}
				};

				// Ignore all but the most recent request
				this._callback = callback;

				var promise = loadOptions(inputValue, callback);
				if (promise) {
					promise.then(function (data) {
						return callback(null, data);
					}, function (error) {
						return callback(error);
					});
				}

				if (this._callback && !this.state.isLoading) {
					this.setState({
						isLoading: true
					});
				}
			}
		}, {
			key: 'onInputChange',
			value: function onInputChange(inputValue) {
				var _props = this.props,
				    ignoreAccents = _props.ignoreAccents,
				    ignoreCase = _props.ignoreCase,
				    onInputChange = _props.onInputChange;

				var newInputValue = inputValue;

				if (onInputChange) {
					var value = onInputChange(newInputValue);
					// Note: != used deliberately here to catch undefined and null
					if (value != null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object') {
						newInputValue = '' + value;
					}
				}

				var transformedInputValue = newInputValue;

				if (ignoreAccents) {
					transformedInputValue = (0, _stripDiacritics2.default)(transformedInputValue);
				}

				if (ignoreCase) {
					transformedInputValue = transformedInputValue.toLowerCase();
				}

				this.setState({ inputValue: newInputValue });
				this.loadOptions(transformedInputValue);

				// Return new input value, but without applying toLowerCase() to avoid modifying the user's view case of the input while typing.
				return newInputValue;
			}
		}, {
			key: 'noResultsText',
			value: function noResultsText() {
				var _props2 = this.props,
				    loadingPlaceholder = _props2.loadingPlaceholder,
				    noResultsText = _props2.noResultsText,
				    searchPromptText = _props2.searchPromptText;
				var _state = this.state,
				    inputValue = _state.inputValue,
				    isLoading = _state.isLoading;


				if (isLoading) {
					return loadingPlaceholder;
				}
				if (inputValue && noResultsText) {
					return noResultsText;
				}
				return searchPromptText;
			}
		}, {
			key: 'focus',
			value: function focus() {
				this.select.focus();
			}
		}, {
			key: 'render',
			value: function render() {
				var _this3 = this;

				var _props3 = this.props,
				    children = _props3.children,
				    loadingPlaceholder = _props3.loadingPlaceholder,
				    placeholder = _props3.placeholder;
				var _state2 = this.state,
				    isLoading = _state2.isLoading,
				    options = _state2.options;


				var props = {
					noResultsText: this.noResultsText(),
					placeholder: isLoading ? loadingPlaceholder : placeholder,
					options: isLoading && loadingPlaceholder ? [] : options,
					ref: function ref(_ref) {
						return _this3.select = _ref;
					}
				};

				return children(_extends({}, this.props, props, {
					isLoading: isLoading,
					onInputChange: this.onInputChange
				}));
			}
		}]);

		return Async;
	}(_react.Component);

	exports.default = Async;


	Async.propTypes = propTypes;
	Async.defaultProps = defaultProps;

/***/ }),
/* 161 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _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; };

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _defaultFilterOptions = __webpack_require__(90);

	var _defaultFilterOptions2 = _interopRequireDefault(_defaultFilterOptions);

	var _defaultMenuRenderer = __webpack_require__(91);

	var _defaultMenuRenderer2 = _interopRequireDefault(_defaultMenuRenderer);

	var _Select = __webpack_require__(58);

	var _Select2 = _interopRequireDefault(_Select);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var CreatableSelect = function (_React$Component) {
		_inherits(CreatableSelect, _React$Component);

		function CreatableSelect(props, context) {
			_classCallCheck(this, CreatableSelect);

			var _this = _possibleConstructorReturn(this, (CreatableSelect.__proto__ || Object.getPrototypeOf(CreatableSelect)).call(this, props, context));

			_this.filterOptions = _this.filterOptions.bind(_this);
			_this.menuRenderer = _this.menuRenderer.bind(_this);
			_this.onInputKeyDown = _this.onInputKeyDown.bind(_this);
			_this.onInputChange = _this.onInputChange.bind(_this);
			_this.onOptionSelect = _this.onOptionSelect.bind(_this);
			return _this;
		}

		_createClass(CreatableSelect, [{
			key: 'createNewOption',
			value: function createNewOption() {
				var _props = this.props,
				    isValidNewOption = _props.isValidNewOption,
				    newOptionCreator = _props.newOptionCreator,
				    onNewOptionClick = _props.onNewOptionClick,
				    _props$options = _props.options,
				    options = _props$options === undefined ? [] : _props$options;


				if (isValidNewOption({ label: this.inputValue })) {
					var option = newOptionCreator({ label: this.inputValue, labelKey: this.labelKey, valueKey: this.valueKey });
					var _isOptionUnique = this.isOptionUnique({ option: option, options: options });

					// Don't add the same option twice.
					if (_isOptionUnique) {
						if (onNewOptionClick) {
							onNewOptionClick(option);
						} else {
							options.unshift(option);

							this.select.selectValue(option);
						}
					}
				}
			}
		}, {
			key: 'filterOptions',
			value: function filterOptions() {
				var _props2 = this.props,
				    filterOptions = _props2.filterOptions,
				    isValidNewOption = _props2.isValidNewOption,
				    promptTextCreator = _props2.promptTextCreator,
				    showNewOptionAtTop = _props2.showNewOptionAtTop;

				// TRICKY Check currently selected options as well.
				// Don't display a create-prompt for a value that's selected.
				// This covers async edge-cases where a newly-created Option isn't yet in the async-loaded array.

				var excludeOptions = (arguments.length <= 2 ? undefined : arguments[2]) || [];

				var filteredOptions = filterOptions.apply(undefined, arguments) || [];

				if (isValidNewOption({ label: this.inputValue })) {
					var _newOptionCreator = this.props.newOptionCreator;


					var option = _newOptionCreator({
						label: this.inputValue,
						labelKey: this.labelKey,
						valueKey: this.valueKey
					});

					// TRICKY Compare to all options (not just filtered options) in case option has already been selected).
					// For multi-selects, this would remove it from the filtered list.
					var _isOptionUnique2 = this.isOptionUnique({
						option: option,
						options: excludeOptions.concat(filteredOptions)
					});

					if (_isOptionUnique2) {
						var prompt = promptTextCreator(this.inputValue);

						this._createPlaceholderOption = _newOptionCreator({
							label: prompt,
							labelKey: this.labelKey,
							valueKey: this.valueKey
						});

						if (showNewOptionAtTop) {
							filteredOptions.unshift(this._createPlaceholderOption);
						} else {
							filteredOptions.push(this._createPlaceholderOption);
						}
					}
				}

				return filteredOptions;
			}
		}, {
			key: 'isOptionUnique',
			value: function isOptionUnique(_ref) {
				var option = _ref.option,
				    options = _ref.options;
				var isOptionUnique = this.props.isOptionUnique;


				options = options || this.props.options;

				return isOptionUnique({
					labelKey: this.labelKey,
					option: option,
					options: options,
					valueKey: this.valueKey
				});
			}
		}, {
			key: 'menuRenderer',
			value: function menuRenderer(params) {
				var menuRenderer = this.props.menuRenderer;


				return menuRenderer(_extends({}, params, {
					onSelect: this.onOptionSelect,
					selectValue: this.onOptionSelect
				}));
			}
		}, {
			key: 'onInputChange',
			value: function onInputChange(input) {
				var onInputChange = this.props.onInputChange;

				// This value may be needed in between Select mounts (when this.select is null)

				this.inputValue = input;

				if (onInputChange) {
					this.inputValue = onInputChange(input);
				}

				return this.inputValue;
			}
		}, {
			key: 'onInputKeyDown',
			value: function onInputKeyDown(event) {
				var _props3 = this.props,
				    shouldKeyDownEventCreateNewOption = _props3.shouldKeyDownEventCreateNewOption,
				    onInputKeyDown = _props3.onInputKeyDown;

				var focusedOption = this.select.getFocusedOption();

				if (focusedOption && focusedOption === this._createPlaceholderOption && shouldKeyDownEventCreateNewOption(event)) {
					this.createNewOption();

					// Prevent decorated Select from doing anything additional with this keyDown event
					event.preventDefault();
				} else if (onInputKeyDown) {
					onInputKeyDown(event);
				}
			}
		}, {
			key: 'onOptionSelect',
			value: function onOptionSelect(option) {
				if (option === this._createPlaceholderOption) {
					this.createNewOption();
				} else {
					this.select.selectValue(option);
				}
			}
		}, {
			key: 'focus',
			value: function focus() {
				this.select.focus();
			}
		}, {
			key: 'render',
			value: function render() {
				var _this2 = this;

				var _props4 = this.props,
				    refProp = _props4.ref,
				    restProps = _objectWithoutProperties(_props4, ['ref']);

				var children = this.props.children;

				// We can't use destructuring default values to set the children,
				// because it won't apply work if `children` is null. A falsy check is
				// more reliable in real world use-cases.

				if (!children) {
					children = defaultChildren;
				}

				var props = _extends({}, restProps, {
					allowCreate: true,
					filterOptions: this.filterOptions,
					menuRenderer: this.menuRenderer,
					onInputChange: this.onInputChange,
					onInputKeyDown: this.onInputKeyDown,
					ref: function ref(_ref2) {
						_this2.select = _ref2;

						// These values may be needed in between Select mounts (when this.select is null)
						if (_ref2) {
							_this2.labelKey = _ref2.props.labelKey;
							_this2.valueKey = _ref2.props.valueKey;
						}
						if (refProp) {
							refProp(_ref2);
						}
					}
				});

				return children(props);
			}
		}]);

		return CreatableSelect;
	}(_react2.default.Component);

	var defaultChildren = function defaultChildren(props) {
		return _react2.default.createElement(_Select2.default, props);
	};

	var isOptionUnique = function isOptionUnique(_ref3) {
		var option = _ref3.option,
		    options = _ref3.options,
		    labelKey = _ref3.labelKey,
		    valueKey = _ref3.valueKey;

		if (!options || !options.length) {
			return true;
		}

		return options.filter(function (existingOption) {
			return existingOption[labelKey] === option[labelKey] || existingOption[valueKey] === option[valueKey];
		}).length === 0;
	};

	var isValidNewOption = function isValidNewOption(_ref4) {
		var label = _ref4.label;
		return !!label;
	};

	var newOptionCreator = function newOptionCreator(_ref5) {
		var label = _ref5.label,
		    labelKey = _ref5.labelKey,
		    valueKey = _ref5.valueKey;

		var option = {};
		option[valueKey] = label;
		option[labelKey] = label;
		option.className = 'Select-create-option-placeholder';

		return option;
	};

	var promptTextCreator = function promptTextCreator(label) {
		return 'Create option "' + label + '"';
	};

	var shouldKeyDownEventCreateNewOption = function shouldKeyDownEventCreateNewOption(_ref6) {
		var keyCode = _ref6.keyCode;

		switch (keyCode) {
			case 9: // TAB
			case 13: // ENTER
			case 188:
				// COMMA
				return true;
			default:
				return false;
		}
	};

	// Default prop methods
	CreatableSelect.isOptionUnique = isOptionUnique;
	CreatableSelect.isValidNewOption = isValidNewOption;
	CreatableSelect.newOptionCreator = newOptionCreator;
	CreatableSelect.promptTextCreator = promptTextCreator;
	CreatableSelect.shouldKeyDownEventCreateNewOption = shouldKeyDownEventCreateNewOption;

	CreatableSelect.defaultProps = {
		filterOptions: _defaultFilterOptions2.default,
		isOptionUnique: isOptionUnique,
		isValidNewOption: isValidNewOption,
		menuRenderer: _defaultMenuRenderer2.default,
		newOptionCreator: newOptionCreator,
		promptTextCreator: promptTextCreator,
		shouldKeyDownEventCreateNewOption: shouldKeyDownEventCreateNewOption,
		showNewOptionAtTop: true
	};

	CreatableSelect.propTypes = {
		// Child function responsible for creating the inner Select component
		// This component can be used to compose HOCs (eg Creatable and Async)
		// (props: Object): PropTypes.element
		children: _propTypes2.default.func,

		// See Select.propTypes.filterOptions
		filterOptions: _propTypes2.default.any,

		// Searches for any matching option within the set of options.
		// This function prevents duplicate options from being created.
		// ({ option: Object, options: Array, labelKey: string, valueKey: string }): boolean
		isOptionUnique: _propTypes2.default.func,

		// Determines if the current input text represents a valid option.
		// ({ label: string }): boolean
		isValidNewOption: _propTypes2.default.func,

		// See Select.propTypes.menuRenderer
		menuRenderer: _propTypes2.default.any,

		// Factory to create new option.
		// ({ label: string, labelKey: string, valueKey: string }): Object
		newOptionCreator: _propTypes2.default.func,

		// input change handler: function (inputValue) {}
		onInputChange: _propTypes2.default.func,

		// input keyDown handler: function (event) {}
		onInputKeyDown: _propTypes2.default.func,

		// new option click handler: function (option) {}
		onNewOptionClick: _propTypes2.default.func,

		// See Select.propTypes.options
		options: _propTypes2.default.array,

		// Creates prompt/placeholder option text.
		// (filterText: string): string
		promptTextCreator: _propTypes2.default.func,

		ref: _propTypes2.default.func,

		// Decides if a keyDown event (eg its `keyCode`) should result in the creation of a new option.
		shouldKeyDownEventCreateNewOption: _propTypes2.default.func,

		// Where to show prompt/placeholder option text.
		// true: new option prompt at top of list (default)
		// false: new option prompt at bottom of list
		showNewOptionAtTop: _propTypes2.default.bool
	};

	exports.default = CreatableSelect;

/***/ }),
/* 162 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _classnames = __webpack_require__(4);

	var _classnames2 = _interopRequireDefault(_classnames);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _blockEvent = __webpack_require__(384);

	var _blockEvent2 = _interopRequireDefault(_blockEvent);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var Option = function (_React$Component) {
		_inherits(Option, _React$Component);

		function Option(props) {
			_classCallCheck(this, Option);

			var _this = _possibleConstructorReturn(this, (Option.__proto__ || Object.getPrototypeOf(Option)).call(this, props));

			_this.handleMouseDown = _this.handleMouseDown.bind(_this);
			_this.handleMouseEnter = _this.handleMouseEnter.bind(_this);
			_this.handleMouseMove = _this.handleMouseMove.bind(_this);
			_this.handleTouchStart = _this.handleTouchStart.bind(_this);
			_this.handleTouchEnd = _this.handleTouchEnd.bind(_this);
			_this.handleTouchMove = _this.handleTouchMove.bind(_this);
			_this.onFocus = _this.onFocus.bind(_this);
			return _this;
		}

		_createClass(Option, [{
			key: 'handleMouseDown',
			value: function handleMouseDown(event) {
				event.preventDefault();
				event.stopPropagation();
				this.props.onSelect(this.props.option, event);
			}
		}, {
			key: 'handleMouseEnter',
			value: function handleMouseEnter(event) {
				this.onFocus(event);
			}
		}, {
			key: 'handleMouseMove',
			value: function handleMouseMove(event) {
				this.onFocus(event);
			}
		}, {
			key: 'handleTouchEnd',
			value: function handleTouchEnd(event) {
				// Check if the view is being dragged, In this case
				// we don't want to fire the click event (because the user only wants to scroll)
				if (this.dragging) return;

				this.handleMouseDown(event);
			}
		}, {
			key: 'handleTouchMove',
			value: function handleTouchMove() {
				// Set a flag that the view is being dragged
				this.dragging = true;
			}
		}, {
			key: 'handleTouchStart',
			value: function handleTouchStart() {
				// Set a flag that the view is not being dragged
				this.dragging = false;
			}
		}, {
			key: 'onFocus',
			value: function onFocus(event) {
				if (!this.props.isFocused) {
					this.props.onFocus(this.props.option, event);
				}
			}
		}, {
			key: 'render',
			value: function render() {
				var _props = this.props,
				    option = _props.option,
				    instancePrefix = _props.instancePrefix,
				    optionIndex = _props.optionIndex;

				var className = (0, _classnames2.default)(this.props.className, option.className);

				return option.disabled ? _react2.default.createElement(
					'div',
					{ className: className,
						onMouseDown: _blockEvent2.default,
						onClick: _blockEvent2.default },
					this.props.children
				) : _react2.default.createElement(
					'div',
					{ className: className,
						style: option.style,
						role: 'option',
						'aria-label': option.label,
						onMouseDown: this.handleMouseDown,
						onMouseEnter: this.handleMouseEnter,
						onMouseMove: this.handleMouseMove,
						onTouchStart: this.handleTouchStart,
						onTouchMove: this.handleTouchMove,
						onTouchEnd: this.handleTouchEnd,
						id: instancePrefix + '-option-' + optionIndex,
						title: option.title },
					this.props.children
				);
			}
		}]);

		return Option;
	}(_react2.default.Component);

	Option.propTypes = {
		children: _propTypes2.default.node,
		className: _propTypes2.default.string, // className (based on mouse position)
		instancePrefix: _propTypes2.default.string.isRequired, // unique prefix for the ids (used for aria)
		isDisabled: _propTypes2.default.bool, // the option is disabled
		isFocused: _propTypes2.default.bool, // the option is focused
		isSelected: _propTypes2.default.bool, // the option is selected
		onFocus: _propTypes2.default.func, // method to handle mouseEnter on option element
		onSelect: _propTypes2.default.func, // method to handle click on option element
		onUnfocus: _propTypes2.default.func, // method to handle mouseLeave on option element
		option: _propTypes2.default.object.isRequired, // object that is base for that option
		optionIndex: _propTypes2.default.number // index of the option, used to generate unique ids for aria
	};

	exports.default = Option;

/***/ }),
/* 163 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _classnames = __webpack_require__(4);

	var _classnames2 = _interopRequireDefault(_classnames);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var Value = function (_React$Component) {
		_inherits(Value, _React$Component);

		function Value(props) {
			_classCallCheck(this, Value);

			var _this = _possibleConstructorReturn(this, (Value.__proto__ || Object.getPrototypeOf(Value)).call(this, props));

			_this.handleMouseDown = _this.handleMouseDown.bind(_this);
			_this.onRemove = _this.onRemove.bind(_this);
			_this.handleTouchEndRemove = _this.handleTouchEndRemove.bind(_this);
			_this.handleTouchMove = _this.handleTouchMove.bind(_this);
			_this.handleTouchStart = _this.handleTouchStart.bind(_this);
			return _this;
		}

		_createClass(Value, [{
			key: 'handleMouseDown',
			value: function handleMouseDown(event) {
				if (event.type === 'mousedown' && event.button !== 0) {
					return;
				}
				if (this.props.onClick) {
					event.stopPropagation();
					this.props.onClick(this.props.value, event);
					return;
				}
				if (this.props.value.href) {
					event.stopPropagation();
				}
			}
		}, {
			key: 'onRemove',
			value: function onRemove(event) {
				event.preventDefault();
				event.stopPropagation();
				this.props.onRemove(this.props.value);
			}
		}, {
			key: 'handleTouchEndRemove',
			value: function handleTouchEndRemove(event) {
				// Check if the view is being dragged, In this case
				// we don't want to fire the click event (because the user only wants to scroll)
				if (this.dragging) return;

				// Fire the mouse events
				this.onRemove(event);
			}
		}, {
			key: 'handleTouchMove',
			value: function handleTouchMove() {
				// Set a flag that the view is being dragged
				this.dragging = true;
			}
		}, {
			key: 'handleTouchStart',
			value: function handleTouchStart() {
				// Set a flag that the view is not being dragged
				this.dragging = false;
			}
		}, {
			key: 'renderRemoveIcon',
			value: function renderRemoveIcon() {
				if (this.props.disabled || !this.props.onRemove) return;
				return _react2.default.createElement(
					'span',
					{ className: 'Select-value-icon',
						'aria-hidden': 'true',
						onMouseDown: this.onRemove,
						onTouchEnd: this.handleTouchEndRemove,
						onTouchStart: this.handleTouchStart,
						onTouchMove: this.handleTouchMove },
					'\xD7'
				);
			}
		}, {
			key: 'renderLabel',
			value: function renderLabel() {
				var className = 'Select-value-label';
				return this.props.onClick || this.props.value.href ? _react2.default.createElement(
					'a',
					{ className: className, href: this.props.value.href, target: this.props.value.target, onMouseDown: this.handleMouseDown, onTouchEnd: this.handleMouseDown },
					this.props.children
				) : _react2.default.createElement(
					'span',
					{ className: className, role: 'option', 'aria-selected': 'true', id: this.props.id },
					this.props.children
				);
			}
		}, {
			key: 'render',
			value: function render() {
				return _react2.default.createElement(
					'div',
					{ className: (0, _classnames2.default)('Select-value', this.props.value.disabled ? 'Select-value-disabled' : '', this.props.value.className),
						style: this.props.value.style,
						title: this.props.value.title
					},
					this.renderRemoveIcon(),
					this.renderLabel()
				);
			}
		}]);

		return Value;
	}(_react2.default.Component);

	Value.propTypes = {
		children: _propTypes2.default.node,
		disabled: _propTypes2.default.bool, // disabled prop passed to ReactSelect
		id: _propTypes2.default.string, // Unique id for the value - used for aria
		onClick: _propTypes2.default.func, // method to handle click on value label
		onRemove: _propTypes2.default.func, // method to handle removal of the value
		value: _propTypes2.default.object.isRequired // the option object for this value
	};

	exports.default = Value;

/***/ }),
/* 164 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	var arrowRenderer = function arrowRenderer(_ref) {
		var onMouseDown = _ref.onMouseDown;

		return _react2.default.createElement('span', {
			className: 'Select-arrow',
			onMouseDown: onMouseDown
		});
	};

	arrowRenderer.propTypes = {
		onMouseDown: _propTypes2.default.func
	};

	exports.default = arrowRenderer;

/***/ }),
/* 165 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	var clearRenderer = function clearRenderer() {
		return _react2.default.createElement('span', {
			className: 'Select-clear',
			dangerouslySetInnerHTML: { __html: '&times;' }
		});
	};

	exports.default = clearRenderer;

/***/ }),
/* 166 */
/***/ (function(module, exports) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	var map = [{ 'base': 'A', 'letters': /[\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F]/g }, { 'base': 'AA', 'letters': /[\uA732]/g }, { 'base': 'AE', 'letters': /[\u00C6\u01FC\u01E2]/g }, { 'base': 'AO', 'letters': /[\uA734]/g }, { 'base': 'AU', 'letters': /[\uA736]/g }, { 'base': 'AV', 'letters': /[\uA738\uA73A]/g }, { 'base': 'AY', 'letters': /[\uA73C]/g }, { 'base': 'B', 'letters': /[\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181]/g }, { 'base': 'C', 'letters': /[\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E]/g }, { 'base': 'D', 'letters': /[\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779]/g }, { 'base': 'DZ', 'letters': /[\u01F1\u01C4]/g }, { 'base': 'Dz', 'letters': /[\u01F2\u01C5]/g }, { 'base': 'E', 'letters': /[\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E]/g }, { 'base': 'F', 'letters': /[\u0046\u24BB\uFF26\u1E1E\u0191\uA77B]/g }, { 'base': 'G', 'letters': /[\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E]/g }, { 'base': 'H', 'letters': /[\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D]/g }, { 'base': 'I', 'letters': /[\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197]/g }, { 'base': 'J', 'letters': /[\u004A\u24BF\uFF2A\u0134\u0248]/g }, { 'base': 'K', 'letters': /[\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2]/g }, { 'base': 'L', 'letters': /[\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780]/g }, { 'base': 'LJ', 'letters': /[\u01C7]/g }, { 'base': 'Lj', 'letters': /[\u01C8]/g }, { 'base': 'M', 'letters': /[\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C]/g }, { 'base': 'N', 'letters': /[\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4]/g }, { 'base': 'NJ', 'letters': /[\u01CA]/g }, { 'base': 'Nj', 'letters': /[\u01CB]/g }, { 'base': 'O', 'letters': /[\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C]/g }, { 'base': 'OI', 'letters': /[\u01A2]/g }, { 'base': 'OO', 'letters': /[\uA74E]/g }, { 'base': 'OU', 'letters': /[\u0222]/g }, { 'base': 'P', 'letters': /[\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754]/g }, { 'base': 'Q', 'letters': /[\u0051\u24C6\uFF31\uA756\uA758\u024A]/g }, { 'base': 'R', 'letters': /[\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782]/g }, { 'base': 'S', 'letters': /[\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784]/g }, { 'base': 'T', 'letters': /[\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786]/g }, { 'base': 'TZ', 'letters': /[\uA728]/g }, { 'base': 'U', 'letters': /[\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244]/g }, { 'base': 'V', 'letters': /[\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245]/g }, { 'base': 'VY', 'letters': /[\uA760]/g }, { 'base': 'W', 'letters': /[\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72]/g }, { 'base': 'X', 'letters': /[\u0058\u24CD\uFF38\u1E8A\u1E8C]/g }, { 'base': 'Y', 'letters': /[\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE]/g }, { 'base': 'Z', 'letters': /[\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762]/g }, { 'base': 'a', 'letters': /[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250]/g }, { 'base': 'aa', 'letters': /[\uA733]/g }, { 'base': 'ae', 'letters': /[\u00E6\u01FD\u01E3]/g }, { 'base': 'ao', 'letters': /[\uA735]/g }, { 'base': 'au', 'letters': /[\uA737]/g }, { 'base': 'av', 'letters': /[\uA739\uA73B]/g }, { 'base': 'ay', 'letters': /[\uA73D]/g }, { 'base': 'b', 'letters': /[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253]/g }, { 'base': 'c', 'letters': /[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184]/g }, { 'base': 'd', 'letters': /[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A]/g }, { 'base': 'dz', 'letters': /[\u01F3\u01C6]/g }, { 'base': 'e', 'letters': /[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD]/g }, { 'base': 'f', 'letters': /[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C]/g }, { 'base': 'g', 'letters': /[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F]/g }, { 'base': 'h', 'letters': /[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265]/g }, { 'base': 'hv', 'letters': /[\u0195]/g }, { 'base': 'i', 'letters': /[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131]/g }, { 'base': 'j', 'letters': /[\u006A\u24D9\uFF4A\u0135\u01F0\u0249]/g }, { 'base': 'k', 'letters': /[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3]/g }, { 'base': 'l', 'letters': /[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747]/g }, { 'base': 'lj', 'letters': /[\u01C9]/g }, { 'base': 'm', 'letters': /[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F]/g }, { 'base': 'n', 'letters': /[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5]/g }, { 'base': 'nj', 'letters': /[\u01CC]/g }, { 'base': 'o', 'letters': /[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275]/g }, { 'base': 'oi', 'letters': /[\u01A3]/g }, { 'base': 'ou', 'letters': /[\u0223]/g }, { 'base': 'oo', 'letters': /[\uA74F]/g }, { 'base': 'p', 'letters': /[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755]/g }, { 'base': 'q', 'letters': /[\u0071\u24E0\uFF51\u024B\uA757\uA759]/g }, { 'base': 'r', 'letters': /[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783]/g }, { 'base': 's', 'letters': /[\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B]/g }, { 'base': 't', 'letters': /[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787]/g }, { 'base': 'tz', 'letters': /[\uA729]/g }, { 'base': 'u', 'letters': /[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289]/g }, { 'base': 'v', 'letters': /[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C]/g }, { 'base': 'vy', 'letters': /[\uA761]/g }, { 'base': 'w', 'letters': /[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73]/g }, { 'base': 'x', 'letters': /[\u0078\u24E7\uFF58\u1E8B\u1E8D]/g }, { 'base': 'y', 'letters': /[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF]/g }, { 'base': 'z', 'letters': /[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763]/g }];

	var stripDiacritics = function stripDiacritics(str) {
		for (var i = 0; i < map.length; i++) {
			str = str.replace(map[i].letters, map[i].base);
		}
		return str;
	};

	exports.default = stripDiacritics;

/***/ }),
/* 167 */
/***/ (function(module, exports, __webpack_require__) {

	// style-loader: Adds some css to the DOM by adding a <style> tag

	// load the styles
	var content = __webpack_require__(287);
	if(typeof content === 'string') content = [[module.id, content, '']];
	// add the styles to the DOM
	var update = __webpack_require__(9)(content, {});
	if(content.locals) module.exports = content.locals;
	// Hot Module Replacement
	if(false) {}

/***/ }),
/* 168 */
/***/ (function(module, exports, __webpack_require__) {

	var ListCache = __webpack_require__(60),
	    stackClear = __webpack_require__(474),
	    stackDelete = __webpack_require__(475),
	    stackGet = __webpack_require__(476),
	    stackHas = __webpack_require__(477),
	    stackSet = __webpack_require__(478);

	/**
	 * Creates a stack cache object to store key-value pairs.
	 *
	 * @private
	 * @constructor
	 * @param {Array} [entries] The key-value pairs to cache.
	 */
	function Stack(entries) {
	  var data = this.__data__ = new ListCache(entries);
	  this.size = data.size;
	}

	// Add methods to `Stack`.
	Stack.prototype.clear = stackClear;
	Stack.prototype['delete'] = stackDelete;
	Stack.prototype.get = stackGet;
	Stack.prototype.has = stackHas;
	Stack.prototype.set = stackSet;

	module.exports = Stack;


/***/ }),
/* 169 */
/***/ (function(module, exports, __webpack_require__) {

	var castPath = __webpack_require__(171),
	    toKey = __webpack_require__(65);

	/**
	 * The base implementation of `_.get` without support for default values.
	 *
	 * @private
	 * @param {Object} object The object to query.
	 * @param {Array|string} path The path of the property to get.
	 * @returns {*} Returns the resolved value.
	 */
	function baseGet(object, path) {
	  path = castPath(path, object);

	  var index = 0,
	      length = path.length;

	  while (object != null && index < length) {
	    object = object[toKey(path[index++])];
	  }
	  return (index && index == length) ? object : undefined;
	}

	module.exports = baseGet;


/***/ }),
/* 170 */
/***/ (function(module, exports, __webpack_require__) {

	var baseIsEqualDeep = __webpack_require__(419),
	    isObjectLike = __webpack_require__(42);

	/**
	 * The base implementation of `_.isEqual` which supports partial comparisons
	 * and tracks traversed objects.
	 *
	 * @private
	 * @param {*} value The value to compare.
	 * @param {*} other The other value to compare.
	 * @param {boolean} bitmask The bitmask flags.
	 *  1 - Unordered comparison
	 *  2 - Partial comparison
	 * @param {Function} [customizer] The function to customize comparisons.
	 * @param {Object} [stack] Tracks traversed `value` and `other` objects.
	 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
	 */
	function baseIsEqual(value, other, bitmask, customizer, stack) {
	  if (value === other) {
	    return true;
	  }
	  if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
	    return value !== value && other !== other;
	  }
	  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
	}

	module.exports = baseIsEqual;


/***/ }),
/* 171 */
/***/ (function(module, exports, __webpack_require__) {

	var isArray = __webpack_require__(20),
	    isKey = __webpack_require__(94),
	    stringToPath = __webpack_require__(479),
	    toString = __webpack_require__(488);

	/**
	 * Casts `value` to a path array if it's not one.
	 *
	 * @private
	 * @param {*} value The value to inspect.
	 * @param {Object} [object] The object to query keys on.
	 * @returns {Array} Returns the cast property path array.
	 */
	function castPath(value, object) {
	  if (isArray(value)) {
	    return value;
	  }
	  return isKey(value, object) ? [value] : stringToPath(toString(value));
	}

	module.exports = castPath;


/***/ }),
/* 172 */
/***/ (function(module, exports, __webpack_require__) {

	var SetCache = __webpack_require__(402),
	    arraySome = __webpack_require__(410),
	    cacheHas = __webpack_require__(432);

	/** Used to compose bitmasks for value comparisons. */
	var COMPARE_PARTIAL_FLAG = 1,
	    COMPARE_UNORDERED_FLAG = 2;

	/**
	 * A specialized version of `baseIsEqualDeep` for arrays with support for
	 * partial deep comparisons.
	 *
	 * @private
	 * @param {Array} array The array to compare.
	 * @param {Array} other The other array to compare.
	 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
	 * @param {Function} customizer The function to customize comparisons.
	 * @param {Function} equalFunc The function to determine equivalents of values.
	 * @param {Object} stack Tracks traversed `array` and `other` objects.
	 * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
	 */
	function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
	  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
	      arrLength = array.length,
	      othLength = other.length;

	  if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
	    return false;
	  }
	  // Assume cyclic values are equal.
	  var stacked = stack.get(array);
	  if (stacked && stack.get(other)) {
	    return stacked == other;
	  }
	  var index = -1,
	      result = true,
	      seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;

	  stack.set(array, other);
	  stack.set(other, array);

	  // Ignore non-index properties.
	  while (++index < arrLength) {
	    var arrValue = array[index],
	        othValue = other[index];

	    if (customizer) {
	      var compared = isPartial
	        ? customizer(othValue, arrValue, index, other, array, stack)
	        : customizer(arrValue, othValue, index, array, other, stack);
	    }
	    if (compared !== undefined) {
	      if (compared) {
	        continue;
	      }
	      result = false;
	      break;
	    }
	    // Recursively compare arrays (susceptible to call stack limits).
	    if (seen) {
	      if (!arraySome(other, function(othValue, othIndex) {
	            if (!cacheHas(seen, othIndex) &&
	                (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
	              return seen.push(othIndex);
	            }
	          })) {
	        result = false;
	        break;
	      }
	    } else if (!(
	          arrValue === othValue ||
	            equalFunc(arrValue, othValue, bitmask, customizer, stack)
	        )) {
	      result = false;
	      break;
	    }
	  }
	  stack['delete'](array);
	  stack['delete'](other);
	  return result;
	}

	module.exports = equalArrays;


/***/ }),
/* 173 */
146,
/* 174 */
113,
/* 175 */
/***/ (function(module, exports, __webpack_require__) {

	var isObject = __webpack_require__(96);

	/**
	 * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.
	 *
	 * @private
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` if suitable for strict
	 *  equality comparisons, else `false`.
	 */
	function isStrictComparable(value) {
	  return value === value && !isObject(value);
	}

	module.exports = isStrictComparable;


/***/ }),
/* 176 */
/***/ (function(module, exports) {

	/**
	 * A specialized version of `matchesProperty` for source values suitable
	 * for strict equality comparisons, i.e. `===`.
	 *
	 * @private
	 * @param {string} key The key of the property to get.
	 * @param {*} srcValue The value to match.
	 * @returns {Function} Returns the new spec function.
	 */
	function matchesStrictComparable(key, srcValue) {
	  return function(object) {
	    if (object == null) {
	      return false;
	    }
	    return object[key] === srcValue &&
	      (srcValue !== undefined || (key in Object(object)));
	  };
	}

	module.exports = matchesStrictComparable;


/***/ }),
/* 177 */
/***/ (function(module, exports) {

	/** Used for built-in method references. */
	var funcProto = Function.prototype;

	/** Used to resolve the decompiled source of functions. */
	var funcToString = funcProto.toString;

	/**
	 * Converts `func` to its source code.
	 *
	 * @private
	 * @param {Function} func The function to convert.
	 * @returns {string} Returns the source code.
	 */
	function toSource(func) {
	  if (func != null) {
	    try {
	      return funcToString.call(func);
	    } catch (e) {}
	    try {
	      return (func + '');
	    } catch (e) {}
	  }
	  return '';
	}

	module.exports = toSource;


/***/ }),
/* 178 */
74,
/* 179 */
[1940, 418, 42],
/* 180 */
[1942, 182, 95],
/* 181 */
[1945, 19, 487],
/* 182 */
[1948, 41, 96],
/* 183 */
[1952, 422, 431, 468],
/* 184 */,
/* 185 */
/***/ (function(module, exports) {

	module.exports = __WEBPACK_EXTERNAL_MODULE_185__;

/***/ }),
/* 186 */,
/* 187 */,
/* 188 */
[1803, 38, 24],
/* 189 */
/***/ (function(module, exports) {

	/**
	 * A specialized version of `_.filter` for arrays without support for
	 * iteratee shorthands.
	 *
	 * @private
	 * @param {Array} [array] The array to iterate over.
	 * @param {Function} predicate The function invoked per iteration.
	 * @returns {Array} Returns the new filtered array.
	 */
	function arrayFilter(array, predicate) {
	  var index = -1,
	      length = array == null ? 0 : array.length,
	      resIndex = 0,
	      result = [];

	  while (++index < length) {
	    var value = array[index];
	    if (predicate(value, index, array)) {
	      result[resIndex++] = value;
	    }
	  }
	  return result;
	}

	module.exports = arrayFilter;


/***/ }),
/* 190 */,
/* 191 */,
/* 192 */,
/* 193 */,
/* 194 */,
/* 195 */,
/* 196 */
[1808, 38, 24],
/* 197 */
[1820, 315, 116, 7, 205, 113, 207],
/* 198 */
/***/ (function(module, exports) {

	/**
	 * Appends the elements of `values` to `array`.
	 *
	 * @private
	 * @param {Array} array The array to modify.
	 * @param {Array} values The values to append.
	 * @returns {Array} Returns `array`.
	 */
	function arrayPush(array, values) {
	  var index = -1,
	      length = values.length,
	      offset = array.length;

	  while (++index < length) {
	    array[offset + index] = values[index];
	  }
	  return array;
	}

	module.exports = arrayPush;


/***/ }),
/* 199 */
/***/ (function(module, exports) {

	/**
	 * The base implementation of `_.findIndex` and `_.findLastIndex` without
	 * support for iteratee shorthands.
	 *
	 * @private
	 * @param {Array} array The array to inspect.
	 * @param {Function} predicate The function invoked per iteration.
	 * @param {number} fromIndex The index to search from.
	 * @param {boolean} [fromRight] Specify iterating from right to left.
	 * @returns {number} Returns the index of the matched value, else `-1`.
	 */
	function baseFindIndex(array, predicate, fromIndex, fromRight) {
	  var length = array.length,
	      index = fromIndex + (fromRight ? 1 : -1);

	  while ((fromRight ? index-- : ++index < length)) {
	    if (predicate(array[index], index, array)) {
	      return index;
	    }
	  }
	  return -1;
	}

	module.exports = baseFindIndex;


/***/ }),
/* 200 */
[1860, 38],
/* 201 */
/***/ (function(module, exports) {

	/** Used for built-in method references. */
	var objectProto = Object.prototype;

	/**
	 * Checks if `value` is likely a prototype object.
	 *
	 * @private
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
	 */
	function isPrototype(value) {
	  var Ctor = value && value.constructor,
	      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;

	  return value === proto;
	}

	module.exports = isPrototype;


/***/ }),
/* 202 */
/***/ (function(module, exports) {

	/**
	 * Creates a unary function that invokes `func` with its argument transformed.
	 *
	 * @private
	 * @param {Function} func The function to wrap.
	 * @param {Function} transform The argument transform.
	 * @returns {Function} Returns the new function.
	 */
	function overArg(func, transform) {
	  return function(arg) {
	    return func(transform(arg));
	  };
	}

	module.exports = overArg;


/***/ }),
/* 203 */
177,
/* 204 */
/***/ (function(module, exports, __webpack_require__) {

	var arrayMap = __webpack_require__(52),
	    baseIntersection = __webpack_require__(308),
	    baseRest = __webpack_require__(34),
	    castArrayLikeObject = __webpack_require__(317);

	/**
	 * Creates an array of unique values that are included in all given arrays
	 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
	 * for equality comparisons. The order and references of result values are
	 * determined by the first array.
	 *
	 * @static
	 * @memberOf _
	 * @since 0.1.0
	 * @category Array
	 * @param {...Array} [arrays] The arrays to inspect.
	 * @returns {Array} Returns the new array of intersecting values.
	 * @example
	 *
	 * _.intersection([2, 1], [2, 3]);
	 * // => [2]
	 */
	var intersection = baseRest(function(arrays) {
	  var mapped = arrayMap(arrays, castArrayLikeObject);
	  return (mapped.length && mapped[0] === arrays[0])
	    ? baseIntersection(mapped)
	    : [];
	});

	module.exports = intersection;


/***/ }),
/* 205 */
[1945, 24, 353],
/* 206 */,
/* 207 */
[1952, 312, 72, 342],
/* 208 */
[1956, 112],
/* 209 */,
/* 210 */,
/* 211 */,
/* 212 */,
/* 213 */,
/* 214 */
/***/ (function(module, exports, __webpack_require__) {

	"use strict";

	// rawAsap provides everything we need except exception management.
	var rawAsap = __webpack_require__(215);
	// RawTasks are recycled to reduce GC churn.
	var freeTasks = [];
	// We queue errors to ensure they are thrown in right order (FIFO).
	// Array-as-queue is good enough here, since we are just dealing with exceptions.
	var pendingErrors = [];
	var requestErrorThrow = rawAsap.makeRequestCallFromTimer(throwFirstError);

	function throwFirstError() {
	    if (pendingErrors.length) {
	        throw pendingErrors.shift();
	    }
	}

	/**
	 * Calls a task as soon as possible after returning, in its own event, with priority
	 * over other events like animation, reflow, and repaint. An error thrown from an
	 * event will not interrupt, nor even substantially slow down the processing of
	 * other events, but will be rather postponed to a lower priority event.
	 * @param {{call}} task A callable object, typically a function that takes no
	 * arguments.
	 */
	module.exports = asap;
	function asap(task) {
	    var rawTask;
	    if (freeTasks.length) {
	        rawTask = freeTasks.pop();
	    } else {
	        rawTask = new RawTask();
	    }
	    rawTask.task = task;
	    rawAsap(rawTask);
	}

	// We wrap tasks with recyclable task objects.  A task object implements
	// `call`, just like a function.
	function RawTask() {
	    this.task = null;
	}

	// The sole purpose of wrapping the task is to catch the exception and recycle
	// the task object after its single use.
	RawTask.prototype.call = function () {
	    try {
	        this.task.call();
	    } catch (error) {
	        if (asap.onerror) {
	            // This hook exists purely for testing purposes.
	            // Its name will be periodically randomized to break any code that
	            // depends on its existence.
	            asap.onerror(error);
	        } else {
	            // In a web browser, exceptions are not fatal. However, to avoid
	            // slowing down the queue of pending tasks, we rethrow the error in a
	            // lower priority turn.
	            pendingErrors.push(error);
	            requestErrorThrow();
	        }
	    } finally {
	        this.task = null;
	        freeTasks[freeTasks.length] = this;
	    }
	};


/***/ }),
/* 215 */
/***/ (function(module, exports, __webpack_require__) {

	"use strict";

	// Use the fastest means possible to execute a task in its own turn, with
	// priority over other events including IO, animation, reflow, and redraw
	// events in browsers.
	//
	// An exception thrown by a task will permanently interrupt the processing of
	// subsequent tasks. The higher level `asap` function ensures that if an
	// exception is thrown by a task, that the task queue will continue flushing as
	// soon as possible, but if you use `rawAsap` directly, you are responsible to
	// either ensure that no exceptions are thrown from your task, or to manually
	// call `rawAsap.requestFlush` if an exception is thrown.
	module.exports = rawAsap;
	function rawAsap(task) {
	    if (!queue.length) {
	        requestFlush();
	        flushing = true;
	    }
	    // Equivalent to push, but avoids a function call.
	    queue[queue.length] = task;
	}

	var queue = [];
	// Once a flush has been requested, no further calls to `requestFlush` are
	// necessary until the next `flush` completes.
	var flushing = false;
	// `requestFlush` is an implementation-specific method that attempts to kick
	// off a `flush` event as quickly as possible. `flush` will attempt to exhaust
	// the event queue before yielding to the browser's own event loop.
	var requestFlush;
	// The position of the next task to execute in the task queue. This is
	// preserved between calls to `flush` so that it can be resumed if
	// a task throws an exception.
	var index = 0;
	// If a task schedules additional tasks recursively, the task queue can grow
	// unbounded. To prevent memory exhaustion, the task queue will periodically
	// truncate already-completed tasks.
	var capacity = 1024;

	// The flush function processes all tasks that have been scheduled with
	// `rawAsap` unless and until one of those tasks throws an exception.
	// If a task throws an exception, `flush` ensures that its state will remain
	// consistent and will resume where it left off when called again.
	// However, `flush` does not make any arrangements to be called again if an
	// exception is thrown.
	function flush() {
	    while (index < queue.length) {
	        var currentIndex = index;
	        // Advance the index before calling the task. This ensures that we will
	        // begin flushing on the next task the task throws an error.
	        index = index + 1;
	        queue[currentIndex].call();
	        // Prevent leaking memory for long chains of recursive calls to `asap`.
	        // If we call `asap` within tasks scheduled by `asap`, the queue will
	        // grow, but to avoid an O(n) walk for every task we execute, we don't
	        // shift tasks off the queue after they have been executed.
	        // Instead, we periodically shift 1024 tasks off the queue.
	        if (index > capacity) {
	            // Manually shift all values starting at the index back to the
	            // beginning of the queue.
	            for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {
	                queue[scan] = queue[scan + index];
	            }
	            queue.length -= index;
	            index = 0;
	        }
	    }
	    queue.length = 0;
	    index = 0;
	    flushing = false;
	}

	// `requestFlush` is implemented using a strategy based on data collected from
	// every available SauceLabs Selenium web driver worker at time of writing.
	// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593

	// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that
	// have WebKitMutationObserver but not un-prefixed MutationObserver.
	// Must use `global` or `self` instead of `window` to work in both frames and web
	// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.

	/* globals self */
	var scope = typeof (window) !== "undefined" ? (window) : self;
	var BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;

	// MutationObservers are desirable because they have high priority and work
	// reliably everywhere they are implemented.
	// They are implemented in all modern browsers.
	//
	// - Android 4-4.3
	// - Chrome 26-34
	// - Firefox 14-29
	// - Internet Explorer 11
	// - iPad Safari 6-7.1
	// - iPhone Safari 7-7.1
	// - Safari 6-7
	if (typeof BrowserMutationObserver === "function") {
	    requestFlush = makeRequestCallFromMutationObserver(flush);

	// MessageChannels are desirable because they give direct access to the HTML
	// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera
	// 11-12, and in web workers in many engines.
	// Although message channels yield to any queued rendering and IO tasks, they
	// would be better than imposing the 4ms delay of timers.
	// However, they do not work reliably in Internet Explorer or Safari.

	// Internet Explorer 10 is the only browser that has setImmediate but does
	// not have MutationObservers.
	// Although setImmediate yields to the browser's renderer, it would be
	// preferrable to falling back to setTimeout since it does not have
	// the minimum 4ms penalty.
	// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and
	// Desktop to a lesser extent) that renders both setImmediate and
	// MessageChannel useless for the purposes of ASAP.
	// https://github.com/kriskowal/q/issues/396

	// Timers are implemented universally.
	// We fall back to timers in workers in most engines, and in foreground
	// contexts in the following browsers.
	// However, note that even this simple case requires nuances to operate in a
	// broad spectrum of browsers.
	//
	// - Firefox 3-13
	// - Internet Explorer 6-9
	// - iPad Safari 4.3
	// - Lynx 2.8.7
	} else {
	    requestFlush = makeRequestCallFromTimer(flush);
	}

	// `requestFlush` requests that the high priority event queue be flushed as
	// soon as possible.
	// This is useful to prevent an error thrown in a task from stalling the event
	// queue if the exception handled by Node.js’s
	// `process.on("uncaughtException")` or by a domain.
	rawAsap.requestFlush = requestFlush;

	// To request a high priority event, we induce a mutation observer by toggling
	// the text of a text node between "1" and "-1".
	function makeRequestCallFromMutationObserver(callback) {
	    var toggle = 1;
	    var observer = new BrowserMutationObserver(callback);
	    var node = document.createTextNode("");
	    observer.observe(node, {characterData: true});
	    return function requestCall() {
	        toggle = -toggle;
	        node.data = toggle;
	    };
	}

	// The message channel technique was discovered by Malte Ubl and was the
	// original foundation for this library.
	// http://www.nonblocking.io/2011/06/windownexttick.html

	// Safari 6.0.5 (at least) intermittently fails to create message ports on a
	// page's first load. Thankfully, this version of Safari supports
	// MutationObservers, so we don't need to fall back in that case.

	// function makeRequestCallFromMessageChannel(callback) {
	//     var channel = new MessageChannel();
	//     channel.port1.onmessage = callback;
	//     return function requestCall() {
	//         channel.port2.postMessage(0);
	//     };
	// }

	// For reasons explained above, we are also unable to use `setImmediate`
	// under any circumstances.
	// Even if we were, there is another bug in Internet Explorer 10.
	// It is not sufficient to assign `setImmediate` to `requestFlush` because
	// `setImmediate` must be called *by name* and therefore must be wrapped in a
	// closure.
	// Never forget.

	// function makeRequestCallFromSetImmediate(callback) {
	//     return function requestCall() {
	//         setImmediate(callback);
	//     };
	// }

	// Safari 6.0 has a problem where timers will get lost while the user is
	// scrolling. This problem does not impact ASAP because Safari 6.0 supports
	// mutation observers, so that implementation is used instead.
	// However, if we ever elect to use timers in Safari, the prevalent work-around
	// is to add a scroll event listener that calls for a flush.

	// `setTimeout` does not call the passed callback if the delay is less than
	// approximately 7 in web workers in Firefox 8 through 18, and sometimes not
	// even then.

	function makeRequestCallFromTimer(callback) {
	    return function requestCall() {
	        // We dispatch a timeout with a specified delay of 0 for engines that
	        // can reliably accommodate that request. This will usually be snapped
	        // to a 4 milisecond delay, but once we're flushing, there's no delay
	        // between events.
	        var timeoutHandle = setTimeout(handleTimer, 0);
	        // However, since this timer gets frequently dropped in Firefox
	        // workers, we enlist an interval handle that will try to fire
	        // an event 20 times per second until it succeeds.
	        var intervalHandle = setInterval(handleTimer, 50);

	        function handleTimer() {
	            // Whichever timer succeeds will cancel both timers and
	            // execute the callback.
	            clearTimeout(timeoutHandle);
	            clearInterval(intervalHandle);
	            callback();
	        }
	    };
	}

	// This is for `asap.js` only.
	// Its name will be periodically randomized to break any code that depends on
	// its existence.
	rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;

	// ASAP was originally a nextTick shim included in Q. This was factored out
	// into this ASAP package. It was later adapted to RSVP which made further
	// amendments. These decisions, particularly to marginalize MessageChannel and
	// to capture the MutationObserver implementation in a closure, were integrated
	// back into ASAP proper.
	// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js


/***/ }),
/* 216 */,
/* 217 */,
/* 218 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _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; };

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _AutoCompleteFilter = __webpack_require__(79);

	var _AutoCompleteFilter2 = _interopRequireDefault(_AutoCompleteFilter);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	exports['default'] = function (props) {
	  return _react2['default'].createElement(_AutoCompleteFilter2['default'], _extends({}, props, { multiSelection: true }));
	};

/***/ }),
/* 219 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _ExcelColumn = __webpack_require__(18);

	var _ExcelColumn2 = _interopRequireDefault(_ExcelColumn);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var RuleType = {
	  Number: 1,
	  Range: 2,
	  GreaterThen: 3,
	  LessThen: 4
	};

	var NumericFilter = function (_React$Component) {
	  _inherits(NumericFilter, _React$Component);

	  function NumericFilter(props) {
	    _classCallCheck(this, NumericFilter);

	    var _this = _possibleConstructorReturn(this, (NumericFilter.__proto__ || Object.getPrototypeOf(NumericFilter)).call(this, props));

	    _this.handleChange = _this.handleChange.bind(_this);
	    _this.handleKeyPress = _this.handleKeyPress.bind(_this);
	    _this.getRules = _this.getRules.bind(_this);
	    return _this;
	  }

	  _createClass(NumericFilter, [{
	    key: 'filterValues',
	    value: function filterValues(row, columnFilter, columnKey) {
	      if (columnFilter.filterTerm == null) {
	        return true;
	      }
	      var result = false;
	      // implement default filter logic
	      var value = parseInt(row[columnKey], 10);
	      for (var ruleKey in columnFilter.filterTerm) {
	        if (!columnFilter.filterTerm.hasOwnProperty(ruleKey)) {
	          continue;
	        }

	        var rule = columnFilter.filterTerm[ruleKey];

	        switch (rule.type) {
	          case RuleType.Number:
	            if (rule.value === value) {
	              result = true;
	            }
	            break;
	          case RuleType.GreaterThen:
	            if (rule.value <= value) {
	              result = true;
	            }
	            break;
	          case RuleType.LessThen:
	            if (rule.value >= value) {
	              result = true;
	            }
	            break;
	          case RuleType.Range:
	            if (rule.begin <= value && rule.end >= value) {
	              result = true;
	            }
	            break;
	          default:
	            // do nothing
	            break;
	        }
	      }
	      return result;
	    }
	  }, {
	    key: 'getRules',
	    value: function getRules(value) {
	      var rules = [];
	      if (value === '') {
	        return rules;
	      }
	      // check comma
	      var list = value.split(',');
	      if (list.length > 0) {
	        // handle each value with comma
	        for (var key in list) {
	          if (!list.hasOwnProperty(key)) {
	            continue;
	          }

	          var obj = list[key];
	          if (obj.indexOf('-') > 0) {
	            // handle dash
	            var begin = parseInt(obj.split('-')[0], 10);
	            var end = parseInt(obj.split('-')[1], 10);
	            rules.push({ type: RuleType.Range, begin: begin, end: end });
	          } else if (obj.indexOf('>') > -1) {
	            // handle greater then
	            var _begin = parseInt(obj.split('>')[1], 10);
	            rules.push({ type: RuleType.GreaterThen, value: _begin });
	          } else if (obj.indexOf('<') > -1) {
	            // handle less then
	            var _end = parseInt(obj.split('<')[1], 10);
	            rules.push({ type: RuleType.LessThen, value: _end });
	          } else {
	            // handle normal values
	            var numericValue = parseInt(obj, 10);
	            rules.push({ type: RuleType.Number, value: numericValue });
	          }
	        }
	      }
	      return rules;
	    }
	  }, {
	    key: 'handleKeyPress',
	    value: function handleKeyPress(e) {
	      // Validate the input
	      var regex = '>|<|-|,|([0-9])';
	      var result = RegExp(regex).test(e.key);
	      if (result === false) {
	        e.preventDefault();
	      }
	    }
	  }, {
	    key: 'handleChange',
	    value: function handleChange(e) {
	      var value = e.target.value;
	      var filters = this.getRules(value);
	      this.props.onChange({ filterTerm: filters.length > 0 ? filters : null, column: this.props.column, rawValue: value, filterValues: this.filterValues });
	    }
	  }, {
	    key: 'render',
	    value: function render() {
	      var inputKey = 'header-filter-' + this.props.column.key;
	      var columnStyle = {
	        float: 'left',
	        marginRight: 5,
	        maxWidth: '80%'
	      };
	      var badgeStyle = {
	        cursor: 'help'
	      };

	      var tooltipText = 'Input Methods: Range (x-y), Greater Then (>x), Less Then (<y)';

	      return _react2['default'].createElement(
	        'div',
	        null,
	        _react2['default'].createElement(
	          'div',
	          { style: columnStyle },
	          _react2['default'].createElement('input', { key: inputKey, type: 'text', placeholder: 'e.g. 3,10-15,>20', className: 'form-control input-sm', onChange: this.handleChange, onKeyPress: this.handleKeyPress })
	        ),
	        _react2['default'].createElement(
	          'div',
	          { className: 'input-sm' },
	          _react2['default'].createElement(
	            'span',
	            { className: 'badge', style: badgeStyle, title: tooltipText },
	            '?'
	          )
	        )
	      );
	    }
	  }]);

	  return NumericFilter;
	}(_react2['default'].Component);

	NumericFilter.propTypes = {
	  onChange: _propTypes2['default'].func.isRequired,
	  column: _propTypes2['default'].shape(_ExcelColumn2['default'])
	};
	module.exports = NumericFilter;

/***/ }),
/* 220 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _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; };

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _AutoCompleteFilter = __webpack_require__(79);

	var _AutoCompleteFilter2 = _interopRequireDefault(_AutoCompleteFilter);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	exports['default'] = function (props) {
	  return _react2['default'].createElement(_AutoCompleteFilter2['default'], _extends({}, props, { multiSelection: false }));
	};

/***/ }),
/* 221 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _NumericFilter = __webpack_require__(219);

	var _NumericFilter2 = _interopRequireDefault(_NumericFilter);

	var _AutoCompleteFilter = __webpack_require__(79);

	var _AutoCompleteFilter2 = _interopRequireDefault(_AutoCompleteFilter);

	var _MultiSelectFilter = __webpack_require__(218);

	var _MultiSelectFilter2 = _interopRequireDefault(_MultiSelectFilter);

	var _SingleSelectFilter = __webpack_require__(220);

	var _SingleSelectFilter2 = _interopRequireDefault(_SingleSelectFilter);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	var Filters = {
	  NumericFilter: _NumericFilter2['default'],
	  AutoCompleteFilter: _AutoCompleteFilter2['default'],
	  MultiSelectFilter: _MultiSelectFilter2['default'],
	  SingleSelectFilter: _SingleSelectFilter2['default']
	};

	module.exports = Filters;

/***/ }),
/* 222 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _utils = __webpack_require__(5);

	var filterRows = function filterRows(filters) {
	  var rows = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];

	  return rows.filter(function (r) {
	    var retriever = (0, _utils.getMixedTypeValueRetriever)((0, _utils.isImmutableCollection)(r));
	    var include = true;
	    for (var columnKey in filters) {
	      if (filters.hasOwnProperty(columnKey)) {
	        var colFilter = filters[columnKey];
	        // check if custom filter function exists
	        if (colFilter.filterValues && typeof colFilter.filterValues === 'function') {
	          include = include & colFilter.filterValues(r, colFilter, columnKey);
	        } else if (typeof colFilter.filterTerm === 'string') {
	          // default filter action
	          var rowValue = retriever.getValue(r, columnKey);
	          if (rowValue !== undefined && rowValue !== null) {
	            if (rowValue.toString().toLowerCase().indexOf(colFilter.filterTerm.toLowerCase()) === -1) {
	              include = include & false;
	            }
	          } else {
	            include = include & false;
	          }
	        }
	      }
	    }
	    return Boolean(include);
	  });
	};

	module.exports = filterRows;

/***/ }),
/* 223 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _utils = __webpack_require__(5);

	var _RowGrouperResolver = __webpack_require__(224);

	var _RowGrouperResolver2 = _interopRequireDefault(_RowGrouperResolver);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	var RowGrouper = function () {
	  function RowGrouper(columns, expandedRows) {
	    var isImmutable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;

	    _classCallCheck(this, RowGrouper);

	    this.columns = columns.slice(0);
	    this.expandedRows = expandedRows;
	    this.resolver = new _RowGrouperResolver2['default'](isImmutable);
	  }

	  _createClass(RowGrouper, [{
	    key: 'isRowExpanded',
	    value: function isRowExpanded(columnName, name) {
	      var isExpanded = true;
	      var expandedRowGroup = this.expandedRows[columnName];
	      if (expandedRowGroup && expandedRowGroup[name]) {
	        isExpanded = expandedRowGroup[name].isExpanded;
	      }
	      return isExpanded;
	    }
	  }, {
	    key: 'groupRowsByColumn',
	    value: function groupRowsByColumn(rows) {
	      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

	      var nextColumnIndex = columnIndex;
	      var columnName = this.columns.length > 0 && typeof this.columns[columnIndex] === 'string' ? this.columns[columnIndex] : this.columns[columnIndex].key;
	      var columnGroupDisplayName = this.columns.length > 0 && typeof this.columns[columnIndex] === 'string' ? this.columns[columnIndex] : this.columns[columnIndex].name;
	      var groupedRows = this.resolver.getGroupedRows(rows, columnName);
	      var keys = this.resolver.getGroupKeys(groupedRows);
	      var dataviewRows = this.resolver.initRowsCollection();

	      for (var i = 0; i < keys.length; i++) {
	        var key = keys[i];
	        var isExpanded = this.isRowExpanded(columnName, key);
	        var rowGroupHeader = { name: key, __metaData: { isGroup: true, treeDepth: columnIndex, isExpanded: isExpanded, columnGroupName: columnName, columnGroupDisplayName: columnGroupDisplayName } };

	        dataviewRows = this.resolver.addHeaderRow(rowGroupHeader, dataviewRows);

	        if (isExpanded) {
	          nextColumnIndex = columnIndex + 1;
	          if (this.columns.length > nextColumnIndex) {
	            dataviewRows = dataviewRows.concat(this.groupRowsByColumn(this.resolver.getRowObj(groupedRows, key), nextColumnIndex));
	            nextColumnIndex = columnIndex - 1;
	          } else {
	            dataviewRows = dataviewRows.concat(this.resolver.getRowObj(groupedRows, key));
	          }
	        }
	      }
	      return dataviewRows;
	    }
	  }]);

	  return RowGrouper;
	}();

	var groupRows = function groupRows(rows, groupedColumns, expandedRows) {
	  var rowGrouper = new RowGrouper(groupedColumns, expandedRows, (0, _utils.isImmutableCollection)(rows));
	  return rowGrouper.groupRowsByColumn(rows, 0);
	};

	module.exports = groupRows;

/***/ }),
/* 224 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _immutable = __webpack_require__(185);

	var _groupBy = __webpack_require__(481);

	var _groupBy2 = _interopRequireDefault(_groupBy);

	var _utils = __webpack_require__(5);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	var RowGrouperResolver = function () {
	  function RowGrouperResolver(isImmutable) {
	    _classCallCheck(this, RowGrouperResolver);

	    this.isImmutable = isImmutable;
	    this.getRowObj = (0, _utils.getMixedTypeValueRetriever)(isImmutable).getValue;
	  }

	  _createClass(RowGrouperResolver, [{
	    key: 'initRowsCollection',
	    value: function initRowsCollection() {
	      return this.isImmutable ? new _immutable.List() : [];
	    }
	  }, {
	    key: 'getGroupedRows',
	    value: function getGroupedRows(rows, columnName) {
	      return this.isImmutable ? rows.groupBy(function (x) {
	        return (0, _utils.isImmutableMap)(x) ? x.get(columnName) : x[columnName];
	      }) : (0, _groupBy2['default'])(rows, columnName);
	    }
	  }, {
	    key: 'getGroupKeys',
	    value: function getGroupKeys(groupedRows) {
	      var getKeys = Object.keys;
	      if (this.isImmutable) {
	        getKeys = function getKeys(col) {
	          var keys = [];
	          var iterator = col.keys();
	          var item = iterator.next();

	          while (!item.done) {
	            keys.push(item.value);
	            item = iterator.next();
	          }
	          return keys;
	        };
	      }
	      return getKeys(groupedRows);
	    }
	  }, {
	    key: 'addHeaderRow',
	    value: function addHeaderRow(rowGroupHeader, dataviewRows) {
	      var rows = dataviewRows;
	      var dvRows = rows.push(rowGroupHeader);
	      if (this.isImmutable) {
	        return dvRows;
	      }
	      return rows;
	    }
	  }]);

	  return RowGrouperResolver;
	}();

	exports['default'] = RowGrouperResolver;

/***/ }),
/* 225 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _utils = __webpack_require__(5);

	var comparer = function comparer(a, b) {
	  if (a > b) {
	    return 1;
	  } else if (a < b) {
	    return -1;
	  }
	  return 0;
	};

	var sortRows = function sortRows(rows, sortColumn, sortDirection) {
	  var retriever = (0, _utils.getMixedTypeValueRetriever)((0, _utils.isImmutableCollection)(rows));
	  var sortDirectionSign = sortDirection === 'ASC' ? 1 : -1;
	  var rowComparer = function rowComparer(a, b) {
	    return sortDirectionSign * comparer(retriever.getValue(a, sortColumn), retriever.getValue(b, sortColumn));
	  };
	  if (sortDirection === 'NONE') {
	    return rows;
	  }
	  return rows.slice().sort(rowComparer);
	};

	module.exports = sortRows;
	module.exports.comparer = comparer;

/***/ }),
/* 226 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	module.exports = {
	  Selectors: __webpack_require__(127)
	};

/***/ }),
/* 227 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _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; };

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _html5DragDropContext = __webpack_require__(130);

	var _html5DragDropContext2 = _interopRequireDefault(_html5DragDropContext);

	var _DraggableHeaderCell = __webpack_require__(228);

	var _DraggableHeaderCell2 = _interopRequireDefault(_DraggableHeaderCell);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var DraggableContainer = function (_React$Component) {
	  _inherits(DraggableContainer, _React$Component);

	  function DraggableContainer() {
	    _classCallCheck(this, DraggableContainer);

	    return _possibleConstructorReturn(this, (DraggableContainer.__proto__ || Object.getPrototypeOf(DraggableContainer)).apply(this, arguments));
	  }

	  _createClass(DraggableContainer, [{
	    key: 'render',
	    value: function render() {
	      return _react2['default'].cloneElement(_react2['default'].Children.only(this.props.children), _extends({}, this.props, {
	        draggableHeaderCell: _DraggableHeaderCell2['default']
	      }));
	    }
	  }]);

	  return DraggableContainer;
	}(_react2['default'].Component);

	DraggableContainer.propTypes = {
	  children: _propTypes2['default'].element.isRequired
	};

	exports['default'] = (0, _html5DragDropContext2['default'])(DraggableContainer);

/***/ }),
/* 228 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _reactDnd = __webpack_require__(25);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var DraggableHeaderCell = function (_React$Component) {
	  _inherits(DraggableHeaderCell, _React$Component);

	  function DraggableHeaderCell() {
	    _classCallCheck(this, DraggableHeaderCell);

	    return _possibleConstructorReturn(this, (DraggableHeaderCell.__proto__ || Object.getPrototypeOf(DraggableHeaderCell)).apply(this, arguments));
	  }

	  _createClass(DraggableHeaderCell, [{
	    key: 'render',
	    value: function render() {
	      var _props = this.props,
	          connectDragSource = _props.connectDragSource,
	          connectDropTarget = _props.connectDropTarget,
	          isDragging = _props.isDragging,
	          isOver = _props.isOver,
	          canDrop = _props.canDrop;


	      var opacity = 1;
	      if (isDragging) {
	        opacity = 0.2;
	      }

	      // set drag source and drop target on header cell
	      // width: 0 - otherwise drag clone was wrongly positioned
	      return connectDragSource(connectDropTarget(_react2['default'].createElement(
	        'div',
	        {
	          style: { width: 0, cursor: 'move', opacity: opacity },
	          className: isOver && canDrop ? 'rdg-can-drop' : ''
	        },
	        this.props.children
	      )));
	    }
	  }]);

	  return DraggableHeaderCell;
	}(_react2['default'].Component);

	// drop source


	function collect(connect, monitor) {
	  return {
	    connectDragSource: connect.dragSource(),
	    isDragging: monitor.isDragging()
	  };
	}

	var headerCellSource = {
	  beginDrag: function beginDrag(props) {
	    return {
	      // source column
	      key: props.column.key
	    };
	  },
	  endDrag: function endDrag(props, monitor) {
	    // check if drop was made in droppable zone
	    if (monitor.didDrop()) {
	      var source = monitor.getDropResult().source;
	      var _target = monitor.getDropResult().target;
	      return props.onHeaderDrop(source, _target);
	    }
	  }
	};

	// drop target
	var target = {
	  drop: function drop(props, monitor) {
	    var source = monitor.getItem().key;
	    var targetKey = props.column.key;
	    return {
	      source: source,
	      target: targetKey
	    };
	  }
	};

	function targetCollect(connect, monitor) {
	  return {
	    connectDropTarget: connect.dropTarget(),
	    isOver: monitor.isOver(),
	    canDrop: monitor.canDrop(),
	    draggedHeader: monitor.getItem()
	  };
	}

	DraggableHeaderCell.propTypes = {
	  connectDragSource: _propTypes2['default'].func.isRequired,
	  connectDropTarget: _propTypes2['default'].func.isRequired,
	  isDragging: _propTypes2['default'].bool.isRequired,
	  isOver: _propTypes2['default'].bool,
	  canDrop: _propTypes2['default'].bool,
	  children: _propTypes2['default'].element.isRequired
	};

	DraggableHeaderCell = (0, _reactDnd.DropTarget)('Column', target, targetCollect)(DraggableHeaderCell);
	DraggableHeaderCell = (0, _reactDnd.DragSource)('Column', headerCellSource, collect)(DraggableHeaderCell);

	exports['default'] = DraggableHeaderCell;

/***/ }),
/* 229 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _DraggableContainer = __webpack_require__(227);

	var _DraggableContainer2 = _interopRequireDefault(_DraggableContainer);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	module.exports = { DraggableContainer: _DraggableContainer2['default'] };

/***/ }),
/* 230 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _html5DragDropContext = __webpack_require__(130);

	var _html5DragDropContext2 = _interopRequireDefault(_html5DragDropContext);

	var _DraggableHeaderCell = __webpack_require__(128);

	var _DraggableHeaderCell2 = _interopRequireDefault(_DraggableHeaderCell);

	var _RowDragLayer = __webpack_require__(233);

	var _RowDragLayer2 = _interopRequireDefault(_RowDragLayer);

	var _utils = __webpack_require__(5);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var DraggableContainer = function (_Component) {
	  _inherits(DraggableContainer, _Component);

	  function DraggableContainer() {
	    _classCallCheck(this, DraggableContainer);

	    return _possibleConstructorReturn(this, (DraggableContainer.__proto__ || Object.getPrototypeOf(DraggableContainer)).apply(this, arguments));
	  }

	  _createClass(DraggableContainer, [{
	    key: 'getRows',
	    value: function getRows(rowsCount, rowGetter) {
	      var rows = [];
	      for (var j = 0; j < rowsCount; j++) {
	        rows.push(rowGetter(j));
	      }
	      return rows;
	    }
	  }, {
	    key: 'renderGrid',
	    value: function renderGrid() {
	      return _react2['default'].cloneElement(_react2['default'].Children.only(this.props.children), {
	        draggableHeaderCell: _DraggableHeaderCell2['default']
	      });
	    }
	  }, {
	    key: 'render',
	    value: function render() {
	      var grid = this.renderGrid();
	      var rowGetter = this.props.getDragPreviewRow || grid.props.rowGetter;
	      var rowsCount = grid.props.rowsCount;
	      var columns = grid.props.columns;
	      var rows = this.getRows(rowsCount, rowGetter);
	      return _react2['default'].createElement(
	        'div',
	        null,
	        grid,
	        _react2['default'].createElement(_RowDragLayer2['default'], {
	          rowSelection: grid.props.rowSelection,
	          rows: rows,
	          columns: (0, _utils.isColumnsImmutable)(columns) ? columns.toArray() : columns
	        })
	      );
	    }
	  }]);

	  return DraggableContainer;
	}(_react.Component);

	DraggableContainer.propTypes = {
	  children: _propTypes2['default'].element.isRequired,
	  getDragPreviewRow: _propTypes2['default'].func
	};

	exports['default'] = (0, _html5DragDropContext2['default'])(DraggableContainer);

/***/ }),
/* 231 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _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; };

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	__webpack_require__(392);

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _reactDom = __webpack_require__(13);

	var _reactDom2 = _interopRequireDefault(_reactDom);

	var _reactDnd = __webpack_require__(25);

	var _RowComparer = __webpack_require__(44);

	var _RowComparer2 = _interopRequireDefault(_RowComparer);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var rowDropTarget = function rowDropTarget(Row) {
	  return function (_React$Component) {
	    _inherits(_class, _React$Component);

	    function _class() {
	      _classCallCheck(this, _class);

	      return _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).apply(this, arguments));
	    }

	    _createClass(_class, [{
	      key: 'shouldComponentUpdate',
	      value: function shouldComponentUpdate(nextProps) {
	        return (0, _RowComparer2['default'])(nextProps, this.props);
	      }
	    }, {
	      key: 'moveRow',
	      value: function moveRow() {
	        _reactDom2['default'].findDOMNode(this).classList.add('slideUp');
	      }
	    }, {
	      key: 'render',
	      value: function render() {
	        var _this2 = this;

	        var _props = this.props,
	            connectDropTarget = _props.connectDropTarget,
	            isOver = _props.isOver,
	            canDrop = _props.canDrop;

	        var overlayTop = this.props.idx * this.props.height;
	        return connectDropTarget(_react2['default'].createElement(
	          'div',
	          null,
	          _react2['default'].createElement(Row, _extends({ ref: function ref(node) {
	              return _this2.row = node;
	            } }, this.props)),
	          isOver && canDrop && _react2['default'].createElement('div', { className: 'rowDropTarget', style: {
	              top: overlayTop,
	              height: this.props.height
	            } })
	        ));
	      }
	    }]);

	    return _class;
	  }(_react2['default'].Component);
	};

	var target = {
	  drop: function drop(props, monitor, component) {
	    // Obtain the dragged item
	    component.moveRow();
	    var rowSource = monitor.getItem();
	    var rowTarget = { idx: props.idx, data: props.row };
	    props.onRowDrop({ rowSource: rowSource, rowTarget: rowTarget });
	  }
	};

	function collect(connect, monitor) {
	  return {
	    connectDropTarget: connect.dropTarget(),
	    isOver: monitor.isOver(),
	    canDrop: monitor.canDrop(),
	    draggedRow: monitor.getItem()
	  };
	}

	exports['default'] = function (Row) {
	  return (0, _reactDnd.DropTarget)('Row', target, collect, { arePropsEqual: function arePropsEqual(nextProps, currentProps) {
	      return !(0, _RowComparer2['default'])(nextProps, currentProps);
	    } })(rowDropTarget(Row));
	};

/***/ }),
/* 232 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	__webpack_require__(45);

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _reactDnd = __webpack_require__(25);

	var _editors = __webpack_require__(43);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var RowActionsCell = function (_React$Component) {
	  _inherits(RowActionsCell, _React$Component);

	  function RowActionsCell() {
	    _classCallCheck(this, RowActionsCell);

	    return _possibleConstructorReturn(this, (RowActionsCell.__proto__ || Object.getPrototypeOf(RowActionsCell)).apply(this, arguments));
	  }

	  _createClass(RowActionsCell, [{
	    key: 'renderRowIndex',
	    value: function renderRowIndex() {
	      return _react2['default'].createElement(
	        'div',
	        { className: 'rdg-row-index' },
	        this.props.rowIdx + 1
	      );
	    }
	  }, {
	    key: 'render',
	    value: function render() {
	      var _props = this.props,
	          connectDragSource = _props.connectDragSource,
	          rowSelection = _props.rowSelection;

	      var rowHandleStyle = rowSelection != null ? { position: 'absolute', marginTop: '5px' } : {};
	      var isSelected = this.props.value;
	      var editorClass = isSelected ? 'rdg-actions-checkbox selected' : 'rdg-actions-checkbox';

	      return connectDragSource(_react2['default'].createElement(
	        'div',
	        null,
	        _react2['default'].createElement('div', { className: 'rdg-drag-row-handle', style: rowHandleStyle }),
	        !isSelected ? this.renderRowIndex() : null,
	        rowSelection != null && _react2['default'].createElement(
	          'div',
	          { className: editorClass },
	          _react2['default'].createElement(_editors.CheckboxEditor, { column: this.props.column, rowIdx: this.props.rowIdx, dependentValues: this.props.dependentValues, value: this.props.value })
	        )
	      ));
	    }
	  }]);

	  return RowActionsCell;
	}(_react2['default'].Component);

	RowActionsCell.propTypes = {
	  rowIdx: _propTypes2['default'].number.isRequired,
	  connectDragSource: _propTypes2['default'].func.isRequired,
	  connectDragPreview: _propTypes2['default'].func.isRequired,
	  isDragging: _propTypes2['default'].bool.isRequired,
	  isRowHovered: _propTypes2['default'].bool,
	  column: _propTypes2['default'].object,
	  dependentValues: _propTypes2['default'].object,
	  value: _propTypes2['default'].bool,
	  rowSelection: _propTypes2['default'].object.isRequired
	};

	RowActionsCell.defaultProps = {
	  rowIdx: 0
	};

	function collect(connect, monitor) {
	  return {
	    connectDragSource: connect.dragSource(),
	    isDragging: monitor.isDragging(),
	    connectDragPreview: connect.dragPreview()
	  };
	}

	var rowIndexSource = {
	  beginDrag: function beginDrag(props) {
	    return { idx: props.rowIdx, data: props.dependentValues };
	  },
	  endDrag: function endDrag(props) {
	    return { idx: props.rowIdx, data: props.dependentValues };
	  }
	};

	exports['default'] = (0, _reactDnd.DragSource)('Row', rowIndexSource, collect)(RowActionsCell);

/***/ }),
/* 233 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _reactDnd = __webpack_require__(25);

	var _Selectors = __webpack_require__(127);

	var _Selectors2 = _interopRequireDefault(_Selectors);

	__webpack_require__(103);

	__webpack_require__(45);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var layerStyles = {
	  cursor: '-webkit-grabbing',
	  position: 'fixed',
	  pointerEvents: 'none',
	  zIndex: 100,
	  left: 0,
	  top: 0,
	  width: '100%',
	  height: '100%'
	};

	function getItemStyles(props) {
	  var currentOffset = props.currentOffset;

	  if (!currentOffset) {
	    return {
	      display: 'none'
	    };
	  }

	  var x = currentOffset.x,
	      y = currentOffset.y;

	  var transform = 'translate(' + x + 'px, ' + y + 'px)';
	  return {
	    transform: transform,
	    WebkitTransform: transform
	  };
	}

	var CustomDragLayer = function (_Component) {
	  _inherits(CustomDragLayer, _Component);

	  function CustomDragLayer() {
	    _classCallCheck(this, CustomDragLayer);

	    return _possibleConstructorReturn(this, (CustomDragLayer.__proto__ || Object.getPrototypeOf(CustomDragLayer)).apply(this, arguments));
	  }

	  _createClass(CustomDragLayer, [{
	    key: 'isDraggedRowSelected',
	    value: function isDraggedRowSelected(selectedRows) {
	      var _props = this.props,
	          item = _props.item,
	          rowSelection = _props.rowSelection;

	      if (selectedRows && selectedRows.length > 0) {
	        var key = rowSelection.selectBy.keys.rowKey;
	        return selectedRows.filter(function (r) {
	          return r[key] === item.data[key];
	        }).length > 0;
	      }
	      return false;
	    }
	  }, {
	    key: 'getDraggedRows',
	    value: function getDraggedRows() {
	      var draggedRows = void 0;
	      var rowSelection = this.props.rowSelection;

	      if (rowSelection && rowSelection.selectBy.keys) {
	        var rows = this.props.rows;
	        var _rowSelection$selectB = rowSelection.selectBy.keys,
	            rowKey = _rowSelection$selectB.rowKey,
	            values = _rowSelection$selectB.values;

	        var selectedRows = _Selectors2['default'].getSelectedRowsByKey({ rowKey: rowKey, selectedKeys: values, rows: rows });
	        draggedRows = this.isDraggedRowSelected(selectedRows) ? selectedRows : [this.props.rows[this.props.item.idx]];
	      } else {
	        draggedRows = [this.props.rows[this.props.item.idx]];
	      }
	      return draggedRows;
	    }
	  }, {
	    key: 'renderDraggedRows',
	    value: function renderDraggedRows() {
	      var _this2 = this;

	      var columns = this.props.columns;
	      return this.getDraggedRows().map(function (r, i) {
	        return _react2['default'].createElement(
	          'tr',
	          { key: 'dragged-row-' + i },
	          _this2.renderDraggedCells(r, i, columns)
	        );
	      });
	    }
	  }, {
	    key: 'renderDraggedCells',
	    value: function renderDraggedCells(item, rowIdx, columns) {
	      var cells = [];
	      if (item != null) {
	        columns.forEach(function (c) {
	          if (item.hasOwnProperty(c.key)) {
	            if (c.formatter) {
	              var Formatter = c.formatter;
	              var dependentValues = typeof c.getRowMetaData === 'function' ? c.getRowMetaData(item, c) : {};
	              cells.push(_react2['default'].createElement(
	                'td',
	                { key: 'dragged-cell-' + rowIdx + '-' + c.key, className: 'react-grid-Cell', style: { padding: '5px' } },
	                _react2['default'].createElement(Formatter, { dependentValues: dependentValues, value: item[c.key] })
	              ));
	            } else {
	              cells.push(_react2['default'].createElement(
	                'td',
	                { key: 'dragged-cell-' + rowIdx + '-' + c.key, className: 'react-grid-Cell', style: { padding: '5px' } },
	                item[c.key]
	              ));
	            }
	          }
	        });
	      }
	      return cells;
	    }
	  }, {
	    key: 'render',
	    value: function render() {
	      var isDragging = this.props.isDragging;

	      if (!isDragging) {
	        return null;
	      }
	      var draggedRows = this.renderDraggedRows();
	      return _react2['default'].createElement(
	        'div',
	        { style: layerStyles, className: 'rdg-dragging' },
	        _react2['default'].createElement(
	          'div',
	          { style: getItemStyles(this.props), className: 'rdg-dragging' },
	          _react2['default'].createElement(
	            'table',
	            null,
	            _react2['default'].createElement(
	              'tbody',
	              null,
	              draggedRows
	            )
	          )
	        )
	      );
	    }
	  }]);

	  return CustomDragLayer;
	}(_react.Component);

	CustomDragLayer.propTypes = {
	  item: _propTypes2['default'].object,
	  itemType: _propTypes2['default'].string,
	  currentOffset: _propTypes2['default'].shape({
	    x: _propTypes2['default'].number.isRequired,
	    y: _propTypes2['default'].number.isRequired
	  }),
	  isDragging: _propTypes2['default'].bool.isRequired,
	  rowSelection: _propTypes2['default'].object,
	  rows: _propTypes2['default'].array.isRequired,
	  columns: _propTypes2['default'].array.isRequired
	};

	function collect(monitor) {
	  return {
	    item: monitor.getItem(),
	    itemType: monitor.getItemType(),
	    currentOffset: monitor.getSourceClientOffset(),
	    isDragging: monitor.isDragging()
	  };
	}

	exports['default'] = (0, _reactDnd.DragLayer)(collect)(CustomDragLayer);

/***/ }),
/* 234 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _DragDropContainer = __webpack_require__(230);

	var _DragDropContainer2 = _interopRequireDefault(_DragDropContainer);

	var _DraggableHeaderCell = __webpack_require__(128);

	var _DraggableHeaderCell2 = _interopRequireDefault(_DraggableHeaderCell);

	var _RowActionsCell = __webpack_require__(232);

	var _RowActionsCell2 = _interopRequireDefault(_RowActionsCell);

	var _DropTargetRowContainer = __webpack_require__(231);

	var _DropTargetRowContainer2 = _interopRequireDefault(_DropTargetRowContainer);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	module.exports = { Container: _DragDropContainer2['default'], DraggableHeaderCell: _DraggableHeaderCell2['default'], RowActionsCell: _RowActionsCell2['default'], DropTargetRowContainer: _DropTargetRowContainer2['default'] };

/***/ }),
/* 235 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _propShapes = __webpack_require__(99);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var React = __webpack_require__(2);
	var ReactDOM = __webpack_require__(13);
	var ReactAutocomplete = __webpack_require__(388);

	__webpack_require__(394);


	var optionPropType = _propTypes2['default'].shape({
	  id: _propTypes2['default'].required,
	  title: _propTypes2['default'].string
	});

	var AutoCompleteEditor = function (_React$Component) {
	  _inherits(AutoCompleteEditor, _React$Component);

	  function AutoCompleteEditor() {
	    var _ref;

	    var _temp, _this, _ret;

	    _classCallCheck(this, AutoCompleteEditor);

	    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
	      args[_key] = arguments[_key];
	    }

	    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = AutoCompleteEditor.__proto__ || Object.getPrototypeOf(AutoCompleteEditor)).call.apply(_ref, [this].concat(args))), _this), _this.handleChange = function () {
	      _this.props.onCommit();
	    }, _this.getValue = function () {
	      var value = void 0;
	      var updated = {};
	      if (_this.hasResults() && _this.isFocusedOnSuggestion()) {
	        value = _this.getLabel(_this.autoComplete.state.focusedValue);
	        if (_this.props.valueParams) {
	          value = _this.constuctValueFromParams(_this.autoComplete.state.focusedValue, _this.props.valueParams);
	        }
	      } else {
	        value = _this.autoComplete.state.searchTerm;
	      }

	      updated[_this.props.column.key] = value;
	      return updated;
	    }, _this.getEditorDisplayValue = function () {
	      var displayValue = { title: '' };
	      var _this$props = _this.props,
	          column = _this$props.column,
	          value = _this$props.value,
	          editorDisplayValue = _this$props.editorDisplayValue;

	      if (editorDisplayValue && typeof editorDisplayValue === 'function') {
	        displayValue.title = editorDisplayValue(column, value);
	      } else {
	        displayValue.title = value;
	      }
	      return displayValue;
	    }, _this.getInputNode = function () {
	      return ReactDOM.findDOMNode(_this).getElementsByTagName('input')[0];
	    }, _this.getLabel = function (item) {
	      var label = _this.props.label != null ? _this.props.label : 'title';
	      if (typeof label === 'function') {
	        return label(item);
	      } else if (typeof label === 'string') {
	        return item[label];
	      }
	    }, _this.hasResults = function () {
	      return _this.autoComplete.state.results.length > 0;
	    }, _this.isFocusedOnSuggestion = function () {
	      var autoComplete = _this.autoComplete;
	      return autoComplete.state.focusedValue != null;
	    }, _this.constuctValueFromParams = function (obj, props) {
	      if (!props) {
	        return '';
	      }

	      var ret = [];
	      for (var i = 0, ii = props.length; i < ii; i++) {
	        ret.push(obj[props[i]]);
	      }
	      return ret.join('|');
	    }, _this.setAutocompleteRef = function (autoComplete) {
	      _this.autoComplete = autoComplete;
	    }, _temp), _possibleConstructorReturn(_this, _ret);
	  }

	  _createClass(AutoCompleteEditor, [{
	    key: 'render',
	    value: function render() {
	      var label = this.props.label != null ? this.props.label : 'title';
	      return React.createElement(
	        'div',
	        { height: this.props.height, onKeyDown: this.props.onKeyDown },
	        React.createElement(ReactAutocomplete, { search: this.props.search, ref: this.setAutocompleteRef, label: label, onChange: this.handleChange, onFocus: this.props.onFocus, resultIdentifier: this.props.resultIdentifier, options: this.props.options, value: this.getEditorDisplayValue() })
	      );
	    }
	  }]);

	  return AutoCompleteEditor;
	}(React.Component);

	AutoCompleteEditor.propTypes = {
	  onCommit: _propTypes2['default'].func,
	  options: _propTypes2['default'].arrayOf(optionPropType),
	  label: _propTypes2['default'].any,
	  value: _propTypes2['default'].any,
	  height: _propTypes2['default'].number,
	  valueParams: _propTypes2['default'].arrayOf(_propTypes2['default'].string),
	  column: _propTypes2['default'].shape(_propShapes.ExcelColumn),
	  resultIdentifier: _propTypes2['default'].string,
	  search: _propTypes2['default'].string,
	  onKeyDown: _propTypes2['default'].func,
	  onFocus: _propTypes2['default'].func,
	  editorDisplayValue: _propTypes2['default'].func
	};
	AutoCompleteEditor.defaultProps = {
	  resultIdentifier: 'id'
	};


	module.exports = AutoCompleteEditor;

/***/ }),
/* 236 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _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; };

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	// Wrapper HOC used when having an editor which is a redux container.
	// Required since react-data-grid requires access to getInputNode, getValue,
	// howvever when doing this.getEditor() in react-data-grid we get a react
	// componenet wrapped by the redux connect function and thus wont have access
	// to the required methods.
	module.exports = function (ContainerEditor) {
	  return function (_Component) {
	    _inherits(ContainerEditorWrapper, _Component);

	    function ContainerEditorWrapper() {
	      var _ref;

	      var _temp, _this, _ret;

	      _classCallCheck(this, ContainerEditorWrapper);

	      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
	        args[_key] = arguments[_key];
	      }

	      return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = ContainerEditorWrapper.__proto__ || Object.getPrototypeOf(ContainerEditorWrapper)).call.apply(_ref, [this].concat(args))), _this), _this.createRef = function (ref) {
	        _this.editorRef = ref;
	      }, _temp), _possibleConstructorReturn(_this, _ret);
	    }

	    _createClass(ContainerEditorWrapper, [{
	      key: 'getInputNode',
	      value: function getInputNode() {
	        return this.editorRef.getInputNode();
	      }
	    }, {
	      key: 'getValue',
	      value: function getValue() {
	        return this.editorRef.getValue();
	      }
	    }, {
	      key: 'render',
	      value: function render() {
	        return _react2['default'].createElement(ContainerEditor, _extends({ refCallback: this.createRef }, this.props));
	      }
	    }]);

	    return ContainerEditorWrapper;
	  }(_react.Component);
	};

/***/ }),
/* 237 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _editors = __webpack_require__(43);

	var _reactDom = __webpack_require__(13);

	var _reactDom2 = _interopRequireDefault(_reactDom);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var React = __webpack_require__(2);

	var DropDownEditor = function (_EditorBase) {
	  _inherits(DropDownEditor, _EditorBase);

	  function DropDownEditor() {
	    _classCallCheck(this, DropDownEditor);

	    return _possibleConstructorReturn(this, (DropDownEditor.__proto__ || Object.getPrototypeOf(DropDownEditor)).apply(this, arguments));
	  }

	  _createClass(DropDownEditor, [{
	    key: 'getInputNode',
	    value: function getInputNode() {
	      return _reactDom2['default'].findDOMNode(this);
	    }
	  }, {
	    key: 'onClick',
	    value: function onClick() {
	      this.getInputNode().focus();
	    }
	  }, {
	    key: 'onDoubleClick',
	    value: function onDoubleClick() {
	      this.getInputNode().focus();
	    }
	  }, {
	    key: 'render',
	    value: function render() {
	      return React.createElement(
	        'select',
	        { style: this.getStyle(), defaultValue: this.props.value, onBlur: this.props.onBlur, onChange: this.onChange },
	        this.renderOptions()
	      );
	    }
	  }, {
	    key: 'renderOptions',
	    value: function renderOptions() {
	      var options = [];
	      this.props.options.forEach(function (name) {
	        if (typeof name === 'string') {
	          options.push(React.createElement(
	            'option',
	            { key: name, value: name },
	            name
	          ));
	        } else {
	          options.push(React.createElement(
	            'option',
	            { key: name.id, value: name.value, title: name.title },
	            name.text || name.value
	          ));
	        }
	      }, this);
	      return options;
	    }
	  }]);

	  return DropDownEditor;
	}(_editors.EditorBase);

	DropDownEditor.propTypes = {
	  options: _propTypes2['default'].arrayOf(_propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].shape({
	    id: _propTypes2['default'].string,
	    title: _propTypes2['default'].string,
	    value: _propTypes2['default'].string,
	    text: _propTypes2['default'].string
	  })])).isRequired
	};

	module.exports = DropDownEditor;

/***/ }),
/* 238 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _editors = __webpack_require__(43);

	var Editors = {
	  AutoComplete: __webpack_require__(235),
	  DropDownEditor: __webpack_require__(237),
	  ContainerEditorWrapper: __webpack_require__(236),
	  SimpleTextEditor: _editors.SimpleTextEditor,
	  CheckboxEditor: _editors.CheckboxEditor
	};

	module.exports = Editors;

/***/ }),
/* 239 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	// Used for displaying the value of a dropdown (using DropDownEditor) when not editing it.
	// Accepts the same parameters as the DropDownEditor.
	var React = __webpack_require__(2);

	var DropDownFormatter = function (_React$Component) {
	  _inherits(DropDownFormatter, _React$Component);

	  function DropDownFormatter() {
	    _classCallCheck(this, DropDownFormatter);

	    return _possibleConstructorReturn(this, (DropDownFormatter.__proto__ || Object.getPrototypeOf(DropDownFormatter)).apply(this, arguments));
	  }

	  _createClass(DropDownFormatter, [{
	    key: 'shouldComponentUpdate',
	    value: function shouldComponentUpdate(nextProps) {
	      return nextProps.value !== this.props.value;
	    }
	  }, {
	    key: 'render',
	    value: function render() {
	      var value = this.props.value;
	      var option = this.props.options.filter(function (v) {
	        return v === value || v.value === value;
	      })[0];
	      if (!option) {
	        option = value;
	      }
	      var title = option.title || option.value || option;
	      var text = option.text || option.value || option;
	      return React.createElement(
	        'div',
	        { title: title },
	        text
	      );
	    }
	  }]);

	  return DropDownFormatter;
	}(React.Component);

	DropDownFormatter.propTypes = {
	  options: _propTypes2['default'].arrayOf(_propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].shape({
	    id: _propTypes2['default'].string,
	    title: _propTypes2['default'].string,
	    value: _propTypes2['default'].string,
	    text: _propTypes2['default'].string
	  })])).isRequired,
	  value: _propTypes2['default'].string.isRequired
	};


	module.exports = DropDownFormatter;

/***/ }),
/* 240 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	__webpack_require__(393);

	var PendingPool = {};
	var ReadyPool = {};

	var ImageFormatter = function (_React$Component) {
	  _inherits(ImageFormatter, _React$Component);

	  function ImageFormatter() {
	    var _ref;

	    var _temp, _this, _ret;

	    _classCallCheck(this, ImageFormatter);

	    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
	      args[_key] = arguments[_key];
	    }

	    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = ImageFormatter.__proto__ || Object.getPrototypeOf(ImageFormatter)).call.apply(_ref, [this].concat(args))), _this), _this.state = {
	      ready: false
	    }, _this._load = function (src) {
	      var imageSrc = src;
	      if (ReadyPool[imageSrc]) {
	        _this.setState({ value: imageSrc });
	        return;
	      }

	      if (PendingPool[imageSrc]) {
	        PendingPool[imageSrc].push(_this._onLoad);
	        return;
	      }

	      PendingPool[imageSrc] = [_this._onLoad];

	      var img = new Image();
	      img.onload = function () {
	        PendingPool[imageSrc].forEach(function (callback) {
	          callback(imageSrc);
	        });
	        delete PendingPool[imageSrc];
	        img.onload = null;
	        imageSrc = undefined;
	      };
	      img.src = imageSrc;
	    }, _this._onLoad = function (src) {
	      if (_this._isMounted && src === _this.props.value) {
	        _this.setState({
	          value: src
	        });
	      }
	    }, _temp), _possibleConstructorReturn(_this, _ret);
	  }

	  _createClass(ImageFormatter, [{
	    key: 'componentDidMount',
	    value: function componentDidMount() {
	      this._isMounted = true;
	      this._load(this.props.value);
	    }
	  }, {
	    key: 'componentWillUnmount',
	    value: function componentWillUnmount() {
	      this._isMounted = false;
	    }
	  }, {
	    key: 'componentWillReceiveProps',
	    value: function componentWillReceiveProps(nextProps) {
	      if (nextProps.value !== this.props.value) {
	        this.setState({ value: null });
	        this._load(nextProps.value);
	      }
	    }
	  }, {
	    key: 'render',
	    value: function render() {
	      var style = this.state.value ? { backgroundImage: 'url(' + this.state.value + ')' } : undefined;

	      return _react2['default'].createElement('div', { className: 'react-grid-image', style: style });
	    }
	  }]);

	  return ImageFormatter;
	}(_react2['default'].Component);

	ImageFormatter.propTypes = {
	  value: _propTypes2['default'].string.isRequired
	};
	exports['default'] = ImageFormatter;

/***/ }),
/* 241 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _ImageFormatter = __webpack_require__(240);

	var _ImageFormatter2 = _interopRequireDefault(_ImageFormatter);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	var DropDownFormatter = __webpack_require__(239); // not including this
	// it currently requires the whole of moment, which we dont want to take as a dependency


	var Formatters = {
	  ImageFormatter: _ImageFormatter2['default'],
	  DropDownFormatter: DropDownFormatter
	};

	module.exports = Formatters;

/***/ }),
/* 242 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _RowComparer = __webpack_require__(44);

	var _RowComparer2 = _interopRequireDefault(_RowComparer);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	var Editors = __webpack_require__(238);
	var Formatters = __webpack_require__(241);
	var Toolbar = __webpack_require__(251);
	var ToolsPanel = __webpack_require__(252);
	var Data = __webpack_require__(226);
	var Menu = __webpack_require__(244);
	var Draggable = __webpack_require__(234);
	var DraggableHeader = __webpack_require__(229);
	var Filters = __webpack_require__(221);

	var performance = __webpack_require__(246);
	var Utils = { rowComparer: _RowComparer2['default'], performance: performance };

	window.ReactDataGridPlugins = { Editors: Editors, Formatters: Formatters, Toolbar: Toolbar, Menu: Menu, Data: Data, ToolsPanel: ToolsPanel, Draggable: Draggable, DraggableHeader: DraggableHeader, Filters: Filters, Utils: Utils };
	module.exports = { Editors: Editors, Formatters: Formatters, Toolbar: Toolbar, Menu: Menu, Data: Data, ToolsPanel: ToolsPanel, Draggable: Draggable, DraggableHeader: DraggableHeader, Filters: Filters, Utils: Utils };

/***/ }),
/* 243 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var MenuHeader = function (_React$Component) {
	  _inherits(MenuHeader, _React$Component);

	  function MenuHeader() {
	    _classCallCheck(this, MenuHeader);

	    return _possibleConstructorReturn(this, (MenuHeader.__proto__ || Object.getPrototypeOf(MenuHeader)).apply(this, arguments));
	  }

	  _createClass(MenuHeader, [{
	    key: 'render',
	    value: function render() {
	      return _react2['default'].createElement(
	        'div',
	        { className: 'react-context-menu-header' },
	        this.props.children
	      );
	    }
	  }]);

	  return MenuHeader;
	}(_react2['default'].Component);

	MenuHeader.propTypes = {
	  children: _propTypes2['default'].any
	};

	exports['default'] = MenuHeader;

/***/ }),
/* 244 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});
	exports.ContextMenuTrigger = exports.connect = exports.SubMenu = exports.monitor = exports.MenuItem = exports.MenuHeader = exports.ContextMenu = undefined;

	var _reactContextmenu = __webpack_require__(358);

	var _MenuHeader = __webpack_require__(243);

	var _MenuHeader2 = _interopRequireDefault(_MenuHeader);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	exports.ContextMenu = _reactContextmenu.ContextMenu;
	exports.MenuHeader = _MenuHeader2['default'];
	exports.MenuItem = _reactContextmenu.MenuItem;
	exports.monitor = _reactContextmenu.monitor;
	exports.SubMenu = _reactContextmenu.SubMenu;
	exports.connect = _reactContextmenu.connect;
	exports.ContextMenuTrigger = _reactContextmenu.ContextMenuTrigger;

/***/ }),
/* 245 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _SummaryItemModel = __webpack_require__(129);

	var _SummaryItemModel2 = _interopRequireDefault(_SummaryItemModel);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	var SummaryParser = function () {
	  function SummaryParser(summary) {
	    _classCallCheck(this, SummaryParser);

	    this._summary = this._parseSummary(summary);
	    this.getByOwner = this.getByOwner.bind(this);
	    this.getSumByOwner = this.getSumByOwner.bind(this);
	    this.getByComponent = this.getByComponent.bind(this);
	  }

	  _createClass(SummaryParser, [{
	    key: '_parseSummary',
	    value: function _parseSummary(summary) {
	      return summary.map(function (s) {
	        return new _SummaryItemModel2['default'](s);
	      });
	    }
	  }, {
	    key: 'getByOwner',
	    value: function getByOwner(ownerName) {
	      return this._summary.filter(function (s) {
	        return s.owner === ownerName;
	      });
	    }
	  }, {
	    key: 'getSumByOwner',
	    value: function getSumByOwner(ownerName) {
	      var summaryItemsByOwner = this.getByOwner(ownerName);
	      var summaryItem = new _SummaryItemModel2['default'](ownerName);

	      summaryItemsByOwner.forEach(function (s) {
	        var wastedTime = summaryItem.wastedTime,
	            wastedInstances = summaryItem.wastedInstances;

	        summaryItem.wastedTime = wastedTime + s.wastedTime;
	        summaryItem.wastedInstances = wastedInstances + s.wastedInstances;
	      });

	      return summaryItem;
	    }
	  }, {
	    key: 'getByComponent',
	    value: function getByComponent(component) {
	      var componentSummaryItem = this._summary.filter(function (s) {
	        return s.component === component;
	      });

	      if (componentSummaryItem.length > 1) {
	        throw new Error('More then 1 result retrived for ' + component);
	      }

	      if (componentSummaryItem.length === 0) {
	        var emptySummary = new _SummaryItemModel2['default'](component);
	        componentSummaryItem = [emptySummary];
	      }

	      return componentSummaryItem[0];
	    }
	  }]);

	  return SummaryParser;
	}();

	exports['default'] = SummaryParser;

/***/ }),
/* 246 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _SummaryParser = __webpack_require__(245);

	var _SummaryParser2 = _interopRequireDefault(_SummaryParser);

	var _SummaryItemModel = __webpack_require__(129);

	var _SummaryItemModel2 = _interopRequireDefault(_SummaryItemModel);

	var _whyDidYouUpdate = __webpack_require__(247);

	var _whyDidYouUpdate2 = _interopRequireDefault(_whyDidYouUpdate);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	exports['default'] = {
	  SummaryParser: _SummaryParser2['default'],
	  SummaryItemModel: _SummaryItemModel2['default'],
	  whyDidYouUpdate: _whyDidYouUpdate2['default']
	};

/***/ }),
/* 247 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});
	exports.NOTIFY_LEVELS = undefined;

	var _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; };

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _underscore = __webpack_require__(397);

	var _underscore2 = _interopRequireDefault(_underscore);

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable no-console */


	var isRequiredUpdateObject = function isRequiredUpdateObject(o) {
	  return Array.isArray(o) || o && o.constructor === Object.prototype.constructor;
	};
	var NOTIFY_LEVELS = { DEBUG: 0, WARNING: 1, NONE: 2 };
	var isLogEnabled = function isLogEnabled(lvl) {
	  return lvl !== NOTIFY_LEVELS.NONE;
	};
	var isStatusTypeLoggable = function isStatusTypeLoggable(s, lvl) {
	  return s <= lvl;
	};

	var deepDiff = function deepDiff(o1, o2, p, notifyLevel) {
	  var notify = function notify(status, statusType) {
	    if (isStatusTypeLoggable(statusType, notifyLevel)) {
	      console.warn('Update %s', status);
	      console.log('%cbefore', 'font-weight: bold', o1);
	      console.log('%cafter ', 'font-weight: bold', o2);
	    }
	  };

	  if (!_underscore2['default'].isEqual(o1, o2)) {
	    console.group(p);
	    if ([o1, o2].every(_underscore2['default'].isFunction)) {
	      notify('avoidable?', NOTIFY_LEVELS.WARNING);
	    } else if (![o1, o2].every(isRequiredUpdateObject)) {
	      notify('required.', NOTIFY_LEVELS.DEBUG);
	    } else {
	      var keys = _underscore2['default'].union(_underscore2['default'].keys(o1), _underscore2['default'].keys(o2));
	      var _iteratorNormalCompletion = true;
	      var _didIteratorError = false;
	      var _iteratorError = undefined;

	      try {
	        for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
	          var key = _step.value;

	          deepDiff(o1[key], o2[key], key);
	        }
	      } catch (err) {
	        _didIteratorError = true;
	        _iteratorError = err;
	      } finally {
	        try {
	          if (!_iteratorNormalCompletion && _iterator['return']) {
	            _iterator['return']();
	          }
	        } finally {
	          if (_didIteratorError) {
	            throw _iteratorError;
	          }
	        }
	      }
	    }

	    console.groupEnd();
	  } else if (o1 !== o2) {
	    console.group(p);
	    notify('avoidable!', NOTIFY_LEVELS.WARNING);
	    if (_underscore2['default'].isObject(o1) && _underscore2['default'].isObject(o2)) {
	      var _keys = _underscore2['default'].union(_underscore2['default'].keys(o1), _underscore2['default'].keys(o2));
	      var _iteratorNormalCompletion2 = true;
	      var _didIteratorError2 = false;
	      var _iteratorError2 = undefined;

	      try {
	        for (var _iterator2 = _keys[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
	          var _key = _step2.value;

	          deepDiff(o1[_key], o2[_key], _key);
	        }
	      } catch (err) {
	        _didIteratorError2 = true;
	        _iteratorError2 = err;
	      } finally {
	        try {
	          if (!_iteratorNormalCompletion2 && _iterator2['return']) {
	            _iterator2['return']();
	          }
	        } finally {
	          if (_didIteratorError2) {
	            throw _iteratorError2;
	          }
	        }
	      }
	    }
	    console.groupEnd();
	  }
	};

	var whyDidYouUpdate = function whyDidYouUpdate(WrappedComponent) {
	  var notifyLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NOTIFY_LEVELS.NONE;

	  return function (_Component) {
	    _inherits(WhyDidYouUpdateComponentWrapper, _Component);

	    function WhyDidYouUpdateComponentWrapper() {
	      _classCallCheck(this, WhyDidYouUpdateComponentWrapper);

	      return _possibleConstructorReturn(this, (WhyDidYouUpdateComponentWrapper.__proto__ || Object.getPrototypeOf(WhyDidYouUpdateComponentWrapper)).apply(this, arguments));
	    }

	    _createClass(WhyDidYouUpdateComponentWrapper, [{
	      key: 'componentDidUpdate',
	      value: function componentDidUpdate(prevProps, prevState) {
	        if (!isLogEnabled(notifyLevel)) {
	          return;
	        }

	        deepDiff({ props: prevProps, state: prevState }, { props: this.props, state: this.state }, WrappedComponent.displayName, notifyLevel);
	      }
	    }, {
	      key: 'render',
	      value: function render() {
	        return _react2['default'].createElement(WrappedComponent, _extends({}, this.props, this.state));
	      }
	    }]);

	    return WhyDidYouUpdateComponentWrapper;
	  }(_react.Component);
	};

	exports['default'] = whyDidYouUpdate;
	exports.NOTIFY_LEVELS = NOTIFY_LEVELS;

/***/ }),
/* 248 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	__webpack_require__(167);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var propTypes = {
	  children: _propTypes2['default'].array
	};

	var defaultProps = {
	  enableAddRow: true
	};

	var AdvancedToolbar = function (_Component) {
	  _inherits(AdvancedToolbar, _Component);

	  function AdvancedToolbar() {
	    _classCallCheck(this, AdvancedToolbar);

	    return _possibleConstructorReturn(this, (AdvancedToolbar.__proto__ || Object.getPrototypeOf(AdvancedToolbar)).apply(this, arguments));
	  }

	  _createClass(AdvancedToolbar, [{
	    key: 'render',
	    value: function render() {
	      return _react2['default'].createElement(
	        'div',
	        { className: 'react-grid-Toolbar' },
	        this.props.children,
	        _react2['default'].createElement('div', { className: 'tools' })
	      );
	    }
	  }]);

	  return AdvancedToolbar;
	}(_react.Component);

	AdvancedToolbar.defaultProps = defaultProps;
	AdvancedToolbar.propTypes = propTypes;

	exports['default'] = AdvancedToolbar;

/***/ }),
/* 249 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var GroupedColumnButton = function (_Component) {
	  _inherits(GroupedColumnButton, _Component);

	  function GroupedColumnButton() {
	    _classCallCheck(this, GroupedColumnButton);

	    return _possibleConstructorReturn(this, (GroupedColumnButton.__proto__ || Object.getPrototypeOf(GroupedColumnButton)).apply(this, arguments));
	  }

	  _createClass(GroupedColumnButton, [{
	    key: 'render',
	    value: function render() {
	      return _react2['default'].createElement(
	        'div',
	        { className: 'grouped-col-btn btn btn-sm' },
	        _react2['default'].createElement(
	          'span',
	          { className: 'grouped-col-btn__name' },
	          this.props.name
	        ),
	        _react2['default'].createElement('span', { className: 'grouped-col-btn__remove glyphicon glyphicon-trash',
	          onClick: this.props.onColumnGroupDeleted.bind(null, this.props.columnKey) })
	      );
	    }
	  }]);

	  return GroupedColumnButton;
	}(_react.Component);

	exports['default'] = GroupedColumnButton;


	GroupedColumnButton.propTypes = {
	  name: _propTypes2['default'].string.isRequired,
	  onColumnGroupDeleted: _propTypes2['default'].func,
	  columnKey: _propTypes2['default'].string.isRequired
	};

/***/ }),
/* 250 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _reactDnd = __webpack_require__(25);

	var _GroupedColumnButton = __webpack_require__(249);

	var _GroupedColumnButton2 = _interopRequireDefault(_GroupedColumnButton);

	var _constants = __webpack_require__(11);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var propTypes = {
	  isOver: _propTypes2['default'].bool.isRequired,
	  connectDropTarget: _propTypes2['default'].func,
	  canDrop: _propTypes2['default'].bool.isRequired,
	  groupBy: _propTypes2['default'].array,
	  noColumnsSelectedMessage: _propTypes2['default'].string,
	  panelDescription: _propTypes2['default'].string,
	  onColumnGroupDeleted: _propTypes2['default'].func
	};

	var defaultProps = {
	  noColumnsSelectedMessage: 'Drag a column header here to group by that column',
	  panelDescription: 'Drag a column header here to group by that column'
	};

	var GroupedColumnsPanel = function (_Component) {
	  _inherits(GroupedColumnsPanel, _Component);

	  function GroupedColumnsPanel() {
	    _classCallCheck(this, GroupedColumnsPanel);

	    return _possibleConstructorReturn(this, (GroupedColumnsPanel.__proto__ || Object.getPrototypeOf(GroupedColumnsPanel)).call(this));
	  }

	  _createClass(GroupedColumnsPanel, [{
	    key: 'getPanelInstructionMessage',
	    value: function getPanelInstructionMessage() {
	      var groupBy = this.props.groupBy;

	      return groupBy && groupBy.length > 0 ? this.props.panelDescription : this.props.noColumnsSelectedMessage;
	    }
	  }, {
	    key: 'renderGroupedColumns',
	    value: function renderGroupedColumns() {
	      var _this2 = this;

	      return this.props.groupBy.map(function (c) {
	        var groupedColumnButtonProps = {
	          columnKey: typeof c === 'string' ? c : c.key,
	          name: typeof c === 'string' ? c : c.name,
	          onColumnGroupDeleted: _this2.props.onColumnGroupDeleted,
	          key: typeof c === 'string' ? c : c.key
	        };
	        return _react2['default'].createElement(_GroupedColumnButton2['default'], groupedColumnButtonProps);
	      });
	    }
	  }, {
	    key: 'renderOverlay',
	    value: function renderOverlay(color) {
	      return _react2['default'].createElement('div', { style: {
	          position: 'absolute',
	          top: 0,
	          left: 0,
	          height: '100%',
	          width: '100%',
	          zIndex: 1,
	          opacity: 0.5,
	          backgroundColor: color
	        } });
	    }
	  }, {
	    key: 'render',
	    value: function render() {
	      var _props = this.props,
	          connectDropTarget = _props.connectDropTarget,
	          isOver = _props.isOver,
	          canDrop = _props.canDrop;

	      return connectDropTarget(_react2['default'].createElement(
	        'div',
	        { style: { padding: '2px', position: 'relative', margin: '-10px', display: 'inline-block', border: '1px solid #eee' } },
	        this.renderGroupedColumns(),
	        ' ',
	        _react2['default'].createElement(
	          'span',
	          null,
	          this.getPanelInstructionMessage()
	        ),
	        isOver && canDrop && this.renderOverlay('yellow'),
	        !isOver && canDrop && this.renderOverlay('#DBECFA')
	      ));
	    }
	  }]);

	  return GroupedColumnsPanel;
	}(_react.Component);

	GroupedColumnsPanel.defaultProps = defaultProps;
	GroupedColumnsPanel.propTypes = propTypes;

	var columnTarget = {
	  drop: function drop(props, monitor) {
	    // Obtain the dragged item
	    var item = monitor.getItem();
	    if (typeof props.onColumnGroupAdded === 'function') {
	      props.onColumnGroupAdded(item.key);
	    }
	  }
	};

	function collect(connect, monitor) {
	  return {
	    connectDropTarget: connect.dropTarget(),
	    isOver: monitor.isOver(),
	    canDrop: monitor.canDrop(),
	    draggedolumn: monitor.getItem()
	  };
	}

	exports['default'] = (0, _reactDnd.DropTarget)(_constants.DragItemTypes.Column, columnTarget, collect)(GroupedColumnsPanel);

/***/ }),
/* 251 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var React = __webpack_require__(2);
	__webpack_require__(167);

	var Toolbar = function (_React$Component) {
	  _inherits(Toolbar, _React$Component);

	  function Toolbar() {
	    var _ref;

	    var _temp, _this, _ret;

	    _classCallCheck(this, Toolbar);

	    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
	      args[_key] = arguments[_key];
	    }

	    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call.apply(_ref, [this].concat(args))), _this), _this.onAddRow = function () {
	      if (_this.props.onAddRow !== null && _this.props.onAddRow instanceof Function) {
	        _this.props.onAddRow({ newRowIndex: _this.props.numberOfRows });
	      }
	    }, _this.renderAddRowButton = function () {
	      if (_this.props.onAddRow) {
	        return React.createElement(
	          'button',
	          { type: 'button', className: 'btn', onClick: _this.onAddRow },
	          _this.props.addRowButtonText
	        );
	      }
	    }, _this.renderToggleFilterButton = function () {
	      if (_this.props.enableFilter) {
	        return React.createElement(
	          'button',
	          { type: 'button', className: 'btn', onClick: _this.props.onToggleFilter },
	          _this.props.filterRowsButtonText
	        );
	      }
	    }, _temp), _possibleConstructorReturn(_this, _ret);
	  }

	  _createClass(Toolbar, [{
	    key: 'render',
	    value: function render() {
	      return React.createElement(
	        'div',
	        { className: 'react-grid-Toolbar' },
	        React.createElement(
	          'div',
	          { className: 'tools' },
	          this.renderAddRowButton(),
	          this.renderToggleFilterButton(),
	          this.props.children
	        )
	      );
	    }
	  }]);

	  return Toolbar;
	}(React.Component);

	Toolbar.propTypes = {
	  onAddRow: _propTypes2['default'].func,
	  onToggleFilter: _propTypes2['default'].func,
	  enableFilter: _propTypes2['default'].bool,
	  numberOfRows: _propTypes2['default'].number,
	  addRowButtonText: _propTypes2['default'].string,
	  filterRowsButtonText: _propTypes2['default'].string,
	  children: _propTypes2['default'].any
	};
	Toolbar.defaultProps = {
	  enableAddRow: true,
	  addRowButtonText: 'Add Row',
	  filterRowsButtonText: 'Filter Rows'
	};


	module.exports = Toolbar;

/***/ }),
/* 252 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	var _AdvancedToolbar = __webpack_require__(248);

	var _AdvancedToolbar2 = _interopRequireDefault(_AdvancedToolbar);

	var _GroupedColumnsPanel = __webpack_require__(250);

	var _GroupedColumnsPanel2 = _interopRequireDefault(_GroupedColumnsPanel);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	module.exports = { AdvancedToolbar: _AdvancedToolbar2['default'], GroupedColumnsPanel: _GroupedColumnsPanel2['default'] };

/***/ }),
/* 253 */,
/* 254 */,
/* 255 */,
/* 256 */,
/* 257 */,
/* 258 */,
/* 259 */,
/* 260 */,
/* 261 */,
/* 262 */,
/* 263 */,
/* 264 */,
/* 265 */,
/* 266 */,
/* 267 */,
/* 268 */,
/* 269 */,
/* 270 */,
/* 271 */,
/* 272 */,
/* 273 */,
/* 274 */,
/* 275 */,
/* 276 */,
/* 277 */,
/* 278 */,
/* 279 */,
/* 280 */,
/* 281 */
/***/ (function(module, exports, __webpack_require__) {

	exports = module.exports = __webpack_require__(8)();
	// imports


	// module
	exports.push([module.id, ".Select{position:relative}.Select input::-webkit-contacts-auto-fill-button,.Select input::-webkit-credentials-auto-fill-button{display:none!important}.Select input::-ms-clear,.Select input::-ms-reveal{display:none!important}.Select,.Select div,.Select input,.Select span{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.Select.is-disabled .Select-arrow-zone{cursor:default;pointer-events:none;opacity:.35}.Select.is-disabled>.Select-control{background-color:#f9f9f9}.Select.is-disabled>.Select-control:hover{box-shadow:none}.Select.is-open>.Select-control{border-bottom-right-radius:0;border-bottom-left-radius:0;background:#fff;border-color:#b3b3b3 #ccc #d9d9d9}.Select.is-open>.Select-control .Select-arrow{top:-2px;border-color:transparent transparent #999;border-width:0 5px 5px}.Select.is-searchable.is-focused:not(.is-open)>.Select-control,.Select.is-searchable.is-open>.Select-control{cursor:text}.Select.is-focused>.Select-control{background:#fff}.Select.is-focused:not(.is-open)>.Select-control{border-color:#007eff;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 0 3px rgba(0,126,255,.1);background:#fff}.Select.has-value.is-clearable.Select--single>.Select-control .Select-value{padding-right:42px}.Select.has-value.is-pseudo-focused.Select--single>.Select-control .Select-value .Select-value-label,.Select.has-value.Select--single>.Select-control .Select-value .Select-value-label{color:#333}.Select.has-value.is-pseudo-focused.Select--single>.Select-control .Select-value a.Select-value-label,.Select.has-value.Select--single>.Select-control .Select-value a.Select-value-label{cursor:pointer;text-decoration:none}.Select.has-value.is-pseudo-focused.Select--single>.Select-control .Select-value a.Select-value-label:focus,.Select.has-value.is-pseudo-focused.Select--single>.Select-control .Select-value a.Select-value-label:hover,.Select.has-value.Select--single>.Select-control .Select-value a.Select-value-label:focus,.Select.has-value.Select--single>.Select-control .Select-value a.Select-value-label:hover{color:#007eff;outline:none;text-decoration:underline}.Select.has-value.is-pseudo-focused.Select--single>.Select-control .Select-value a.Select-value-label:focus,.Select.has-value.Select--single>.Select-control .Select-value a.Select-value-label:focus{background:#fff}.Select.has-value.is-pseudo-focused .Select-input{opacity:0}.Select.is-open .Select-arrow,.Select .Select-arrow-zone:hover>.Select-arrow{border-top-color:#666}.Select.Select--rtl{direction:rtl;text-align:right}.Select-control{background-color:#fff;border-color:#d9d9d9 #ccc #b3b3b3;border-radius:4px;border:1px solid #ccc;color:#333;cursor:default;display:table;border-spacing:0;border-collapse:separate;height:36px;outline:none;overflow:hidden;position:relative;width:100%}.Select-control:hover{box-shadow:0 1px 0 rgba(0,0,0,.06)}.Select-control .Select-input:focus{outline:none;background:#fff}.Select--single>.Select-control .Select-value,.Select-placeholder{bottom:0;color:#aaa;left:0;line-height:34px;padding-left:10px;padding-right:10px;position:absolute;right:0;top:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Select-input{height:34px;padding-left:10px;padding-right:10px;vertical-align:middle}.Select-input>input{width:100%;background:none transparent;border:0 none;box-shadow:none;cursor:default;display:inline-block;font-family:inherit;font-size:inherit;margin:0;outline:none;line-height:17px;padding:8px 0 12px;-webkit-appearance:none}.is-focused .Select-input>input{cursor:text}.has-value.is-pseudo-focused .Select-input{opacity:0}.Select-control:not(.is-searchable)>.Select-input{outline:none}.Select-loading-zone{cursor:pointer;display:table-cell;text-align:center}.Select-loading,.Select-loading-zone{position:relative;vertical-align:middle;width:16px}.Select-loading{-webkit-animation:Select-animation-spin .4s infinite linear;-o-animation:Select-animation-spin .4s infinite linear;animation:Select-animation-spin .4s infinite linear;height:16px;box-sizing:border-box;border-radius:50%;border:2px solid #ccc;border-right-color:#333;display:inline-block}.Select-clear-zone{-webkit-animation:Select-animation-fadeIn .2s;-o-animation:Select-animation-fadeIn .2s;animation:Select-animation-fadeIn .2s;color:#999;cursor:pointer;display:table-cell;position:relative;text-align:center;vertical-align:middle;width:17px}.Select-clear-zone:hover{color:#d0021b}.Select-clear{display:inline-block;font-size:18px;line-height:1}.Select--multi .Select-clear-zone{width:17px}.Select-arrow-zone{cursor:pointer;display:table-cell;position:relative;text-align:center;vertical-align:middle;width:25px;padding-right:5px}.Select--rtl .Select-arrow-zone{padding-right:0;padding-left:5px}.Select-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px;display:inline-block;height:0;width:0;position:relative}.Select-control>:last-child{padding-right:5px}.Select--multi .Select-multi-value-wrapper{display:inline-block}.Select .Select-aria-only{position:absolute;display:inline-block;height:1px;width:1px;margin:-1px;clip:rect(0,0,0,0);overflow:hidden;float:left}@-webkit-keyframes Select-animation-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes Select-animation-fadeIn{0%{opacity:0}to{opacity:1}}.Select-menu-outer{border-bottom-right-radius:4px;border-bottom-left-radius:4px;background-color:#fff;border:1px solid #ccc;border-top-color:#e6e6e6;box-shadow:0 1px 0 rgba(0,0,0,.06);box-sizing:border-box;margin-top:-1px;max-height:200px;position:absolute;left:0;top:100%;width:100%;z-index:1;-webkit-overflow-scrolling:touch}.Select-menu{max-height:198px;overflow-y:auto}.Select-option{box-sizing:border-box;background-color:#fff;color:#666;cursor:pointer;display:block;padding:8px 10px}.Select-option:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.Select-option.is-selected{background-color:#f5faff;background-color:rgba(0,126,255,.04);color:#333}.Select-option.is-focused{background-color:#ebf5ff;background-color:rgba(0,126,255,.08);color:#333}.Select-option.is-disabled{color:#ccc;cursor:default}.Select-noresults{box-sizing:border-box;color:#999;cursor:default;display:block;padding:8px 10px}.Select--multi .Select-input{vertical-align:middle;margin-left:10px;padding:0}.Select--multi.Select--rtl .Select-input{margin-left:0;margin-right:10px}.Select--multi.has-value .Select-input{margin-left:5px}.Select--multi .Select-value{background-color:#ebf5ff;background-color:rgba(0,126,255,.08);border-radius:2px;border:1px solid #c2e0ff;border:1px solid rgba(0,126,255,.24);color:#007eff;display:inline-block;font-size:.9em;line-height:1.4;margin-left:5px;margin-top:5px;vertical-align:top}.Select--multi .Select-value-icon,.Select--multi .Select-value-label{display:inline-block;vertical-align:middle}.Select--multi .Select-value-label{border-bottom-right-radius:2px;border-top-right-radius:2px;cursor:default;padding:2px 5px}.Select--multi a.Select-value-label{color:#007eff;cursor:pointer;text-decoration:none}.Select--multi a.Select-value-label:hover{text-decoration:underline}.Select--multi .Select-value-icon{cursor:pointer;border-bottom-left-radius:2px;border-top-left-radius:2px;border-right:1px solid #c2e0ff;border-right:1px solid rgba(0,126,255,.24);padding:1px 5px 3px}.Select--multi .Select-value-icon:focus,.Select--multi .Select-value-icon:hover{background-color:#d8eafd;background-color:rgba(0,113,230,.08);color:#0071e6}.Select--multi .Select-value-icon:active{background-color:#c2e0ff;background-color:rgba(0,126,255,.24)}.Select--multi.Select--rtl .Select-value{margin-left:0;margin-right:5px}.Select--multi.Select--rtl .Select-value-icon{border-right:none;border-left:1px solid #c2e0ff;border-left:1px solid rgba(0,126,255,.24)}.Select--multi.is-disabled .Select-value{background-color:#fcfcfc;border:1px solid #e3e3e3;color:#333}.Select--multi.is-disabled .Select-value-icon{cursor:not-allowed;border-right:1px solid #e3e3e3}.Select--multi.is-disabled .Select-value-icon:active,.Select--multi.is-disabled .Select-value-icon:focus,.Select--multi.is-disabled .Select-value-icon:hover{background-color:#fcfcfc}@keyframes Select-animation-spin{to{transform:rotate(1turn)}}@-webkit-keyframes Select-animation-spin{to{-webkit-transform:rotate(1turn)}}", ""]);

	// exports


/***/ }),
/* 282 */,
/* 283 */,
/* 284 */
/***/ (function(module, exports, __webpack_require__) {

	exports = module.exports = __webpack_require__(8)();
	// imports


	// module
	exports.push([module.id, ".slideUp{-webkit-animation-name:slideUp;animation-name:slideUp;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:ease;animation-timing-function:ease;visibility:visible!important}@keyframes slideUp{0%{transform:translateY(100%)}50%{transform:translateY(-8%)}65%{transform:translateY(4%)}80%{transform:translateY(-4%)}95%{transform:translateY(2%)}to{transform:translateY(0)}}@-webkit-keyframes slideUp{0%{-webkit-transform:translateY(100%)}50%{-webkit-transform:translateY(-8%)}65%{-webkit-transform:translateY(4%)}80%{-webkit-transform:translateY(-4%)}95%{-webkit-transform:translateY(2%)}to{-webkit-transform:translateY(0)}}.rowDropTarget{position:absolute;left:0;width:100%;z-index:1;border-bottom:1px solid #000}", ""]);

	// exports


/***/ }),
/* 285 */,
/* 286 */
/***/ (function(module, exports, __webpack_require__) {

	exports = module.exports = __webpack_require__(8)();
	// imports


	// module
	exports.push([module.id, ".react-grid-image{background:#efefef;background-size:100%;display:inline-block;height:40px;width:40px}", ""]);

	// exports


/***/ }),
/* 287 */
/***/ (function(module, exports, __webpack_require__) {

	exports = module.exports = __webpack_require__(8)();
	// imports


	// module
	exports.push([module.id, ".react-grid-Toolbar{background-color:#fff;border-color:#e7eaec;border-image:none;border-style:solid solid none;border-width:1px;color:inherit;margin-bottom:0;padding:14px 15px 7px;height:48px}.react-grid-Toolbar .btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;color:inherit;background:#fff;border:1px solid #e7eaec}.react-grid-Toolbar .btn:hover{color:inherit;border:1px solid #d2d2d2}.react-grid-Toolbar .grouped-col-btn{background-color:#428bca;color:#fff;border-color:#2b669a}.react-grid-Toolbar .grouped-col-btn:hover{color:#fff;border-color:#2b669a}.react-grid-Toolbar .grouped-col-btn+.grouped-col-btn,.react-grid-Toolbar .grouped-col-btn__remove{margin-left:5px}.react-grid-Toolbar .tools{display:inline-block;float:right;margin-top:0;position:relative;padding:0;margin-top:-6px}", ""]);

	// exports


/***/ }),
/* 288 */
/***/ (function(module, exports, __webpack_require__) {

	exports = module.exports = __webpack_require__(8)();
	// imports


	// module
	exports.push([module.id, ".react-autocomplete-Autocomplete__search{display:block;width:100%;height:36px;padding:6px 12px;font-size:14px;line-height:1.6;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.react-autocomplete-Autocomplete__search:focus{border-color:#a21618;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(162,22,24,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(162,22,24,.6)}.react-autocomplete-Autocomplete__search::-moz-placeholder{color:#777;opacity:1}.react-autocomplete-Autocomplete__search:-ms-input-placeholder{color:#777}.react-autocomplete-Autocomplete__search::-webkit-input-placeholder{color:#777}.react-autocomplete-Autocomplete__search[disabled],.react-autocomplete-Autocomplete__search[readonly],fieldset[disabled] .react-autocomplete-Autocomplete__search{cursor:not-allowed;background-color:#eee;opacity:1}textarea.react-autocomplete-Autocomplete__search{height:auto}.react-autocomplete-Autocomplete__results{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;min-width:250px;width:100%;max-height:200px;overflow:auto}.react-autocomplete-Autocomplete__results.pull-right{right:0;left:auto}.react-autocomplete-Autocomplete__results .divider{height:1px;margin:10px 0;overflow:hidden;background-color:#e5e5e5}.react-autocomplete-Autocomplete__results>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.6;color:#333;white-space:nowrap}.react-autocomplete-Autocomplete__results div.action-button{display:block!important;padding:4px}.react-autocomplete-Result{cursor:pointer}.react-autocomplete-Result>a{text-decoration:none}.react-autocomplete-Result--active{color:#262626;background-color:#f5f5f5}", ""]);

	// exports


/***/ }),
/* 289 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	exports.__esModule = true;

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }

	var _isDisposable = __webpack_require__(82);

	var _isDisposable2 = _interopRequireDefault(_isDisposable);

	/**
	 * Represents a group of disposable resources that are disposed together.
	 */

	var CompositeDisposable = (function () {
	  function CompositeDisposable() {
	    for (var _len = arguments.length, disposables = Array(_len), _key = 0; _key < _len; _key++) {
	      disposables[_key] = arguments[_key];
	    }

	    _classCallCheck(this, CompositeDisposable);

	    if (Array.isArray(disposables[0]) && disposables.length === 1) {
	      disposables = disposables[0];
	    }

	    for (var i = 0; i < disposables.length; i++) {
	      if (!_isDisposable2['default'](disposables[i])) {
	        throw new Error('Expected a disposable');
	      }
	    }

	    this.disposables = disposables;
	    this.isDisposed = false;
	  }

	  /**
	   * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed.
	   * @param {Disposable} item Disposable to add.
	   */

	  CompositeDisposable.prototype.add = function add(item) {
	    if (this.isDisposed) {
	      item.dispose();
	    } else {
	      this.disposables.push(item);
	    }
	  };

	  /**
	   * Removes and disposes the first occurrence of a disposable from the CompositeDisposable.
	   * @param {Disposable} item Disposable to remove.
	   * @returns {Boolean} true if found; false otherwise.
	   */

	  CompositeDisposable.prototype.remove = function remove(item) {
	    if (this.isDisposed) {
	      return false;
	    }

	    var index = this.disposables.indexOf(item);
	    if (index === -1) {
	      return false;
	    }

	    this.disposables.splice(index, 1);
	    item.dispose();
	    return true;
	  };

	  /**
	   * Disposes all disposables in the group and removes them from the group.
	   */

	  CompositeDisposable.prototype.dispose = function dispose() {
	    if (this.isDisposed) {
	      return;
	    }

	    var len = this.disposables.length;
	    var currentDisposables = new Array(len);
	    for (var i = 0; i < len; i++) {
	      currentDisposables[i] = this.disposables[i];
	    }

	    this.isDisposed = true;
	    this.disposables = [];
	    this.length = 0;

	    for (var i = 0; i < len; i++) {
	      currentDisposables[i].dispose();
	    }
	  };

	  return CompositeDisposable;
	})();

	exports['default'] = CompositeDisposable;
	module.exports = exports['default'];

/***/ }),
/* 290 */
/***/ (function(module, exports) {

	"use strict";

	exports.__esModule = true;

	var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	var noop = function noop() {};

	/**
	 * The basic disposable.
	 */

	var Disposable = (function () {
	  _createClass(Disposable, null, [{
	    key: "empty",
	    value: { dispose: noop },
	    enumerable: true
	  }]);

	  function Disposable(action) {
	    _classCallCheck(this, Disposable);

	    this.isDisposed = false;
	    this.action = action || noop;
	  }

	  Disposable.prototype.dispose = function dispose() {
	    if (!this.isDisposed) {
	      this.action.call(null);
	      this.isDisposed = true;
	    }
	  };

	  return Disposable;
	})();

	exports["default"] = Disposable;
	module.exports = exports["default"];

/***/ }),
/* 291 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	exports.__esModule = true;

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }

	var _isDisposable = __webpack_require__(82);

	var _isDisposable2 = _interopRequireDefault(_isDisposable);

	var SerialDisposable = (function () {
	  function SerialDisposable() {
	    _classCallCheck(this, SerialDisposable);

	    this.isDisposed = false;
	    this.current = null;
	  }

	  /**
	   * Gets the underlying disposable.
	   * @return The underlying disposable.
	   */

	  SerialDisposable.prototype.getDisposable = function getDisposable() {
	    return this.current;
	  };

	  /**
	   * Sets the underlying disposable.
	   * @param {Disposable} value The new underlying disposable.
	   */

	  SerialDisposable.prototype.setDisposable = function setDisposable() {
	    var value = arguments.length <= 0 || arguments[0] === undefined ? null : arguments[0];

	    if (value != null && !_isDisposable2['default'](value)) {
	      throw new Error('Expected either an empty value or a valid disposable');
	    }

	    var isDisposed = this.isDisposed;
	    var previous = undefined;

	    if (!isDisposed) {
	      previous = this.current;
	      this.current = value;
	    }

	    if (previous) {
	      previous.dispose();
	    }

	    if (isDisposed && value) {
	      value.dispose();
	    }
	  };

	  /**
	   * Disposes the underlying disposable as well as all future replacements.
	   */

	  SerialDisposable.prototype.dispose = function dispose() {
	    if (this.isDisposed) {
	      return;
	    }

	    this.isDisposed = true;
	    var previous = this.current;
	    this.current = null;

	    if (previous) {
	      previous.dispose();
	    }
	  };

	  return SerialDisposable;
	})();

	exports['default'] = SerialDisposable;
	module.exports = exports['default'];

/***/ }),
/* 292 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	exports.__esModule = true;

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	var _isDisposable2 = __webpack_require__(82);

	var _isDisposable3 = _interopRequireDefault(_isDisposable2);

	exports.isDisposable = _isDisposable3['default'];

	var _Disposable2 = __webpack_require__(290);

	var _Disposable3 = _interopRequireDefault(_Disposable2);

	exports.Disposable = _Disposable3['default'];

	var _CompositeDisposable2 = __webpack_require__(289);

	var _CompositeDisposable3 = _interopRequireDefault(_CompositeDisposable2);

	exports.CompositeDisposable = _CompositeDisposable3['default'];

	var _SerialDisposable2 = __webpack_require__(291);

	var _SerialDisposable3 = _interopRequireDefault(_SerialDisposable2);

	exports.SerialDisposable = _SerialDisposable3['default'];

/***/ }),
/* 293 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _createStore = __webpack_require__(386);

	var _createStore2 = _interopRequireDefault(_createStore);

	var _reducers = __webpack_require__(301);

	var _reducers2 = _interopRequireDefault(_reducers);

	var _dragDrop = __webpack_require__(50);

	var dragDropActions = _interopRequireWildcard(_dragDrop);

	var _DragDropMonitor = __webpack_require__(294);

	var _DragDropMonitor2 = _interopRequireDefault(_DragDropMonitor);

	function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	var DragDropManager = function () {
		function DragDropManager(createBackend) {
			var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

			_classCallCheck(this, DragDropManager);

			var store = (0, _createStore2.default)(_reducers2.default);
			this.context = context;
			this.store = store;
			this.monitor = new _DragDropMonitor2.default(store);
			this.registry = this.monitor.registry;
			this.backend = createBackend(this);

			store.subscribe(this.handleRefCountChange.bind(this));
		}

		_createClass(DragDropManager, [{
			key: 'handleRefCountChange',
			value: function handleRefCountChange() {
				var shouldSetUp = this.store.getState().refCount > 0;
				if (shouldSetUp && !this.isSetUp) {
					this.backend.setup();
					this.isSetUp = true;
				} else if (!shouldSetUp && this.isSetUp) {
					this.backend.teardown();
					this.isSetUp = false;
				}
			}
		}, {
			key: 'getContext',
			value: function getContext() {
				return this.context;
			}
		}, {
			key: 'getMonitor',
			value: function getMonitor() {
				return this.monitor;
			}
		}, {
			key: 'getBackend',
			value: function getBackend() {
				return this.backend;
			}
		}, {
			key: 'getRegistry',
			value: function getRegistry() {
				return this.registry;
			}
		}, {
			key: 'getActions',
			value: function getActions() {
				var manager = this;
				var dispatch = this.store.dispatch;


				function bindActionCreator(actionCreator) {
					return function () {
						for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
							args[_key] = arguments[_key];
						}

						var action = actionCreator.apply(manager, args);
						if (typeof action !== 'undefined') {
							dispatch(action);
						}
					};
				}

				return Object.keys(dragDropActions).filter(function (key) {
					return typeof dragDropActions[key] === 'function';
				}).reduce(function (boundActions, key) {
					var action = dragDropActions[key];
					boundActions[key] = bindActionCreator(action); // eslint-disable-line no-param-reassign
					return boundActions;
				}, {});
			}
		}]);

		return DragDropManager;
	}();

	exports.default = DragDropManager;

/***/ }),
/* 294 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _invariant = __webpack_require__(10);

	var _invariant2 = _interopRequireDefault(_invariant);

	var _isArray = __webpack_require__(7);

	var _isArray2 = _interopRequireDefault(_isArray);

	var _matchesType = __webpack_require__(142);

	var _matchesType2 = _interopRequireDefault(_matchesType);

	var _HandlerRegistry = __webpack_require__(297);

	var _HandlerRegistry2 = _interopRequireDefault(_HandlerRegistry);

	var _dragOffset = __webpack_require__(141);

	var _dirtyHandlerIds = __webpack_require__(140);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	var DragDropMonitor = function () {
		function DragDropMonitor(store) {
			_classCallCheck(this, DragDropMonitor);

			this.store = store;
			this.registry = new _HandlerRegistry2.default(store);
		}

		_createClass(DragDropMonitor, [{
			key: 'subscribeToStateChange',
			value: function subscribeToStateChange(listener) {
				var _this = this;

				var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
				var handlerIds = options.handlerIds;

				(0, _invariant2.default)(typeof listener === 'function', 'listener must be a function.');
				(0, _invariant2.default)(typeof handlerIds === 'undefined' || (0, _isArray2.default)(handlerIds), 'handlerIds, when specified, must be an array of strings.');

				var prevStateId = this.store.getState().stateId;
				var handleChange = function handleChange() {
					var state = _this.store.getState();
					var currentStateId = state.stateId;
					try {
						var canSkipListener = currentStateId === prevStateId || currentStateId === prevStateId + 1 && !(0, _dirtyHandlerIds.areDirty)(state.dirtyHandlerIds, handlerIds);

						if (!canSkipListener) {
							listener();
						}
					} finally {
						prevStateId = currentStateId;
					}
				};

				return this.store.subscribe(handleChange);
			}
		}, {
			key: 'subscribeToOffsetChange',
			value: function subscribeToOffsetChange(listener) {
				var _this2 = this;

				(0, _invariant2.default)(typeof listener === 'function', 'listener must be a function.');

				var previousState = this.store.getState().dragOffset;
				var handleChange = function handleChange() {
					var nextState = _this2.store.getState().dragOffset;
					if (nextState === previousState) {
						return;
					}

					previousState = nextState;
					listener();
				};

				return this.store.subscribe(handleChange);
			}
		}, {
			key: 'canDragSource',
			value: function canDragSource(sourceId) {
				var source = this.registry.getSource(sourceId);
				(0, _invariant2.default)(source, 'Expected to find a valid source.');

				if (this.isDragging()) {
					return false;
				}

				return source.canDrag(this, sourceId);
			}
		}, {
			key: 'canDropOnTarget',
			value: function canDropOnTarget(targetId) {
				var target = this.registry.getTarget(targetId);
				(0, _invariant2.default)(target, 'Expected to find a valid target.');

				if (!this.isDragging() || this.didDrop()) {
					return false;
				}

				var targetType = this.registry.getTargetType(targetId);
				var draggedItemType = this.getItemType();
				return (0, _matchesType2.default)(targetType, draggedItemType) && target.canDrop(this, targetId);
			}
		}, {
			key: 'isDragging',
			value: function isDragging() {
				return Boolean(this.getItemType());
			}
		}, {
			key: 'isDraggingSource',
			value: function isDraggingSource(sourceId) {
				var source = this.registry.getSource(sourceId, true);
				(0, _invariant2.default)(source, 'Expected to find a valid source.');

				if (!this.isDragging() || !this.isSourcePublic()) {
					return false;
				}

				var sourceType = this.registry.getSourceType(sourceId);
				var draggedItemType = this.getItemType();
				if (sourceType !== draggedItemType) {
					return false;
				}

				return source.isDragging(this, sourceId);
			}
		}, {
			key: 'isOverTarget',
			value: function isOverTarget(targetId) {
				var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { shallow: false };
				var shallow = options.shallow;

				if (!this.isDragging()) {
					return false;
				}

				var targetType = this.registry.getTargetType(targetId);
				var draggedItemType = this.getItemType();
				if (!(0, _matchesType2.default)(targetType, draggedItemType)) {
					return false;
				}

				var targetIds = this.getTargetIds();
				if (!targetIds.length) {
					return false;
				}

				var index = targetIds.indexOf(targetId);
				if (shallow) {
					return index === targetIds.length - 1;
				} else {
					return index > -1;
				}
			}
		}, {
			key: 'getItemType',
			value: function getItemType() {
				return this.store.getState().dragOperation.itemType;
			}
		}, {
			key: 'getItem',
			value: function getItem() {
				return this.store.getState().dragOperation.item;
			}
		}, {
			key: 'getSourceId',
			value: function getSourceId() {
				return this.store.getState().dragOperation.sourceId;
			}
		}, {
			key: 'getTargetIds',
			value: function getTargetIds() {
				return this.store.getState().dragOperation.targetIds;
			}
		}, {
			key: 'getDropResult',
			value: function getDropResult() {
				return this.store.getState().dragOperation.dropResult;
			}
		}, {
			key: 'didDrop',
			value: function didDrop() {
				return this.store.getState().dragOperation.didDrop;
			}
		}, {
			key: 'isSourcePublic',
			value: function isSourcePublic() {
				return this.store.getState().dragOperation.isSourcePublic;
			}
		}, {
			key: 'getInitialClientOffset',
			value: function getInitialClientOffset() {
				return this.store.getState().dragOffset.initialClientOffset;
			}
		}, {
			key: 'getInitialSourceClientOffset',
			value: function getInitialSourceClientOffset() {
				return this.store.getState().dragOffset.initialSourceClientOffset;
			}
		}, {
			key: 'getClientOffset',
			value: function getClientOffset() {
				return this.store.getState().dragOffset.clientOffset;
			}
		}, {
			key: 'getSourceClientOffset',
			value: function getSourceClientOffset() {
				return (0, _dragOffset.getSourceClientOffset)(this.store.getState().dragOffset);
			}
		}, {
			key: 'getDifferenceFromInitialOffset',
			value: function getDifferenceFromInitialOffset() {
				return (0, _dragOffset.getDifferenceFromInitialOffset)(this.store.getState().dragOffset);
			}
		}]);

		return DragDropMonitor;
	}();

	exports.default = DragDropMonitor;

/***/ }),
/* 295 */
/***/ (function(module, exports) {

	"use strict";

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	var DragSource = function () {
		function DragSource() {
			_classCallCheck(this, DragSource);
		}

		_createClass(DragSource, [{
			key: "canDrag",
			value: function canDrag() {
				return true;
			}
		}, {
			key: "isDragging",
			value: function isDragging(monitor, handle) {
				return handle === monitor.getSourceId();
			}
		}, {
			key: "endDrag",
			value: function endDrag() {}
		}]);

		return DragSource;
	}();

	exports.default = DragSource;

/***/ }),
/* 296 */
/***/ (function(module, exports) {

	"use strict";

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	var DropTarget = function () {
		function DropTarget() {
			_classCallCheck(this, DropTarget);
		}

		_createClass(DropTarget, [{
			key: "canDrop",
			value: function canDrop() {
				return true;
			}
		}, {
			key: "hover",
			value: function hover() {}
		}, {
			key: "drop",
			value: function drop() {}
		}]);

		return DropTarget;
	}();

	exports.default = DropTarget;

/***/ }),
/* 297 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

	var _invariant = __webpack_require__(10);

	var _invariant2 = _interopRequireDefault(_invariant);

	var _isArray = __webpack_require__(7);

	var _isArray2 = _interopRequireDefault(_isArray);

	var _asap = __webpack_require__(214);

	var _asap2 = _interopRequireDefault(_asap);

	var _registry = __webpack_require__(51);

	var _getNextUniqueId = __webpack_require__(304);

	var _getNextUniqueId2 = _interopRequireDefault(_getNextUniqueId);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	var HandlerRoles = {
		SOURCE: 'SOURCE',
		TARGET: 'TARGET'
	};

	function validateSourceContract(source) {
		(0, _invariant2.default)(typeof source.canDrag === 'function', 'Expected canDrag to be a function.');
		(0, _invariant2.default)(typeof source.beginDrag === 'function', 'Expected beginDrag to be a function.');
		(0, _invariant2.default)(typeof source.endDrag === 'function', 'Expected endDrag to be a function.');
	}

	function validateTargetContract(target) {
		(0, _invariant2.default)(typeof target.canDrop === 'function', 'Expected canDrop to be a function.');
		(0, _invariant2.default)(typeof target.hover === 'function', 'Expected hover to be a function.');
		(0, _invariant2.default)(typeof target.drop === 'function', 'Expected beginDrag to be a function.');
	}

	function validateType(type, allowArray) {
		if (allowArray && (0, _isArray2.default)(type)) {
			type.forEach(function (t) {
				return validateType(t, false);
			});
			return;
		}

		(0, _invariant2.default)(typeof type === 'string' || (typeof type === 'undefined' ? 'undefined' : _typeof(type)) === 'symbol', allowArray ? 'Type can only be a string, a symbol, or an array of either.' : 'Type can only be a string or a symbol.');
	}

	function getNextHandlerId(role) {
		var id = (0, _getNextUniqueId2.default)().toString();
		switch (role) {
			case HandlerRoles.SOURCE:
				return 'S' + id;
			case HandlerRoles.TARGET:
				return 'T' + id;
			default:
				(0, _invariant2.default)(false, 'Unknown role: ' + role);
		}
	}

	function parseRoleFromHandlerId(handlerId) {
		switch (handlerId[0]) {
			case 'S':
				return HandlerRoles.SOURCE;
			case 'T':
				return HandlerRoles.TARGET;
			default:
				(0, _invariant2.default)(false, 'Cannot parse handler ID: ' + handlerId);
		}
	}

	var HandlerRegistry = function () {
		function HandlerRegistry(store) {
			_classCallCheck(this, HandlerRegistry);

			this.store = store;

			this.types = {};
			this.handlers = {};

			this.pinnedSourceId = null;
			this.pinnedSource = null;
		}

		_createClass(HandlerRegistry, [{
			key: 'addSource',
			value: function addSource(type, source) {
				validateType(type);
				validateSourceContract(source);

				var sourceId = this.addHandler(HandlerRoles.SOURCE, type, source);
				this.store.dispatch((0, _registry.addSource)(sourceId));
				return sourceId;
			}
		}, {
			key: 'addTarget',
			value: function addTarget(type, target) {
				validateType(type, true);
				validateTargetContract(target);

				var targetId = this.addHandler(HandlerRoles.TARGET, type, target);
				this.store.dispatch((0, _registry.addTarget)(targetId));
				return targetId;
			}
		}, {
			key: 'addHandler',
			value: function addHandler(role, type, handler) {
				var id = getNextHandlerId(role);
				this.types[id] = type;
				this.handlers[id] = handler;

				return id;
			}
		}, {
			key: 'containsHandler',
			value: function containsHandler(handler) {
				var _this = this;

				return Object.keys(this.handlers).some(function (key) {
					return _this.handlers[key] === handler;
				});
			}
		}, {
			key: 'getSource',
			value: function getSource(sourceId, includePinned) {
				(0, _invariant2.default)(this.isSourceId(sourceId), 'Expected a valid source ID.');

				var isPinned = includePinned && sourceId === this.pinnedSourceId;
				var source = isPinned ? this.pinnedSource : this.handlers[sourceId];

				return source;
			}
		}, {
			key: 'getTarget',
			value: function getTarget(targetId) {
				(0, _invariant2.default)(this.isTargetId(targetId), 'Expected a valid target ID.');
				return this.handlers[targetId];
			}
		}, {
			key: 'getSourceType',
			value: function getSourceType(sourceId) {
				(0, _invariant2.default)(this.isSourceId(sourceId), 'Expected a valid source ID.');
				return this.types[sourceId];
			}
		}, {
			key: 'getTargetType',
			value: function getTargetType(targetId) {
				(0, _invariant2.default)(this.isTargetId(targetId), 'Expected a valid target ID.');
				return this.types[targetId];
			}
		}, {
			key: 'isSourceId',
			value: function isSourceId(handlerId) {
				var role = parseRoleFromHandlerId(handlerId);
				return role === HandlerRoles.SOURCE;
			}
		}, {
			key: 'isTargetId',
			value: function isTargetId(handlerId) {
				var role = parseRoleFromHandlerId(handlerId);
				return role === HandlerRoles.TARGET;
			}
		}, {
			key: 'removeSource',
			value: function removeSource(sourceId) {
				var _this2 = this;

				(0, _invariant2.default)(this.getSource(sourceId), 'Expected an existing source.');
				this.store.dispatch((0, _registry.removeSource)(sourceId));

				(0, _asap2.default)(function () {
					delete _this2.handlers[sourceId];
					delete _this2.types[sourceId];
				});
			}
		}, {
			key: 'removeTarget',
			value: function removeTarget(targetId) {
				var _this3 = this;

				(0, _invariant2.default)(this.getTarget(targetId), 'Expected an existing target.');
				this.store.dispatch((0, _registry.removeTarget)(targetId));

				(0, _asap2.default)(function () {
					delete _this3.handlers[targetId];
					delete _this3.types[targetId];
				});
			}
		}, {
			key: 'pinSource',
			value: function pinSource(sourceId) {
				var source = this.getSource(sourceId);
				(0, _invariant2.default)(source, 'Expected an existing source.');

				this.pinnedSourceId = sourceId;
				this.pinnedSource = source;
			}
		}, {
			key: 'unpinSource',
			value: function unpinSource() {
				(0, _invariant2.default)(this.pinnedSource, 'No source is pinned at the time.');

				this.pinnedSourceId = null;
				this.pinnedSource = null;
			}
		}]);

		return HandlerRegistry;
	}();

	exports.default = HandlerRegistry;

/***/ }),
/* 298 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	exports.default = createBackend;

	var _noop = __webpack_require__(147);

	var _noop2 = _interopRequireDefault(_noop);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	var TestBackend = function () {
		function TestBackend(manager) {
			_classCallCheck(this, TestBackend);

			this.actions = manager.getActions();
		}

		_createClass(TestBackend, [{
			key: 'setup',
			value: function setup() {
				this.didCallSetup = true;
			}
		}, {
			key: 'teardown',
			value: function teardown() {
				this.didCallTeardown = true;
			}
		}, {
			key: 'connectDragSource',
			value: function connectDragSource() {
				return _noop2.default;
			}
		}, {
			key: 'connectDragPreview',
			value: function connectDragPreview() {
				return _noop2.default;
			}
		}, {
			key: 'connectDropTarget',
			value: function connectDropTarget() {
				return _noop2.default;
			}
		}, {
			key: 'simulateBeginDrag',
			value: function simulateBeginDrag(sourceIds, options) {
				this.actions.beginDrag(sourceIds, options);
			}
		}, {
			key: 'simulatePublishDragSource',
			value: function simulatePublishDragSource() {
				this.actions.publishDragSource();
			}
		}, {
			key: 'simulateHover',
			value: function simulateHover(targetIds, options) {
				this.actions.hover(targetIds, options);
			}
		}, {
			key: 'simulateDrop',
			value: function simulateDrop() {
				this.actions.drop();
			}
		}, {
			key: 'simulateEndDrag',
			value: function simulateEndDrag() {
				this.actions.endDrag();
			}
		}]);

		return TestBackend;
	}();

	function createBackend(manager) {
		return new TestBackend(manager);
	}

/***/ }),
/* 299 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _DragDropManager = __webpack_require__(293);

	Object.defineProperty(exports, 'DragDropManager', {
	  enumerable: true,
	  get: function get() {
	    return _interopRequireDefault(_DragDropManager).default;
	  }
	});

	var _DragSource = __webpack_require__(295);

	Object.defineProperty(exports, 'DragSource', {
	  enumerable: true,
	  get: function get() {
	    return _interopRequireDefault(_DragSource).default;
	  }
	});

	var _DropTarget = __webpack_require__(296);

	Object.defineProperty(exports, 'DropTarget', {
	  enumerable: true,
	  get: function get() {
	    return _interopRequireDefault(_DropTarget).default;
	  }
	});

	var _createTestBackend = __webpack_require__(298);

	Object.defineProperty(exports, 'createTestBackend', {
	  enumerable: true,
	  get: function get() {
	    return _interopRequireDefault(_createTestBackend).default;
	  }
	});

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

/***/ }),
/* 300 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _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; };

	exports.default = dragOperation;

	var _without = __webpack_require__(148);

	var _without2 = _interopRequireDefault(_without);

	var _dragDrop = __webpack_require__(50);

	var _registry = __webpack_require__(51);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	var initialState = {
		itemType: null,
		item: null,
		sourceId: null,
		targetIds: [],
		dropResult: null,
		didDrop: false,
		isSourcePublic: null
	};

	function dragOperation() {
		var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
		var action = arguments[1];

		switch (action.type) {
			case _dragDrop.BEGIN_DRAG:
				return _extends({}, state, {
					itemType: action.itemType,
					item: action.item,
					sourceId: action.sourceId,
					isSourcePublic: action.isSourcePublic,
					dropResult: null,
					didDrop: false
				});
			case _dragDrop.PUBLISH_DRAG_SOURCE:
				return _extends({}, state, {
					isSourcePublic: true
				});
			case _dragDrop.HOVER:
				return _extends({}, state, {
					targetIds: action.targetIds
				});
			case _registry.REMOVE_TARGET:
				if (state.targetIds.indexOf(action.targetId) === -1) {
					return state;
				}
				return _extends({}, state, {
					targetIds: (0, _without2.default)(state.targetIds, action.targetId)
				});
			case _dragDrop.DROP:
				return _extends({}, state, {
					dropResult: action.dropResult,
					didDrop: true,
					targetIds: []
				});
			case _dragDrop.END_DRAG:
				return _extends({}, state, {
					itemType: null,
					item: null,
					sourceId: null,
					dropResult: null,
					didDrop: false,
					isSourcePublic: null,
					targetIds: []
				});
			default:
				return state;
		}
	}

/***/ }),
/* 301 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.default = reduce;

	var _dragOffset = __webpack_require__(141);

	var _dragOffset2 = _interopRequireDefault(_dragOffset);

	var _dragOperation = __webpack_require__(300);

	var _dragOperation2 = _interopRequireDefault(_dragOperation);

	var _refCount = __webpack_require__(302);

	var _refCount2 = _interopRequireDefault(_refCount);

	var _dirtyHandlerIds = __webpack_require__(140);

	var _dirtyHandlerIds2 = _interopRequireDefault(_dirtyHandlerIds);

	var _stateId = __webpack_require__(303);

	var _stateId2 = _interopRequireDefault(_stateId);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function reduce() {
		var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
		var action = arguments[1];

		return {
			dirtyHandlerIds: (0, _dirtyHandlerIds2.default)(state.dirtyHandlerIds, action, state.dragOperation),
			dragOffset: (0, _dragOffset2.default)(state.dragOffset, action),
			refCount: (0, _refCount2.default)(state.refCount, action),
			dragOperation: (0, _dragOperation2.default)(state.dragOperation, action),
			stateId: (0, _stateId2.default)(state.stateId)
		};
	}

/***/ }),
/* 302 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.default = refCount;

	var _registry = __webpack_require__(51);

	function refCount() {
		var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
		var action = arguments[1];

		switch (action.type) {
			case _registry.ADD_SOURCE:
			case _registry.ADD_TARGET:
				return state + 1;
			case _registry.REMOVE_SOURCE:
			case _registry.REMOVE_TARGET:
				return state - 1;
			default:
				return state;
		}
	}

/***/ }),
/* 303 */
/***/ (function(module, exports) {

	"use strict";

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.default = stateId;
	function stateId() {
		var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

		return state + 1;
	}

/***/ }),
/* 304 */
/***/ (function(module, exports) {

	"use strict";

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.default = getNextUniqueId;
	var nextUniqueId = 0;

	function getNextUniqueId() {
		return nextUniqueId++;
	}

/***/ }),
/* 305 */
[1797, 323, 324, 325, 326, 327],
/* 306 */
/***/ (function(module, exports) {

	/**
	 * A faster alternative to `Function#apply`, this function invokes `func`
	 * with the `this` binding of `thisArg` and the arguments of `args`.
	 *
	 * @private
	 * @param {Function} func The function to invoke.
	 * @param {*} thisArg The `this` binding of `func`.
	 * @param {Array} args The arguments to invoke `func` with.
	 * @returns {*} Returns the result of `func`.
	 */
	function apply(func, thisArg, args) {
	  switch (args.length) {
	    case 0: return func.call(thisArg);
	    case 1: return func.call(thisArg, args[0]);
	    case 2: return func.call(thisArg, args[0], args[1]);
	    case 3: return func.call(thisArg, args[0], args[1], args[2]);
	  }
	  return func.apply(thisArg, args);
	}

	module.exports = apply;


/***/ }),
/* 307 */
/***/ (function(module, exports, __webpack_require__) {

	var baseFindIndex = __webpack_require__(199),
	    baseIsNaN = __webpack_require__(310),
	    strictIndexOf = __webpack_require__(349);

	/**
	 * The base implementation of `_.indexOf` without `fromIndex` bounds checks.
	 *
	 * @private
	 * @param {Array} array The array to inspect.
	 * @param {*} value The value to search for.
	 * @param {number} fromIndex The index to search from.
	 * @returns {number} Returns the index of the matched value, else `-1`.
	 */
	function baseIndexOf(array, value, fromIndex) {
	  return value === value
	    ? strictIndexOf(array, value, fromIndex)
	    : baseFindIndex(array, baseIsNaN, fromIndex);
	}

	module.exports = baseIndexOf;


/***/ }),
/* 308 */
/***/ (function(module, exports, __webpack_require__) {

	var SetCache = __webpack_require__(71),
	    arrayIncludes = __webpack_require__(84),
	    arrayIncludesWith = __webpack_require__(85),
	    arrayMap = __webpack_require__(52),
	    baseUnary = __webpack_require__(72),
	    cacheHas = __webpack_require__(73);

	/* Built-in method references for those with the same name as other `lodash` methods. */
	var nativeMin = Math.min;

	/**
	 * The base implementation of methods like `_.intersection`, without support
	 * for iteratee shorthands, that accepts an array of arrays to inspect.
	 *
	 * @private
	 * @param {Array} arrays The arrays to inspect.
	 * @param {Function} [iteratee] The iteratee invoked per element.
	 * @param {Function} [comparator] The comparator invoked per element.
	 * @returns {Array} Returns the new array of shared values.
	 */
	function baseIntersection(arrays, iteratee, comparator) {
	  var includes = comparator ? arrayIncludesWith : arrayIncludes,
	      length = arrays[0].length,
	      othLength = arrays.length,
	      othIndex = othLength,
	      caches = Array(othLength),
	      maxLength = Infinity,
	      result = [];

	  while (othIndex--) {
	    var array = arrays[othIndex];
	    if (othIndex && iteratee) {
	      array = arrayMap(array, baseUnary(iteratee));
	    }
	    maxLength = nativeMin(array.length, maxLength);
	    caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))
	      ? new SetCache(othIndex && array)
	      : undefined;
	  }
	  array = arrays[0];

	  var index = -1,
	      seen = caches[0];

	  outer:
	  while (++index < length && result.length < maxLength) {
	    var value = array[index],
	        computed = iteratee ? iteratee(value) : value;

	    value = (comparator || value !== 0) ? value : 0;
	    if (!(seen
	          ? cacheHas(seen, computed)
	          : includes(result, computed, comparator)
	        )) {
	      othIndex = othLength;
	      while (--othIndex) {
	        var cache = caches[othIndex];
	        if (!(cache
	              ? cacheHas(cache, computed)
	              : includes(arrays[othIndex], computed, comparator))
	            ) {
	          continue outer;
	        }
	      }
	      if (seen) {
	        seen.push(computed);
	      }
	      result.push(value);
	    }
	  }
	  return result;
	}

	module.exports = baseIntersection;


/***/ }),
/* 309 */
[1835, 33, 29],
/* 310 */
/***/ (function(module, exports) {

	/**
	 * The base implementation of `_.isNaN` without support for number objects.
	 *
	 * @private
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.
	 */
	function baseIsNaN(value) {
	  return value !== value;
	}

	module.exports = baseIsNaN;


/***/ }),
/* 311 */
[1842, 17, 330, 23, 203],
/* 312 */
[1844, 33, 117, 29],
/* 313 */
/***/ (function(module, exports, __webpack_require__) {

	var isObject = __webpack_require__(23),
	    isPrototype = __webpack_require__(201),
	    nativeKeysIn = __webpack_require__(341);

	/** Used for built-in method references. */
	var objectProto = Object.prototype;

	/** Used to check objects for own properties. */
	var hasOwnProperty = objectProto.hasOwnProperty;

	/**
	 * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
	 *
	 * @private
	 * @param {Object} object The object to query.
	 * @returns {Array} Returns the array of property names.
	 */
	function baseKeysIn(object) {
	  if (!isObject(object)) {
	    return nativeKeysIn(object);
	  }
	  var isProto = isPrototype(object),
	      result = [];

	  for (var key in object) {
	    if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
	      result.push(key);
	    }
	  }
	  return result;
	}

	module.exports = baseKeysIn;


/***/ }),
/* 314 */
/***/ (function(module, exports, __webpack_require__) {

	var constant = __webpack_require__(350),
	    defineProperty = __webpack_require__(200),
	    identity = __webpack_require__(75);

	/**
	 * The base implementation of `setToString` without support for hot loop shorting.
	 *
	 * @private
	 * @param {Function} func The function to modify.
	 * @param {Function} string The `toString` result.
	 * @returns {Function} Returns `func`.
	 */
	var baseSetToString = !defineProperty ? identity : function(func, string) {
	  return defineProperty(func, 'toString', {
	    'configurable': true,
	    'enumerable': false,
	    'value': constant(string),
	    'writable': true
	  });
	};

	module.exports = baseSetToString;


/***/ }),
/* 315 */
/***/ (function(module, exports) {

	/**
	 * The base implementation of `_.times` without support for iteratee shorthands
	 * or max array length checks.
	 *
	 * @private
	 * @param {number} n The number of times to invoke `iteratee`.
	 * @param {Function} iteratee The function invoked per iteration.
	 * @returns {Array} Returns the array of results.
	 */
	function baseTimes(n, iteratee) {
	  var index = -1,
	      result = Array(n);

	  while (++index < n) {
	    result[index] = iteratee(index);
	  }
	  return result;
	}

	module.exports = baseTimes;


/***/ }),
/* 316 */
/***/ (function(module, exports, __webpack_require__) {

	var baseDifference = __webpack_require__(144),
	    baseFlatten = __webpack_require__(100),
	    baseUniq = __webpack_require__(145);

	/**
	 * The base implementation of methods like `_.xor`, without support for
	 * iteratee shorthands, that accepts an array of arrays to inspect.
	 *
	 * @private
	 * @param {Array} arrays The arrays to inspect.
	 * @param {Function} [iteratee] The iteratee invoked per element.
	 * @param {Function} [comparator] The comparator invoked per element.
	 * @returns {Array} Returns the new array of values.
	 */
	function baseXor(arrays, iteratee, comparator) {
	  var length = arrays.length;
	  if (length < 2) {
	    return length ? baseUniq(arrays[0]) : [];
	  }
	  var index = -1,
	      result = Array(length);

	  while (++index < length) {
	    var array = arrays[index],
	        othIndex = -1;

	    while (++othIndex < length) {
	      if (othIndex != index) {
	        result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);
	      }
	    }
	  }
	  return baseUniq(baseFlatten(result, 1), iteratee, comparator);
	}

	module.exports = baseXor;


/***/ }),
/* 317 */
/***/ (function(module, exports, __webpack_require__) {

	var isArrayLikeObject = __webpack_require__(56);

	/**
	 * Casts `value` to an empty array if it's not an array like object.
	 *
	 * @private
	 * @param {*} value The value to inspect.
	 * @returns {Array|Object} Returns the cast array-like object.
	 */
	function castArrayLikeObject(value) {
	  return isArrayLikeObject(value) ? value : [];
	}

	module.exports = castArrayLikeObject;


/***/ }),
/* 318 */
[1855, 24],
/* 319 */
/***/ (function(module, exports, __webpack_require__) {

	var Set = __webpack_require__(196),
	    noop = __webpack_require__(147),
	    setToArray = __webpack_require__(115);

	/** Used as references for various `Number` constants. */
	var INFINITY = 1 / 0;

	/**
	 * Creates a set object of `values`.
	 *
	 * @private
	 * @param {Array} values The values to add to the set.
	 * @returns {Object} Returns the new set.
	 */
	var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {
	  return new Set(values);
	};

	module.exports = createSet;


/***/ }),
/* 320 */
/***/ (function(module, exports, __webpack_require__) {

	var overArg = __webpack_require__(202);

	/** Built-in value references. */
	var getPrototype = overArg(Object.getPrototypeOf, Object);

	module.exports = getPrototype;


/***/ }),
/* 321 */
[1874, 67],
/* 322 */
/***/ (function(module, exports) {

	/**
	 * Gets the value at `key` of `object`.
	 *
	 * @private
	 * @param {Object} [object] The object to query.
	 * @param {string} key The key of the property to get.
	 * @returns {*} Returns the property value.
	 */
	function getValue(object, key) {
	  return object == null ? undefined : object[key];
	}

	module.exports = getValue;


/***/ }),
/* 323 */
[1878, 55],
/* 324 */
/***/ (function(module, exports) {

	/**
	 * Removes `key` and its value from the hash.
	 *
	 * @private
	 * @name delete
	 * @memberOf Hash
	 * @param {Object} hash The hash to modify.
	 * @param {string} key The key of the value to remove.
	 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
	 */
	function hashDelete(key) {
	  var result = this.has(key) && delete this.__data__[key];
	  this.size -= result ? 1 : 0;
	  return result;
	}

	module.exports = hashDelete;


/***/ }),
/* 325 */
[1881, 55],
/* 326 */
[1884, 55],
/* 327 */
[1889, 55],
/* 328 */
/***/ (function(module, exports, __webpack_require__) {

	var Symbol = __webpack_require__(67),
	    isArguments = __webpack_require__(116),
	    isArray = __webpack_require__(7);

	/** Built-in value references. */
	var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;

	/**
	 * Checks if `value` is a flattenable `arguments` object or array.
	 *
	 * @private
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.
	 */
	function isFlattenable(value) {
	  return isArray(value) || isArguments(value) ||
	    !!(spreadableSymbol && value && value[spreadableSymbol]);
	}

	module.exports = isFlattenable;


/***/ }),
/* 329 */
/***/ (function(module, exports) {

	/**
	 * Checks if `value` is suitable for use as unique object key.
	 *
	 * @private
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
	 */
	function isKeyable(value) {
	  var type = typeof value;
	  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
	    ? (value !== '__proto__')
	    : (value === null);
	}

	module.exports = isKeyable;


/***/ }),
/* 330 */
[1891, 318],
/* 331 */
/***/ (function(module, exports) {

	/**
	 * Removes all key-value entries from the list cache.
	 *
	 * @private
	 * @name clear
	 * @memberOf ListCache
	 */
	function listCacheClear() {
	  this.__data__ = [];
	  this.size = 0;
	}

	module.exports = listCacheClear;


/***/ }),
/* 332 */
[1896, 53],
/* 333 */
[1898, 53],
/* 334 */
[1901, 53],
/* 335 */
[1904, 53],
/* 336 */
[1907, 305, 143, 188],
/* 337 */
[1911, 54],
/* 338 */
[1914, 54],
/* 339 */
[1917, 54],
/* 340 */
[1919, 54],
/* 341 */
/***/ (function(module, exports) {

	/**
	 * This function is like
	 * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
	 * except that it includes inherited enumerable properties.
	 *
	 * @private
	 * @param {Object} object The object to query.
	 * @returns {Array} Returns the array of property names.
	 */
	function nativeKeysIn(object) {
	  var result = [];
	  if (object != null) {
	    for (var key in Object(object)) {
	      result.push(key);
	    }
	  }
	  return result;
	}

	module.exports = nativeKeysIn;


/***/ }),
/* 342 */
[1929, 146],
/* 343 */
/***/ (function(module, exports) {

	/** Used for built-in method references. */
	var objectProto = Object.prototype;

	/**
	 * Used to resolve the
	 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
	 * of values.
	 */
	var nativeObjectToString = objectProto.toString;

	/**
	 * Converts `value` to a string using `Object.prototype.toString`.
	 *
	 * @private
	 * @param {*} value The value to convert.
	 * @returns {string} Returns the converted string.
	 */
	function objectToString(value) {
	  return nativeObjectToString.call(value);
	}

	module.exports = objectToString;


/***/ }),
/* 344 */
/***/ (function(module, exports, __webpack_require__) {

	var apply = __webpack_require__(306);

	/* Built-in method references for those with the same name as other `lodash` methods. */
	var nativeMax = Math.max;

	/**
	 * A specialized version of `baseRest` which transforms the rest array.
	 *
	 * @private
	 * @param {Function} func The function to apply a rest parameter to.
	 * @param {number} [start=func.length-1] The start position of the rest parameter.
	 * @param {Function} transform The rest array transform.
	 * @returns {Function} Returns the new function.
	 */
	function overRest(func, start, transform) {
	  start = nativeMax(start === undefined ? (func.length - 1) : start, 0);
	  return function() {
	    var args = arguments,
	        index = -1,
	        length = nativeMax(args.length - start, 0),
	        array = Array(length);

	    while (++index < length) {
	      array[index] = args[start + index];
	    }
	    index = -1;
	    var otherArgs = Array(start + 1);
	    while (++index < start) {
	      otherArgs[index] = args[index];
	    }
	    otherArgs[start] = transform(array);
	    return apply(func, this, otherArgs);
	  };
	}

	module.exports = overRest;


/***/ }),
/* 345 */
/***/ (function(module, exports) {

	/** Used to stand-in for `undefined` hash values. */
	var HASH_UNDEFINED = '__lodash_hash_undefined__';

	/**
	 * Adds `value` to the array cache.
	 *
	 * @private
	 * @name add
	 * @memberOf SetCache
	 * @alias push
	 * @param {*} value The value to cache.
	 * @returns {Object} Returns the cache instance.
	 */
	function setCacheAdd(value) {
	  this.__data__.set(value, HASH_UNDEFINED);
	  return this;
	}

	module.exports = setCacheAdd;


/***/ }),
/* 346 */
/***/ (function(module, exports) {

	/**
	 * Checks if `value` is in the array cache.
	 *
	 * @private
	 * @name has
	 * @memberOf SetCache
	 * @param {*} value The value to search for.
	 * @returns {number} Returns `true` if `value` is found, else `false`.
	 */
	function setCacheHas(value) {
	  return this.__data__.has(value);
	}

	module.exports = setCacheHas;


/***/ }),
/* 347 */
/***/ (function(module, exports, __webpack_require__) {

	var baseSetToString = __webpack_require__(314),
	    shortOut = __webpack_require__(348);

	/**
	 * Sets the `toString` method of `func` to return `string`.
	 *
	 * @private
	 * @param {Function} func The function to modify.
	 * @param {Function} string The `toString` result.
	 * @returns {Function} Returns `func`.
	 */
	var setToString = shortOut(baseSetToString);

	module.exports = setToString;


/***/ }),
/* 348 */
/***/ (function(module, exports) {

	/** Used to detect hot functions by number of calls within a span of milliseconds. */
	var HOT_COUNT = 800,
	    HOT_SPAN = 16;

	/* Built-in method references for those with the same name as other `lodash` methods. */
	var nativeNow = Date.now;

	/**
	 * Creates a function that'll short out and invoke `identity` instead
	 * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
	 * milliseconds.
	 *
	 * @private
	 * @param {Function} func The function to restrict.
	 * @returns {Function} Returns the new shortable function.
	 */
	function shortOut(func) {
	  var count = 0,
	      lastCalled = 0;

	  return function() {
	    var stamp = nativeNow(),
	        remaining = HOT_SPAN - (stamp - lastCalled);

	    lastCalled = stamp;
	    if (remaining > 0) {
	      if (++count >= HOT_COUNT) {
	        return arguments[0];
	      }
	    } else {
	      count = 0;
	    }
	    return func.apply(undefined, arguments);
	  };
	}

	module.exports = shortOut;


/***/ }),
/* 349 */
/***/ (function(module, exports) {

	/**
	 * A specialized version of `_.indexOf` which performs strict equality
	 * comparisons of values, i.e. `===`.
	 *
	 * @private
	 * @param {Array} array The array to inspect.
	 * @param {*} value The value to search for.
	 * @param {number} fromIndex The index to search from.
	 * @returns {number} Returns the index of the matched value, else `-1`.
	 */
	function strictIndexOf(array, value, fromIndex) {
	  var index = fromIndex - 1,
	      length = array.length;

	  while (++index < length) {
	    if (array[index] === value) {
	      return index;
	    }
	  }
	  return -1;
	}

	module.exports = strictIndexOf;


/***/ }),
/* 350 */
/***/ (function(module, exports) {

	/**
	 * Creates a function that returns `value`.
	 *
	 * @static
	 * @memberOf _
	 * @since 2.4.0
	 * @category Util
	 * @param {*} value The value to return from the new function.
	 * @returns {Function} Returns the new constant function.
	 * @example
	 *
	 * var objects = _.times(2, _.constant({ 'a': 1 }));
	 *
	 * console.log(objects);
	 * // => [{ 'a': 1 }, { 'a': 1 }]
	 *
	 * console.log(objects[0] === objects[1]);
	 * // => true
	 */
	function constant(value) {
	  return function() {
	    return value;
	  };
	}

	module.exports = constant;


/***/ }),
/* 351 */
/***/ (function(module, exports, __webpack_require__) {

	var baseRest = __webpack_require__(34),
	    eq = __webpack_require__(74),
	    isIterateeCall = __webpack_require__(114),
	    keysIn = __webpack_require__(352);

	/** Used for built-in method references. */
	var objectProto = Object.prototype;

	/** Used to check objects for own properties. */
	var hasOwnProperty = objectProto.hasOwnProperty;

	/**
	 * Assigns own and inherited enumerable string keyed properties of source
	 * objects to the destination object for all destination properties that
	 * resolve to `undefined`. Source objects are applied from left to right.
	 * Once a property is set, additional values of the same property are ignored.
	 *
	 * **Note:** This method mutates `object`.
	 *
	 * @static
	 * @since 0.1.0
	 * @memberOf _
	 * @category Object
	 * @param {Object} object The destination object.
	 * @param {...Object} [sources] The source objects.
	 * @returns {Object} Returns `object`.
	 * @see _.defaultsDeep
	 * @example
	 *
	 * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
	 * // => { 'a': 1, 'b': 2 }
	 */
	var defaults = baseRest(function(object, sources) {
	  object = Object(object);

	  var index = -1;
	  var length = sources.length;
	  var guard = length > 2 ? sources[2] : undefined;

	  if (guard && isIterateeCall(sources[0], sources[1], guard)) {
	    length = 1;
	  }

	  while (++index < length) {
	    var source = sources[index];
	    var props = keysIn(source);
	    var propsIndex = -1;
	    var propsLength = props.length;

	    while (++propsIndex < propsLength) {
	      var key = props[propsIndex];
	      var value = object[key];

	      if (value === undefined ||
	          (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {
	        object[key] = source[key];
	      }
	    }
	  }

	  return object;
	});

	module.exports = defaults;


/***/ }),
/* 352 */
/***/ (function(module, exports, __webpack_require__) {

	var arrayLikeKeys = __webpack_require__(197),
	    baseKeysIn = __webpack_require__(313),
	    isArrayLike = __webpack_require__(46);

	/**
	 * Creates an array of the own and inherited enumerable property names of `object`.
	 *
	 * **Note:** Non-object values are coerced to objects.
	 *
	 * @static
	 * @memberOf _
	 * @since 3.0.0
	 * @category Object
	 * @param {Object} object The object to query.
	 * @returns {Array} Returns the array of property names.
	 * @example
	 *
	 * function Foo() {
	 *   this.a = 1;
	 *   this.b = 2;
	 * }
	 *
	 * Foo.prototype.c = 3;
	 *
	 * _.keysIn(new Foo);
	 * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
	 */
	function keysIn(object) {
	  return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
	}

	module.exports = keysIn;


/***/ }),
/* 353 */
/***/ (function(module, exports) {

	/**
	 * This method returns `false`.
	 *
	 * @static
	 * @memberOf _
	 * @since 4.13.0
	 * @category Util
	 * @returns {boolean} Returns `false`.
	 * @example
	 *
	 * _.times(2, _.stubFalse);
	 * // => [false, false]
	 */
	function stubFalse() {
	  return false;
	}

	module.exports = stubFalse;


/***/ }),
/* 354 */
/***/ (function(module, exports, __webpack_require__) {

	var baseFlatten = __webpack_require__(100),
	    baseRest = __webpack_require__(34),
	    baseUniq = __webpack_require__(145),
	    isArrayLikeObject = __webpack_require__(56);

	/**
	 * Creates an array of unique values, in order, from all given arrays using
	 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
	 * for equality comparisons.
	 *
	 * @static
	 * @memberOf _
	 * @since 0.1.0
	 * @category Array
	 * @param {...Array} [arrays] The arrays to inspect.
	 * @returns {Array} Returns the new array of combined values.
	 * @example
	 *
	 * _.union([2], [1, 2]);
	 * // => [2, 1]
	 */
	var union = baseRest(function(arrays) {
	  return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));
	});

	module.exports = union;


/***/ }),
/* 355 */
/***/ (function(module, exports, __webpack_require__) {

	var arrayFilter = __webpack_require__(189),
	    baseRest = __webpack_require__(34),
	    baseXor = __webpack_require__(316),
	    isArrayLikeObject = __webpack_require__(56);

	/**
	 * Creates an array of unique values that is the
	 * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)
	 * of the given arrays. The order of result values is determined by the order
	 * they occur in the arrays.
	 *
	 * @static
	 * @memberOf _
	 * @since 2.4.0
	 * @category Array
	 * @param {...Array} [arrays] The arrays to inspect.
	 * @returns {Array} Returns the new array of filtered values.
	 * @see _.difference, _.without
	 * @example
	 *
	 * _.xor([2, 1], [2, 3]);
	 * // => [1, 3]
	 */
	var xor = baseRest(function(arrays) {
	  return baseXor(arrayFilter(arrays, isArrayLikeObject));
	});

	module.exports = xor;


/***/ }),
/* 356 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	    value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _classnames = __webpack_require__(4);

	var _classnames2 = _interopRequireDefault(_classnames);

	var _objectAssign = __webpack_require__(27);

	var _objectAssign2 = _interopRequireDefault(_objectAssign);

	var _globalEventListener = __webpack_require__(87);

	var _globalEventListener2 = _interopRequireDefault(_globalEventListener);

	var _AbstractMenu2 = __webpack_require__(149);

	var _AbstractMenu3 = _interopRequireDefault(_AbstractMenu2);

	var _SubMenu = __webpack_require__(152);

	var _SubMenu2 = _interopRequireDefault(_SubMenu);

	var _actions = __webpack_require__(39);

	var _helpers = __webpack_require__(32);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _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; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var ContextMenu = function (_AbstractMenu) {
	    _inherits(ContextMenu, _AbstractMenu);

	    function ContextMenu(props) {
	        _classCallCheck(this, ContextMenu);

	        var _this = _possibleConstructorReturn(this, (ContextMenu.__proto__ || Object.getPrototypeOf(ContextMenu)).call(this, props));

	        _this.registerHandlers = function () {
	            document.addEventListener('mousedown', _this.handleOutsideClick);
	            document.addEventListener('touchstart', _this.handleOutsideClick);
	            document.addEventListener('scroll', _this.handleHide);
	            document.addEventListener('contextmenu', _this.handleHide);
	            document.addEventListener('keydown', _this.handleKeyNavigation);
	            window.addEventListener('resize', _this.handleHide);
	        };

	        _this.unregisterHandlers = function () {
	            document.removeEventListener('mousedown', _this.handleOutsideClick);
	            document.removeEventListener('touchstart', _this.handleOutsideClick);
	            document.removeEventListener('scroll', _this.handleHide);
	            document.removeEventListener('contextmenu', _this.handleHide);
	            document.removeEventListener('keydown', _this.handleKeyNavigation);
	            window.removeEventListener('resize', _this.handleHide);
	        };

	        _this.handleShow = function (e) {
	            if (e.detail.id !== _this.props.id || _this.state.isVisible) return;

	            var _e$detail$position = e.detail.position,
	                x = _e$detail$position.x,
	                y = _e$detail$position.y;


	            _this.setState({ isVisible: true, x: x, y: y });
	            _this.registerHandlers();
	            (0, _helpers.callIfExists)(_this.props.onShow, e);
	        };

	        _this.handleHide = function (e) {
	            if (_this.state.isVisible && (!e.detail || !e.detail.id || e.detail.id === _this.props.id)) {
	                _this.unregisterHandlers();
	                _this.setState({ isVisible: false, selectedItem: null, forceSubMenuOpen: false });
	                (0, _helpers.callIfExists)(_this.props.onHide, e);
	            }
	        };

	        _this.handleOutsideClick = function (e) {
	            if (!_this.menu.contains(e.target)) (0, _actions.hideMenu)();
	        };

	        _this.handleMouseLeave = function (event) {
	            event.preventDefault();

	            (0, _helpers.callIfExists)(_this.props.onMouseLeave, event, (0, _objectAssign2.default)({}, _this.props.data, _helpers.store.data), _helpers.store.target);

	            if (_this.props.hideOnLeave) (0, _actions.hideMenu)();
	        };

	        _this.handleContextMenu = function (e) {
	            if (true) {
	                e.preventDefault();
	            }
	            _this.handleHide(e);
	        };

	        _this.hideMenu = function (e) {
	            if (e.keyCode === 27 || e.keyCode === 13) {
	                // ECS or enter
	                (0, _actions.hideMenu)();
	            }
	        };

	        _this.getMenuPosition = function () {
	            var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
	            var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

	            var menuStyles = {
	                top: y,
	                left: x
	            };

	            if (!_this.menu) return menuStyles;

	            var _window = window,
	                innerWidth = _window.innerWidth,
	                innerHeight = _window.innerHeight;

	            var rect = _this.menu.getBoundingClientRect();

	            if (y + rect.height > innerHeight) {
	                menuStyles.top -= rect.height;
	            }

	            if (x + rect.width > innerWidth) {
	                menuStyles.left -= rect.width;
	            }

	            if (menuStyles.top < 0) {
	                menuStyles.top = rect.height < innerHeight ? (innerHeight - rect.height) / 2 : 0;
	            }

	            if (menuStyles.left < 0) {
	                menuStyles.left = rect.width < innerWidth ? (innerWidth - rect.width) / 2 : 0;
	            }

	            return menuStyles;
	        };

	        _this.getRTLMenuPosition = function () {
	            var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
	            var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

	            var menuStyles = {
	                top: y,
	                left: x
	            };

	            if (!_this.menu) return menuStyles;

	            var _window2 = window,
	                innerWidth = _window2.innerWidth,
	                innerHeight = _window2.innerHeight;

	            var rect = _this.menu.getBoundingClientRect();

	            // Try to position the menu on the left side of the cursor
	            menuStyles.left = x - rect.width;

	            if (y + rect.height > innerHeight) {
	                menuStyles.top -= rect.height;
	            }

	            if (menuStyles.left < 0) {
	                menuStyles.left += rect.width;
	            }

	            if (menuStyles.top < 0) {
	                menuStyles.top = rect.height < innerHeight ? (innerHeight - rect.height) / 2 : 0;
	            }

	            if (menuStyles.left + rect.width > innerWidth) {
	                menuStyles.left = rect.width < innerWidth ? (innerWidth - rect.width) / 2 : 0;
	            }

	            return menuStyles;
	        };

	        _this.menuRef = function (c) {
	            _this.menu = c;
	        };

	        _this.state = (0, _objectAssign2.default)({}, _this.state, {
	            x: 0,
	            y: 0,
	            isVisible: false
	        });
	        return _this;
	    }

	    _createClass(ContextMenu, [{
	        key: 'getSubMenuType',
	        value: function getSubMenuType() {
	            // eslint-disable-line class-methods-use-this
	            return _SubMenu2.default;
	        }
	    }, {
	        key: 'componentDidMount',
	        value: function componentDidMount() {
	            this.listenId = _globalEventListener2.default.register(this.handleShow, this.handleHide);
	        }
	    }, {
	        key: 'componentDidUpdate',
	        value: function componentDidUpdate() {
	            var _this2 = this;

	            if (this.state.isVisible) {
	                var wrapper = window.requestAnimationFrame || setTimeout;

	                wrapper(function () {
	                    var _state = _this2.state,
	                        x = _state.x,
	                        y = _state.y;

	                    var _ref = _this2.props.rtl ? _this2.getRTLMenuPosition(x, y) : _this2.getMenuPosition(x, y),
	                        top = _ref.top,
	                        left = _ref.left;

	                    wrapper(function () {
	                        if (!_this2.menu) return;
	                        _this2.menu.style.top = top + 'px';
	                        _this2.menu.style.left = left + 'px';
	                        _this2.menu.style.opacity = 1;
	                        _this2.menu.style.pointerEvents = 'auto';
	                    });
	                });
	            } else {
	                if (!this.menu) return;
	                this.menu.style.opacity = 0;
	                this.menu.style.pointerEvents = 'none';
	            }
	        }
	    }, {
	        key: 'componentWillUnmount',
	        value: function componentWillUnmount() {
	            if (this.listenId) {
	                _globalEventListener2.default.unregister(this.listenId);
	            }

	            this.unregisterHandlers();
	        }
	    }, {
	        key: 'render',
	        value: function render() {
	            var _props = this.props,
	                children = _props.children,
	                className = _props.className,
	                style = _props.style;
	            var isVisible = this.state.isVisible;

	            var inlineStyle = (0, _objectAssign2.default)({}, style, { position: 'fixed', opacity: 0, pointerEvents: 'none' });
	            var menuClassnames = (0, _classnames2.default)(_helpers.cssClasses.menu, className, _defineProperty({}, _helpers.cssClasses.menuVisible, isVisible));

	            return _react2.default.createElement(
	                'nav',
	                {
	                    role: 'menu', tabIndex: '-1', ref: this.menuRef, style: inlineStyle, className: menuClassnames,
	                    onContextMenu: this.handleContextMenu, onMouseLeave: this.handleMouseLeave },
	                this.renderChildren(children)
	            );
	        }
	    }]);

	    return ContextMenu;
	}(_AbstractMenu3.default);

	ContextMenu.propTypes = {
	    id: _propTypes2.default.string.isRequired,
	    children: _propTypes2.default.node.isRequired,
	    data: _propTypes2.default.object,
	    className: _propTypes2.default.string,
	    hideOnLeave: _propTypes2.default.bool,
	    rtl: _propTypes2.default.bool,
	    onHide: _propTypes2.default.func,
	    onMouseLeave: _propTypes2.default.func,
	    onShow: _propTypes2.default.func,
	    style: _propTypes2.default.object
	};
	ContextMenu.defaultProps = {
	    className: '',
	    data: {},
	    hideOnLeave: false,
	    rtl: false,
	    onHide: function onHide() {
	        return null;
	    },
	    onMouseLeave: function onMouseLeave() {
	        return null;
	    },
	    onShow: function onShow() {
	        return null;
	    },

	    style: {}
	};
	exports.default = ContextMenu;

/***/ }),
/* 357 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	    value: true
	});

	var _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; };

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	exports.default = function (menuId) {
	    // expect menu component to connect as inner parameter
	    // <Child/> is presumably a wrapper of <ContextMenu/>
	    return function (Child) {
	        // return wrapper for <Child/> that forwards the ContextMenuTrigger's additional props
	        return function (_Component) {
	            _inherits(ConnectMenu, _Component);

	            function ConnectMenu(props) {
	                _classCallCheck(this, ConnectMenu);

	                var _this = _possibleConstructorReturn(this, (ConnectMenu.__proto__ || Object.getPrototypeOf(ConnectMenu)).call(this, props));

	                _this.handleShow = function (e) {
	                    if (e.detail.id !== menuId) return;

	                    // the onShow event's detail.data object holds all ContextMenuTrigger props
	                    var data = e.detail.data;

	                    var filteredData = {};

	                    for (var key in data) {
	                        // exclude props the ContextMenuTrigger is expecting itself
	                        if (!ignoredTriggerProps.includes(key)) {
	                            filteredData[key] = data[key];
	                        }
	                    }
	                    _this.setState({ trigger: filteredData });
	                };

	                _this.handleHide = function () {
	                    _this.setState({ trigger: null });
	                };

	                _this.state = { trigger: null };
	                return _this;
	            }

	            _createClass(ConnectMenu, [{
	                key: 'componentDidMount',
	                value: function componentDidMount() {
	                    this.listenId = _globalEventListener2.default.register(this.handleShow, this.handleHide);
	                }
	            }, {
	                key: 'componentWillUnmount',
	                value: function componentWillUnmount() {
	                    if (this.listenId) {
	                        _globalEventListener2.default.unregister(this.listenId);
	                    }
	                }
	            }, {
	                key: 'render',
	                value: function render() {
	                    return _react2.default.createElement(Child, _extends({}, this.props, { id: menuId, trigger: this.state.trigger }));
	                }
	            }]);

	            return ConnectMenu;
	        }(_react.Component);
	    };
	};

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _ContextMenuTrigger = __webpack_require__(150);

	var _ContextMenuTrigger2 = _interopRequireDefault(_ContextMenuTrigger);

	var _globalEventListener = __webpack_require__(87);

	var _globalEventListener2 = _interopRequireDefault(_globalEventListener);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }

	// collect ContextMenuTrigger's expected props to NOT pass them on as part of the context
	var ignoredTriggerProps = [].concat(_toConsumableArray(Object.keys(_ContextMenuTrigger2.default.propTypes)), ['children']);

	// expect the id of the menu to be responsible for as outer parameter

/***/ }),
/* 358 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _ContextMenu = __webpack_require__(356);

	Object.defineProperty(exports, 'ContextMenu', {
	  enumerable: true,
	  get: function get() {
	    return _interopRequireDefault(_ContextMenu).default;
	  }
	});

	var _ContextMenuTrigger = __webpack_require__(150);

	Object.defineProperty(exports, 'ContextMenuTrigger', {
	  enumerable: true,
	  get: function get() {
	    return _interopRequireDefault(_ContextMenuTrigger).default;
	  }
	});

	var _MenuItem = __webpack_require__(151);

	Object.defineProperty(exports, 'MenuItem', {
	  enumerable: true,
	  get: function get() {
	    return _interopRequireDefault(_MenuItem).default;
	  }
	});

	var _SubMenu = __webpack_require__(152);

	Object.defineProperty(exports, 'SubMenu', {
	  enumerable: true,
	  get: function get() {
	    return _interopRequireDefault(_SubMenu).default;
	  }
	});

	var _connectMenu = __webpack_require__(357);

	Object.defineProperty(exports, 'connectMenu', {
	  enumerable: true,
	  get: function get() {
	    return _interopRequireDefault(_connectMenu).default;
	  }
	});

	var _actions = __webpack_require__(39);

	Object.defineProperty(exports, 'hideMenu', {
	  enumerable: true,
	  get: function get() {
	    return _actions.hideMenu;
	  }
	});
	Object.defineProperty(exports, 'showMenu', {
	  enumerable: true,
	  get: function get() {
	    return _actions.showMenu;
	  }
	});

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

/***/ }),
/* 359 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _union = __webpack_require__(354);

	var _union2 = _interopRequireDefault(_union);

	var _without = __webpack_require__(148);

	var _without2 = _interopRequireDefault(_without);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	var EnterLeaveCounter = function () {
		function EnterLeaveCounter() {
			_classCallCheck(this, EnterLeaveCounter);

			this.entered = [];
		}

		_createClass(EnterLeaveCounter, [{
			key: 'enter',
			value: function enter(enteringNode) {
				var previousLength = this.entered.length;

				var isNodeEntered = function isNodeEntered(node) {
					return document.documentElement.contains(node) && (!node.contains || node.contains(enteringNode));
				};

				this.entered = (0, _union2.default)(this.entered.filter(isNodeEntered), [enteringNode]);

				return previousLength === 0 && this.entered.length > 0;
			}
		}, {
			key: 'leave',
			value: function leave(leavingNode) {
				var previousLength = this.entered.length;

				this.entered = (0, _without2.default)(this.entered.filter(function (node) {
					return document.documentElement.contains(node);
				}), leavingNode);

				return previousLength > 0 && this.entered.length === 0;
			}
		}, {
			key: 'reset',
			value: function reset() {
				this.entered = [];
			}
		}]);

		return EnterLeaveCounter;
	}();

	exports.default = EnterLeaveCounter;

/***/ }),
/* 360 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* eslint-disable no-underscore-dangle */


	var _defaults = __webpack_require__(351);

	var _defaults2 = _interopRequireDefault(_defaults);

	var _shallowEqual = __webpack_require__(366);

	var _shallowEqual2 = _interopRequireDefault(_shallowEqual);

	var _EnterLeaveCounter = __webpack_require__(359);

	var _EnterLeaveCounter2 = _interopRequireDefault(_EnterLeaveCounter);

	var _BrowserDetector = __webpack_require__(153);

	var _OffsetUtils = __webpack_require__(363);

	var _NativeDragSources = __webpack_require__(362);

	var _NativeTypes = __webpack_require__(88);

	var NativeTypes = _interopRequireWildcard(_NativeTypes);

	function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	var HTML5Backend = function () {
		function HTML5Backend(manager) {
			_classCallCheck(this, HTML5Backend);

			this.actions = manager.getActions();
			this.monitor = manager.getMonitor();
			this.registry = manager.getRegistry();
			this.context = manager.getContext();

			this.sourcePreviewNodes = {};
			this.sourcePreviewNodeOptions = {};
			this.sourceNodes = {};
			this.sourceNodeOptions = {};
			this.enterLeaveCounter = new _EnterLeaveCounter2.default();

			this.dragStartSourceIds = [];
			this.dropTargetIds = [];
			this.dragEnterTargetIds = [];
			this.currentNativeSource = null;
			this.currentNativeHandle = null;
			this.currentDragSourceNode = null;
			this.currentDragSourceNodeOffset = null;
			this.currentDragSourceNodeOffsetChanged = false;
			this.altKeyPressed = false;
			this.mouseMoveTimeoutTimer = null;

			this.getSourceClientOffset = this.getSourceClientOffset.bind(this);
			this.handleTopDragStart = this.handleTopDragStart.bind(this);
			this.handleTopDragStartCapture = this.handleTopDragStartCapture.bind(this);
			this.handleTopDragEndCapture = this.handleTopDragEndCapture.bind(this);
			this.handleTopDragEnter = this.handleTopDragEnter.bind(this);
			this.handleTopDragEnterCapture = this.handleTopDragEnterCapture.bind(this);
			this.handleTopDragLeaveCapture = this.handleTopDragLeaveCapture.bind(this);
			this.handleTopDragOver = this.handleTopDragOver.bind(this);
			this.handleTopDragOverCapture = this.handleTopDragOverCapture.bind(this);
			this.handleTopDrop = this.handleTopDrop.bind(this);
			this.handleTopDropCapture = this.handleTopDropCapture.bind(this);
			this.handleSelectStart = this.handleSelectStart.bind(this);
			this.endDragIfSourceWasRemovedFromDOM = this.endDragIfSourceWasRemovedFromDOM.bind(this);
			this.endDragNativeItem = this.endDragNativeItem.bind(this);
			this.asyncEndDragNativeItem = this.asyncEndDragNativeItem.bind(this);
			this.isNodeInDocument = this.isNodeInDocument.bind(this);
		}

		_createClass(HTML5Backend, [{
			key: 'setup',
			value: function setup() {
				if (this.window === undefined) {
					return;
				}

				if (this.window.__isReactDndBackendSetUp) {
					throw new Error('Cannot have two HTML5 backends at the same time.');
				}
				this.window.__isReactDndBackendSetUp = true;
				this.addEventListeners(this.window);
			}
		}, {
			key: 'teardown',
			value: function teardown() {
				if (this.window === undefined) {
					return;
				}

				this.window.__isReactDndBackendSetUp = false;
				this.removeEventListeners(this.window);
				this.clearCurrentDragSourceNode();
				if (this.asyncEndDragFrameId) {
					this.window.cancelAnimationFrame(this.asyncEndDragFrameId);
				}
			}
		}, {
			key: 'addEventListeners',
			value: function addEventListeners(target) {
				// SSR Fix (https://github.com/react-dnd/react-dnd/pull/813
				if (!target.addEventListener) {
					return;
				}
				target.addEventListener('dragstart', this.handleTopDragStart);
				target.addEventListener('dragstart', this.handleTopDragStartCapture, true);
				target.addEventListener('dragend', this.handleTopDragEndCapture, true);
				target.addEventListener('dragenter', this.handleTopDragEnter);
				target.addEventListener('dragenter', this.handleTopDragEnterCapture, true);
				target.addEventListener('dragleave', this.handleTopDragLeaveCapture, true);
				target.addEventListener('dragover', this.handleTopDragOver);
				target.addEventListener('dragover', this.handleTopDragOverCapture, true);
				target.addEventListener('drop', this.handleTopDrop);
				target.addEventListener('drop', this.handleTopDropCapture, true);
			}
		}, {
			key: 'removeEventListeners',
			value: function removeEventListeners(target) {
				// SSR Fix (https://github.com/react-dnd/react-dnd/pull/813
				if (!target.removeEventListener) {
					return;
				}
				target.removeEventListener('dragstart', this.handleTopDragStart);
				target.removeEventListener('dragstart', this.handleTopDragStartCapture, true);
				target.removeEventListener('dragend', this.handleTopDragEndCapture, true);
				target.removeEventListener('dragenter', this.handleTopDragEnter);
				target.removeEventListener('dragenter', this.handleTopDragEnterCapture, true);
				target.removeEventListener('dragleave', this.handleTopDragLeaveCapture, true);
				target.removeEventListener('dragover', this.handleTopDragOver);
				target.removeEventListener('dragover', this.handleTopDragOverCapture, true);
				target.removeEventListener('drop', this.handleTopDrop);
				target.removeEventListener('drop', this.handleTopDropCapture, true);
			}
		}, {
			key: 'connectDragPreview',
			value: function connectDragPreview(sourceId, node, options) {
				var _this = this;

				this.sourcePreviewNodeOptions[sourceId] = options;
				this.sourcePreviewNodes[sourceId] = node;

				return function () {
					delete _this.sourcePreviewNodes[sourceId];
					delete _this.sourcePreviewNodeOptions[sourceId];
				};
			}
		}, {
			key: 'connectDragSource',
			value: function connectDragSource(sourceId, node, options) {
				var _this2 = this;

				this.sourceNodes[sourceId] = node;
				this.sourceNodeOptions[sourceId] = options;

				var handleDragStart = function handleDragStart(e) {
					return _this2.handleDragStart(e, sourceId);
				};
				var handleSelectStart = function handleSelectStart(e) {
					return _this2.handleSelectStart(e, sourceId);
				};

				node.setAttribute('draggable', true);
				node.addEventListener('dragstart', handleDragStart);
				node.addEventListener('selectstart', handleSelectStart);

				return function () {
					delete _this2.sourceNodes[sourceId];
					delete _this2.sourceNodeOptions[sourceId];

					node.removeEventListener('dragstart', handleDragStart);
					node.removeEventListener('selectstart', handleSelectStart);
					node.setAttribute('draggable', false);
				};
			}
		}, {
			key: 'connectDropTarget',
			value: function connectDropTarget(targetId, node) {
				var _this3 = this;

				var handleDragEnter = function handleDragEnter(e) {
					return _this3.handleDragEnter(e, targetId);
				};
				var handleDragOver = function handleDragOver(e) {
					return _this3.handleDragOver(e, targetId);
				};
				var handleDrop = function handleDrop(e) {
					return _this3.handleDrop(e, targetId);
				};

				node.addEventListener('dragenter', handleDragEnter);
				node.addEventListener('dragover', handleDragOver);
				node.addEventListener('drop', handleDrop);

				return function () {
					node.removeEventListener('dragenter', handleDragEnter);
					node.removeEventListener('dragover', handleDragOver);
					node.removeEventListener('drop', handleDrop);
				};
			}
		}, {
			key: 'getCurrentSourceNodeOptions',
			value: function getCurrentSourceNodeOptions() {
				var sourceId = this.monitor.getSourceId();
				var sourceNodeOptions = this.sourceNodeOptions[sourceId];

				return (0, _defaults2.default)(sourceNodeOptions || {}, {
					dropEffect: this.altKeyPressed ? 'copy' : 'move'
				});
			}
		}, {
			key: 'getCurrentDropEffect',
			value: function getCurrentDropEffect() {
				if (this.isDraggingNativeItem()) {
					// It makes more sense to default to 'copy' for native resources
					return 'copy';
				}

				return this.getCurrentSourceNodeOptions().dropEffect;
			}
		}, {
			key: 'getCurrentSourcePreviewNodeOptions',
			value: function getCurrentSourcePreviewNodeOptions() {
				var sourceId = this.monitor.getSourceId();
				var sourcePreviewNodeOptions = this.sourcePreviewNodeOptions[sourceId];

				return (0, _defaults2.default)(sourcePreviewNodeOptions || {}, {
					anchorX: 0.5,
					anchorY: 0.5,
					captureDraggingState: false
				});
			}
		}, {
			key: 'getSourceClientOffset',
			value: function getSourceClientOffset(sourceId) {
				return (0, _OffsetUtils.getNodeClientOffset)(this.sourceNodes[sourceId]);
			}
		}, {
			key: 'isDraggingNativeItem',
			value: function isDraggingNativeItem() {
				var itemType = this.monitor.getItemType();
				return Object.keys(NativeTypes).some(function (key) {
					return NativeTypes[key] === itemType;
				});
			}
		}, {
			key: 'beginDragNativeItem',
			value: function beginDragNativeItem(type) {
				this.clearCurrentDragSourceNode();

				var SourceType = (0, _NativeDragSources.createNativeDragSource)(type);
				this.currentNativeSource = new SourceType();
				this.currentNativeHandle = this.registry.addSource(type, this.currentNativeSource);
				this.actions.beginDrag([this.currentNativeHandle]);
			}
		}, {
			key: 'asyncEndDragNativeItem',
			value: function asyncEndDragNativeItem() {
				this.asyncEndDragFrameId = this.window.requestAnimationFrame(this.endDragNativeItem);
			}
		}, {
			key: 'endDragNativeItem',
			value: function endDragNativeItem() {
				if (!this.isDraggingNativeItem()) {
					return;
				}

				this.actions.endDrag();
				this.registry.removeSource(this.currentNativeHandle);
				this.currentNativeHandle = null;
				this.currentNativeSource = null;
			}
		}, {
			key: 'isNodeInDocument',
			value: function isNodeInDocument(node) {
				// Check the node either in the main document or in the current context
				return document.body.contains(node) || this.window ? this.window.document.body.contains(node) : false;
			}
		}, {
			key: 'endDragIfSourceWasRemovedFromDOM',
			value: function endDragIfSourceWasRemovedFromDOM() {
				var node = this.currentDragSourceNode;
				if (this.isNodeInDocument(node)) {
					return;
				}

				if (this.clearCurrentDragSourceNode()) {
					this.actions.endDrag();
				}
			}
		}, {
			key: 'setCurrentDragSourceNode',
			value: function setCurrentDragSourceNode(node) {
				var _this4 = this;

				this.clearCurrentDragSourceNode();
				this.currentDragSourceNode = node;
				this.currentDragSourceNodeOffset = (0, _OffsetUtils.getNodeClientOffset)(node);
				this.currentDragSourceNodeOffsetChanged = false;

				// A timeout of > 0 is necessary to resolve Firefox issue referenced
				// See:
				//   * https://github.com/react-dnd/react-dnd/pull/928
				//   * https://github.com/react-dnd/react-dnd/issues/869
				var MOUSE_MOVE_TIMEOUT = 1000;

				// Receiving a mouse event in the middle of a dragging operation
				// means it has ended and the drag source node disappeared from DOM,
				// so the browser didn't dispatch the dragend event.
				//
				// We need to wait before we start listening for mousemove events.
				// This is needed because the drag preview needs to be drawn or else it fires an 'mousemove' event
				// immediately in some browsers.
				//
				// See:
				//   * https://github.com/react-dnd/react-dnd/pull/928
				//   * https://github.com/react-dnd/react-dnd/issues/869
				//
				this.mouseMoveTimeoutTimer = setTimeout(function () {
					_this4.mouseMoveTimeoutId = null;
					return _this4.window.addEventListener('mousemove', _this4.endDragIfSourceWasRemovedFromDOM, true);
				}, MOUSE_MOVE_TIMEOUT);
			}
		}, {
			key: 'clearCurrentDragSourceNode',
			value: function clearCurrentDragSourceNode() {
				if (this.currentDragSourceNode) {
					this.currentDragSourceNode = null;
					this.currentDragSourceNodeOffset = null;
					this.currentDragSourceNodeOffsetChanged = false;
					this.window.clearTimeout(this.mouseMoveTimeoutTimer);
					this.window.removeEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true);
					this.mouseMoveTimeoutTimer = null;
					return true;
				}

				return false;
			}
		}, {
			key: 'checkIfCurrentDragSourceRectChanged',
			value: function checkIfCurrentDragSourceRectChanged() {
				var node = this.currentDragSourceNode;
				if (!node) {
					return false;
				}

				if (this.currentDragSourceNodeOffsetChanged) {
					return true;
				}

				this.currentDragSourceNodeOffsetChanged = !(0, _shallowEqual2.default)((0, _OffsetUtils.getNodeClientOffset)(node), this.currentDragSourceNodeOffset);

				return this.currentDragSourceNodeOffsetChanged;
			}
		}, {
			key: 'handleTopDragStartCapture',
			value: function handleTopDragStartCapture() {
				this.clearCurrentDragSourceNode();
				this.dragStartSourceIds = [];
			}
		}, {
			key: 'handleDragStart',
			value: function handleDragStart(e, sourceId) {
				this.dragStartSourceIds.unshift(sourceId);
			}
		}, {
			key: 'handleTopDragStart',
			value: function handleTopDragStart(e) {
				var _this5 = this;

				var dragStartSourceIds = this.dragStartSourceIds;

				this.dragStartSourceIds = null;

				var clientOffset = (0, _OffsetUtils.getEventClientOffset)(e);

				// Avoid crashing if we missed a drop event or our previous drag died
				if (this.monitor.isDragging()) {
					this.actions.endDrag();
				}

				// Don't publish the source just yet (see why below)
				this.actions.beginDrag(dragStartSourceIds, {
					publishSource: false,
					getSourceClientOffset: this.getSourceClientOffset,
					clientOffset: clientOffset
				});

				var dataTransfer = e.dataTransfer;

				var nativeType = (0, _NativeDragSources.matchNativeItemType)(dataTransfer);

				if (this.monitor.isDragging()) {
					if (typeof dataTransfer.setDragImage === 'function') {
						// Use custom drag image if user specifies it.
						// If child drag source refuses drag but parent agrees,
						// use parent's node as drag image. Neither works in IE though.
						var sourceId = this.monitor.getSourceId();
						var sourceNode = this.sourceNodes[sourceId];
						var dragPreview = this.sourcePreviewNodes[sourceId] || sourceNode;

						var _getCurrentSourcePrev = this.getCurrentSourcePreviewNodeOptions(),
						    anchorX = _getCurrentSourcePrev.anchorX,
						    anchorY = _getCurrentSourcePrev.anchorY,
						    offsetX = _getCurrentSourcePrev.offsetX,
						    offsetY = _getCurrentSourcePrev.offsetY;

						var anchorPoint = { anchorX: anchorX, anchorY: anchorY };
						var offsetPoint = { offsetX: offsetX, offsetY: offsetY };
						var dragPreviewOffset = (0, _OffsetUtils.getDragPreviewOffset)(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint);

						dataTransfer.setDragImage(dragPreview, dragPreviewOffset.x, dragPreviewOffset.y);
					}

					try {
						// Firefox won't drag without setting data
						dataTransfer.setData('application/json', {});
					} catch (err) {}
					// IE doesn't support MIME types in setData


					// Store drag source node so we can check whether
					// it is removed from DOM and trigger endDrag manually.
					this.setCurrentDragSourceNode(e.target);

					// Now we are ready to publish the drag source.. or are we not?

					var _getCurrentSourcePrev2 = this.getCurrentSourcePreviewNodeOptions(),
					    captureDraggingState = _getCurrentSourcePrev2.captureDraggingState;

					if (!captureDraggingState) {
						// Usually we want to publish it in the next tick so that browser
						// is able to screenshot the current (not yet dragging) state.
						//
						// It also neatly avoids a situation where render() returns null
						// in the same tick for the source element, and browser freaks out.
						setTimeout(function () {
							return _this5.actions.publishDragSource();
						});
					} else {
						// In some cases the user may want to override this behavior, e.g.
						// to work around IE not supporting custom drag previews.
						//
						// When using a custom drag layer, the only way to prevent
						// the default drag preview from drawing in IE is to screenshot
						// the dragging state in which the node itself has zero opacity
						// and height. In this case, though, returning null from render()
						// will abruptly end the dragging, which is not obvious.
						//
						// This is the reason such behavior is strictly opt-in.
						this.actions.publishDragSource();
					}
				} else if (nativeType) {
					// A native item (such as URL) dragged from inside the document
					this.beginDragNativeItem(nativeType);
				} else if (!dataTransfer.types && (!e.target.hasAttribute || !e.target.hasAttribute('draggable'))) {
					// Looks like a Safari bug: dataTransfer.types is null, but there was no draggable.
					// Just let it drag. It's a native type (URL or text) and will be picked up in
					// dragenter handler.
					return; // eslint-disable-line no-useless-return
				} else {
					// If by this time no drag source reacted, tell browser not to drag.
					e.preventDefault();
				}
			}
		}, {
			key: 'handleTopDragEndCapture',
			value: function handleTopDragEndCapture() {
				if (this.clearCurrentDragSourceNode()) {
					// Firefox can dispatch this event in an infinite loop
					// if dragend handler does something like showing an alert.
					// Only proceed if we have not handled it already.
					this.actions.endDrag();
				}
			}
		}, {
			key: 'handleTopDragEnterCapture',
			value: function handleTopDragEnterCapture(e) {
				this.dragEnterTargetIds = [];

				var isFirstEnter = this.enterLeaveCounter.enter(e.target);
				if (!isFirstEnter || this.monitor.isDragging()) {
					return;
				}

				var dataTransfer = e.dataTransfer;

				var nativeType = (0, _NativeDragSources.matchNativeItemType)(dataTransfer);

				if (nativeType) {
					// A native item (such as file or URL) dragged from outside the document
					this.beginDragNativeItem(nativeType);
				}
			}
		}, {
			key: 'handleDragEnter',
			value: function handleDragEnter(e, targetId) {
				this.dragEnterTargetIds.unshift(targetId);
			}
		}, {
			key: 'handleTopDragEnter',
			value: function handleTopDragEnter(e) {
				var _this6 = this;

				var dragEnterTargetIds = this.dragEnterTargetIds;

				this.dragEnterTargetIds = [];

				if (!this.monitor.isDragging()) {
					// This is probably a native item type we don't understand.
					return;
				}

				this.altKeyPressed = e.altKey;

				if (!(0, _BrowserDetector.isFirefox)()) {
					// Don't emit hover in `dragenter` on Firefox due to an edge case.
					// If the target changes position as the result of `dragenter`, Firefox
					// will still happily dispatch `dragover` despite target being no longer
					// there. The easy solution is to only fire `hover` in `dragover` on FF.
					this.actions.hover(dragEnterTargetIds, {
						clientOffset: (0, _OffsetUtils.getEventClientOffset)(e)
					});
				}

				var canDrop = dragEnterTargetIds.some(function (targetId) {
					return _this6.monitor.canDropOnTarget(targetId);
				});

				if (canDrop) {
					// IE requires this to fire dragover events
					e.preventDefault();
					e.dataTransfer.dropEffect = this.getCurrentDropEffect();
				}
			}
		}, {
			key: 'handleTopDragOverCapture',
			value: function handleTopDragOverCapture() {
				this.dragOverTargetIds = [];
			}
		}, {
			key: 'handleDragOver',
			value: function handleDragOver(e, targetId) {
				this.dragOverTargetIds.unshift(targetId);
			}
		}, {
			key: 'handleTopDragOver',
			value: function handleTopDragOver(e) {
				var _this7 = this;

				var dragOverTargetIds = this.dragOverTargetIds;

				this.dragOverTargetIds = [];

				if (!this.monitor.isDragging()) {
					// This is probably a native item type we don't understand.
					// Prevent default "drop and blow away the whole document" action.
					e.preventDefault();
					e.dataTransfer.dropEffect = 'none';
					return;
				}

				this.altKeyPressed = e.altKey;

				this.actions.hover(dragOverTargetIds, {
					clientOffset: (0, _OffsetUtils.getEventClientOffset)(e)
				});

				var canDrop = dragOverTargetIds.some(function (targetId) {
					return _this7.monitor.canDropOnTarget(targetId);
				});

				if (canDrop) {
					// Show user-specified drop effect.
					e.preventDefault();
					e.dataTransfer.dropEffect = this.getCurrentDropEffect();
				} else if (this.isDraggingNativeItem()) {
					// Don't show a nice cursor but still prevent default
					// "drop and blow away the whole document" action.
					e.preventDefault();
					e.dataTransfer.dropEffect = 'none';
				} else if (this.checkIfCurrentDragSourceRectChanged()) {
					// Prevent animating to incorrect position.
					// Drop effect must be other than 'none' to prevent animation.
					e.preventDefault();
					e.dataTransfer.dropEffect = 'move';
				}
			}
		}, {
			key: 'handleTopDragLeaveCapture',
			value: function handleTopDragLeaveCapture(e) {
				if (this.isDraggingNativeItem()) {
					e.preventDefault();
				}

				var isLastLeave = this.enterLeaveCounter.leave(e.target);
				if (!isLastLeave) {
					return;
				}

				if (this.isDraggingNativeItem()) {
					this.endDragNativeItem();
				}
			}
		}, {
			key: 'handleTopDropCapture',
			value: function handleTopDropCapture(e) {
				this.dropTargetIds = [];
				e.preventDefault();

				if (this.isDraggingNativeItem()) {
					this.currentNativeSource.mutateItemByReadingDataTransfer(e.dataTransfer);
				}

				this.enterLeaveCounter.reset();
			}
		}, {
			key: 'handleDrop',
			value: function handleDrop(e, targetId) {
				this.dropTargetIds.unshift(targetId);
			}
		}, {
			key: 'handleTopDrop',
			value: function handleTopDrop(e) {
				var dropTargetIds = this.dropTargetIds;

				this.dropTargetIds = [];

				this.actions.hover(dropTargetIds, {
					clientOffset: (0, _OffsetUtils.getEventClientOffset)(e)
				});
				this.actions.drop({ dropEffect: this.getCurrentDropEffect() });

				if (this.isDraggingNativeItem()) {
					this.endDragNativeItem();
				} else {
					this.endDragIfSourceWasRemovedFromDOM();
				}
			}
		}, {
			key: 'handleSelectStart',
			value: function handleSelectStart(e) {
				var target = e.target;

				// Only IE requires us to explicitly say
				// we want drag drop operation to start

				if (typeof target.dragDrop !== 'function') {
					return;
				}

				// Inputs and textareas should be selectable
				if (target.tagName === 'INPUT' || target.tagName === 'SELECT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {
					return;
				}

				// For other targets, ask IE
				// to enable drag and drop
				e.preventDefault();
				target.dragDrop();
			}
		}, {
			key: 'window',
			get: function get() {
				if (this.context && this.context.window) {
					return this.context.window;
				} else if (typeof window !== 'undefined') {
					return window;
				}
				return undefined;
			}
		}]);

		return HTML5Backend;
	}();

	exports.default = HTML5Backend;

/***/ }),
/* 361 */
/***/ (function(module, exports) {

	"use strict";

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	/* eslint
	   no-plusplus: off,
	   no-mixed-operators: off
	*/
	var MonotonicInterpolant = function () {
		function MonotonicInterpolant(xs, ys) {
			_classCallCheck(this, MonotonicInterpolant);

			var length = xs.length;

			// Rearrange xs and ys so that xs is sorted
			var indexes = [];
			for (var i = 0; i < length; i++) {
				indexes.push(i);
			}
			indexes.sort(function (a, b) {
				return xs[a] < xs[b] ? -1 : 1;
			});

			// Get consecutive differences and slopes
			var dys = [];
			var dxs = [];
			var ms = [];
			var dx = void 0;
			var dy = void 0;
			for (var _i = 0; _i < length - 1; _i++) {
				dx = xs[_i + 1] - xs[_i];
				dy = ys[_i + 1] - ys[_i];
				dxs.push(dx);
				dys.push(dy);
				ms.push(dy / dx);
			}

			// Get degree-1 coefficients
			var c1s = [ms[0]];
			for (var _i2 = 0; _i2 < dxs.length - 1; _i2++) {
				var _m = ms[_i2];
				var mNext = ms[_i2 + 1];
				if (_m * mNext <= 0) {
					c1s.push(0);
				} else {
					dx = dxs[_i2];
					var dxNext = dxs[_i2 + 1];
					var common = dx + dxNext;
					c1s.push(3 * common / ((common + dxNext) / _m + (common + dx) / mNext));
				}
			}
			c1s.push(ms[ms.length - 1]);

			// Get degree-2 and degree-3 coefficients
			var c2s = [];
			var c3s = [];
			var m = void 0;
			for (var _i3 = 0; _i3 < c1s.length - 1; _i3++) {
				m = ms[_i3];
				var c1 = c1s[_i3];
				var invDx = 1 / dxs[_i3];
				var _common = c1 + c1s[_i3 + 1] - m - m;
				c2s.push((m - c1 - _common) * invDx);
				c3s.push(_common * invDx * invDx);
			}

			this.xs = xs;
			this.ys = ys;
			this.c1s = c1s;
			this.c2s = c2s;
			this.c3s = c3s;
		}

		_createClass(MonotonicInterpolant, [{
			key: "interpolate",
			value: function interpolate(x) {
				var xs = this.xs,
				    ys = this.ys,
				    c1s = this.c1s,
				    c2s = this.c2s,
				    c3s = this.c3s;

				// The rightmost point in the dataset should give an exact result

				var i = xs.length - 1;
				if (x === xs[i]) {
					return ys[i];
				}

				// Search for the interval x is in, returning the corresponding y if x is one of the original xs
				var low = 0;
				var high = c3s.length - 1;
				var mid = void 0;
				while (low <= high) {
					mid = Math.floor(0.5 * (low + high));
					var xHere = xs[mid];
					if (xHere < x) {
						low = mid + 1;
					} else if (xHere > x) {
						high = mid - 1;
					} else {
						return ys[mid];
					}
				}
				i = Math.max(0, high);

				// Interpolate
				var diff = x - xs[i];
				var diffSq = diff * diff;
				return ys[i] + c1s[i] * diff + c2s[i] * diffSq + c3s[i] * diff * diffSq;
			}
		}]);

		return MonotonicInterpolant;
	}();

	exports.default = MonotonicInterpolant;

/***/ }),
/* 362 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _nativeTypesConfig;

	exports.createNativeDragSource = createNativeDragSource;
	exports.matchNativeItemType = matchNativeItemType;

	var _NativeTypes = __webpack_require__(88);

	var NativeTypes = _interopRequireWildcard(_NativeTypes);

	function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }

	function _defineEnumerableProperties(obj, descs) { for (var key in descs) { var desc = descs[key]; desc.configurable = desc.enumerable = true; if ("value" in desc) desc.writable = true; Object.defineProperty(obj, key, desc); } return obj; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _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; }

	function getDataFromDataTransfer(dataTransfer, typesToTry, defaultValue) {
		var result = typesToTry.reduce(function (resultSoFar, typeToTry) {
			return resultSoFar || dataTransfer.getData(typeToTry);
		}, null);

		return result != null // eslint-disable-line eqeqeq
		? result : defaultValue;
	}

	var nativeTypesConfig = (_nativeTypesConfig = {}, _defineProperty(_nativeTypesConfig, NativeTypes.FILE, {
		exposeProperty: 'files',
		matchesTypes: ['Files'],
		getData: function getData(dataTransfer) {
			return Array.prototype.slice.call(dataTransfer.files);
		}
	}), _defineProperty(_nativeTypesConfig, NativeTypes.URL, {
		exposeProperty: 'urls',
		matchesTypes: ['Url', 'text/uri-list'],
		getData: function getData(dataTransfer, matchesTypes) {
			return getDataFromDataTransfer(dataTransfer, matchesTypes, '').split('\n');
		}
	}), _defineProperty(_nativeTypesConfig, NativeTypes.TEXT, {
		exposeProperty: 'text',
		matchesTypes: ['Text', 'text/plain'],
		getData: function getData(dataTransfer, matchesTypes) {
			return getDataFromDataTransfer(dataTransfer, matchesTypes, '');
		}
	}), _nativeTypesConfig);

	function createNativeDragSource(type) {
		var _nativeTypesConfig$ty = nativeTypesConfig[type],
		    exposeProperty = _nativeTypesConfig$ty.exposeProperty,
		    matchesTypes = _nativeTypesConfig$ty.matchesTypes,
		    getData = _nativeTypesConfig$ty.getData;


		return function () {
			function NativeDragSource() {
				var _item, _mutatorMap;

				_classCallCheck(this, NativeDragSource);

				this.item = (_item = {}, _mutatorMap = {}, _mutatorMap[exposeProperty] = _mutatorMap[exposeProperty] || {}, _mutatorMap[exposeProperty].get = function () {
					// eslint-disable-next-line no-console
					console.warn('Browser doesn\'t allow reading "' + exposeProperty + '" until the drop event.');
					return null;
				}, _defineEnumerableProperties(_item, _mutatorMap), _item);
			}

			_createClass(NativeDragSource, [{
				key: 'mutateItemByReadingDataTransfer',
				value: function mutateItemByReadingDataTransfer(dataTransfer) {
					delete this.item[exposeProperty];
					this.item[exposeProperty] = getData(dataTransfer, matchesTypes);
				}
			}, {
				key: 'canDrag',
				value: function canDrag() {
					return true;
				}
			}, {
				key: 'beginDrag',
				value: function beginDrag() {
					return this.item;
				}
			}, {
				key: 'isDragging',
				value: function isDragging(monitor, handle) {
					return handle === monitor.getSourceId();
				}
			}, {
				key: 'endDrag',
				value: function endDrag() {}
			}]);

			return NativeDragSource;
		}();
	}

	function matchNativeItemType(dataTransfer) {
		var dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || []);

		return Object.keys(nativeTypesConfig).filter(function (nativeItemType) {
			var matchesTypes = nativeTypesConfig[nativeItemType].matchesTypes;

			return matchesTypes.some(function (t) {
				return dataTransferTypes.indexOf(t) > -1;
			});
		})[0] || null;
	}

/***/ }),
/* 363 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.getNodeClientOffset = getNodeClientOffset;
	exports.getEventClientOffset = getEventClientOffset;
	exports.getDragPreviewOffset = getDragPreviewOffset;

	var _BrowserDetector = __webpack_require__(153);

	var _MonotonicInterpolant = __webpack_require__(361);

	var _MonotonicInterpolant2 = _interopRequireDefault(_MonotonicInterpolant);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	/* eslint
	   no-mixed-operators: off
	*/
	var ELEMENT_NODE = 1;

	function getNodeClientOffset(node) {
		var el = node.nodeType === ELEMENT_NODE ? node : node.parentElement;

		if (!el) {
			return null;
		}

		var _el$getBoundingClient = el.getBoundingClientRect(),
		    top = _el$getBoundingClient.top,
		    left = _el$getBoundingClient.left;

		return { x: left, y: top };
	}

	function getEventClientOffset(e) {
		return {
			x: e.clientX,
			y: e.clientY
		};
	}

	function isImageNode(node) {
		return node.nodeName === 'IMG' && ((0, _BrowserDetector.isFirefox)() || !document.documentElement.contains(node));
	}

	function getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight) {
		var dragPreviewWidth = isImage ? dragPreview.width : sourceWidth;
		var dragPreviewHeight = isImage ? dragPreview.height : sourceHeight;

		// Work around @2x coordinate discrepancies in browsers
		if ((0, _BrowserDetector.isSafari)() && isImage) {
			dragPreviewHeight /= window.devicePixelRatio;
			dragPreviewWidth /= window.devicePixelRatio;
		}
		return { dragPreviewWidth: dragPreviewWidth, dragPreviewHeight: dragPreviewHeight };
	}

	function getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint) {
		// The browsers will use the image intrinsic size under different conditions.
		// Firefox only cares if it's an image, but WebKit also wants it to be detached.
		var isImage = isImageNode(dragPreview);
		var dragPreviewNode = isImage ? sourceNode : dragPreview;
		var dragPreviewNodeOffsetFromClient = getNodeClientOffset(dragPreviewNode);
		var offsetFromDragPreview = {
			x: clientOffset.x - dragPreviewNodeOffsetFromClient.x,
			y: clientOffset.y - dragPreviewNodeOffsetFromClient.y
		};
		var sourceWidth = sourceNode.offsetWidth,
		    sourceHeight = sourceNode.offsetHeight;
		var anchorX = anchorPoint.anchorX,
		    anchorY = anchorPoint.anchorY;

		var _getDragPreviewSize = getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight),
		    dragPreviewWidth = _getDragPreviewSize.dragPreviewWidth,
		    dragPreviewHeight = _getDragPreviewSize.dragPreviewHeight;

		var calculateYOffset = function calculateYOffset() {
			var interpolantY = new _MonotonicInterpolant2.default([0, 0.5, 1], [
			// Dock to the top
			offsetFromDragPreview.y,
			// Align at the center
			offsetFromDragPreview.y / sourceHeight * dragPreviewHeight,
			// Dock to the bottom
			offsetFromDragPreview.y + dragPreviewHeight - sourceHeight]);
			var y = interpolantY.interpolate(anchorY);
			// Work around Safari 8 positioning bug
			if ((0, _BrowserDetector.isSafari)() && isImage) {
				// We'll have to wait for @3x to see if this is entirely correct
				y += (window.devicePixelRatio - 1) * dragPreviewHeight;
			}
			return y;
		};

		var calculateXOffset = function calculateXOffset() {
			// Interpolate coordinates depending on anchor point
			// If you know a simpler way to do this, let me know
			var interpolantX = new _MonotonicInterpolant2.default([0, 0.5, 1], [
			// Dock to the left
			offsetFromDragPreview.x,
			// Align at the center
			offsetFromDragPreview.x / sourceWidth * dragPreviewWidth,
			// Dock to the right
			offsetFromDragPreview.x + dragPreviewWidth - sourceWidth]);
			return interpolantX.interpolate(anchorX);
		};

		// Force offsets if specified in the options.
		var offsetX = offsetPoint.offsetX,
		    offsetY = offsetPoint.offsetY;

		var isManualOffsetX = offsetX === 0 || offsetX;
		var isManualOffsetY = offsetY === 0 || offsetY;
		return {
			x: isManualOffsetX ? offsetX : calculateXOffset(),
			y: isManualOffsetY ? offsetY : calculateYOffset()
		};
	}

/***/ }),
/* 364 */
/***/ (function(module, exports) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.default = getEmptyImage;
	var emptyImage = void 0;
	function getEmptyImage() {
		if (!emptyImage) {
			emptyImage = new Image();
			emptyImage.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
		}

		return emptyImage;
	}

/***/ }),
/* 365 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.getEmptyImage = exports.NativeTypes = undefined;
	exports.default = createHTML5Backend;

	var _HTML5Backend = __webpack_require__(360);

	var _HTML5Backend2 = _interopRequireDefault(_HTML5Backend);

	var _getEmptyImage = __webpack_require__(364);

	var _getEmptyImage2 = _interopRequireDefault(_getEmptyImage);

	var _NativeTypes = __webpack_require__(88);

	var NativeTypes = _interopRequireWildcard(_NativeTypes);

	function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	exports.NativeTypes = NativeTypes;
	exports.getEmptyImage = _getEmptyImage2.default;
	function createHTML5Backend(manager) {
		return new _HTML5Backend2.default(manager);
	}

/***/ }),
/* 366 */
89,
/* 367 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.default = undefined;

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _class, _temp;

	var _react = __webpack_require__(2);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _DragDropContext = __webpack_require__(154);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	/**
	 * This class is a React-Component based version of the DragDropContext.
	 * This is an alternative to decorating an application component with an ES7 decorator.
	 */
	var DragDropContextProvider = (_temp = _class = function (_Component) {
		_inherits(DragDropContextProvider, _Component);

		function DragDropContextProvider(props, context) {
			_classCallCheck(this, DragDropContextProvider);

			/**
	   * This property determines which window global to use for creating the DragDropManager.
	   * If a window has been injected explicitly via props, that is used first. If it is available
	   * as a context value, then use that, otherwise use the browser global.
	   */
			var _this = _possibleConstructorReturn(this, (DragDropContextProvider.__proto__ || Object.getPrototypeOf(DragDropContextProvider)).call(this, props, context));

			var getWindow = function getWindow() {
				if (props && props.window) {
					return props.window;
				} else if (context && context.window) {
					return context.window;
				} else if (typeof window !== 'undefined') {
					return window;
				}
				return undefined;
			};

			_this.backend = (0, _DragDropContext.unpackBackendForEs5Users)(props.backend);
			_this.childContext = (0, _DragDropContext.createChildContext)(_this.backend, {
				window: getWindow()
			});
			return _this;
		}

		_createClass(DragDropContextProvider, [{
			key: 'componentWillReceiveProps',
			value: function componentWillReceiveProps(nextProps) {
				if (nextProps.backend !== this.props.backend || nextProps.window !== this.props.window) {
					throw new Error('DragDropContextProvider backend and window props must not change.');
				}
			}
		}, {
			key: 'getChildContext',
			value: function getChildContext() {
				return this.childContext;
			}
		}, {
			key: 'render',
			value: function render() {
				return _react.Children.only(this.props.children);
			}
		}]);

		return DragDropContextProvider;
	}(_react.Component), _class.propTypes = {
		backend: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.object]).isRequired,
		children: _propTypes2.default.element.isRequired,
		window: _propTypes2.default.object // eslint-disable-line react/forbid-prop-types
	}, _class.defaultProps = {
		window: undefined
	}, _class.childContextTypes = _DragDropContext.CHILD_CONTEXT_TYPES, _class.displayName = 'DragDropContextProvider', _class.contextTypes = {
		window: _propTypes2.default.object
	}, _temp);
	exports.default = DragDropContextProvider;

/***/ }),
/* 368 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _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; };

	var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	exports.default = DragLayer;

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _hoistNonReactStatics = __webpack_require__(83);

	var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);

	var _isPlainObject = __webpack_require__(22);

	var _isPlainObject2 = _interopRequireDefault(_isPlainObject);

	var _invariant = __webpack_require__(10);

	var _invariant2 = _interopRequireDefault(_invariant);

	var _shallowEqual = __webpack_require__(89);

	var _shallowEqual2 = _interopRequireDefault(_shallowEqual);

	var _shallowEqualScalar = __webpack_require__(158);

	var _shallowEqualScalar2 = _interopRequireDefault(_shallowEqualScalar);

	var _checkDecoratorArguments = __webpack_require__(57);

	var _checkDecoratorArguments2 = _interopRequireDefault(_checkDecoratorArguments);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	function DragLayer(collect) {
		var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

		_checkDecoratorArguments2.default.apply(undefined, ['DragLayer', 'collect[, options]'].concat(Array.prototype.slice.call(arguments))); // eslint-disable-line prefer-rest-params
		(0, _invariant2.default)(typeof collect === 'function', 'Expected "collect" provided as the first argument to DragLayer to be a function that collects props to inject into the component. ', 'Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drag-layer.html', collect);
		(0, _invariant2.default)((0, _isPlainObject2.default)(options), 'Expected "options" provided as the second argument to DragLayer to be a plain object when specified. ' + 'Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drag-layer.html', options);

		return function decorateLayer(DecoratedComponent) {
			var _class, _temp;

			var _options$arePropsEqua = options.arePropsEqual,
			    arePropsEqual = _options$arePropsEqua === undefined ? _shallowEqualScalar2.default : _options$arePropsEqua;

			var displayName = DecoratedComponent.displayName || DecoratedComponent.name || 'Component';

			var DragLayerContainer = (_temp = _class = function (_Component) {
				_inherits(DragLayerContainer, _Component);

				_createClass(DragLayerContainer, [{
					key: 'getDecoratedComponentInstance',
					value: function getDecoratedComponentInstance() {
						(0, _invariant2.default)(this.child, 'In order to access an instance of the decorated component it can not be a stateless component.');
						return this.child;
					}
				}, {
					key: 'shouldComponentUpdate',
					value: function shouldComponentUpdate(nextProps, nextState) {
						return !arePropsEqual(nextProps, this.props) || !(0, _shallowEqual2.default)(nextState, this.state);
					}
				}]);

				function DragLayerContainer(props, context) {
					_classCallCheck(this, DragLayerContainer);

					var _this = _possibleConstructorReturn(this, (DragLayerContainer.__proto__ || Object.getPrototypeOf(DragLayerContainer)).call(this, props));

					_this.handleChange = _this.handleChange.bind(_this);

					_this.manager = context.dragDropManager;
					(0, _invariant2.default)(_typeof(_this.manager) === 'object', 'Could not find the drag and drop manager in the context of %s. ' + 'Make sure to wrap the top-level component of your app with DragDropContext. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-troubleshooting.html#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName);

					_this.state = _this.getCurrentState();
					return _this;
				}

				_createClass(DragLayerContainer, [{
					key: 'componentDidMount',
					value: function componentDidMount() {
						this.isCurrentlyMounted = true;

						var monitor = this.manager.getMonitor();
						this.unsubscribeFromOffsetChange = monitor.subscribeToOffsetChange(this.handleChange);
						this.unsubscribeFromStateChange = monitor.subscribeToStateChange(this.handleChange);

						this.handleChange();
					}
				}, {
					key: 'componentWillUnmount',
					value: function componentWillUnmount() {
						this.isCurrentlyMounted = false;

						this.unsubscribeFromOffsetChange();
						this.unsubscribeFromStateChange();
					}
				}, {
					key: 'handleChange',
					value: function handleChange() {
						if (!this.isCurrentlyMounted) {
							return;
						}

						var nextState = this.getCurrentState();
						if (!(0, _shallowEqual2.default)(nextState, this.state)) {
							this.setState(nextState);
						}
					}
				}, {
					key: 'getCurrentState',
					value: function getCurrentState() {
						var monitor = this.manager.getMonitor();
						return collect(monitor, this.props);
					}
				}, {
					key: 'render',
					value: function render() {
						var _this2 = this;

						return _react2.default.createElement(DecoratedComponent, _extends({}, this.props, this.state, {
							ref: function ref(child) {
								_this2.child = child;
							}
						}));
					}
				}]);

				return DragLayerContainer;
			}(_react.Component), _class.DecoratedComponent = DecoratedComponent, _class.displayName = 'DragLayer(' + displayName + ')', _class.contextTypes = {
				dragDropManager: _propTypes2.default.object.isRequired
			}, _temp);


			return (0, _hoistNonReactStatics2.default)(DragLayerContainer, DecoratedComponent);
		};
	}

/***/ }),
/* 369 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.default = DragSource;

	var _invariant = __webpack_require__(10);

	var _invariant2 = _interopRequireDefault(_invariant);

	var _isPlainObject = __webpack_require__(22);

	var _isPlainObject2 = _interopRequireDefault(_isPlainObject);

	var _checkDecoratorArguments = __webpack_require__(57);

	var _checkDecoratorArguments2 = _interopRequireDefault(_checkDecoratorArguments);

	var _decorateHandler = __webpack_require__(156);

	var _decorateHandler2 = _interopRequireDefault(_decorateHandler);

	var _registerSource = __webpack_require__(377);

	var _registerSource2 = _interopRequireDefault(_registerSource);

	var _createSourceFactory = __webpack_require__(372);

	var _createSourceFactory2 = _interopRequireDefault(_createSourceFactory);

	var _createSourceMonitor = __webpack_require__(373);

	var _createSourceMonitor2 = _interopRequireDefault(_createSourceMonitor);

	var _createSourceConnector = __webpack_require__(371);

	var _createSourceConnector2 = _interopRequireDefault(_createSourceConnector);

	var _isValidType = __webpack_require__(157);

	var _isValidType2 = _interopRequireDefault(_isValidType);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function DragSource(type, spec, collect) {
		var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};

		_checkDecoratorArguments2.default.apply(undefined, ['DragSource', 'type, spec, collect[, options]'].concat(Array.prototype.slice.call(arguments)));
		var getType = type;
		if (typeof type !== 'function') {
			(0, _invariant2.default)((0, _isValidType2.default)(type), 'Expected "type" provided as the first argument to DragSource to be ' + 'a string, or a function that returns a string given the current props. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html', type);
			getType = function getType() {
				return type;
			};
		}
		(0, _invariant2.default)((0, _isPlainObject2.default)(spec), 'Expected "spec" provided as the second argument to DragSource to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html', spec);
		var createSource = (0, _createSourceFactory2.default)(spec);
		(0, _invariant2.default)(typeof collect === 'function', 'Expected "collect" provided as the third argument to DragSource to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html', collect);
		(0, _invariant2.default)((0, _isPlainObject2.default)(options), 'Expected "options" provided as the fourth argument to DragSource to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html', collect);

		return function decorateSource(DecoratedComponent) {
			return (0, _decorateHandler2.default)({
				connectBackend: function connectBackend(backend, sourceId) {
					return backend.connectDragSource(sourceId);
				},
				containerDisplayName: 'DragSource',
				createHandler: createSource,
				registerHandler: _registerSource2.default,
				createMonitor: _createSourceMonitor2.default,
				createConnector: _createSourceConnector2.default,
				DecoratedComponent: DecoratedComponent,
				getType: getType,
				collect: collect,
				options: options
			});
		};
	}

/***/ }),
/* 370 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.default = DropTarget;

	var _invariant = __webpack_require__(10);

	var _invariant2 = _interopRequireDefault(_invariant);

	var _isPlainObject = __webpack_require__(22);

	var _isPlainObject2 = _interopRequireDefault(_isPlainObject);

	var _checkDecoratorArguments = __webpack_require__(57);

	var _checkDecoratorArguments2 = _interopRequireDefault(_checkDecoratorArguments);

	var _decorateHandler = __webpack_require__(156);

	var _decorateHandler2 = _interopRequireDefault(_decorateHandler);

	var _registerTarget = __webpack_require__(378);

	var _registerTarget2 = _interopRequireDefault(_registerTarget);

	var _createTargetFactory = __webpack_require__(375);

	var _createTargetFactory2 = _interopRequireDefault(_createTargetFactory);

	var _createTargetMonitor = __webpack_require__(376);

	var _createTargetMonitor2 = _interopRequireDefault(_createTargetMonitor);

	var _createTargetConnector = __webpack_require__(374);

	var _createTargetConnector2 = _interopRequireDefault(_createTargetConnector);

	var _isValidType = __webpack_require__(157);

	var _isValidType2 = _interopRequireDefault(_isValidType);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function DropTarget(type, spec, collect) {
		var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};

		_checkDecoratorArguments2.default.apply(undefined, ['DropTarget', 'type, spec, collect[, options]'].concat(Array.prototype.slice.call(arguments)));
		var getType = type;
		if (typeof type !== 'function') {
			(0, _invariant2.default)((0, _isValidType2.default)(type, true), 'Expected "type" provided as the first argument to DropTarget to be ' + 'a string, an array of strings, or a function that returns either given ' + 'the current props. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html', type);
			getType = function getType() {
				return type;
			};
		}
		(0, _invariant2.default)((0, _isPlainObject2.default)(spec), 'Expected "spec" provided as the second argument to DropTarget to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html', spec);
		var createTarget = (0, _createTargetFactory2.default)(spec);
		(0, _invariant2.default)(typeof collect === 'function', 'Expected "collect" provided as the third argument to DropTarget to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html', collect);
		(0, _invariant2.default)((0, _isPlainObject2.default)(options), 'Expected "options" provided as the fourth argument to DropTarget to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html', collect);

		return function decorateTarget(DecoratedComponent) {
			return (0, _decorateHandler2.default)({
				connectBackend: function connectBackend(backend, targetId) {
					return backend.connectDropTarget(targetId);
				},
				containerDisplayName: 'DropTarget',
				createHandler: createTarget,
				registerHandler: _registerTarget2.default,
				createMonitor: _createTargetMonitor2.default,
				createConnector: _createTargetConnector2.default,
				DecoratedComponent: DecoratedComponent,
				getType: getType,
				collect: collect,
				options: options
			});
		};
	}

/***/ }),
/* 371 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.default = createSourceConnector;

	var _wrapConnectorHooks = __webpack_require__(159);

	var _wrapConnectorHooks2 = _interopRequireDefault(_wrapConnectorHooks);

	var _areOptionsEqual = __webpack_require__(155);

	var _areOptionsEqual2 = _interopRequireDefault(_areOptionsEqual);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function createSourceConnector(backend) {
		var currentHandlerId = void 0;

		var currentDragSourceNode = void 0;
		var currentDragSourceOptions = void 0;
		var disconnectCurrentDragSource = void 0;

		var currentDragPreviewNode = void 0;
		var currentDragPreviewOptions = void 0;
		var disconnectCurrentDragPreview = void 0;

		function reconnectDragSource() {
			if (disconnectCurrentDragSource) {
				disconnectCurrentDragSource();
				disconnectCurrentDragSource = null;
			}

			if (currentHandlerId && currentDragSourceNode) {
				disconnectCurrentDragSource = backend.connectDragSource(currentHandlerId, currentDragSourceNode, currentDragSourceOptions);
			}
		}

		function reconnectDragPreview() {
			if (disconnectCurrentDragPreview) {
				disconnectCurrentDragPreview();
				disconnectCurrentDragPreview = null;
			}

			if (currentHandlerId && currentDragPreviewNode) {
				disconnectCurrentDragPreview = backend.connectDragPreview(currentHandlerId, currentDragPreviewNode, currentDragPreviewOptions);
			}
		}

		function receiveHandlerId(handlerId) {
			if (handlerId === currentHandlerId) {
				return;
			}

			currentHandlerId = handlerId;
			reconnectDragSource();
			reconnectDragPreview();
		}

		var hooks = (0, _wrapConnectorHooks2.default)({
			dragSource: function connectDragSource(node, options) {
				if (node === currentDragSourceNode && (0, _areOptionsEqual2.default)(options, currentDragSourceOptions)) {
					return;
				}

				currentDragSourceNode = node;
				currentDragSourceOptions = options;

				reconnectDragSource();
			},

			dragPreview: function connectDragPreview(node, options) {
				if (node === currentDragPreviewNode && (0, _areOptionsEqual2.default)(options, currentDragPreviewOptions)) {
					return;
				}

				currentDragPreviewNode = node;
				currentDragPreviewOptions = options;

				reconnectDragPreview();
			}
		});

		return {
			receiveHandlerId: receiveHandlerId,
			hooks: hooks
		};
	}

/***/ }),
/* 372 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	exports.default = createSourceFactory;

	var _invariant = __webpack_require__(10);

	var _invariant2 = _interopRequireDefault(_invariant);

	var _isPlainObject = __webpack_require__(22);

	var _isPlainObject2 = _interopRequireDefault(_isPlainObject);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	var ALLOWED_SPEC_METHODS = ['canDrag', 'beginDrag', 'isDragging', 'endDrag'];
	var REQUIRED_SPEC_METHODS = ['beginDrag'];

	function createSourceFactory(spec) {
		Object.keys(spec).forEach(function (key) {
			(0, _invariant2.default)(ALLOWED_SPEC_METHODS.indexOf(key) > -1, 'Expected the drag source specification to only have ' + 'some of the following keys: %s. ' + 'Instead received a specification with an unexpected "%s" key. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html', ALLOWED_SPEC_METHODS.join(', '), key);
			(0, _invariant2.default)(typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html', key, key, spec[key]);
		});
		REQUIRED_SPEC_METHODS.forEach(function (key) {
			(0, _invariant2.default)(typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html', key, key, spec[key]);
		});

		var Source = function () {
			function Source(monitor) {
				_classCallCheck(this, Source);

				this.monitor = monitor;
				this.props = null;
				this.component = null;
			}

			_createClass(Source, [{
				key: 'receiveProps',
				value: function receiveProps(props) {
					this.props = props;
				}
			}, {
				key: 'receiveComponent',
				value: function receiveComponent(component) {
					this.component = component;
				}
			}, {
				key: 'canDrag',
				value: function canDrag() {
					if (!spec.canDrag) {
						return true;
					}

					return spec.canDrag(this.props, this.monitor);
				}
			}, {
				key: 'isDragging',
				value: function isDragging(globalMonitor, sourceId) {
					if (!spec.isDragging) {
						return sourceId === globalMonitor.getSourceId();
					}

					return spec.isDragging(this.props, this.monitor);
				}
			}, {
				key: 'beginDrag',
				value: function beginDrag() {
					var item = spec.beginDrag(this.props, this.monitor, this.component);
					if (false) {}
					return item;
				}
			}, {
				key: 'endDrag',
				value: function endDrag() {
					if (!spec.endDrag) {
						return;
					}

					spec.endDrag(this.props, this.monitor, this.component);
				}
			}]);

			return Source;
		}();

		return function createSource(monitor) {
			return new Source(monitor);
		};
	}

/***/ }),
/* 373 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	exports.default = createSourceMonitor;

	var _invariant = __webpack_require__(10);

	var _invariant2 = _interopRequireDefault(_invariant);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	var isCallingCanDrag = false;
	var isCallingIsDragging = false;

	var SourceMonitor = function () {
		function SourceMonitor(manager) {
			_classCallCheck(this, SourceMonitor);

			this.internalMonitor = manager.getMonitor();
		}

		_createClass(SourceMonitor, [{
			key: 'receiveHandlerId',
			value: function receiveHandlerId(sourceId) {
				this.sourceId = sourceId;
			}
		}, {
			key: 'canDrag',
			value: function canDrag() {
				(0, _invariant2.default)(!isCallingCanDrag, 'You may not call monitor.canDrag() inside your canDrag() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drag-source-monitor.html');

				try {
					isCallingCanDrag = true;
					return this.internalMonitor.canDragSource(this.sourceId);
				} finally {
					isCallingCanDrag = false;
				}
			}
		}, {
			key: 'isDragging',
			value: function isDragging() {
				(0, _invariant2.default)(!isCallingIsDragging, 'You may not call monitor.isDragging() inside your isDragging() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drag-source-monitor.html');

				try {
					isCallingIsDragging = true;
					return this.internalMonitor.isDraggingSource(this.sourceId);
				} finally {
					isCallingIsDragging = false;
				}
			}
		}, {
			key: 'getItemType',
			value: function getItemType() {
				return this.internalMonitor.getItemType();
			}
		}, {
			key: 'getItem',
			value: function getItem() {
				return this.internalMonitor.getItem();
			}
		}, {
			key: 'getDropResult',
			value: function getDropResult() {
				return this.internalMonitor.getDropResult();
			}
		}, {
			key: 'didDrop',
			value: function didDrop() {
				return this.internalMonitor.didDrop();
			}
		}, {
			key: 'getInitialClientOffset',
			value: function getInitialClientOffset() {
				return this.internalMonitor.getInitialClientOffset();
			}
		}, {
			key: 'getInitialSourceClientOffset',
			value: function getInitialSourceClientOffset() {
				return this.internalMonitor.getInitialSourceClientOffset();
			}
		}, {
			key: 'getSourceClientOffset',
			value: function getSourceClientOffset() {
				return this.internalMonitor.getSourceClientOffset();
			}
		}, {
			key: 'getClientOffset',
			value: function getClientOffset() {
				return this.internalMonitor.getClientOffset();
			}
		}, {
			key: 'getDifferenceFromInitialOffset',
			value: function getDifferenceFromInitialOffset() {
				return this.internalMonitor.getDifferenceFromInitialOffset();
			}
		}]);

		return SourceMonitor;
	}();

	function createSourceMonitor(manager) {
		return new SourceMonitor(manager);
	}

/***/ }),
/* 374 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.default = createTargetConnector;

	var _wrapConnectorHooks = __webpack_require__(159);

	var _wrapConnectorHooks2 = _interopRequireDefault(_wrapConnectorHooks);

	var _areOptionsEqual = __webpack_require__(155);

	var _areOptionsEqual2 = _interopRequireDefault(_areOptionsEqual);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function createTargetConnector(backend) {
		var currentHandlerId = void 0;

		var currentDropTargetNode = void 0;
		var currentDropTargetOptions = void 0;
		var disconnectCurrentDropTarget = void 0;

		function reconnectDropTarget() {
			if (disconnectCurrentDropTarget) {
				disconnectCurrentDropTarget();
				disconnectCurrentDropTarget = null;
			}

			if (currentHandlerId && currentDropTargetNode) {
				disconnectCurrentDropTarget = backend.connectDropTarget(currentHandlerId, currentDropTargetNode, currentDropTargetOptions);
			}
		}

		function receiveHandlerId(handlerId) {
			if (handlerId === currentHandlerId) {
				return;
			}

			currentHandlerId = handlerId;
			reconnectDropTarget();
		}

		var hooks = (0, _wrapConnectorHooks2.default)({
			dropTarget: function connectDropTarget(node, options) {
				if (node === currentDropTargetNode && (0, _areOptionsEqual2.default)(options, currentDropTargetOptions)) {
					return;
				}

				currentDropTargetNode = node;
				currentDropTargetOptions = options;

				reconnectDropTarget();
			}
		});

		return {
			receiveHandlerId: receiveHandlerId,
			hooks: hooks
		};
	}

/***/ }),
/* 375 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	exports.default = createTargetFactory;

	var _invariant = __webpack_require__(10);

	var _invariant2 = _interopRequireDefault(_invariant);

	var _isPlainObject = __webpack_require__(22);

	var _isPlainObject2 = _interopRequireDefault(_isPlainObject);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	var ALLOWED_SPEC_METHODS = ['canDrop', 'hover', 'drop'];

	function createTargetFactory(spec) {
		Object.keys(spec).forEach(function (key) {
			(0, _invariant2.default)(ALLOWED_SPEC_METHODS.indexOf(key) > -1, 'Expected the drop target specification to only have ' + 'some of the following keys: %s. ' + 'Instead received a specification with an unexpected "%s" key. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html', ALLOWED_SPEC_METHODS.join(', '), key);
			(0, _invariant2.default)(typeof spec[key] === 'function', 'Expected %s in the drop target specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html', key, key, spec[key]);
		});

		var Target = function () {
			function Target(monitor) {
				_classCallCheck(this, Target);

				this.monitor = monitor;
				this.props = null;
				this.component = null;
			}

			_createClass(Target, [{
				key: 'receiveProps',
				value: function receiveProps(props) {
					this.props = props;
				}
			}, {
				key: 'receiveMonitor',
				value: function receiveMonitor(monitor) {
					this.monitor = monitor;
				}
			}, {
				key: 'receiveComponent',
				value: function receiveComponent(component) {
					this.component = component;
				}
			}, {
				key: 'canDrop',
				value: function canDrop() {
					if (!spec.canDrop) {
						return true;
					}

					return spec.canDrop(this.props, this.monitor);
				}
			}, {
				key: 'hover',
				value: function hover() {
					if (!spec.hover) {
						return;
					}

					spec.hover(this.props, this.monitor, this.component);
				}
			}, {
				key: 'drop',
				value: function drop() {
					if (!spec.drop) {
						return undefined;
					}

					var dropResult = spec.drop(this.props, this.monitor, this.component);
					if (false) {}
					return dropResult;
				}
			}]);

			return Target;
		}();

		return function createTarget(monitor) {
			return new Target(monitor);
		};
	}

/***/ }),
/* 376 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	exports.default = createTargetMonitor;

	var _invariant = __webpack_require__(10);

	var _invariant2 = _interopRequireDefault(_invariant);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	var isCallingCanDrop = false;

	var TargetMonitor = function () {
		function TargetMonitor(manager) {
			_classCallCheck(this, TargetMonitor);

			this.internalMonitor = manager.getMonitor();
		}

		_createClass(TargetMonitor, [{
			key: 'receiveHandlerId',
			value: function receiveHandlerId(targetId) {
				this.targetId = targetId;
			}
		}, {
			key: 'canDrop',
			value: function canDrop() {
				(0, _invariant2.default)(!isCallingCanDrop, 'You may not call monitor.canDrop() inside your canDrop() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs-drop-target-monitor.html');

				try {
					isCallingCanDrop = true;
					return this.internalMonitor.canDropOnTarget(this.targetId);
				} finally {
					isCallingCanDrop = false;
				}
			}
		}, {
			key: 'isOver',
			value: function isOver(options) {
				return this.internalMonitor.isOverTarget(this.targetId, options);
			}
		}, {
			key: 'getItemType',
			value: function getItemType() {
				return this.internalMonitor.getItemType();
			}
		}, {
			key: 'getItem',
			value: function getItem() {
				return this.internalMonitor.getItem();
			}
		}, {
			key: 'getDropResult',
			value: function getDropResult() {
				return this.internalMonitor.getDropResult();
			}
		}, {
			key: 'didDrop',
			value: function didDrop() {
				return this.internalMonitor.didDrop();
			}
		}, {
			key: 'getInitialClientOffset',
			value: function getInitialClientOffset() {
				return this.internalMonitor.getInitialClientOffset();
			}
		}, {
			key: 'getInitialSourceClientOffset',
			value: function getInitialSourceClientOffset() {
				return this.internalMonitor.getInitialSourceClientOffset();
			}
		}, {
			key: 'getSourceClientOffset',
			value: function getSourceClientOffset() {
				return this.internalMonitor.getSourceClientOffset();
			}
		}, {
			key: 'getClientOffset',
			value: function getClientOffset() {
				return this.internalMonitor.getClientOffset();
			}
		}, {
			key: 'getDifferenceFromInitialOffset',
			value: function getDifferenceFromInitialOffset() {
				return this.internalMonitor.getDifferenceFromInitialOffset();
			}
		}]);

		return TargetMonitor;
	}();

	function createTargetMonitor(manager) {
		return new TargetMonitor(manager);
	}

/***/ }),
/* 377 */
/***/ (function(module, exports) {

	"use strict";

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.default = registerSource;
	function registerSource(type, source, manager) {
		var registry = manager.getRegistry();
		var sourceId = registry.addSource(type, source);

		function unregisterSource() {
			registry.removeSource(sourceId);
		}

		return {
			handlerId: sourceId,
			unregister: unregisterSource
		};
	}

/***/ }),
/* 378 */
/***/ (function(module, exports) {

	"use strict";

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.default = registerTarget;
	function registerTarget(type, target, manager) {
		var registry = manager.getRegistry();
		var targetId = registry.addTarget(type, target);

		function unregisterTarget() {
			registry.removeTarget(targetId);
		}

		return {
			handlerId: targetId,
			unregister: unregisterTarget
		};
	}

/***/ }),
/* 379 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.default = cloneWithRef;

	var _invariant = __webpack_require__(10);

	var _invariant2 = _interopRequireDefault(_invariant);

	var _react = __webpack_require__(2);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function cloneWithRef(element, newRef) {
		var previousRef = element.ref;
		(0, _invariant2.default)(typeof previousRef !== 'string', 'Cannot connect React DnD to an element with an existing string ref. ' + 'Please convert it to use a callback ref instead, or wrap it into a <span> or <div>. ' + 'Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute');

		if (!previousRef) {
			// When there is no ref on the element, use the new ref directly
			return (0, _react.cloneElement)(element, {
				ref: newRef
			});
		}

		return (0, _react.cloneElement)(element, {
			ref: function ref(node) {
				newRef(node);

				if (previousRef) {
					previousRef(node);
				}
			}
		});
	}

/***/ }),
/* 380 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _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; };

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var sizerStyle = {
		position: 'absolute',
		top: 0,
		left: 0,
		visibility: 'hidden',
		height: 0,
		overflow: 'scroll',
		whiteSpace: 'pre'
	};

	var INPUT_PROPS_BLACKLIST = ['extraWidth', 'injectStyles', 'inputClassName', 'inputRef', 'inputStyle', 'minWidth', 'onAutosize', 'placeholderIsMinWidth'];

	var cleanInputProps = function cleanInputProps(inputProps) {
		INPUT_PROPS_BLACKLIST.forEach(function (field) {
			return delete inputProps[field];
		});
		return inputProps;
	};

	var copyStyles = function copyStyles(styles, node) {
		node.style.fontSize = styles.fontSize;
		node.style.fontFamily = styles.fontFamily;
		node.style.fontWeight = styles.fontWeight;
		node.style.fontStyle = styles.fontStyle;
		node.style.letterSpacing = styles.letterSpacing;
		node.style.textTransform = styles.textTransform;
	};

	var isIE = typeof window !== 'undefined' && window.navigator ? /MSIE |Trident\/|Edge\//.test(window.navigator.userAgent) : false;

	var generateId = function generateId() {
		// we only need an auto-generated ID for stylesheet injection, which is only
		// used for IE. so if the browser is not IE, this should return undefined.
		return isIE ? '_' + Math.random().toString(36).substr(2, 12) : undefined;
	};

	var AutosizeInput = function (_Component) {
		_inherits(AutosizeInput, _Component);

		function AutosizeInput(props) {
			_classCallCheck(this, AutosizeInput);

			var _this = _possibleConstructorReturn(this, (AutosizeInput.__proto__ || Object.getPrototypeOf(AutosizeInput)).call(this, props));

			_this.inputRef = function (el) {
				_this.input = el;
				if (typeof _this.props.inputRef === 'function') {
					_this.props.inputRef(el);
				}
			};

			_this.placeHolderSizerRef = function (el) {
				_this.placeHolderSizer = el;
			};

			_this.sizerRef = function (el) {
				_this.sizer = el;
			};

			_this.state = {
				inputWidth: props.minWidth,
				inputId: props.id || generateId()
			};
			return _this;
		}

		_createClass(AutosizeInput, [{
			key: 'componentDidMount',
			value: function componentDidMount() {
				this.mounted = true;
				this.copyInputStyles();
				this.updateInputWidth();
			}
		}, {
			key: 'componentWillReceiveProps',
			value: function componentWillReceiveProps(nextProps) {
				var id = nextProps.id;

				if (id !== this.props.id) {
					this.setState({ inputId: id || generateId() });
				}
			}
		}, {
			key: 'componentDidUpdate',
			value: function componentDidUpdate(prevProps, prevState) {
				if (prevState.inputWidth !== this.state.inputWidth) {
					if (typeof this.props.onAutosize === 'function') {
						this.props.onAutosize(this.state.inputWidth);
					}
				}
				this.updateInputWidth();
			}
		}, {
			key: 'componentWillUnmount',
			value: function componentWillUnmount() {
				this.mounted = false;
			}
		}, {
			key: 'copyInputStyles',
			value: function copyInputStyles() {
				if (!this.mounted || !window.getComputedStyle) {
					return;
				}
				var inputStyles = this.input && window.getComputedStyle(this.input);
				if (!inputStyles) {
					return;
				}
				copyStyles(inputStyles, this.sizer);
				if (this.placeHolderSizer) {
					copyStyles(inputStyles, this.placeHolderSizer);
				}
			}
		}, {
			key: 'updateInputWidth',
			value: function updateInputWidth() {
				if (!this.mounted || !this.sizer || typeof this.sizer.scrollWidth === 'undefined') {
					return;
				}
				var newInputWidth = void 0;
				if (this.props.placeholder && (!this.props.value || this.props.value && this.props.placeholderIsMinWidth)) {
					newInputWidth = Math.max(this.sizer.scrollWidth, this.placeHolderSizer.scrollWidth) + 2;
				} else {
					newInputWidth = this.sizer.scrollWidth + 2;
				}
				// add extraWidth to the detected width. for number types, this defaults to 16 to allow for the stepper UI
				var extraWidth = this.props.type === 'number' && this.props.extraWidth === undefined ? 16 : parseInt(this.props.extraWidth) || 0;
				newInputWidth += extraWidth;
				if (newInputWidth < this.props.minWidth) {
					newInputWidth = this.props.minWidth;
				}
				if (newInputWidth !== this.state.inputWidth) {
					this.setState({
						inputWidth: newInputWidth
					});
				}
			}
		}, {
			key: 'getInput',
			value: function getInput() {
				return this.input;
			}
		}, {
			key: 'focus',
			value: function focus() {
				this.input.focus();
			}
		}, {
			key: 'blur',
			value: function blur() {
				this.input.blur();
			}
		}, {
			key: 'select',
			value: function select() {
				this.input.select();
			}
		}, {
			key: 'renderStyles',
			value: function renderStyles() {
				// this method injects styles to hide IE's clear indicator, which messes
				// with input size detection. the stylesheet is only injected when the
				// browser is IE, and can also be disabled by the `injectStyles` prop.
				var injectStyles = this.props.injectStyles;

				return isIE && injectStyles ? _react2.default.createElement('style', { dangerouslySetInnerHTML: {
						__html: 'input#' + this.state.inputId + '::-ms-clear {display: none;}'
					} }) : null;
			}
		}, {
			key: 'render',
			value: function render() {
				var sizerValue = [this.props.defaultValue, this.props.value, ''].reduce(function (previousValue, currentValue) {
					if (previousValue !== null && previousValue !== undefined) {
						return previousValue;
					}
					return currentValue;
				});

				var wrapperStyle = _extends({}, this.props.style);
				if (!wrapperStyle.display) wrapperStyle.display = 'inline-block';

				var inputStyle = _extends({
					boxSizing: 'content-box',
					width: this.state.inputWidth + 'px'
				}, this.props.inputStyle);

				var inputProps = _objectWithoutProperties(this.props, []);

				cleanInputProps(inputProps);
				inputProps.className = this.props.inputClassName;
				inputProps.id = this.state.inputId;
				inputProps.style = inputStyle;

				return _react2.default.createElement(
					'div',
					{ className: this.props.className, style: wrapperStyle },
					this.renderStyles(),
					_react2.default.createElement('input', _extends({}, inputProps, { ref: this.inputRef })),
					_react2.default.createElement(
						'div',
						{ ref: this.sizerRef, style: sizerStyle },
						sizerValue
					),
					this.props.placeholder ? _react2.default.createElement(
						'div',
						{ ref: this.placeHolderSizerRef, style: sizerStyle },
						this.props.placeholder
					) : null
				);
			}
		}]);

		return AutosizeInput;
	}(_react.Component);

	AutosizeInput.propTypes = {
		className: _propTypes2.default.string, // className for the outer element
		defaultValue: _propTypes2.default.any, // default field value
		extraWidth: _propTypes2.default.oneOfType([// additional width for input element
		_propTypes2.default.number, _propTypes2.default.string]),
		id: _propTypes2.default.string, // id to use for the input, can be set for consistent snapshots
		injectStyles: _propTypes2.default.bool, // inject the custom stylesheet to hide clear UI, defaults to true
		inputClassName: _propTypes2.default.string, // className for the input element
		inputRef: _propTypes2.default.func, // ref callback for the input element
		inputStyle: _propTypes2.default.object, // css styles for the input element
		minWidth: _propTypes2.default.oneOfType([// minimum width for input element
		_propTypes2.default.number, _propTypes2.default.string]),
		onAutosize: _propTypes2.default.func, // onAutosize handler: function(newWidth) {}
		onChange: _propTypes2.default.func, // onChange handler: function(event) {}
		placeholder: _propTypes2.default.string, // placeholder text
		placeholderIsMinWidth: _propTypes2.default.bool, // don't collapse size to less than the placeholder
		style: _propTypes2.default.object, // css styles for the outer element
		value: _propTypes2.default.any // field value
	};
	AutosizeInput.defaultProps = {
		minWidth: 1,
		injectStyles: true
	};

	exports.default = AutosizeInput;

/***/ }),
/* 381 */,
/* 382 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	var _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; };

	var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

	var _propTypes = __webpack_require__(3);

	var _propTypes2 = _interopRequireDefault(_propTypes);

	var _react = __webpack_require__(2);

	var _react2 = _interopRequireDefault(_react);

	var _Async = __webpack_require__(160);

	var _Async2 = _interopRequireDefault(_Async);

	var _Creatable = __webpack_require__(161);

	var _Creatable2 = _interopRequireDefault(_Creatable);

	var _Select = __webpack_require__(58);

	var _Select2 = _interopRequireDefault(_Select);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }

	function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

	function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

	function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

	var AsyncCreatableSelect = function (_React$Component) {
		_inherits(AsyncCreatableSelect, _React$Component);

		function AsyncCreatableSelect() {
			_classCallCheck(this, AsyncCreatableSelect);

			return _possibleConstructorReturn(this, (AsyncCreatableSelect.__proto__ || Object.getPrototypeOf(AsyncCreatableSelect)).apply(this, arguments));
		}

		_createClass(AsyncCreatableSelect, [{
			key: 'focus',
			value: function focus() {
				this.select.focus();
			}
		}, {
			key: 'render',
			value: function render() {
				var _this2 = this;

				return _react2.default.createElement(
					_Async2.default,
					this.props,
					function (_ref) {
						var ref = _ref.ref,
						    asyncProps = _objectWithoutProperties(_ref, ['ref']);

						var asyncRef = ref;
						return _react2.default.createElement(
							_Creatable2.default,
							asyncProps,
							function (_ref2) {
								var ref = _ref2.ref,
								    creatableProps = _objectWithoutProperties(_ref2, ['ref']);

								var creatableRef = ref;
								return _this2.props.children(_extends({}, creatableProps, {
									ref: function ref(select) {
										creatableRef(select);
										asyncRef(select);
										_this2.select = select;
									}
								}));
							}
						);
					}
				);
			}
		}]);

		return AsyncCreatableSelect;
	}(_react2.default.Component);

	var defaultChildren = function defaultChildren(props) {
		return _react2.default.createElement(_Select2.default, props);
	};

	AsyncCreatableSelect.propTypes = {
		children: _propTypes2.default.func.isRequired // Child function responsible for creating the inner Select component; (props: Object): PropTypes.element
	};

	AsyncCreatableSelect.defaultProps = {
		children: defaultChildren
	};

	exports.default = AsyncCreatableSelect;

/***/ }),
/* 383 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports.defaultFilterOptions = exports.defaultClearRenderer = exports.defaultArrowRenderer = exports.defaultMenuRenderer = exports.Option = exports.Value = exports.Creatable = exports.AsyncCreatable = exports.Async = undefined;

	var _Select = __webpack_require__(58);

	var _Select2 = _interopRequireDefault(_Select);

	var _Async = __webpack_require__(160);

	var _Async2 = _interopRequireDefault(_Async);

	var _AsyncCreatable = __webpack_require__(382);

	var _AsyncCreatable2 = _interopRequireDefault(_AsyncCreatable);

	var _Creatable = __webpack_require__(161);

	var _Creatable2 = _interopRequireDefault(_Creatable);

	var _Value = __webpack_require__(163);

	var _Value2 = _interopRequireDefault(_Value);

	var _Option = __webpack_require__(162);

	var _Option2 = _interopRequireDefault(_Option);

	var _defaultMenuRenderer = __webpack_require__(91);

	var _defaultMenuRenderer2 = _interopRequireDefault(_defaultMenuRenderer);

	var _defaultArrowRenderer = __webpack_require__(164);

	var _defaultArrowRenderer2 = _interopRequireDefault(_defaultArrowRenderer);

	var _defaultClearRenderer = __webpack_require__(165);

	var _defaultClearRenderer2 = _interopRequireDefault(_defaultClearRenderer);

	var _defaultFilterOptions = __webpack_require__(90);

	var _defaultFilterOptions2 = _interopRequireDefault(_defaultFilterOptions);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	_Select2.default.Async = _Async2.default;
	_Select2.default.AsyncCreatable = _AsyncCreatable2.default;
	_Select2.default.Creatable = _Creatable2.default;
	_Select2.default.Value = _Value2.default;
	_Select2.default.Option = _Option2.default;

	exports.default = _Select2.default;
	exports.Async = _Async2.default;
	exports.AsyncCreatable = _AsyncCreatable2.default;
	exports.Creatable = _Creatable2.default;
	exports.Value = _Value2.default;
	exports.Option = _Option2.default;
	exports.defaultMenuRenderer = _defaultMenuRenderer2.default;
	exports.defaultArrowRenderer = _defaultArrowRenderer2.default;
	exports.defaultClearRenderer = _defaultClearRenderer2.default;
	exports.defaultFilterOptions = _defaultFilterOptions2.default;

/***/ }),
/* 384 */
/***/ (function(module, exports) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});

	exports.default = function (event) {
		event.preventDefault();
		event.stopPropagation();
		if (event.target.tagName !== 'A' || !('href' in event.target)) {
			return;
		}
		if (event.target.target) {
			window.open(event.target.href, event.target.target);
		} else {
			window.location.href = event.target.href;
		}
	};

/***/ }),
/* 385 */
/***/ (function(module, exports) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});
	var trim = function trim(str) {
	  return str.replace(/^\s+|\s+$/g, '');
	};

	exports.default = trim;

/***/ }),
/* 386 */
/***/ (function(module, exports, __webpack_require__) {

	'use strict';

	exports.__esModule = true;
	exports.ActionTypes = undefined;
	exports['default'] = createStore;

	var _isPlainObject = __webpack_require__(22);

	var _isPlainObject2 = _interopRequireDefault(_isPlainObject);

	var _symbolObservable = __webpack_require__(395);

	var _symbolObservable2 = _interopRequireDefault(_symbolObservable);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	/**
	 * These are private action types reserved by Redux.
	 * For any unknown actions, you must return the current state.
	 * If the current state is undefined, you must return the initial state.
	 * Do not reference these action types directly in your code.
	 */
	var ActionTypes = exports.ActionTypes = {
	  INIT: '@@redux/INIT'

	  /**
	   * Creates a Redux store that holds the state tree.
	   * The only way to change the data in the store is to call `dispatch()` on it.
	   *
	   * There should only be a single store in your app. To specify how different
	   * parts of the state tree respond to actions, you may combine several reducers
	   * into a single reducer function by using `combineReducers`.
	   *
	   * @param {Function} reducer A function that returns the next state tree, given
	   * the current state tree and the action to handle.
	   *
	   * @param {any} [preloadedState] The initial state. You may optionally specify it
	   * to hydrate the state from the server in universal apps, or to restore a
	   * previously serialized user session.
	   * If you use `combineReducers` to produce the root reducer function, this must be
	   * an object with the same shape as `combineReducers` keys.
	   *
	   * @param {Function} [enhancer] The store enhancer. You may optionally specify it
	   * to enhance the store with third-party capabilities such as middleware,
	   * time travel, persistence, etc. The only store enhancer that ships with Redux
	   * is `applyMiddleware()`.
	   *
	   * @returns {Store} A Redux store that lets you read the state, dispatch actions
	   * and subscribe to changes.
	   */
	};function createStore(reducer, preloadedState, enhancer) {
	  var _ref2;

	  if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {
	    enhancer = preloadedState;
	    preloadedState = undefined;
	  }

	  if (typeof enhancer !== 'undefined') {
	    if (typeof enhancer !== 'function') {
	      throw new Error('Expected the enhancer to be a function.');
	    }

	    return enhancer(createStore)(reducer, preloadedState);
	  }

	  if (typeof reducer !== 'function') {
	    throw new Error('Expected the reducer to be a function.');
	  }

	  var currentReducer = reducer;
	  var currentState = preloadedState;
	  var currentListeners = [];
	  var nextListeners = currentListeners;
	  var isDispatching = false;

	  function ensureCanMutateNextListeners() {
	    if (nextListeners === currentListeners) {
	      nextListeners = currentListeners.slice();
	    }
	  }

	  /**
	   * Reads the state tree managed by the store.
	   *
	   * @returns {any} The current state tree of your application.
	   */
	  function getState() {
	    return currentState;
	  }

	  /**
	   * Adds a change listener. It will be called any time an action is dispatched,
	   * and some part of the state tree may potentially have changed. You may then
	   * call `getState()` to read the current state tree inside the callback.
	   *
	   * You may call `dispatch()` from a change listener, with the following
	   * caveats:
	   *
	   * 1. The subscriptions are snapshotted just before every `dispatch()` call.
	   * If you subscribe or unsubscribe while the listeners are being invoked, this
	   * will not have any effect on the `dispatch()` that is currently in progress.
	   * However, the next `dispatch()` call, whether nested or not, will use a more
	   * recent snapshot of the subscription list.
	   *
	   * 2. The listener should not expect to see all state changes, as the state
	   * might have been updated multiple times during a nested `dispatch()` before
	   * the listener is called. It is, however, guaranteed that all subscribers
	   * registered before the `dispatch()` started will be called with the latest
	   * state by the time it exits.
	   *
	   * @param {Function} listener A callback to be invoked on every dispatch.
	   * @returns {Function} A function to remove this change listener.
	   */
	  function subscribe(listener) {
	    if (typeof listener !== 'function') {
	      throw new Error('Expected listener to be a function.');
	    }

	    var isSubscribed = true;

	    ensureCanMutateNextListeners();
	    nextListeners.push(listener);

	    return function unsubscribe() {
	      if (!isSubscribed) {
	        return;
	      }

	      isSubscribed = false;

	      ensureCanMutateNextListeners();
	      var index = nextListeners.indexOf(listener);
	      nextListeners.splice(index, 1);
	    };
	  }

	  /**
	   * Dispatches an action. It is the only way to trigger a state change.
	   *
	   * The `reducer` function, used to create the store, will be called with the
	   * current state tree and the given `action`. Its return value will
	   * be considered the **next** state of the tree, and the change listeners
	   * will be notified.
	   *
	   * The base implementation only supports plain object actions. If you want to
	   * dispatch a Promise, an Observable, a thunk, or something else, you need to
	   * wrap your store creating function into the corresponding middleware. For
	   * example, see the documentation for the `redux-thunk` package. Even the
	   * middleware will eventually dispatch plain object actions using this method.
	   *
	   * @param {Object} action A plain object representing “what changed”. It is
	   * a good idea to keep actions serializable so you can record and replay user
	   * sessions, or use the time travelling `redux-devtools`. An action must have
	   * a `type` property which may not be `undefined`. It is a good idea to use
	   * string constants for action types.
	   *
	   * @returns {Object} For convenience, the same action object you dispatched.
	   *
	   * Note that, if you use a custom middleware, it may wrap `dispatch()` to
	   * return something else (for example, a Promise you can await).
	   */
	  function dispatch(action) {
	    if (!(0, _isPlainObject2['default'])(action)) {
	      throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');
	    }

	    if (typeof action.type === 'undefined') {
	      throw new Error('Actions may not have an undefined "type" property. ' + 'Have you misspelled a constant?');
	    }

	    if (isDispatching) {
	      throw new Error('Reducers may not dispatch actions.');
	    }

	    try {
	      isDispatching = true;
	      currentState = currentReducer(currentState, action);
	    } finally {
	      isDispatching = false;
	    }

	    var listeners = currentListeners = nextListeners;
	    for (var i = 0; i < listeners.length; i++) {
	      var listener = listeners[i];
	      listener();
	    }

	    return action;
	  }

	  /**
	   * Replaces the reducer currently used by the store to calculate the state.
	   *
	   * You might need this if your app implements code splitting and you want to
	   * load some of the reducers dynamically. You might also need this if you
	   * implement a hot reloading mechanism for Redux.
	   *
	   * @param {Function} nextReducer The reducer for the store to use instead.
	   * @returns {void}
	   */
	  function replaceReducer(nextReducer) {
	    if (typeof nextReducer !== 'function') {
	      throw new Error('Expected the nextReducer to be a function.');
	    }

	    currentReducer = nextReducer;
	    dispatch({ type: ActionTypes.INIT });
	  }

	  /**
	   * Interoperability point for observable/reactive libraries.
	   * @returns {observable} A minimal observable of state changes.
	   * For more information, see the observable proposal:
	   * https://github.com/tc39/proposal-observable
	   */
	  function observable() {
	    var _ref;

	    var outerSubscribe = subscribe;
	    return _ref = {
	      /**
	       * The minimal observable subscription method.
	       * @param {Object} observer Any object that can be used as an observer.
	       * The observer object should have a `next` method.
	       * @returns {subscription} An object with an `unsubscribe` method that can
	       * be used to unsubscribe the observable from the store, and prevent further
	       * emission of values from the observable.
	       */
	      subscribe: function subscribe(observer) {
	        if (typeof observer !== 'object') {
	          throw new TypeError('Expected the observer to be an object.');
	        }

	        function observeState() {
	          if (observer.next) {
	            observer.next(getState());
	          }
	        }

	        observeState();
	        var unsubscribe = outerSubscribe(observeState);
	        return { unsubscribe: unsubscribe };
	      }
	    }, _ref[_symbolObservable2['default']] = function () {
	      return this;
	    }, _ref;
	  }

	  // When a store is created, an "INIT" action is dispatched so that every
	  // reducer returns their initial state. This effectively populates
	  // the initial state tree.
	  dispatch({ type: ActionTypes.INIT });

	  return _ref2 = {
	    dispatch: dispatch,
	    subscribe: subscribe,
	    getState: getState,
	    replaceReducer: replaceReducer
	  }, _ref2[_symbolObservable2['default']] = observable, _ref2;
	}

/***/ }),
/* 387 */
/***/ (function(module, exports) {

	'use strict';

	exports.__esModule = true;
	exports.defaultMemoize = defaultMemoize;
	exports.createSelectorCreator = createSelectorCreator;
	exports.createStructuredSelector = createStructuredSelector;

	function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }

	function defaultEqualityCheck(a, b) {
	  return a === b;
	}

	function defaultMemoize(func) {
	  var equalityCheck = arguments.length <= 1 || arguments[1] === undefined ? defaultEqualityCheck : arguments[1];

	  var lastArgs = null;
	  var lastResult = null;
	  return function () {
	    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
	      args[_key] = arguments[_key];
	    }

	    if (lastArgs === null || lastArgs.length !== args.length || !args.every(function (value, index) {
	      return equalityCheck(value, lastArgs[index]);
	    })) {
	      lastResult = func.apply(undefined, args);
	    }
	    lastArgs = args;
	    return lastResult;
	  };
	}

	function getDependencies(funcs) {
	  var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;

	  if (!dependencies.every(function (dep) {
	    return typeof dep === 'function';
	  })) {
	    var dependencyTypes = dependencies.map(function (dep) {
	      return typeof dep;
	    }).join(', ');
	    throw new Error('Selector creators expect all input-selectors to be functions, ' + ('instead received the following types: [' + dependencyTypes + ']'));
	  }

	  return dependencies;
	}

	function createSelectorCreator(memoize) {
	  for (var _len2 = arguments.length, memoizeOptions = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
	    memoizeOptions[_key2 - 1] = arguments[_key2];
	  }

	  return function () {
	    for (var _len3 = arguments.length, funcs = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
	      funcs[_key3] = arguments[_key3];
	    }

	    var recomputations = 0;
	    var resultFunc = funcs.pop();
	    var dependencies = getDependencies(funcs);

	    var memoizedResultFunc = memoize.apply(undefined, [function () {
	      recomputations++;
	      return resultFunc.apply(undefined, arguments);
	    }].concat(memoizeOptions));

	    var selector = function selector(state, props) {
	      for (var _len4 = arguments.length, args = Array(_len4 > 2 ? _len4 - 2 : 0), _key4 = 2; _key4 < _len4; _key4++) {
	        args[_key4 - 2] = arguments[_key4];
	      }

	      var params = dependencies.map(function (dependency) {
	        return dependency.apply(undefined, [state, props].concat(args));
	      });
	      return memoizedResultFunc.apply(undefined, _toConsumableArray(params));
	    };

	    selector.resultFunc = resultFunc;
	    selector.recomputations = function () {
	      return recomputations;
	    };
	    selector.resetRecomputations = function () {
	      return recomputations = 0;
	    };
	    return selector;
	  };
	}

	var createSelector = exports.createSelector = createSelectorCreator(defaultMemoize);

	function createStructuredSelector(selectors) {
	  var selectorCreator = arguments.length <= 1 || arguments[1] === undefined ? createSelector : arguments[1];

	  if (typeof selectors !== 'object') {
	    throw new Error('createStructuredSelector expects first argument to be an object ' + ('where each property is a selector, instead received a ' + typeof selectors));
	  }
	  var objectKeys = Object.keys(selectors);
	  return selectorCreator(objectKeys.map(function (key) {
	    return selectors[key];
	  }), function () {
	    for (var _len5 = arguments.length, values = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
	      values[_key5] = arguments[_key5];
	    }

	    return values.reduce(function (composition, value, index) {
	      composition[objectKeys[index]] = value;
	      return composition;
	    }, {});
	  });
	}

/***/ }),
/* 388 */
/***/ (function(module, exports, __webpack_require__) {

	(function webpackUniversalModuleDefinition(root, factory) {
		if(true)
			module.exports = factory(__webpack_require__(2), __webpack_require__(13));
		else {}
	})(this, function(__WEBPACK_EXTERNAL_MODULE_7__, __WEBPACK_EXTERNAL_MODULE_8__) {
	return /******/ (function(modules) { // webpackBootstrap
	/******/ 	// The module cache
	/******/ 	var installedModules = {};

	/******/ 	// The require function
	/******/ 	function __webpack_require__(moduleId) {

	/******/ 		// Check if module is in cache
	/******/ 		if(installedModules[moduleId])
	/******/ 			return installedModules[moduleId].exports;

	/******/ 		// Create a new module (and put it into the cache)
	/******/ 		var module = installedModules[moduleId] = {
	/******/ 			exports: {},
	/******/ 			id: moduleId,
	/******/ 			loaded: false
	/******/ 		};

	/******/ 		// Execute the module function
	/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);

	/******/ 		// Flag the module as loaded
	/******/ 		module.loaded = true;

	/******/ 		// Return the exports of the module
	/******/ 		return module.exports;
	/******/ 	}


	/******/ 	// expose the modules object (__webpack_modules__)
	/******/ 	__webpack_require__.m = modules;

	/******/ 	// expose the module cache
	/******/ 	__webpack_require__.c = installedModules;

	/******/ 	// __webpack_public_path__
	/******/ 	__webpack_require__.p = "";

	/******/ 	// Load entry module and return exports
	/******/ 	return __webpack_require__(0);
	/******/ })
	/************************************************************************/
	/******/ ([
	/* 0 */
	/***/ (function(module, exports, __webpack_require__) {

		'use strict';

		var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

		function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

		function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

		function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

		var PropTypes = __webpack_require__(5);
		var React = __webpack_require__(7);
		var ReactDOM = __webpack_require__(8);
		var classnames = __webpack_require__(1);

		var Autocomplete = function (_React$Component) {
		  _inherits(Autocomplete, _React$Component);

		  function Autocomplete(props) {
		    _classCallCheck(this, Autocomplete);

		    var _this = _possibleConstructorReturn(this, (Autocomplete.__proto__ || Object.getPrototypeOf(Autocomplete)).call(this, props));

		    _initialiseProps.call(_this);

		    var searchTerm = props.searchTerm ? props.searchTerm : props.value ? props.value.title : '';

		    _this.state = {
		      results: [],
		      showResults: false,
		      showResultsInProgress: false,
		      searchTerm: searchTerm,
		      focusedValue: null
		    };
		    return _this;
		  }

		  _createClass(Autocomplete, [{
		    key: 'render',
		    value: function render() {
		      var className = classnames(this.props.className, 'react-autocomplete-Autocomplete', this.state.showResults ? 'react-autocomplete-Autocomplete--resultsShown' : undefined);
		      var style = {
		        position: 'relative',
		        outline: 'none'
		      };
		      return React.createElement(
		        'div',
		        {
		          tabIndex: '1',
		          className: className,
		          onFocus: this.onFocus,
		          onBlur: this.onBlur,
		          style: style },
		        React.createElement('input', {
		          ref: 'search',
		          className: 'react-autocomplete-Autocomplete__search',
		          style: { width: '100%' },
		          onClick: this.showAllResults,
		          onChange: this.onQueryChange,
		          onFocus: this.onSearchInputFocus,
		          onBlur: this.onQueryBlur,
		          onKeyDown: this.onQueryKeyDown,
		          value: this.state.searchTerm
		        }),
		        React.createElement(Results, {
		          className: 'react-autocomplete-Autocomplete__results',
		          onSelect: this.onValueChange,
		          onFocus: this.onValueFocus,
		          results: this.state.results,
		          focusedValue: this.state.focusedValue,
		          show: this.state.showResults,
		          renderer: this.props.resultRenderer,
		          label: this.props.label,
		          resultIdentifier: this.props.resultIdentifier
		        })
		      );
		    }
		  }, {
		    key: 'componentWillReceiveProps',
		    value: function componentWillReceiveProps(nextProps) {
		      var searchTerm = nextProps.searchTerm ? nextProps.searchTerm : nextProps.value ? nextProps.value.title : '';
		      this.setState({ searchTerm: searchTerm });
		    }
		  }, {
		    key: 'componentWillMount',
		    value: function componentWillMount() {
		      this.blurTimer = null;
		    }

		    /**
		      * Show results for a search term value.
		      *
		      * This method doesn't update search term value itself.
		      *
		      * @param {Search} searchTerm
		      */

		  }]);

		  return Autocomplete;
		}(React.Component);

		Autocomplete.displayName = 'Autocomplete';
		Autocomplete.propTypes = {
		  options: PropTypes.any,
		  search: PropTypes.func,
		  resultRenderer: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
		  value: PropTypes.object,
		  onChange: PropTypes.func,
		  onError: PropTypes.func,
		  onFocus: PropTypes.func
		};
		Autocomplete.defaultProps = { search: searchArray };

		var _initialiseProps = function _initialiseProps() {
		  var _this4 = this;

		  this.getResultIdentifier = function (result) {
		    if (_this4.props.resultIdentifier === undefined) {
		      return result.id;
		    } else {
		      return result[_this4.props.resultIdentifier];
		    }
		  };

		  this.showResults = function (searchTerm) {
		    _this4.setState({ showResultsInProgress: true });
		    _this4.props.search(_this4.props.options, searchTerm.trim(), _this4.onSearchComplete);
		  };

		  this.showAllResults = function () {
		    if (!_this4.state.showResultsInProgress && !_this4.state.showResults) {
		      _this4.showResults('');
		    }
		  };

		  this.onValueChange = function (value) {
		    var state = {
		      value: value,
		      showResults: false
		    };

		    if (value) {
		      state.searchTerm = value.title;
		    }

		    _this4.setState(state);

		    if (_this4.props.onChange) {
		      _this4.props.onChange(value);
		    }
		  };

		  this.onSearchComplete = function (err, results) {
		    if (err) {
		      if (_this4.props.onError) {
		        _this4.props.onError(err);
		      } else {
		        throw err;
		      }
		    }

		    _this4.setState({
		      showResultsInProgress: false,
		      showResults: true,
		      results: results
		    });
		  };

		  this.onValueFocus = function (value) {
		    _this4.setState({ focusedValue: value });
		  };

		  this.onQueryChange = function (e) {
		    var searchTerm = e.target.value;
		    _this4.setState({
		      searchTerm: searchTerm,
		      focusedValue: null
		    });
		    _this4.showResults(searchTerm);
		  };

		  this.onFocus = function () {
		    if (_this4.blurTimer) {
		      clearTimeout(_this4.blurTimer);
		      _this4.blurTimer = null;
		    }
		    _this4.refs.search.focus();
		  };

		  this.onSearchInputFocus = function () {
		    if (_this4.props.onFocus) {
		      _this4.props.onFocus();
		    }

		    _this4.showAllResults();
		  };

		  this.onBlur = function () {
		    // wrap in setTimeout so we can catch a click on results
		    _this4.blurTimer = setTimeout(function () {
		      _this4.setState({ showResults: false });
		    }, 100);
		  };

		  this.onQueryKeyDown = function (e) {

		    if (e.key === 'Enter') {
		      e.preventDefault();
		      if (_this4.state.focusedValue) {
		        _this4.onValueChange(_this4.state.focusedValue);
		      }
		    } else if (e.key === 'ArrowUp' && _this4.state.showResults) {
		      e.preventDefault();
		      var prevIdx = Math.max(_this4.focusedValueIndex() - 1, 0);
		      _this4.setState({
		        focusedValue: _this4.state.results[prevIdx]
		      });
		    } else if (e.key === 'ArrowDown') {
		      e.preventDefault();
		      if (_this4.state.showResults) {
		        var nextIdx = Math.min(_this4.focusedValueIndex() + (_this4.state.showResults ? 1 : 0), _this4.state.results.length - 1);
		        _this4.setState({
		          showResults: true,
		          focusedValue: _this4.state.results[nextIdx]
		        });
		      } else {
		        _this4.showAllResults();
		      }
		    }
		  };

		  this.focusedValueIndex = function () {
		    if (!_this4.state.focusedValue) {
		      return -1;
		    }
		    for (var i = 0, len = _this4.state.results.length; i < len; i++) {
		      if (_this4.getResultIdentifier(_this4.state.results[i]) === _this4.getResultIdentifier(_this4.state.focusedValue)) {
		        return i;
		      }
		    }
		    return -1;
		  };
		};

		var Results = function (_React$Component2) {
		  _inherits(Results, _React$Component2);

		  function Results() {
		    var _ref;

		    var _temp, _this2, _ret;

		    _classCallCheck(this, Results);

		    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
		      args[_key] = arguments[_key];
		    }

		    return _ret = (_temp = (_this2 = _possibleConstructorReturn(this, (_ref = Results.__proto__ || Object.getPrototypeOf(Results)).call.apply(_ref, [this].concat(args))), _this2), _this2.getResultIdentifier = function (result) {
		      if (_this2.props.resultIdentifier === undefined) {
		        if (!result.id) {
		          throw Error("id property not found on result. You must specify a resultIdentifier and pass as props to autocomplete component");
		        }
		        return result.id;
		      } else {
		        return result[_this2.props.resultIdentifier];
		      }
		    }, _this2.renderResult = function (result) {
		      var focused = _this2.props.focusedValue && _this2.getResultIdentifier(_this2.props.focusedValue) === _this2.getResultIdentifier(result);
		      var Renderer = _this2.props.renderer || Result;
		      return React.createElement(Renderer, {
		        ref: focused ? "focused" : undefined,
		        key: _this2.getResultIdentifier(result),
		        result: result,
		        focused: focused,
		        onMouseEnter: _this2.onMouseEnterResult,
		        onClick: _this2.props.onSelect,
		        label: _this2.props.label });
		    }, _this2.scrollToFocused = function () {
		      var focused = _this2.refs && _this2.refs.focused;
		      if (focused) {
		        var containerNode = ReactDOM.findDOMNode(_this2);
		        var scroll = containerNode.scrollTop;
		        var height = containerNode.offsetHeight;

		        var node = ReactDOM.findDOMNode(focused);
		        var top = node.offsetTop;
		        var bottom = top + node.offsetHeight;

		        // we update ignoreFocus to true if we change the scroll position so
		        // the mouseover event triggered because of that won't have an
		        // effect
		        if (top < scroll) {
		          _this2.ignoreFocus = true;
		          containerNode.scrollTop = top;
		        } else if (bottom - scroll > height) {
		          _this2.ignoreFocus = true;
		          containerNode.scrollTop = bottom - height;
		        }
		      }
		    }, _this2.onMouseEnterResult = function (e, result) {
		      // check if we need to prevent the next onFocus event because it was
		      // probably caused by a mouseover due to scroll position change
		      if (_this2.ignoreFocus) {
		        _this2.ignoreFocus = false;
		      } else {
		        // we need to make sure focused node is visible
		        // for some reason mouse events fire on visible nodes due to
		        // box-shadow
		        var containerNode = ReactDOM.findDOMNode(_this2);
		        var scroll = containerNode.scrollTop;
		        var height = containerNode.offsetHeight;

		        var node = e.target;
		        var top = node.offsetTop;
		        var bottom = top + node.offsetHeight;

		        if (bottom > scroll && top < scroll + height) {
		          _this2.props.onFocus(result);
		        }
		      }
		    }, _temp), _possibleConstructorReturn(_this2, _ret);
		  }

		  _createClass(Results, [{
		    key: 'render',
		    value: function render() {
		      var style = {
		        display: this.props.show ? 'block' : 'none',
		        position: 'absolute',
		        listStyleType: 'none'
		      };
		      var className = this.props.className;


		      return React.createElement(
		        'ul',
		        { style: style, className: className + " react-autocomplete-Results" },
		        this.props.results.map(this.renderResult)
		      );
		    }
		  }, {
		    key: 'componentDidUpdate',
		    value: function componentDidUpdate() {
		      this.scrollToFocused();
		    }
		  }, {
		    key: 'componentDidMount',
		    value: function componentDidMount() {
		      this.scrollToFocused();
		    }
		  }, {
		    key: 'componentWillMount',
		    value: function componentWillMount() {
		      this.ignoreFocus = false;
		    }
		  }]);

		  return Results;
		}(React.Component);

		var Result = function (_React$Component3) {
		  _inherits(Result, _React$Component3);

		  function Result() {
		    var _ref2;

		    var _temp2, _this3, _ret2;

		    _classCallCheck(this, Result);

		    for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
		      args[_key2] = arguments[_key2];
		    }

		    return _ret2 = (_temp2 = (_this3 = _possibleConstructorReturn(this, (_ref2 = Result.__proto__ || Object.getPrototypeOf(Result)).call.apply(_ref2, [this].concat(args))), _this3), _this3.getLabel = function (result) {
		      if (typeof _this3.props.label === 'function') {
		        return _this3.props.label(result);
		      } else if (typeof _this3.props.label === 'string') {
		        return result[_this3.props.label];
		      }
		    }, _this3.onClick = function () {
		      _this3.props.onClick(_this3.props.result);
		    }, _this3.onMouseEnter = function (e) {
		      if (_this3.props.onMouseEnter) {
		        _this3.props.onMouseEnter(e, _this3.props.result);
		      }
		    }, _temp2), _possibleConstructorReturn(_this3, _ret2);
		  }

		  _createClass(Result, [{
		    key: 'render',
		    value: function render() {
		      var className = classnames({
		        'react-autocomplete-Result': true,
		        'react-autocomplete-Result--active': this.props.focused
		      });

		      return React.createElement(
		        'li',
		        {
		          style: { listStyleType: 'none' },
		          className: className,
		          onClick: this.onClick,
		          onMouseEnter: this.onMouseEnter },
		        React.createElement(
		          'a',
		          null,
		          this.getLabel(this.props.result)
		        )
		      );
		    }
		  }, {
		    key: 'shouldComponentUpdate',
		    value: function shouldComponentUpdate(nextProps) {
		      return nextProps.result.id !== this.props.result.id || nextProps.focused !== this.props.focused;
		    }
		  }]);

		  return Result;
		}(React.Component);

		/**
		* Search options using specified search term treating options as an array
		* of candidates.
		*
		* @param {Array.<Object>} options
		* @param {String} searchTerm
		* @param {Callback} cb
		*/


		Result.defaultProps = {
		  label: function label(result) {
		    return result.title;
		  }
		};
		function searchArray(options, searchTerm, cb) {
		  if (!options) {
		    return cb(null, []);
		  }

		  searchTerm = new RegExp(searchTerm, 'i');

		  var results = [];

		  for (var i = 0, len = options.length; i < len; i++) {
		    if (searchTerm.exec(options[i].title)) {
		      results.push(options[i]);
		    }
		  }

		  cb(null, results);
		}

		module.exports = Autocomplete;

	/***/ }),
	/* 1 */
	/***/ (function(module, exports, __webpack_require__) {

		var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
		  Copyright (c) 2015 Jed Watson.
		  Licensed under the MIT License (MIT), see
		  http://jedwatson.github.io/classnames
		*/

		function classNames() {
			var classes = '';
			var arg;

			for (var i = 0; i < arguments.length; i++) {
				arg = arguments[i];
				if (!arg) {
					continue;
				}

				if ('string' === typeof arg || 'number' === typeof arg) {
					classes += ' ' + arg;
				} else if (Object.prototype.toString.call(arg) === '[object Array]') {
					classes += ' ' + classNames.apply(null, arg);
				} else if ('object' === typeof arg) {
					for (var key in arg) {
						if (!arg.hasOwnProperty(key) || !arg[key]) {
							continue;
						}
						classes += ' ' + key;
					}
				}
			}
			return classes.substr(1);
		}

		// safely export classNames for node / browserify
		if (typeof module !== 'undefined' && module.exports) {
			module.exports = classNames;
		}

		// safely export classNames for RequireJS
		if (true) {
			!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() {
				return classNames;
			}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
		}


	/***/ }),
	/* 2 */
	/***/ (function(module, exports) {

		"use strict";

		/**
		 * Copyright (c) 2013-present, Facebook, Inc.
		 *
		 * This source code is licensed under the MIT license found in the
		 * LICENSE file in the root directory of this source tree.
		 *
		 * 
		 */

		function makeEmptyFunction(arg) {
		  return function () {
		    return arg;
		  };
		}

		/**
		 * This function accepts and discards inputs; it has no side effects. This is
		 * primarily useful idiomatically for overridable function endpoints which
		 * always need to be callable, since JS lacks a null-call idiom ala Cocoa.
		 */
		var emptyFunction = function emptyFunction() {};

		emptyFunction.thatReturns = makeEmptyFunction;
		emptyFunction.thatReturnsFalse = makeEmptyFunction(false);
		emptyFunction.thatReturnsTrue = makeEmptyFunction(true);
		emptyFunction.thatReturnsNull = makeEmptyFunction(null);
		emptyFunction.thatReturnsThis = function () {
		  return this;
		};
		emptyFunction.thatReturnsArgument = function (arg) {
		  return arg;
		};

		module.exports = emptyFunction;

	/***/ }),
	/* 3 */
	/***/ (function(module, exports, __webpack_require__) {

		/**
		 * Copyright (c) 2013-present, Facebook, Inc.
		 *
		 * This source code is licensed under the MIT license found in the
		 * LICENSE file in the root directory of this source tree.
		 *
		 */

		'use strict';

		/**
		 * Use invariant() to assert state which your program assumes to be true.
		 *
		 * Provide sprintf-style format (only %s is supported) and arguments
		 * to provide information about what broke and what you were
		 * expecting.
		 *
		 * The invariant message will be stripped in production, but the invariant
		 * will remain to ensure logic does not differ in production.
		 */

		var validateFormat = function validateFormat(format) {};

		if (false) {}

		function invariant(condition, format, a, b, c, d, e, f) {
		  validateFormat(format);

		  if (!condition) {
		    var error;
		    if (format === undefined) {
		      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
		    } else {
		      var args = [a, b, c, d, e, f];
		      var argIndex = 0;
		      error = new Error(format.replace(/%s/g, function () {
		        return args[argIndex++];
		      }));
		      error.name = 'Invariant Violation';
		    }

		    error.framesToPop = 1; // we don't care about invariant's own frame
		    throw error;
		  }
		}

		module.exports = invariant;

	/***/ }),
	/* 4 */
	/***/ (function(module, exports, __webpack_require__) {

		/**
		 * Copyright (c) 2013-present, Facebook, Inc.
		 *
		 * This source code is licensed under the MIT license found in the
		 * LICENSE file in the root directory of this source tree.
		 */

		'use strict';

		var emptyFunction = __webpack_require__(2);
		var invariant = __webpack_require__(3);
		var ReactPropTypesSecret = __webpack_require__(6);

		module.exports = function() {
		  function shim(props, propName, componentName, location, propFullName, secret) {
		    if (secret === ReactPropTypesSecret) {
		      // It is still safe when called from React.
		      return;
		    }
		    invariant(
		      false,
		      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
		      'Use PropTypes.checkPropTypes() to call them. ' +
		      'Read more at http://fb.me/use-check-prop-types'
		    );
		  };
		  shim.isRequired = shim;
		  function getShim() {
		    return shim;
		  };
		  // Important!
		  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
		  var ReactPropTypes = {
		    array: shim,
		    bool: shim,
		    func: shim,
		    number: shim,
		    object: shim,
		    string: shim,
		    symbol: shim,

		    any: shim,
		    arrayOf: getShim,
		    element: shim,
		    instanceOf: getShim,
		    node: shim,
		    objectOf: getShim,
		    oneOf: getShim,
		    oneOfType: getShim,
		    shape: getShim,
		    exact: getShim
		  };

		  ReactPropTypes.checkPropTypes = emptyFunction;
		  ReactPropTypes.PropTypes = ReactPropTypes;

		  return ReactPropTypes;
		};


	/***/ }),
	/* 5 */
	/***/ (function(module, exports, __webpack_require__) {

		/**
		 * Copyright (c) 2013-present, Facebook, Inc.
		 *
		 * This source code is licensed under the MIT license found in the
		 * LICENSE file in the root directory of this source tree.
		 */

		if (false) { var throwOnDirectAccess, isValidElement, REACT_ELEMENT_TYPE; } else {
		  // By explicitly using `prop-types` you are opting into new production behavior.
		  // http://fb.me/prop-types-in-prod
		  module.exports = __webpack_require__(4)();
		}


	/***/ }),
	/* 6 */
	/***/ (function(module, exports) {

		/**
		 * Copyright (c) 2013-present, Facebook, Inc.
		 *
		 * This source code is licensed under the MIT license found in the
		 * LICENSE file in the root directory of this source tree.
		 */

		'use strict';

		var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';

		module.exports = ReactPropTypesSecret;


	/***/ }),
	/* 7 */
	/***/ (function(module, exports) {

		module.exports = __WEBPACK_EXTERNAL_MODULE_7__;

	/***/ }),
	/* 8 */
	/***/ (function(module, exports) {

		module.exports = __WEBPACK_EXTERNAL_MODULE_8__;

	/***/ })
	/******/ ])
	});
	;

/***/ }),
/* 389 */,
/* 390 */
/***/ (function(module, exports, __webpack_require__) {

	// style-loader: Adds some css to the DOM by adding a <style> tag

	// load the styles
	var content = __webpack_require__(281);
	if(typeof content === 'string') content = [[module.id, content, '']];
	// add the styles to the DOM
	var update = __webpack_require__(9)(content, {});
	if(content.locals) module.exports = content.locals;
	// Hot Module Replacement
	if(false) {}

/***/ }),
/* 391 */,
/* 392 */
/***/ (function(module, exports, __webpack_require__) {

	// style-loader: Adds some css to the DOM by adding a <style> tag

	// load the styles
	var content = __webpack_require__(284);
	if(typeof content === 'string') content = [[module.id, content, '']];
	// add the styles to the DOM
	var update = __webpack_require__(9)(content, {});
	if(content.locals) module.exports = content.locals;
	// Hot Module Replacement
	if(false) {}

/***/ }),
/* 393 */
/***/ (function(module, exports, __webpack_require__) {

	// style-loader: Adds some css to the DOM by adding a <style> tag

	// load the styles
	var content = __webpack_require__(286);
	if(typeof content === 'string') content = [[module.id, content, '']];
	// add the styles to the DOM
	var update = __webpack_require__(9)(content, {});
	if(content.locals) module.exports = content.locals;
	// Hot Module Replacement
	if(false) {}

/***/ }),
/* 394 */
/***/ (function(module, exports, __webpack_require__) {

	// style-loader: Adds some css to the DOM by adding a <style> tag

	// load the styles
	var content = __webpack_require__(288);
	if(typeof content === 'string') content = [[module.id, content, '']];
	// add the styles to the DOM
	var update = __webpack_require__(9)(content, {});
	if(content.locals) module.exports = content.locals;
	// Hot Module Replacement
	if(false) {}

/***/ }),
/* 395 */
/***/ (function(module, exports, __webpack_require__) {

	/* WEBPACK VAR INJECTION */(function(module) {'use strict';

	Object.defineProperty(exports, "__esModule", {
	  value: true
	});

	var _ponyfill = __webpack_require__(396);

	var _ponyfill2 = _interopRequireDefault(_ponyfill);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	var root; /* global window */


	if (typeof self !== 'undefined') {
	  root = self;
	} else if (typeof window !== 'undefined') {
	  root = window;
	} else if (typeof (window) !== 'undefined') {
	  root = (window);
	} else if (true) {
	  root = module;
	} else {}

	var result = (0, _ponyfill2['default'])(root);
	exports['default'] = result;
	/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))

/***/ }),
/* 396 */
/***/ (function(module, exports) {

	'use strict';

	Object.defineProperty(exports, "__esModule", {
		value: true
	});
	exports['default'] = symbolObservablePonyfill;
	function symbolObservablePonyfill(root) {
		var result;
		var _Symbol = root.Symbol;

		if (typeof _Symbol === 'function') {
			if (_Symbol.observable) {
				result = _Symbol.observable;
			} else {
				result = _Symbol('observable');
				_Symbol.observable = result;
			}
		} else {
			result = '@@observable';
		}

		return result;
	};

/***/ }),
/* 397 */
/***/ (function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(module) {//     Underscore.js 1.9.1
	//     http://underscorejs.org
	//     (c) 2009-2018 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
	//     Underscore may be freely distributed under the MIT license.

	(function() {

	  // Baseline setup
	  // --------------

	  // Establish the root object, `window` (`self`) in the browser, `global`
	  // on the server, or `this` in some virtual machines. We use `self`
	  // instead of `window` for `WebWorker` support.
	  var root = typeof self == 'object' && self.self === self && self ||
	            typeof (window) == 'object' && (window).global === (window) && (window) ||
	            this ||
	            {};

	  // Save the previous value of the `_` variable.
	  var previousUnderscore = root._;

	  // Save bytes in the minified (but not gzipped) version:
	  var ArrayProto = Array.prototype, ObjProto = Object.prototype;
	  var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;

	  // Create quick reference variables for speed access to core prototypes.
	  var push = ArrayProto.push,
	      slice = ArrayProto.slice,
	      toString = ObjProto.toString,
	      hasOwnProperty = ObjProto.hasOwnProperty;

	  // All **ECMAScript 5** native function implementations that we hope to use
	  // are declared here.
	  var nativeIsArray = Array.isArray,
	      nativeKeys = Object.keys,
	      nativeCreate = Object.create;

	  // Naked function reference for surrogate-prototype-swapping.
	  var Ctor = function(){};

	  // Create a safe reference to the Underscore object for use below.
	  var _ = function(obj) {
	    if (obj instanceof _) return obj;
	    if (!(this instanceof _)) return new _(obj);
	    this._wrapped = obj;
	  };

	  // Export the Underscore object for **Node.js**, with
	  // backwards-compatibility for their old module API. If we're in
	  // the browser, add `_` as a global object.
	  // (`nodeType` is checked to ensure that `module`
	  // and `exports` are not HTML elements.)
	  if (typeof exports != 'undefined' && !exports.nodeType) {
	    if (typeof module != 'undefined' && !module.nodeType && module.exports) {
	      exports = module.exports = _;
	    }
	    exports._ = _;
	  } else {
	    root._ = _;
	  }

	  // Current version.
	  _.VERSION = '1.9.1';

	  // Internal function that returns an efficient (for current engines) version
	  // of the passed-in callback, to be repeatedly applied in other Underscore
	  // functions.
	  var optimizeCb = function(func, context, argCount) {
	    if (context === void 0) return func;
	    switch (argCount == null ? 3 : argCount) {
	      case 1: return function(value) {
	        return func.call(context, value);
	      };
	      // The 2-argument case is omitted because we’re not using it.
	      case 3: return function(value, index, collection) {
	        return func.call(context, value, index, collection);
	      };
	      case 4: return function(accumulator, value, index, collection) {
	        return func.call(context, accumulator, value, index, collection);
	      };
	    }
	    return function() {
	      return func.apply(context, arguments);
	    };
	  };

	  var builtinIteratee;

	  // An internal function to generate callbacks that can be applied to each
	  // element in a collection, returning the desired result — either `identity`,
	  // an arbitrary callback, a property matcher, or a property accessor.
	  var cb = function(value, context, argCount) {
	    if (_.iteratee !== builtinIteratee) return _.iteratee(value, context);
	    if (value == null) return _.identity;
	    if (_.isFunction(value)) return optimizeCb(value, context, argCount);
	    if (_.isObject(value) && !_.isArray(value)) return _.matcher(value);
	    return _.property(value);
	  };

	  // External wrapper for our callback generator. Users may customize
	  // `_.iteratee` if they want additional predicate/iteratee shorthand styles.
	  // This abstraction hides the internal-only argCount argument.
	  _.iteratee = builtinIteratee = function(value, context) {
	    return cb(value, context, Infinity);
	  };

	  // Some functions take a variable number of arguments, or a few expected
	  // arguments at the beginning and then a variable number of values to operate
	  // on. This helper accumulates all remaining arguments past the function’s
	  // argument length (or an explicit `startIndex`), into an array that becomes
	  // the last argument. Similar to ES6’s "rest parameter".
	  var restArguments = function(func, startIndex) {
	    startIndex = startIndex == null ? func.length - 1 : +startIndex;
	    return function() {
	      var length = Math.max(arguments.length - startIndex, 0),
	          rest = Array(length),
	          index = 0;
	      for (; index < length; index++) {
	        rest[index] = arguments[index + startIndex];
	      }
	      switch (startIndex) {
	        case 0: return func.call(this, rest);
	        case 1: return func.call(this, arguments[0], rest);
	        case 2: return func.call(this, arguments[0], arguments[1], rest);
	      }
	      var args = Array(startIndex + 1);
	      for (index = 0; index < startIndex; index++) {
	        args[index] = arguments[index];
	      }
	      args[startIndex] = rest;
	      return func.apply(this, args);
	    };
	  };

	  // An internal function for creating a new object that inherits from another.
	  var baseCreate = function(prototype) {
	    if (!_.isObject(prototype)) return {};
	    if (nativeCreate) return nativeCreate(prototype);
	    Ctor.prototype = prototype;
	    var result = new Ctor;
	    Ctor.prototype = null;
	    return result;
	  };

	  var shallowProperty = function(key) {
	    return function(obj) {
	      return obj == null ? void 0 : obj[key];
	    };
	  };

	  var has = function(obj, path) {
	    return obj != null && hasOwnProperty.call(obj, path);
	  }

	  var deepGet = function(obj, path) {
	    var length = path.length;
	    for (var i = 0; i < length; i++) {
	      if (obj == null) return void 0;
	      obj = obj[path[i]];
	    }
	    return length ? obj : void 0;
	  };

	  // Helper for collection methods to determine whether a collection
	  // should be iterated as an array or as an object.
	  // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength
	  // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094
	  var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;
	  var getLength = shallowProperty('length');
	  var isArrayLike = function(collection) {
	    var length = getLength(collection);
	    return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;
	  };

	  // Collection Functions
	  // --------------------

	  // The cornerstone, an `each` implementation, aka `forEach`.
	  // Handles raw objects in addition to array-likes. Treats all
	  // sparse array-likes as if they were dense.
	  _.each = _.forEach = function(obj, iteratee, context) {
	    iteratee = optimizeCb(iteratee, context);
	    var i, length;
	    if (isArrayLike(obj)) {
	      for (i = 0, length = obj.length; i < length; i++) {
	        iteratee(obj[i], i, obj);
	      }
	    } else {
	      var keys = _.keys(obj);
	      for (i = 0, length = keys.length; i < length; i++) {
	        iteratee(obj[keys[i]], keys[i], obj);
	      }
	    }
	    return obj;
	  };

	  // Return the results of applying the iteratee to each element.
	  _.map = _.collect = function(obj, iteratee, context) {
	    iteratee = cb(iteratee, context);
	    var keys = !isArrayLike(obj) && _.keys(obj),
	        length = (keys || obj).length,
	        results = Array(length);
	    for (var index = 0; index < length; index++) {
	      var currentKey = keys ? keys[index] : index;
	      results[index] = iteratee(obj[currentKey], currentKey, obj);
	    }
	    return results;
	  };

	  // Create a reducing function iterating left or right.
	  var createReduce = function(dir) {
	    // Wrap code that reassigns argument variables in a separate function than
	    // the one that accesses `arguments.length` to avoid a perf hit. (#1991)
	    var reducer = function(obj, iteratee, memo, initial) {
	      var keys = !isArrayLike(obj) && _.keys(obj),
	          length = (keys || obj).length,
	          index = dir > 0 ? 0 : length - 1;
	      if (!initial) {
	        memo = obj[keys ? keys[index] : index];
	        index += dir;
	      }
	      for (; index >= 0 && index < length; index += dir) {
	        var currentKey = keys ? keys[index] : index;
	        memo = iteratee(memo, obj[currentKey], currentKey, obj);
	      }
	      return memo;
	    };

	    return function(obj, iteratee, memo, context) {
	      var initial = arguments.length >= 3;
	      return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);
	    };
	  };

	  // **Reduce** builds up a single result from a list of values, aka `inject`,
	  // or `foldl`.
	  _.reduce = _.foldl = _.inject = createReduce(1);

	  // The right-associative version of reduce, also known as `foldr`.
	  _.reduceRight = _.foldr = createReduce(-1);

	  // Return the first value which passes a truth test. Aliased as `detect`.
	  _.find = _.detect = function(obj, predicate, context) {
	    var keyFinder = isArrayLike(obj) ? _.findIndex : _.findKey;
	    var key = keyFinder(obj, predicate, context);
	    if (key !== void 0 && key !== -1) return obj[key];
	  };

	  // Return all the elements that pass a truth test.
	  // Aliased as `select`.
	  _.filter = _.select = function(obj, predicate, context) {
	    var results = [];
	    predicate = cb(predicate, context);
	    _.each(obj, function(value, index, list) {
	      if (predicate(value, index, list)) results.push(value);
	    });
	    return results;
	  };

	  // Return all the elements for which a truth test fails.
	  _.reject = function(obj, predicate, context) {
	    return _.filter(obj, _.negate(cb(predicate)), context);
	  };

	  // Determine whether all of the elements match a truth test.
	  // Aliased as `all`.
	  _.every = _.all = function(obj, predicate, context) {
	    predicate = cb(predicate, context);
	    var keys = !isArrayLike(obj) && _.keys(obj),
	        length = (keys || obj).length;
	    for (var index = 0; index < length; index++) {
	      var currentKey = keys ? keys[index] : index;
	      if (!predicate(obj[currentKey], currentKey, obj)) return false;
	    }
	    return true;
	  };

	  // Determine if at least one element in the object matches a truth test.
	  // Aliased as `any`.
	  _.some = _.any = function(obj, predicate, context) {
	    predicate = cb(predicate, context);
	    var keys = !isArrayLike(obj) && _.keys(obj),
	        length = (keys || obj).length;
	    for (var index = 0; index < length; index++) {
	      var currentKey = keys ? keys[index] : index;
	      if (predicate(obj[currentKey], currentKey, obj)) return true;
	    }
	    return false;
	  };

	  // Determine if the array or object contains a given item (using `===`).
	  // Aliased as `includes` and `include`.
	  _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) {
	    if (!isArrayLike(obj)) obj = _.values(obj);
	    if (typeof fromIndex != 'number' || guard) fromIndex = 0;
	    return _.indexOf(obj, item, fromIndex) >= 0;
	  };

	  // Invoke a method (with arguments) on every item in a collection.
	  _.invoke = restArguments(function(obj, path, args) {
	    var contextPath, func;
	    if (_.isFunction(path)) {
	      func = path;
	    } else if (_.isArray(path)) {
	      contextPath = path.slice(0, -1);
	      path = path[path.length - 1];
	    }
	    return _.map(obj, function(context) {
	      var method = func;
	      if (!method) {
	        if (contextPath && contextPath.length) {
	          context = deepGet(context, contextPath);
	        }
	        if (context == null) return void 0;
	        method = context[path];
	      }
	      return method == null ? method : method.apply(context, args);
	    });
	  });

	  // Convenience version of a common use case of `map`: fetching a property.
	  _.pluck = function(obj, key) {
	    return _.map(obj, _.property(key));
	  };

	  // Convenience version of a common use case of `filter`: selecting only objects
	  // containing specific `key:value` pairs.
	  _.where = function(obj, attrs) {
	    return _.filter(obj, _.matcher(attrs));
	  };

	  // Convenience version of a common use case of `find`: getting the first object
	  // containing specific `key:value` pairs.
	  _.findWhere = function(obj, attrs) {
	    return _.find(obj, _.matcher(attrs));
	  };

	  // Return the maximum element (or element-based computation).
	  _.max = function(obj, iteratee, context) {
	    var result = -Infinity, lastComputed = -Infinity,
	        value, computed;
	    if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {
	      obj = isArrayLike(obj) ? obj : _.values(obj);
	      for (var i = 0, length = obj.length; i < length; i++) {
	        value = obj[i];
	        if (value != null && value > result) {
	          result = value;
	        }
	      }
	    } else {
	      iteratee = cb(iteratee, context);
	      _.each(obj, function(v, index, list) {
	        computed = iteratee(v, index, list);
	        if (computed > lastComputed || computed === -Infinity && result === -Infinity) {
	          result = v;
	          lastComputed = computed;
	        }
	      });
	    }
	    return result;
	  };

	  // Return the minimum element (or element-based computation).
	  _.min = function(obj, iteratee, context) {
	    var result = Infinity, lastComputed = Infinity,
	        value, computed;
	    if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {
	      obj = isArrayLike(obj) ? obj : _.values(obj);
	      for (var i = 0, length = obj.length; i < length; i++) {
	        value = obj[i];
	        if (value != null && value < result) {
	          result = value;
	        }
	      }
	    } else {
	      iteratee = cb(iteratee, context);
	      _.each(obj, function(v, index, list) {
	        computed = iteratee(v, index, list);
	        if (computed < lastComputed || computed === Infinity && result === Infinity) {
	          result = v;
	          lastComputed = computed;
	        }
	      });
	    }
	    return result;
	  };

	  // Shuffle a collection.
	  _.shuffle = function(obj) {
	    return _.sample(obj, Infinity);
	  };

	  // Sample **n** random values from a collection using the modern version of the
	  // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle).
	  // If **n** is not specified, returns a single random element.
	  // The internal `guard` argument allows it to work with `map`.
	  _.sample = function(obj, n, guard) {
	    if (n == null || guard) {
	      if (!isArrayLike(obj)) obj = _.values(obj);
	      return obj[_.random(obj.length - 1)];
	    }
	    var sample = isArrayLike(obj) ? _.clone(obj) : _.values(obj);
	    var length = getLength(sample);
	    n = Math.max(Math.min(n, length), 0);
	    var last = length - 1;
	    for (var index = 0; index < n; index++) {
	      var rand = _.random(index, last);
	      var temp = sample[index];
	      sample[index] = sample[rand];
	      sample[rand] = temp;
	    }
	    return sample.slice(0, n);
	  };

	  // Sort the object's values by a criterion produced by an iteratee.
	  _.sortBy = function(obj, iteratee, context) {
	    var index = 0;
	    iteratee = cb(iteratee, context);
	    return _.pluck(_.map(obj, function(value, key, list) {
	      return {
	        value: value,
	        index: index++,
	        criteria: iteratee(value, key, list)
	      };
	    }).sort(function(left, right) {
	      var a = left.criteria;
	      var b = right.criteria;
	      if (a !== b) {
	        if (a > b || a === void 0) return 1;
	        if (a < b || b === void 0) return -1;
	      }
	      return left.index - right.index;
	    }), 'value');
	  };

	  // An internal function used for aggregate "group by" operations.
	  var group = function(behavior, partition) {
	    return function(obj, iteratee, context) {
	      var result = partition ? [[], []] : {};
	      iteratee = cb(iteratee, context);
	      _.each(obj, function(value, index) {
	        var key = iteratee(value, index, obj);
	        behavior(result, value, key);
	      });
	      return result;
	    };
	  };

	  // Groups the object's values by a criterion. Pass either a string attribute
	  // to group by, or a function that returns the criterion.
	  _.groupBy = group(function(result, value, key) {
	    if (has(result, key)) result[key].push(value); else result[key] = [value];
	  });

	  // Indexes the object's values by a criterion, similar to `groupBy`, but for
	  // when you know that your index values will be unique.
	  _.indexBy = group(function(result, value, key) {
	    result[key] = value;
	  });

	  // Counts instances of an object that group by a certain criterion. Pass
	  // either a string attribute to count by, or a function that returns the
	  // criterion.
	  _.countBy = group(function(result, value, key) {
	    if (has(result, key)) result[key]++; else result[key] = 1;
	  });

	  var reStrSymbol = /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;
	  // Safely create a real, live array from anything iterable.
	  _.toArray = function(obj) {
	    if (!obj) return [];
	    if (_.isArray(obj)) return slice.call(obj);
	    if (_.isString(obj)) {
	      // Keep surrogate pair characters together
	      return obj.match(reStrSymbol);
	    }
	    if (isArrayLike(obj)) return _.map(obj, _.identity);
	    return _.values(obj);
	  };

	  // Return the number of elements in an object.
	  _.size = function(obj) {
	    if (obj == null) return 0;
	    return isArrayLike(obj) ? obj.length : _.keys(obj).length;
	  };

	  // Split a collection into two arrays: one whose elements all satisfy the given
	  // predicate, and one whose elements all do not satisfy the predicate.
	  _.partition = group(function(result, value, pass) {
	    result[pass ? 0 : 1].push(value);
	  }, true);

	  // Array Functions
	  // ---------------

	  // Get the first element of an array. Passing **n** will return the first N
	  // values in the array. Aliased as `head` and `take`. The **guard** check
	  // allows it to work with `_.map`.
	  _.first = _.head = _.take = function(array, n, guard) {
	    if (array == null || array.length < 1) return n == null ? void 0 : [];
	    if (n == null || guard) return array[0];
	    return _.initial(array, array.length - n);
	  };

	  // Returns everything but the last entry of the array. Especially useful on
	  // the arguments object. Passing **n** will return all the values in
	  // the array, excluding the last N.
	  _.initial = function(array, n, guard) {
	    return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));
	  };

	  // Get the last element of an array. Passing **n** will return the last N
	  // values in the array.
	  _.last = function(array, n, guard) {
	    if (array == null || array.length < 1) return n == null ? void 0 : [];
	    if (n == null || guard) return array[array.length - 1];
	    return _.rest(array, Math.max(0, array.length - n));
	  };

	  // Returns everything but the first entry of the array. Aliased as `tail` and `drop`.
	  // Especially useful on the arguments object. Passing an **n** will return
	  // the rest N values in the array.
	  _.rest = _.tail = _.drop = function(array, n, guard) {
	    return slice.call(array, n == null || guard ? 1 : n);
	  };

	  // Trim out all falsy values from an array.
	  _.compact = function(array) {
	    return _.filter(array, Boolean);
	  };

	  // Internal implementation of a recursive `flatten` function.
	  var flatten = function(input, shallow, strict, output) {
	    output = output || [];
	    var idx = output.length;
	    for (var i = 0, length = getLength(input); i < length; i++) {
	      var value = input[i];
	      if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) {
	        // Flatten current level of array or arguments object.
	        if (shallow) {
	          var j = 0, len = value.length;
	          while (j < len) output[idx++] = value[j++];
	        } else {
	          flatten(value, shallow, strict, output);
	          idx = output.length;
	        }
	      } else if (!strict) {
	        output[idx++] = value;
	      }
	    }
	    return output;
	  };

	  // Flatten out an array, either recursively (by default), or just one level.
	  _.flatten = function(array, shallow) {
	    return flatten(array, shallow, false);
	  };

	  // Return a version of the array that does not contain the specified value(s).
	  _.without = restArguments(function(array, otherArrays) {
	    return _.difference(array, otherArrays);
	  });

	  // Produce a duplicate-free version of the array. If the array has already
	  // been sorted, you have the option of using a faster algorithm.
	  // The faster algorithm will not work with an iteratee if the iteratee
	  // is not a one-to-one function, so providing an iteratee will disable
	  // the faster algorithm.
	  // Aliased as `unique`.
	  _.uniq = _.unique = function(array, isSorted, iteratee, context) {
	    if (!_.isBoolean(isSorted)) {
	      context = iteratee;
	      iteratee = isSorted;
	      isSorted = false;
	    }
	    if (iteratee != null) iteratee = cb(iteratee, context);
	    var result = [];
	    var seen = [];
	    for (var i = 0, length = getLength(array); i < length; i++) {
	      var value = array[i],
	          computed = iteratee ? iteratee(value, i, array) : value;
	      if (isSorted && !iteratee) {
	        if (!i || seen !== computed) result.push(value);
	        seen = computed;
	      } else if (iteratee) {
	        if (!_.contains(seen, computed)) {
	          seen.push(computed);
	          result.push(value);
	        }
	      } else if (!_.contains(result, value)) {
	        result.push(value);
	      }
	    }
	    return result;
	  };

	  // Produce an array that contains the union: each distinct element from all of
	  // the passed-in arrays.
	  _.union = restArguments(function(arrays) {
	    return _.uniq(flatten(arrays, true, true));
	  });

	  // Produce an array that contains every item shared between all the
	  // passed-in arrays.
	  _.intersection = function(array) {
	    var result = [];
	    var argsLength = arguments.length;
	    for (var i = 0, length = getLength(array); i < length; i++) {
	      var item = array[i];
	      if (_.contains(result, item)) continue;
	      var j;
	      for (j = 1; j < argsLength; j++) {
	        if (!_.contains(arguments[j], item)) break;
	      }
	      if (j === argsLength) result.push(item);
	    }
	    return result;
	  };

	  // Take the difference between one array and a number of other arrays.
	  // Only the elements present in just the first array will remain.
	  _.difference = restArguments(function(array, rest) {
	    rest = flatten(rest, true, true);
	    return _.filter(array, function(value){
	      return !_.contains(rest, value);
	    });
	  });

	  // Complement of _.zip. Unzip accepts an array of arrays and groups
	  // each array's elements on shared indices.
	  _.unzip = function(array) {
	    var length = array && _.max(array, getLength).length || 0;
	    var result = Array(length);

	    for (var index = 0; index < length; index++) {
	      result[index] = _.pluck(array, index);
	    }
	    return result;
	  };

	  // Zip together multiple lists into a single array -- elements that share
	  // an index go together.
	  _.zip = restArguments(_.unzip);

	  // Converts lists into objects. Pass either a single array of `[key, value]`
	  // pairs, or two parallel arrays of the same length -- one of keys, and one of
	  // the corresponding values. Passing by pairs is the reverse of _.pairs.
	  _.object = function(list, values) {
	    var result = {};
	    for (var i = 0, length = getLength(list); i < length; i++) {
	      if (values) {
	        result[list[i]] = values[i];
	      } else {
	        result[list[i][0]] = list[i][1];
	      }
	    }
	    return result;
	  };

	  // Generator function to create the findIndex and findLastIndex functions.
	  var createPredicateIndexFinder = function(dir) {
	    return function(array, predicate, context) {
	      predicate = cb(predicate, context);
	      var length = getLength(array);
	      var index = dir > 0 ? 0 : length - 1;
	      for (; index >= 0 && index < length; index += dir) {
	        if (predicate(array[index], index, array)) return index;
	      }
	      return -1;
	    };
	  };

	  // Returns the first index on an array-like that passes a predicate test.
	  _.findIndex = createPredicateIndexFinder(1);
	  _.findLastIndex = createPredicateIndexFinder(-1);

	  // Use a comparator function to figure out the smallest index at which
	  // an object should be inserted so as to maintain order. Uses binary search.
	  _.sortedIndex = function(array, obj, iteratee, context) {
	    iteratee = cb(iteratee, context, 1);
	    var value = iteratee(obj);
	    var low = 0, high = getLength(array);
	    while (low < high) {
	      var mid = Math.floor((low + high) / 2);
	      if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;
	    }
	    return low;
	  };

	  // Generator function to create the indexOf and lastIndexOf functions.
	  var createIndexFinder = function(dir, predicateFind, sortedIndex) {
	    return function(array, item, idx) {
	      var i = 0, length = getLength(array);
	      if (typeof idx == 'number') {
	        if (dir > 0) {
	          i = idx >= 0 ? idx : Math.max(idx + length, i);
	        } else {
	          length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;
	        }
	      } else if (sortedIndex && idx && length) {
	        idx = sortedIndex(array, item);
	        return array[idx] === item ? idx : -1;
	      }
	      if (item !== item) {
	        idx = predicateFind(slice.call(array, i, length), _.isNaN);
	        return idx >= 0 ? idx + i : -1;
	      }
	      for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {
	        if (array[idx] === item) return idx;
	      }
	      return -1;
	    };
	  };

	  // Return the position of the first occurrence of an item in an array,
	  // or -1 if the item is not included in the array.
	  // If the array is large and already in sort order, pass `true`
	  // for **isSorted** to use binary search.
	  _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex);
	  _.lastIndexOf = createIndexFinder(-1, _.findLastIndex);

	  // Generate an integer Array containing an arithmetic progression. A port of
	  // the native Python `range()` function. See
	  // [the Python documentation](http://docs.python.org/library/functions.html#range).
	  _.range = function(start, stop, step) {
	    if (stop == null) {
	      stop = start || 0;
	      start = 0;
	    }
	    if (!step) {
	      step = stop < start ? -1 : 1;
	    }

	    var length = Math.max(Math.ceil((stop - start) / step), 0);
	    var range = Array(length);

	    for (var idx = 0; idx < length; idx++, start += step) {
	      range[idx] = start;
	    }

	    return range;
	  };

	  // Chunk a single array into multiple arrays, each containing `count` or fewer
	  // items.
	  _.chunk = function(array, count) {
	    if (count == null || count < 1) return [];
	    var result = [];
	    var i = 0, length = array.length;
	    while (i < length) {
	      result.push(slice.call(array, i, i += count));
	    }
	    return result;
	  };

	  // Function (ahem) Functions
	  // ------------------

	  // Determines whether to execute a function as a constructor
	  // or a normal function with the provided arguments.
	  var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) {
	    if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);
	    var self = baseCreate(sourceFunc.prototype);
	    var result = sourceFunc.apply(self, args);
	    if (_.isObject(result)) return result;
	    return self;
	  };

	  // Create a function bound to a given object (assigning `this`, and arguments,
	  // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if
	  // available.
	  _.bind = restArguments(function(func, context, args) {
	    if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function');
	    var bound = restArguments(function(callArgs) {
	      return executeBound(func, bound, context, this, args.concat(callArgs));
	    });
	    return bound;
	  });

	  // Partially apply a function by creating a version that has had some of its
	  // arguments pre-filled, without changing its dynamic `this` context. _ acts
	  // as a placeholder by default, allowing any combination of arguments to be
	  // pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.
	  _.partial = restArguments(function(func, boundArgs) {
	    var placeholder = _.partial.placeholder;
	    var bound = function() {
	      var position = 0, length = boundArgs.length;
	      var args = Array(length);
	      for (var i = 0; i < length; i++) {
	        args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];
	      }
	      while (position < arguments.length) args.push(arguments[position++]);
	      return executeBound(func, bound, this, this, args);
	    };
	    return bound;
	  });

	  _.partial.placeholder = _;

	  // Bind a number of an object's methods to that object. Remaining arguments
	  // are the method names to be bound. Useful for ensuring that all callbacks
	  // defined on an object belong to it.
	  _.bindAll = restArguments(function(obj, keys) {
	    keys = flatten(keys, false, false);
	    var index = keys.length;
	    if (index < 1) throw new Error('bindAll must be passed function names');
	    while (index--) {
	      var key = keys[index];
	      obj[key] = _.bind(obj[key], obj);
	    }
	  });

	  // Memoize an expensive function by storing its results.
	  _.memoize = function(func, hasher) {
	    var memoize = function(key) {
	      var cache = memoize.cache;
	      var address = '' + (hasher ? hasher.apply(this, arguments) : key);
	      if (!has(cache, address)) cache[address] = func.apply(this, arguments);
	      return cache[address];
	    };
	    memoize.cache = {};
	    return memoize;
	  };

	  // Delays a function for the given number of milliseconds, and then calls
	  // it with the arguments supplied.
	  _.delay = restArguments(function(func, wait, args) {
	    return setTimeout(function() {
	      return func.apply(null, args);
	    }, wait);
	  });

	  // Defers a function, scheduling it to run after the current call stack has
	  // cleared.
	  _.defer = _.partial(_.delay, _, 1);

	  // Returns a function, that, when invoked, will only be triggered at most once
	  // during a given window of time. Normally, the throttled function will run
	  // as much as it can, without ever going more than once per `wait` duration;
	  // but if you'd like to disable the execution on the leading edge, pass
	  // `{leading: false}`. To disable execution on the trailing edge, ditto.
	  _.throttle = function(func, wait, options) {
	    var timeout, context, args, result;
	    var previous = 0;
	    if (!options) options = {};

	    var later = function() {
	      previous = options.leading === false ? 0 : _.now();
	      timeout = null;
	      result = func.apply(context, args);
	      if (!timeout) context = args = null;
	    };

	    var throttled = function() {
	      var now = _.now();
	      if (!previous && options.leading === false) previous = now;
	      var remaining = wait - (now - previous);
	      context = this;
	      args = arguments;
	      if (remaining <= 0 || remaining > wait) {
	        if (timeout) {
	          clearTimeout(timeout);
	          timeout = null;
	        }
	        previous = now;
	        result = func.apply(context, args);
	        if (!timeout) context = args = null;
	      } else if (!timeout && options.trailing !== false) {
	        timeout = setTimeout(later, remaining);
	      }
	      return result;
	    };

	    throttled.cancel = function() {
	      clearTimeout(timeout);
	      previous = 0;
	      timeout = context = args = null;
	    };

	    return throttled;
	  };

	  // Returns a function, that, as long as it continues to be invoked, will not
	  // be triggered. The function will be called after it stops being called for
	  // N milliseconds. If `immediate` is passed, trigger the function on the
	  // leading edge, instead of the trailing.
	  _.debounce = function(func, wait, immediate) {
	    var timeout, result;

	    var later = function(context, args) {
	      timeout = null;
	      if (args) result = func.apply(context, args);
	    };

	    var debounced = restArguments(function(args) {
	      if (timeout) clearTimeout(timeout);
	      if (immediate) {
	        var callNow = !timeout;
	        timeout = setTimeout(later, wait);
	        if (callNow) result = func.apply(this, args);
	      } else {
	        timeout = _.delay(later, wait, this, args);
	      }

	      return result;
	    });

	    debounced.cancel = function() {
	      clearTimeout(timeout);
	      timeout = null;
	    };

	    return debounced;
	  };

	  // Returns the first function passed as an argument to the second,
	  // allowing you to adjust arguments, run code before and after, and
	  // conditionally execute the original function.
	  _.wrap = function(func, wrapper) {
	    return _.partial(wrapper, func);
	  };

	  // Returns a negated version of the passed-in predicate.
	  _.negate = function(predicate) {
	    return function() {
	      return !predicate.apply(this, arguments);
	    };
	  };

	  // Returns a function that is the composition of a list of functions, each
	  // consuming the return value of the function that follows.
	  _.compose = function() {
	    var args = arguments;
	    var start = args.length - 1;
	    return function() {
	      var i = start;
	      var result = args[start].apply(this, arguments);
	      while (i--) result = args[i].call(this, result);
	      return result;
	    };
	  };

	  // Returns a function that will only be executed on and after the Nth call.
	  _.after = function(times, func) {
	    return function() {
	      if (--times < 1) {
	        return func.apply(this, arguments);
	      }
	    };
	  };

	  // Returns a function that will only be executed up to (but not including) the Nth call.
	  _.before = function(times, func) {
	    var memo;
	    return function() {
	      if (--times > 0) {
	        memo = func.apply(this, arguments);
	      }
	      if (times <= 1) func = null;
	      return memo;
	    };
	  };

	  // Returns a function that will be executed at most one time, no matter how
	  // often you call it. Useful for lazy initialization.
	  _.once = _.partial(_.before, 2);

	  _.restArguments = restArguments;

	  // Object Functions
	  // ----------------

	  // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.
	  var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');
	  var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',
	    'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];

	  var collectNonEnumProps = function(obj, keys) {
	    var nonEnumIdx = nonEnumerableProps.length;
	    var constructor = obj.constructor;
	    var proto = _.isFunction(constructor) && constructor.prototype || ObjProto;

	    // Constructor is a special case.
	    var prop = 'constructor';
	    if (has(obj, prop) && !_.contains(keys, prop)) keys.push(prop);

	    while (nonEnumIdx--) {
	      prop = nonEnumerableProps[nonEnumIdx];
	      if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) {
	        keys.push(prop);
	      }
	    }
	  };

	  // Retrieve the names of an object's own properties.
	  // Delegates to **ECMAScript 5**'s native `Object.keys`.
	  _.keys = function(obj) {
	    if (!_.isObject(obj)) return [];
	    if (nativeKeys) return nativeKeys(obj);
	    var keys = [];
	    for (var key in obj) if (has(obj, key)) keys.push(key);
	    // Ahem, IE < 9.
	    if (hasEnumBug) collectNonEnumProps(obj, keys);
	    return keys;
	  };

	  // Retrieve all the property names of an object.
	  _.allKeys = function(obj) {
	    if (!_.isObject(obj)) return [];
	    var keys = [];
	    for (var key in obj) keys.push(key);
	    // Ahem, IE < 9.
	    if (hasEnumBug) collectNonEnumProps(obj, keys);
	    return keys;
	  };

	  // Retrieve the values of an object's properties.
	  _.values = function(obj) {
	    var keys = _.keys(obj);
	    var length = keys.length;
	    var values = Array(length);
	    for (var i = 0; i < length; i++) {
	      values[i] = obj[keys[i]];
	    }
	    return values;
	  };

	  // Returns the results of applying the iteratee to each element of the object.
	  // In contrast to _.map it returns an object.
	  _.mapObject = function(obj, iteratee, context) {
	    iteratee = cb(iteratee, context);
	    var keys = _.keys(obj),
	        length = keys.length,
	        results = {};
	    for (var index = 0; index < length; index++) {
	      var currentKey = keys[index];
	      results[currentKey] = iteratee(obj[currentKey], currentKey, obj);
	    }
	    return results;
	  };

	  // Convert an object into a list of `[key, value]` pairs.
	  // The opposite of _.object.
	  _.pairs = function(obj) {
	    var keys = _.keys(obj);
	    var length = keys.length;
	    var pairs = Array(length);
	    for (var i = 0; i < length; i++) {
	      pairs[i] = [keys[i], obj[keys[i]]];
	    }
	    return pairs;
	  };

	  // Invert the keys and values of an object. The values must be serializable.
	  _.invert = function(obj) {
	    var result = {};
	    var keys = _.keys(obj);
	    for (var i = 0, length = keys.length; i < length; i++) {
	      result[obj[keys[i]]] = keys[i];
	    }
	    return result;
	  };

	  // Return a sorted list of the function names available on the object.
	  // Aliased as `methods`.
	  _.functions = _.methods = function(obj) {
	    var names = [];
	    for (var key in obj) {
	      if (_.isFunction(obj[key])) names.push(key);
	    }
	    return names.sort();
	  };

	  // An internal function for creating assigner functions.
	  var createAssigner = function(keysFunc, defaults) {
	    return function(obj) {
	      var length = arguments.length;
	      if (defaults) obj = Object(obj);
	      if (length < 2 || obj == null) return obj;
	      for (var index = 1; index < length; index++) {
	        var source = arguments[index],
	            keys = keysFunc(source),
	            l = keys.length;
	        for (var i = 0; i < l; i++) {
	          var key = keys[i];
	          if (!defaults || obj[key] === void 0) obj[key] = source[key];
	        }
	      }
	      return obj;
	    };
	  };

	  // Extend a given object with all the properties in passed-in object(s).
	  _.extend = createAssigner(_.allKeys);

	  // Assigns a given object with all the own properties in the passed-in object(s).
	  // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)
	  _.extendOwn = _.assign = createAssigner(_.keys);

	  // Returns the first key on an object that passes a predicate test.
	  _.findKey = function(obj, predicate, context) {
	    predicate = cb(predicate, context);
	    var keys = _.keys(obj), key;
	    for (var i = 0, length = keys.length; i < length; i++) {
	      key = keys[i];
	      if (predicate(obj[key], key, obj)) return key;
	    }
	  };

	  // Internal pick helper function to determine if `obj` has key `key`.
	  var keyInObj = function(value, key, obj) {
	    return key in obj;
	  };

	  // Return a copy of the object only containing the whitelisted properties.
	  _.pick = restArguments(function(obj, keys) {
	    var result = {}, iteratee = keys[0];
	    if (obj == null) return result;
	    if (_.isFunction(iteratee)) {
	      if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);
	      keys = _.allKeys(obj);
	    } else {
	      iteratee = keyInObj;
	      keys = flatten(keys, false, false);
	      obj = Object(obj);
	    }
	    for (var i = 0, length = keys.length; i < length; i++) {
	      var key = keys[i];
	      var value = obj[key];
	      if (iteratee(value, key, obj)) result[key] = value;
	    }
	    return result;
	  });

	  // Return a copy of the object without the blacklisted properties.
	  _.omit = restArguments(function(obj, keys) {
	    var iteratee = keys[0], context;
	    if (_.isFunction(iteratee)) {
	      iteratee = _.negate(iteratee);
	      if (keys.length > 1) context = keys[1];
	    } else {
	      keys = _.map(flatten(keys, false, false), String);
	      iteratee = function(value, key) {
	        return !_.contains(keys, key);
	      };
	    }
	    return _.pick(obj, iteratee, context);
	  });

	  // Fill in a given object with default properties.
	  _.defaults = createAssigner(_.allKeys, true);

	  // Creates an object that inherits from the given prototype object.
	  // If additional properties are provided then they will be added to the
	  // created object.
	  _.create = function(prototype, props) {
	    var result = baseCreate(prototype);
	    if (props) _.extendOwn(result, props);
	    return result;
	  };

	  // Create a (shallow-cloned) duplicate of an object.
	  _.clone = function(obj) {
	    if (!_.isObject(obj)) return obj;
	    return _.isArray(obj) ? obj.slice() : _.extend({}, obj);
	  };

	  // Invokes interceptor with the obj, and then returns obj.
	  // The primary purpose of this method is to "tap into" a method chain, in
	  // order to perform operations on intermediate results within the chain.
	  _.tap = function(obj, interceptor) {
	    interceptor(obj);
	    return obj;
	  };

	  // Returns whether an object has a given set of `key:value` pairs.
	  _.isMatch = function(object, attrs) {
	    var keys = _.keys(attrs), length = keys.length;
	    if (object == null) return !length;
	    var obj = Object(object);
	    for (var i = 0; i < length; i++) {
	      var key = keys[i];
	      if (attrs[key] !== obj[key] || !(key in obj)) return false;
	    }
	    return true;
	  };


	  // Internal recursive comparison function for `isEqual`.
	  var eq, deepEq;
	  eq = function(a, b, aStack, bStack) {
	    // Identical objects are equal. `0 === -0`, but they aren't identical.
	    // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).
	    if (a === b) return a !== 0 || 1 / a === 1 / b;
	    // `null` or `undefined` only equal to itself (strict comparison).
	    if (a == null || b == null) return false;
	    // `NaN`s are equivalent, but non-reflexive.
	    if (a !== a) return b !== b;
	    // Exhaust primitive checks
	    var type = typeof a;
	    if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;
	    return deepEq(a, b, aStack, bStack);
	  };

	  // Internal recursive comparison function for `isEqual`.
	  deepEq = function(a, b, aStack, bStack) {
	    // Unwrap any wrapped objects.
	    if (a instanceof _) a = a._wrapped;
	    if (b instanceof _) b = b._wrapped;
	    // Compare `[[Class]]` names.
	    var className = toString.call(a);
	    if (className !== toString.call(b)) return false;
	    switch (className) {
	      // Strings, numbers, regular expressions, dates, and booleans are compared by value.
	      case '[object RegExp]':
	      // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')
	      case '[object String]':
	        // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is
	        // equivalent to `new String("5")`.
	        return '' + a === '' + b;
	      case '[object Number]':
	        // `NaN`s are equivalent, but non-reflexive.
	        // Object(NaN) is equivalent to NaN.
	        if (+a !== +a) return +b !== +b;
	        // An `egal` comparison is performed for other numeric values.
	        return +a === 0 ? 1 / +a === 1 / b : +a === +b;
	      case '[object Date]':
	      case '[object Boolean]':
	        // Coerce dates and booleans to numeric primitive values. Dates are compared by their
	        // millisecond representations. Note that invalid dates with millisecond representations
	        // of `NaN` are not equivalent.
	        return +a === +b;
	      case '[object Symbol]':
	        return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);
	    }

	    var areArrays = className === '[object Array]';
	    if (!areArrays) {
	      if (typeof a != 'object' || typeof b != 'object') return false;

	      // Objects with different constructors are not equivalent, but `Object`s or `Array`s
	      // from different frames are.
	      var aCtor = a.constructor, bCtor = b.constructor;
	      if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor &&
	                               _.isFunction(bCtor) && bCtor instanceof bCtor)
	                          && ('constructor' in a && 'constructor' in b)) {
	        return false;
	      }
	    }
	    // Assume equality for cyclic structures. The algorithm for detecting cyclic
	    // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.

	    // Initializing stack of traversed objects.
	    // It's done here since we only need them for objects and arrays comparison.
	    aStack = aStack || [];
	    bStack = bStack || [];
	    var length = aStack.length;
	    while (length--) {
	      // Linear search. Performance is inversely proportional to the number of
	      // unique nested structures.
	      if (aStack[length] === a) return bStack[length] === b;
	    }

	    // Add the first object to the stack of traversed objects.
	    aStack.push(a);
	    bStack.push(b);

	    // Recursively compare objects and arrays.
	    if (areArrays) {
	      // Compare array lengths to determine if a deep comparison is necessary.
	      length = a.length;
	      if (length !== b.length) return false;
	      // Deep compare the contents, ignoring non-numeric properties.
	      while (length--) {
	        if (!eq(a[length], b[length], aStack, bStack)) return false;
	      }
	    } else {
	      // Deep compare objects.
	      var keys = _.keys(a), key;
	      length = keys.length;
	      // Ensure that both objects contain the same number of properties before comparing deep equality.
	      if (_.keys(b).length !== length) return false;
	      while (length--) {
	        // Deep compare each member
	        key = keys[length];
	        if (!(has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;
	      }
	    }
	    // Remove the first object from the stack of traversed objects.
	    aStack.pop();
	    bStack.pop();
	    return true;
	  };

	  // Perform a deep comparison to check if two objects are equal.
	  _.isEqual = function(a, b) {
	    return eq(a, b);
	  };

	  // Is a given array, string, or object empty?
	  // An "empty" object has no enumerable own-properties.
	  _.isEmpty = function(obj) {
	    if (obj == null) return true;
	    if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0;
	    return _.keys(obj).length === 0;
	  };

	  // Is a given value a DOM element?
	  _.isElement = function(obj) {
	    return !!(obj && obj.nodeType === 1);
	  };

	  // Is a given value an array?
	  // Delegates to ECMA5's native Array.isArray
	  _.isArray = nativeIsArray || function(obj) {
	    return toString.call(obj) === '[object Array]';
	  };

	  // Is a given variable an object?
	  _.isObject = function(obj) {
	    var type = typeof obj;
	    return type === 'function' || type === 'object' && !!obj;
	  };

	  // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError, isMap, isWeakMap, isSet, isWeakSet.
	  _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error', 'Symbol', 'Map', 'WeakMap', 'Set', 'WeakSet'], function(name) {
	    _['is' + name] = function(obj) {
	      return toString.call(obj) === '[object ' + name + ']';
	    };
	  });

	  // Define a fallback version of the method in browsers (ahem, IE < 9), where
	  // there isn't any inspectable "Arguments" type.
	  if (!_.isArguments(arguments)) {
	    _.isArguments = function(obj) {
	      return has(obj, 'callee');
	    };
	  }

	  // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8,
	  // IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).
	  var nodelist = root.document && root.document.childNodes;
	  if ( true && typeof Int8Array != 'object' && typeof nodelist != 'function') {
	    _.isFunction = function(obj) {
	      return typeof obj == 'function' || false;
	    };
	  }

	  // Is a given object a finite number?
	  _.isFinite = function(obj) {
	    return !_.isSymbol(obj) && isFinite(obj) && !isNaN(parseFloat(obj));
	  };

	  // Is the given value `NaN`?
	  _.isNaN = function(obj) {
	    return _.isNumber(obj) && isNaN(obj);
	  };

	  // Is a given value a boolean?
	  _.isBoolean = function(obj) {
	    return obj === true || obj === false || toString.call(obj) === '[object Boolean]';
	  };

	  // Is a given value equal to null?
	  _.isNull = function(obj) {
	    return obj === null;
	  };

	  // Is a given variable undefined?
	  _.isUndefined = function(obj) {
	    return obj === void 0;
	  };

	  // Shortcut function for checking if an object has a given property directly
	  // on itself (in other words, not on a prototype).
	  _.has = function(obj, path) {
	    if (!_.isArray(path)) {
	      return has(obj, path);
	    }
	    var length = path.length;
	    for (var i = 0; i < length; i++) {
	      var key = path[i];
	      if (obj == null || !hasOwnProperty.call(obj, key)) {
	        return false;
	      }
	      obj = obj[key];
	    }
	    return !!length;
	  };

	  // Utility Functions
	  // -----------------

	  // Run Underscore.js in *noConflict* mode, returning the `_` variable to its
	  // previous owner. Returns a reference to the Underscore object.
	  _.noConflict = function() {
	    root._ = previousUnderscore;
	    return this;
	  };

	  // Keep the identity function around for default iteratees.
	  _.identity = function(value) {
	    return value;
	  };

	  // Predicate-generating functions. Often useful outside of Underscore.
	  _.constant = function(value) {
	    return function() {
	      return value;
	    };
	  };

	  _.noop = function(){};

	  // Creates a function that, when passed an object, will traverse that object’s
	  // properties down the given `path`, specified as an array of keys or indexes.
	  _.property = function(path) {
	    if (!_.isArray(path)) {
	      return shallowProperty(path);
	    }
	    return function(obj) {
	      return deepGet(obj, path);
	    };
	  };

	  // Generates a function for a given object that returns a given property.
	  _.propertyOf = function(obj) {
	    if (obj == null) {
	      return function(){};
	    }
	    return function(path) {
	      return !_.isArray(path) ? obj[path] : deepGet(obj, path);
	    };
	  };

	  // Returns a predicate for checking whether an object has a given set of
	  // `key:value` pairs.
	  _.matcher = _.matches = function(attrs) {
	    attrs = _.extendOwn({}, attrs);
	    return function(obj) {
	      return _.isMatch(obj, attrs);
	    };
	  };

	  // Run a function **n** times.
	  _.times = function(n, iteratee, context) {
	    var accum = Array(Math.max(0, n));
	    iteratee = optimizeCb(iteratee, context, 1);
	    for (var i = 0; i < n; i++) accum[i] = iteratee(i);
	    return accum;
	  };

	  // Return a random integer between min and max (inclusive).
	  _.random = function(min, max) {
	    if (max == null) {
	      max = min;
	      min = 0;
	    }
	    return min + Math.floor(Math.random() * (max - min + 1));
	  };

	  // A (possibly faster) way to get the current timestamp as an integer.
	  _.now = Date.now || function() {
	    return new Date().getTime();
	  };

	  // List of HTML entities for escaping.
	  var escapeMap = {
	    '&': '&amp;',
	    '<': '&lt;',
	    '>': '&gt;',
	    '"': '&quot;',
	    "'": '&#x27;',
	    '`': '&#x60;'
	  };
	  var unescapeMap = _.invert(escapeMap);

	  // Functions for escaping and unescaping strings to/from HTML interpolation.
	  var createEscaper = function(map) {
	    var escaper = function(match) {
	      return map[match];
	    };
	    // Regexes for identifying a key that needs to be escaped.
	    var source = '(?:' + _.keys(map).join('|') + ')';
	    var testRegexp = RegExp(source);
	    var replaceRegexp = RegExp(source, 'g');
	    return function(string) {
	      string = string == null ? '' : '' + string;
	      return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;
	    };
	  };
	  _.escape = createEscaper(escapeMap);
	  _.unescape = createEscaper(unescapeMap);

	  // Traverses the children of `obj` along `path`. If a child is a function, it
	  // is invoked with its parent as context. Returns the value of the final
	  // child, or `fallback` if any child is undefined.
	  _.result = function(obj, path, fallback) {
	    if (!_.isArray(path)) path = [path];
	    var length = path.length;
	    if (!length) {
	      return _.isFunction(fallback) ? fallback.call(obj) : fallback;
	    }
	    for (var i = 0; i < length; i++) {
	      var prop = obj == null ? void 0 : obj[path[i]];
	      if (prop === void 0) {
	        prop = fallback;
	        i = length; // Ensure we don't continue iterating.
	      }
	      obj = _.isFunction(prop) ? prop.call(obj) : prop;
	    }
	    return obj;
	  };

	  // Generate a unique integer id (unique within the entire client session).
	  // Useful for temporary DOM ids.
	  var idCounter = 0;
	  _.uniqueId = function(prefix) {
	    var id = ++idCounter + '';
	    return prefix ? prefix + id : id;
	  };

	  // By default, Underscore uses ERB-style template delimiters, change the
	  // following template settings to use alternative delimiters.
	  _.templateSettings = {
	    evaluate: /<%([\s\S]+?)%>/g,
	    interpolate: /<%=([\s\S]+?)%>/g,
	    escape: /<%-([\s\S]+?)%>/g
	  };

	  // When customizing `templateSettings`, if you don't want to define an
	  // interpolation, evaluation or escaping regex, we need one that is
	  // guaranteed not to match.
	  var noMatch = /(.)^/;

	  // Certain characters need to be escaped so that they can be put into a
	  // string literal.
	  var escapes = {
	    "'": "'",
	    '\\': '\\',
	    '\r': 'r',
	    '\n': 'n',
	    '\u2028': 'u2028',
	    '\u2029': 'u2029'
	  };

	  var escapeRegExp = /\\|'|\r|\n|\u2028|\u2029/g;

	  var escapeChar = function(match) {
	    return '\\' + escapes[match];
	  };

	  // JavaScript micro-templating, similar to John Resig's implementation.
	  // Underscore templating handles arbitrary delimiters, preserves whitespace,
	  // and correctly escapes quotes within interpolated code.
	  // NB: `oldSettings` only exists for backwards compatibility.
	  _.template = function(text, settings, oldSettings) {
	    if (!settings && oldSettings) settings = oldSettings;
	    settings = _.defaults({}, settings, _.templateSettings);

	    // Combine delimiters into one regular expression via alternation.
	    var matcher = RegExp([
	      (settings.escape || noMatch).source,
	      (settings.interpolate || noMatch).source,
	      (settings.evaluate || noMatch).source
	    ].join('|') + '|$', 'g');

	    // Compile the template source, escaping string literals appropriately.
	    var index = 0;
	    var source = "__p+='";
	    text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {
	      source += text.slice(index, offset).replace(escapeRegExp, escapeChar);
	      index = offset + match.length;

	      if (escape) {
	        source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'";
	      } else if (interpolate) {
	        source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'";
	      } else if (evaluate) {
	        source += "';\n" + evaluate + "\n__p+='";
	      }

	      // Adobe VMs need the match returned to produce the correct offset.
	      return match;
	    });
	    source += "';\n";

	    // If a variable is not specified, place data values in local scope.
	    if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n';

	    source = "var __t,__p='',__j=Array.prototype.join," +
	      "print=function(){__p+=__j.call(arguments,'');};\n" +
	      source + 'return __p;\n';

	    var render;
	    try {
	      render = new Function(settings.variable || 'obj', '_', source);
	    } catch (e) {
	      e.source = source;
	      throw e;
	    }

	    var template = function(data) {
	      return render.call(this, data, _);
	    };

	    // Provide the compiled source as a convenience for precompilation.
	    var argument = settings.variable || 'obj';
	    template.source = 'function(' + argument + '){\n' + source + '}';

	    return template;
	  };

	  // Add a "chain" function. Start chaining a wrapped Underscore object.
	  _.chain = function(obj) {
	    var instance = _(obj);
	    instance._chain = true;
	    return instance;
	  };

	  // OOP
	  // ---------------
	  // If Underscore is called as a function, it returns a wrapped object that
	  // can be used OO-style. This wrapper holds altered versions of all the
	  // underscore functions. Wrapped objects may be chained.

	  // Helper function to continue chaining intermediate results.
	  var chainResult = function(instance, obj) {
	    return instance._chain ? _(obj).chain() : obj;
	  };

	  // Add your own custom functions to the Underscore object.
	  _.mixin = function(obj) {
	    _.each(_.functions(obj), function(name) {
	      var func = _[name] = obj[name];
	      _.prototype[name] = function() {
	        var args = [this._wrapped];
	        push.apply(args, arguments);
	        return chainResult(this, func.apply(_, args));
	      };
	    });
	    return _;
	  };

	  // Add all of the Underscore functions to the wrapper object.
	  _.mixin(_);

	  // Add all mutator Array functions to the wrapper.
	  _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {
	    var method = ArrayProto[name];
	    _.prototype[name] = function() {
	      var obj = this._wrapped;
	      method.apply(obj, arguments);
	      if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0];
	      return chainResult(this, obj);
	    };
	  });

	  // Add all accessor Array functions to the wrapper.
	  _.each(['concat', 'join', 'slice'], function(name) {
	    var method = ArrayProto[name];
	    _.prototype[name] = function() {
	      return chainResult(this, method.apply(this._wrapped, arguments));
	    };
	  });

	  // Extracts the result from a wrapped and chained object.
	  _.prototype.value = function() {
	    return this._wrapped;
	  };

	  // Provide unwrapping proxy for some methods used in engine operations
	  // such as arithmetic and JSON stringification.
	  _.prototype.valueOf = _.prototype.toJSON = _.prototype.value;

	  _.prototype.toString = function() {
	    return String(this._wrapped);
	  };

	  // AMD registration happens at the end for compatibility with AMD loaders
	  // that may not enforce next-turn semantics on modules. Even though general
	  // practice for AMD registration is to be anonymous, underscore registers
	  // as a named module because, like jQuery, it is a base library that is
	  // popular enough to be bundled in a third party lib, but not be part of
	  // an AMD load request. Those cases could generate an error when an
	  // anonymous define() is called outside of a loader request.
	  if (true) {
	    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() {
	      return _;
	    }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
	  }
	}());

	/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))

/***/ }),
/* 398 */
/***/ (function(module, exports, __webpack_require__) {

	var getNative = __webpack_require__(26),
	    root = __webpack_require__(19);

	/* Built-in method references that are verified to be native. */
	var DataView = getNative(root, 'DataView');

	module.exports = DataView;


/***/ }),
/* 399 */
[1797, 447, 448, 449, 450, 451],
/* 400 */
/***/ (function(module, exports, __webpack_require__) {

	var getNative = __webpack_require__(26),
	    root = __webpack_require__(19);

	/* Built-in method references that are verified to be native. */
	var Promise = getNative(root, 'Promise');

	module.exports = Promise;


/***/ }),
/* 401 */
[1808, 26, 19],
/* 402 */
[1812, 93, 471, 472],
/* 403 */
/***/ (function(module, exports, __webpack_require__) {

	var root = __webpack_require__(19);

	/** Built-in value references. */
	var Uint8Array = root.Uint8Array;

	module.exports = Uint8Array;


/***/ }),
/* 404 */
/***/ (function(module, exports, __webpack_require__) {

	var getNative = __webpack_require__(26),
	    root = __webpack_require__(19);

	/* Built-in method references that are verified to be native. */
	var WeakMap = getNative(root, 'WeakMap');

	module.exports = WeakMap;


/***/ }),
/* 405 */
/***/ (function(module, exports) {

	/**
	 * A specialized version of `baseAggregator` for arrays.
	 *
	 * @private
	 * @param {Array} [array] The array to iterate over.
	 * @param {Function} setter The function to set `accumulator` values.
	 * @param {Function} iteratee The iteratee to transform keys.
	 * @param {Object} accumulator The initial aggregated object.
	 * @returns {Function} Returns `accumulator`.
	 */
	function arrayAggregator(array, setter, iteratee, accumulator) {
	  var index = -1,
	      length = array == null ? 0 : array.length;

	  while (++index < length) {
	    var value = array[index];
	    setter(accumulator, value, iteratee(value), array);
	  }
	  return accumulator;
	}

	module.exports = arrayAggregator;


/***/ }),
/* 406 */
189,
/* 407 */
[1820, 429, 179, 20, 181, 174, 183],
/* 408 */
52,
/* 409 */
198,
/* 410 */
/***/ (function(module, exports) {

	/**
	 * A specialized version of `_.some` for arrays without support for iteratee
	 * shorthands.
	 *
	 * @private
	 * @param {Array} [array] The array to iterate over.
	 * @param {Function} predicate The function invoked per iteration.
	 * @returns {boolean} Returns `true` if any element passes the predicate check,
	 *  else `false`.
	 */
	function arraySome(array, predicate) {
	  var index = -1,
	      length = array == null ? 0 : array.length;

	  while (++index < length) {
	    if (predicate(array[index], index, array)) {
	      return true;
	    }
	  }
	  return false;
	}

	module.exports = arraySome;


/***/ }),
/* 411 */
/***/ (function(module, exports, __webpack_require__) {

	var baseEach = __webpack_require__(413);

	/**
	 * Aggregates elements of `collection` on `accumulator` with keys transformed
	 * by `iteratee` and values set by `setter`.
	 *
	 * @private
	 * @param {Array|Object} collection The collection to iterate over.
	 * @param {Function} setter The function to set `accumulator` values.
	 * @param {Function} iteratee The iteratee to transform keys.
	 * @param {Object} accumulator The initial aggregated object.
	 * @returns {Function} Returns `accumulator`.
	 */
	function baseAggregator(collection, setter, iteratee, accumulator) {
	  baseEach(collection, function(value, key, collection) {
	    setter(accumulator, value, iteratee(value), collection);
	  });
	  return accumulator;
	}

	module.exports = baseAggregator;


/***/ }),
/* 412 */
/***/ (function(module, exports, __webpack_require__) {

	var defineProperty = __webpack_require__(437);

	/**
	 * The base implementation of `assignValue` and `assignMergeValue` without
	 * value checks.
	 *
	 * @private
	 * @param {Object} object The object to modify.
	 * @param {string} key The key of the property to assign.
	 * @param {*} value The value to assign.
	 */
	function baseAssignValue(object, key, value) {
	  if (key == '__proto__' && defineProperty) {
	    defineProperty(object, key, {
	      'configurable': true,
	      'enumerable': true,
	      'value': value,
	      'writable': true
	    });
	  } else {
	    object[key] = value;
	  }
	}

	module.exports = baseAssignValue;


/***/ }),
/* 413 */
/***/ (function(module, exports, __webpack_require__) {

	var baseForOwn = __webpack_require__(415),
	    createBaseEach = __webpack_require__(435);

	/**
	 * The base implementation of `_.forEach` without support for iteratee shorthands.
	 *
	 * @private
	 * @param {Array|Object} collection The collection to iterate over.
	 * @param {Function} iteratee The function invoked per iteration.
	 * @returns {Array|Object} Returns `collection`.
	 */
	var baseEach = createBaseEach(baseForOwn);

	module.exports = baseEach;


/***/ }),
/* 414 */
/***/ (function(module, exports, __webpack_require__) {

	var createBaseFor = __webpack_require__(436);

	/**
	 * The base implementation of `baseForOwn` which iterates over `object`
	 * properties returned by `keysFunc` and invokes `iteratee` for each property.
	 * Iteratee functions may exit iteration early by explicitly returning `false`.
	 *
	 * @private
	 * @param {Object} object The object to iterate over.
	 * @param {Function} iteratee The function invoked per iteration.
	 * @param {Function} keysFunc The function to get the keys of `object`.
	 * @returns {Object} Returns `object`.
	 */
	var baseFor = createBaseFor();

	module.exports = baseFor;


/***/ }),
/* 415 */
/***/ (function(module, exports, __webpack_require__) {

	var baseFor = __webpack_require__(414),
	    keys = __webpack_require__(98);

	/**
	 * The base implementation of `_.forOwn` without support for iteratee shorthands.
	 *
	 * @private
	 * @param {Object} object The object to iterate over.
	 * @param {Function} iteratee The function invoked per iteration.
	 * @returns {Object} Returns `object`.
	 */
	function baseForOwn(object, iteratee) {
	  return object && baseFor(object, iteratee, keys);
	}

	module.exports = baseForOwn;


/***/ }),
/* 416 */
/***/ (function(module, exports, __webpack_require__) {

	var arrayPush = __webpack_require__(409),
	    isArray = __webpack_require__(20);

	/**
	 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
	 * `keysFunc` and `symbolsFunc` to get the enumerable property names and
	 * symbols of `object`.
	 *
	 * @private
	 * @param {Object} object The object to query.
	 * @param {Function} keysFunc The function to get the keys of `object`.
	 * @param {Function} symbolsFunc The function to get the symbols of `object`.
	 * @returns {Array} Returns the array of property names and symbols.
	 */
	function baseGetAllKeys(object, keysFunc, symbolsFunc) {
	  var result = keysFunc(object);
	  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
	}

	module.exports = baseGetAllKeys;


/***/ }),
/* 417 */
/***/ (function(module, exports) {

	/**
	 * The base implementation of `_.hasIn` without support for deep paths.
	 *
	 * @private
	 * @param {Object} [object] The object to query.
	 * @param {Array|string} key The key to check.
	 * @returns {boolean} Returns `true` if `key` exists, else `false`.
	 */
	function baseHasIn(object, key) {
	  return object != null && key in Object(object);
	}

	module.exports = baseHasIn;


/***/ }),
/* 418 */
[1835, 41, 42],
/* 419 */
/***/ (function(module, exports, __webpack_require__) {

	var Stack = __webpack_require__(168),
	    equalArrays = __webpack_require__(172),
	    equalByTag = __webpack_require__(438),
	    equalObjects = __webpack_require__(439),
	    getTag = __webpack_require__(444),
	    isArray = __webpack_require__(20),
	    isBuffer = __webpack_require__(181),
	    isTypedArray = __webpack_require__(183);

	/** Used to compose bitmasks for value comparisons. */
	var COMPARE_PARTIAL_FLAG = 1;

	/** `Object#toString` result references. */
	var argsTag = '[object Arguments]',
	    arrayTag = '[object Array]',
	    objectTag = '[object Object]';

	/** Used for built-in method references. */
	var objectProto = Object.prototype;

	/** Used to check objects for own properties. */
	var hasOwnProperty = objectProto.hasOwnProperty;

	/**
	 * A specialized version of `baseIsEqual` for arrays and objects which performs
	 * deep comparisons and tracks traversed objects enabling objects with circular
	 * references to be compared.
	 *
	 * @private
	 * @param {Object} object The object to compare.
	 * @param {Object} other The other object to compare.
	 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
	 * @param {Function} customizer The function to customize comparisons.
	 * @param {Function} equalFunc The function to determine equivalents of values.
	 * @param {Object} [stack] Tracks traversed `object` and `other` objects.
	 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
	 */
	function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
	  var objIsArr = isArray(object),
	      othIsArr = isArray(other),
	      objTag = objIsArr ? arrayTag : getTag(object),
	      othTag = othIsArr ? arrayTag : getTag(other);

	  objTag = objTag == argsTag ? objectTag : objTag;
	  othTag = othTag == argsTag ? objectTag : othTag;

	  var objIsObj = objTag == objectTag,
	      othIsObj = othTag == objectTag,
	      isSameTag = objTag == othTag;

	  if (isSameTag && isBuffer(object)) {
	    if (!isBuffer(other)) {
	      return false;
	    }
	    objIsArr = true;
	    objIsObj = false;
	  }
	  if (isSameTag && !objIsObj) {
	    stack || (stack = new Stack);
	    return (objIsArr || isTypedArray(object))
	      ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
	      : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
	  }
	  if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
	    var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
	        othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');

	    if (objIsWrapped || othIsWrapped) {
	      var objUnwrapped = objIsWrapped ? object.value() : object,
	          othUnwrapped = othIsWrapped ? other.value() : other;

	      stack || (stack = new Stack);
	      return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
	    }
	  }
	  if (!isSameTag) {
	    return false;
	  }
	  stack || (stack = new Stack);
	  return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
	}

	module.exports = baseIsEqualDeep;


/***/ }),
/* 420 */
/***/ (function(module, exports, __webpack_require__) {

	var Stack = __webpack_require__(168),
	    baseIsEqual = __webpack_require__(170);

	/** Used to compose bitmasks for value comparisons. */
	var COMPARE_PARTIAL_FLAG = 1,
	    COMPARE_UNORDERED_FLAG = 2;

	/**
	 * The base implementation of `_.isMatch` without support for iteratee shorthands.
	 *
	 * @private
	 * @param {Object} object The object to inspect.
	 * @param {Object} source The object of property values to match.
	 * @param {Array} matchData The property names, values, and compare flags to match.
	 * @param {Function} [customizer] The function to customize comparisons.
	 * @returns {boolean} Returns `true` if `object` is a match, else `false`.
	 */
	function baseIsMatch(object, source, matchData, customizer) {
	  var index = matchData.length,
	      length = index,
	      noCustomizer = !customizer;

	  if (object == null) {
	    return !length;
	  }
	  object = Object(object);
	  while (index--) {
	    var data = matchData[index];
	    if ((noCustomizer && data[2])
	          ? data[1] !== object[data[0]]
	          : !(data[0] in object)
	        ) {
	      return false;
	    }
	  }
	  while (++index < length) {
	    data = matchData[index];
	    var key = data[0],
	        objValue = object[key],
	        srcValue = data[1];

	    if (noCustomizer && data[2]) {
	      if (objValue === undefined && !(key in object)) {
	        return false;
	      }
	    } else {
	      var stack = new Stack;
	      if (customizer) {
	        var result = customizer(objValue, srcValue, key, object, source, stack);
	      }
	      if (!(result === undefined
	            ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)
	            : result
	          )) {
	        return false;
	      }
	    }
	  }
	  return true;
	}

	module.exports = baseIsMatch;


/***/ }),
/* 421 */
[1842, 182, 453, 96, 177],
/* 422 */
[1844, 41, 95, 42],
/* 423 */
/***/ (function(module, exports, __webpack_require__) {

	var baseMatches = __webpack_require__(425),
	    baseMatchesProperty = __webpack_require__(426),
	    identity = __webpack_require__(483),
	    isArray = __webpack_require__(20),
	    property = __webpack_require__(485);

	/**
	 * The base implementation of `_.iteratee`.
	 *
	 * @private
	 * @param {*} [value=_.identity] The value to convert to an iteratee.
	 * @returns {Function} Returns the iteratee.
	 */
	function baseIteratee(value) {
	  // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.
	  // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.
	  if (typeof value == 'function') {
	    return value;
	  }
	  if (value == null) {
	    return identity;
	  }
	  if (typeof value == 'object') {
	    return isArray(value)
	      ? baseMatchesProperty(value[0], value[1])
	      : baseMatches(value);
	  }
	  return property(value);
	}

	module.exports = baseIteratee;


/***/ }),
/* 424 */
/***/ (function(module, exports, __webpack_require__) {

	var isPrototype = __webpack_require__(454),
	    nativeKeys = __webpack_require__(467);

	/** Used for built-in method references. */
	var objectProto = Object.prototype;

	/** Used to check objects for own properties. */
	var hasOwnProperty = objectProto.hasOwnProperty;

	/**
	 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
	 *
	 * @private
	 * @param {Object} object The object to query.
	 * @returns {Array} Returns the array of property names.
	 */
	function baseKeys(object) {
	  if (!isPrototype(object)) {
	    return nativeKeys(object);
	  }
	  var result = [];
	  for (var key in Object(object)) {
	    if (hasOwnProperty.call(object, key) && key != 'constructor') {
	      result.push(key);
	    }
	  }
	  return result;
	}

	module.exports = baseKeys;


/***/ }),
/* 425 */
/***/ (function(module, exports, __webpack_require__) {

	var baseIsMatch = __webpack_require__(420),
	    getMatchData = __webpack_require__(441),
	    matchesStrictComparable = __webpack_require__(176);

	/**
	 * The base implementation of `_.matches` which doesn't clone `source`.
	 *
	 * @private
	 * @param {Object} source The object of property values to match.
	 * @returns {Function} Returns the new spec function.
	 */
	function baseMatches(source) {
	  var matchData = getMatchData(source);
	  if (matchData.length == 1 && matchData[0][2]) {
	    return matchesStrictComparable(matchData[0][0], matchData[0][1]);
	  }
	  return function(object) {
	    return object === source || baseIsMatch(object, source, matchData);
	  };
	}

	module.exports = baseMatches;


/***/ }),
/* 426 */
/***/ (function(module, exports, __webpack_require__) {

	var baseIsEqual = __webpack_require__(170),
	    get = __webpack_require__(480),
	    hasIn = __webpack_require__(482),
	    isKey = __webpack_require__(94),
	    isStrictComparable = __webpack_require__(175),
	    matchesStrictComparable = __webpack_require__(176),
	    toKey = __webpack_require__(65);

	/** Used to compose bitmasks for value comparisons. */
	var COMPARE_PARTIAL_FLAG = 1,
	    COMPARE_UNORDERED_FLAG = 2;

	/**
	 * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.
	 *
	 * @private
	 * @param {string} path The path of the property to get.
	 * @param {*} srcValue The value to match.
	 * @returns {Function} Returns the new spec function.
	 */
	function baseMatchesProperty(path, srcValue) {
	  if (isKey(path) && isStrictComparable(srcValue)) {
	    return matchesStrictComparable(toKey(path), srcValue);
	  }
	  return function(object) {
	    var objValue = get(object, path);
	    return (objValue === undefined && objValue === srcValue)
	      ? hasIn(object, path)
	      : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
	  };
	}

	module.exports = baseMatchesProperty;


/***/ }),
/* 427 */
/***/ (function(module, exports) {

	/**
	 * The base implementation of `_.property` without support for deep paths.
	 *
	 * @private
	 * @param {string} key The key of the property to get.
	 * @returns {Function} Returns the new accessor function.
	 */
	function baseProperty(key) {
	  return function(object) {
	    return object == null ? undefined : object[key];
	  };
	}

	module.exports = baseProperty;


/***/ }),
/* 428 */
/***/ (function(module, exports, __webpack_require__) {

	var baseGet = __webpack_require__(169);

	/**
	 * A specialized version of `baseProperty` which supports deep paths.
	 *
	 * @private
	 * @param {Array|string} path The path of the property to get.
	 * @returns {Function} Returns the new accessor function.
	 */
	function basePropertyDeep(path) {
	  return function(object) {
	    return baseGet(object, path);
	  };
	}

	module.exports = basePropertyDeep;


/***/ }),
/* 429 */
315,
/* 430 */
/***/ (function(module, exports, __webpack_require__) {

	var Symbol = __webpack_require__(61),
	    arrayMap = __webpack_require__(408),
	    isArray = __webpack_require__(20),
	    isSymbol = __webpack_require__(97);

	/** Used as references for various `Number` constants. */
	var INFINITY = 1 / 0;

	/** Used to convert symbols to primitives and strings. */
	var symbolProto = Symbol ? Symbol.prototype : undefined,
	    symbolToString = symbolProto ? symbolProto.toString : undefined;

	/**
	 * The base implementation of `_.toString` which doesn't convert nullish
	 * values to empty strings.
	 *
	 * @private
	 * @param {*} value The value to process.
	 * @returns {string} Returns the string.
	 */
	function baseToString(value) {
	  // Exit early for strings to avoid a performance hit in some environments.
	  if (typeof value == 'string') {
	    return value;
	  }
	  if (isArray(value)) {
	    // Recursively convert values (susceptible to call stack limits).
	    return arrayMap(value, baseToString) + '';
	  }
	  if (isSymbol(value)) {
	    return symbolToString ? symbolToString.call(value) : '';
	  }
	  var result = (value + '');
	  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
	}

	module.exports = baseToString;


/***/ }),
/* 431 */
72,
/* 432 */
73,
/* 433 */
[1855, 19],
/* 434 */
/***/ (function(module, exports, __webpack_require__) {

	var arrayAggregator = __webpack_require__(405),
	    baseAggregator = __webpack_require__(411),
	    baseIteratee = __webpack_require__(423),
	    isArray = __webpack_require__(20);

	/**
	 * Creates a function like `_.groupBy`.
	 *
	 * @private
	 * @param {Function} setter The function to set accumulator values.
	 * @param {Function} [initializer] The accumulator object initializer.
	 * @returns {Function} Returns the new aggregator function.
	 */
	function createAggregator(setter, initializer) {
	  return function(collection, iteratee) {
	    var func = isArray(collection) ? arrayAggregator : baseAggregator,
	        accumulator = initializer ? initializer() : {};

	    return func(collection, setter, baseIteratee(iteratee, 2), accumulator);
	  };
	}

	module.exports = createAggregator;


/***/ }),
/* 435 */
/***/ (function(module, exports, __webpack_require__) {

	var isArrayLike = __webpack_require__(180);

	/**
	 * Creates a `baseEach` or `baseEachRight` function.
	 *
	 * @private
	 * @param {Function} eachFunc The function to iterate over a collection.
	 * @param {boolean} [fromRight] Specify iterating from right to left.
	 * @returns {Function} Returns the new base function.
	 */
	function createBaseEach(eachFunc, fromRight) {
	  return function(collection, iteratee) {
	    if (collection == null) {
	      return collection;
	    }
	    if (!isArrayLike(collection)) {
	      return eachFunc(collection, iteratee);
	    }
	    var length = collection.length,
	        index = fromRight ? length : -1,
	        iterable = Object(collection);

	    while ((fromRight ? index-- : ++index < length)) {
	      if (iteratee(iterable[index], index, iterable) === false) {
	        break;
	      }
	    }
	    return collection;
	  };
	}

	module.exports = createBaseEach;


/***/ }),
/* 436 */
/***/ (function(module, exports) {

	/**
	 * Creates a base function for methods like `_.forIn` and `_.forOwn`.
	 *
	 * @private
	 * @param {boolean} [fromRight] Specify iterating from right to left.
	 * @returns {Function} Returns the new base function.
	 */
	function createBaseFor(fromRight) {
	  return function(object, iteratee, keysFunc) {
	    var index = -1,
	        iterable = Object(object),
	        props = keysFunc(object),
	        length = props.length;

	    while (length--) {
	      var key = props[fromRight ? length : ++index];
	      if (iteratee(iterable[key], key, iterable) === false) {
	        break;
	      }
	    }
	    return object;
	  };
	}

	module.exports = createBaseFor;


/***/ }),
/* 437 */
[1860, 26],
/* 438 */
/***/ (function(module, exports, __webpack_require__) {

	var Symbol = __webpack_require__(61),
	    Uint8Array = __webpack_require__(403),
	    eq = __webpack_require__(178),
	    equalArrays = __webpack_require__(172),
	    mapToArray = __webpack_require__(465),
	    setToArray = __webpack_require__(473);

	/** Used to compose bitmasks for value comparisons. */
	var COMPARE_PARTIAL_FLAG = 1,
	    COMPARE_UNORDERED_FLAG = 2;

	/** `Object#toString` result references. */
	var boolTag = '[object Boolean]',
	    dateTag = '[object Date]',
	    errorTag = '[object Error]',
	    mapTag = '[object Map]',
	    numberTag = '[object Number]',
	    regexpTag = '[object RegExp]',
	    setTag = '[object Set]',
	    stringTag = '[object String]',
	    symbolTag = '[object Symbol]';

	var arrayBufferTag = '[object ArrayBuffer]',
	    dataViewTag = '[object DataView]';

	/** Used to convert symbols to primitives and strings. */
	var symbolProto = Symbol ? Symbol.prototype : undefined,
	    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;

	/**
	 * A specialized version of `baseIsEqualDeep` for comparing objects of
	 * the same `toStringTag`.
	 *
	 * **Note:** This function only supports comparing values with tags of
	 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
	 *
	 * @private
	 * @param {Object} object The object to compare.
	 * @param {Object} other The other object to compare.
	 * @param {string} tag The `toStringTag` of the objects to compare.
	 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
	 * @param {Function} customizer The function to customize comparisons.
	 * @param {Function} equalFunc The function to determine equivalents of values.
	 * @param {Object} stack Tracks traversed `object` and `other` objects.
	 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
	 */
	function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
	  switch (tag) {
	    case dataViewTag:
	      if ((object.byteLength != other.byteLength) ||
	          (object.byteOffset != other.byteOffset)) {
	        return false;
	      }
	      object = object.buffer;
	      other = other.buffer;

	    case arrayBufferTag:
	      if ((object.byteLength != other.byteLength) ||
	          !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
	        return false;
	      }
	      return true;

	    case boolTag:
	    case dateTag:
	    case numberTag:
	      // Coerce booleans to `1` or `0` and dates to milliseconds.
	      // Invalid dates are coerced to `NaN`.
	      return eq(+object, +other);

	    case errorTag:
	      return object.name == other.name && object.message == other.message;

	    case regexpTag:
	    case stringTag:
	      // Coerce regexes to strings and treat strings, primitives and objects,
	      // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
	      // for more details.
	      return object == (other + '');

	    case mapTag:
	      var convert = mapToArray;

	    case setTag:
	      var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
	      convert || (convert = setToArray);

	      if (object.size != other.size && !isPartial) {
	        return false;
	      }
	      // Assume cyclic values are equal.
	      var stacked = stack.get(object);
	      if (stacked) {
	        return stacked == other;
	      }
	      bitmask |= COMPARE_UNORDERED_FLAG;

	      // Recursively compare objects (susceptible to call stack limits).
	      stack.set(object, other);
	      var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
	      stack['delete'](object);
	      return result;

	    case symbolTag:
	      if (symbolValueOf) {
	        return symbolValueOf.call(object) == symbolValueOf.call(other);
	      }
	  }
	  return false;
	}

	module.exports = equalByTag;


/***/ }),
/* 439 */
/***/ (function(module, exports, __webpack_require__) {

	var getAllKeys = __webpack_require__(440);

	/** Used to compose bitmasks for value comparisons. */
	var COMPARE_PARTIAL_FLAG = 1;

	/** Used for built-in method references. */
	var objectProto = Object.prototype;

	/** Used to check objects for own properties. */
	var hasOwnProperty = objectProto.hasOwnProperty;

	/**
	 * A specialized version of `baseIsEqualDeep` for objects with support for
	 * partial deep comparisons.
	 *
	 * @private
	 * @param {Object} object The object to compare.
	 * @param {Object} other The other object to compare.
	 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
	 * @param {Function} customizer The function to customize comparisons.
	 * @param {Function} equalFunc The function to determine equivalents of values.
	 * @param {Object} stack Tracks traversed `object` and `other` objects.
	 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
	 */
	function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
	  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
	      objProps = getAllKeys(object),
	      objLength = objProps.length,
	      othProps = getAllKeys(other),
	      othLength = othProps.length;

	  if (objLength != othLength && !isPartial) {
	    return false;
	  }
	  var index = objLength;
	  while (index--) {
	    var key = objProps[index];
	    if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
	      return false;
	    }
	  }
	  // Assume cyclic values are equal.
	  var stacked = stack.get(object);
	  if (stacked && stack.get(other)) {
	    return stacked == other;
	  }
	  var result = true;
	  stack.set(object, other);
	  stack.set(other, object);

	  var skipCtor = isPartial;
	  while (++index < objLength) {
	    key = objProps[index];
	    var objValue = object[key],
	        othValue = other[key];

	    if (customizer) {
	      var compared = isPartial
	        ? customizer(othValue, objValue, key, other, object, stack)
	        : customizer(objValue, othValue, key, object, other, stack);
	    }
	    // Recursively compare objects (susceptible to call stack limits).
	    if (!(compared === undefined
	          ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))
	          : compared
	        )) {
	      result = false;
	      break;
	    }
	    skipCtor || (skipCtor = key == 'constructor');
	  }
	  if (result && !skipCtor) {
	    var objCtor = object.constructor,
	        othCtor = other.constructor;

	    // Non `Object` object instances with different constructors are not equal.
	    if (objCtor != othCtor &&
	        ('constructor' in object && 'constructor' in other) &&
	        !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
	          typeof othCtor == 'function' && othCtor instanceof othCtor)) {
	      result = false;
	    }
	  }
	  stack['delete'](object);
	  stack['delete'](other);
	  return result;
	}

	module.exports = equalObjects;


/***/ }),
/* 440 */
/***/ (function(module, exports, __webpack_require__) {

	var baseGetAllKeys = __webpack_require__(416),
	    getSymbols = __webpack_require__(443),
	    keys = __webpack_require__(98);

	/**
	 * Creates an array of own enumerable property names and symbols of `object`.
	 *
	 * @private
	 * @param {Object} object The object to query.
	 * @returns {Array} Returns the array of property names and symbols.
	 */
	function getAllKeys(object) {
	  return baseGetAllKeys(object, keys, getSymbols);
	}

	module.exports = getAllKeys;


/***/ }),
/* 441 */
/***/ (function(module, exports, __webpack_require__) {

	var isStrictComparable = __webpack_require__(175),
	    keys = __webpack_require__(98);

	/**
	 * Gets the property names, values, and compare flags of `object`.
	 *
	 * @private
	 * @param {Object} object The object to query.
	 * @returns {Array} Returns the match data of `object`.
	 */
	function getMatchData(object) {
	  var result = keys(object),
	      length = result.length;

	  while (length--) {
	    var key = result[length],
	        value = object[key];

	    result[length] = [key, value, isStrictComparable(value)];
	  }
	  return result;
	}

	module.exports = getMatchData;


/***/ }),
/* 442 */
[1874, 61],
/* 443 */
/***/ (function(module, exports, __webpack_require__) {

	var arrayFilter = __webpack_require__(406),
	    stubArray = __webpack_require__(486);

	/** Used for built-in method references. */
	var objectProto = Object.prototype;

	/** Built-in value references. */
	var propertyIsEnumerable = objectProto.propertyIsEnumerable;

	/* Built-in method references for those with the same name as other `lodash` methods. */
	var nativeGetSymbols = Object.getOwnPropertySymbols;

	/**
	 * Creates an array of the own enumerable symbols of `object`.
	 *
	 * @private
	 * @param {Object} object The object to query.
	 * @returns {Array} Returns the array of symbols.
	 */
	var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
	  if (object == null) {
	    return [];
	  }
	  object = Object(object);
	  return arrayFilter(nativeGetSymbols(object), function(symbol) {
	    return propertyIsEnumerable.call(object, symbol);
	  });
	};

	module.exports = getSymbols;


/***/ }),
/* 444 */
/***/ (function(module, exports, __webpack_require__) {

	var DataView = __webpack_require__(398),
	    Map = __webpack_require__(92),
	    Promise = __webpack_require__(400),
	    Set = __webpack_require__(401),
	    WeakMap = __webpack_require__(404),
	    baseGetTag = __webpack_require__(41),
	    toSource = __webpack_require__(177);

	/** `Object#toString` result references. */
	var mapTag = '[object Map]',
	    objectTag = '[object Object]',
	    promiseTag = '[object Promise]',
	    setTag = '[object Set]',
	    weakMapTag = '[object WeakMap]';

	var dataViewTag = '[object DataView]';

	/** Used to detect maps, sets, and weakmaps. */
	var dataViewCtorString = toSource(DataView),
	    mapCtorString = toSource(Map),
	    promiseCtorString = toSource(Promise),
	    setCtorString = toSource(Set),
	    weakMapCtorString = toSource(WeakMap);

	/**
	 * Gets the `toStringTag` of `value`.
	 *
	 * @private
	 * @param {*} value The value to query.
	 * @returns {string} Returns the `toStringTag`.
	 */
	var getTag = baseGetTag;

	// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
	if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
	    (Map && getTag(new Map) != mapTag) ||
	    (Promise && getTag(Promise.resolve()) != promiseTag) ||
	    (Set && getTag(new Set) != setTag) ||
	    (WeakMap && getTag(new WeakMap) != weakMapTag)) {
	  getTag = function(value) {
	    var result = baseGetTag(value),
	        Ctor = result == objectTag ? value.constructor : undefined,
	        ctorString = Ctor ? toSource(Ctor) : '';

	    if (ctorString) {
	      switch (ctorString) {
	        case dataViewCtorString: return dataViewTag;
	        case mapCtorString: return mapTag;
	        case promiseCtorString: return promiseTag;
	        case setCtorString: return setTag;
	        case weakMapCtorString: return weakMapTag;
	      }
	    }
	    return result;
	  };
	}

	module.exports = getTag;


/***/ }),
/* 445 */
322,
/* 446 */
/***/ (function(module, exports, __webpack_require__) {

	var castPath = __webpack_require__(171),
	    isArguments = __webpack_require__(179),
	    isArray = __webpack_require__(20),
	    isIndex = __webpack_require__(174),
	    isLength = __webpack_require__(95),
	    toKey = __webpack_require__(65);

	/**
	 * Checks if `path` exists on `object`.
	 *
	 * @private
	 * @param {Object} object The object to query.
	 * @param {Array|string} path The path to check.
	 * @param {Function} hasFunc The function to check properties.
	 * @returns {boolean} Returns `true` if `path` exists, else `false`.
	 */
	function hasPath(object, path, hasFunc) {
	  path = castPath(path, object);

	  var index = -1,
	      length = path.length,
	      result = false;

	  while (++index < length) {
	    var key = toKey(path[index]);
	    if (!(result = object != null && hasFunc(object, key))) {
	      break;
	    }
	    object = object[key];
	  }
	  if (result || ++index != length) {
	    return result;
	  }
	  length = object == null ? 0 : object.length;
	  return !!length && isLength(length) && isIndex(key, length) &&
	    (isArray(object) || isArguments(object));
	}

	module.exports = hasPath;


/***/ }),
/* 447 */
[1878, 64],
/* 448 */
324,
/* 449 */
[1881, 64],
/* 450 */
[1884, 64],
/* 451 */
[1889, 64],
/* 452 */
329,
/* 453 */
[1891, 433],
/* 454 */
201,
/* 455 */
331,
/* 456 */
[1896, 62],
/* 457 */
[1898, 62],
/* 458 */
[1901, 62],
/* 459 */
[1904, 62],
/* 460 */
[1907, 399, 60, 92],
/* 461 */
[1911, 63],
/* 462 */
[1914, 63],
/* 463 */
[1917, 63],
/* 464 */
[1919, 63],
/* 465 */
/***/ (function(module, exports) {

	/**
	 * Converts `map` to its key-value pairs.
	 *
	 * @private
	 * @param {Object} map The map to convert.
	 * @returns {Array} Returns the key-value pairs.
	 */
	function mapToArray(map) {
	  var index = -1,
	      result = Array(map.size);

	  map.forEach(function(value, key) {
	    result[++index] = [key, value];
	  });
	  return result;
	}

	module.exports = mapToArray;


/***/ }),
/* 466 */
/***/ (function(module, exports, __webpack_require__) {

	var memoize = __webpack_require__(484);

	/** Used as the maximum memoize cache size. */
	var MAX_MEMOIZE_SIZE = 500;

	/**
	 * A specialized version of `_.memoize` which clears the memoized function's
	 * cache when it exceeds `MAX_MEMOIZE_SIZE`.
	 *
	 * @private
	 * @param {Function} func The function to have its output memoized.
	 * @returns {Function} Returns the new memoized function.
	 */
	function memoizeCapped(func) {
	  var result = memoize(func, function(key) {
	    if (cache.size === MAX_MEMOIZE_SIZE) {
	      cache.clear();
	    }
	    return key;
	  });

	  var cache = result.cache;
	  return result;
	}

	module.exports = memoizeCapped;


/***/ }),
/* 467 */
/***/ (function(module, exports, __webpack_require__) {

	var overArg = __webpack_require__(470);

	/* Built-in method references for those with the same name as other `lodash` methods. */
	var nativeKeys = overArg(Object.keys, Object);

	module.exports = nativeKeys;


/***/ }),
/* 468 */
[1929, 173],
/* 469 */
343,
/* 470 */
202,
/* 471 */
345,
/* 472 */
346,
/* 473 */
115,
/* 474 */
/***/ (function(module, exports, __webpack_require__) {

	var ListCache = __webpack_require__(60);

	/**
	 * Removes all key-value entries from the stack.
	 *
	 * @private
	 * @name clear
	 * @memberOf Stack
	 */
	function stackClear() {
	  this.__data__ = new ListCache;
	  this.size = 0;
	}

	module.exports = stackClear;


/***/ }),
/* 475 */
/***/ (function(module, exports) {

	/**
	 * Removes `key` and its value from the stack.
	 *
	 * @private
	 * @name delete
	 * @memberOf Stack
	 * @param {string} key The key of the value to remove.
	 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
	 */
	function stackDelete(key) {
	  var data = this.__data__,
	      result = data['delete'](key);

	  this.size = data.size;
	  return result;
	}

	module.exports = stackDelete;


/***/ }),
/* 476 */
/***/ (function(module, exports) {

	/**
	 * Gets the stack value for `key`.
	 *
	 * @private
	 * @name get
	 * @memberOf Stack
	 * @param {string} key The key of the value to get.
	 * @returns {*} Returns the entry value.
	 */
	function stackGet(key) {
	  return this.__data__.get(key);
	}

	module.exports = stackGet;


/***/ }),
/* 477 */
/***/ (function(module, exports) {

	/**
	 * Checks if a stack value for `key` exists.
	 *
	 * @private
	 * @name has
	 * @memberOf Stack
	 * @param {string} key The key of the entry to check.
	 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
	 */
	function stackHas(key) {
	  return this.__data__.has(key);
	}

	module.exports = stackHas;


/***/ }),
/* 478 */
/***/ (function(module, exports, __webpack_require__) {

	var ListCache = __webpack_require__(60),
	    Map = __webpack_require__(92),
	    MapCache = __webpack_require__(93);

	/** Used as the size to enable large array optimizations. */
	var LARGE_ARRAY_SIZE = 200;

	/**
	 * Sets the stack `key` to `value`.
	 *
	 * @private
	 * @name set
	 * @memberOf Stack
	 * @param {string} key The key of the value to set.
	 * @param {*} value The value to set.
	 * @returns {Object} Returns the stack cache instance.
	 */
	function stackSet(key, value) {
	  var data = this.__data__;
	  if (data instanceof ListCache) {
	    var pairs = data.__data__;
	    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
	      pairs.push([key, value]);
	      this.size = ++data.size;
	      return this;
	    }
	    data = this.__data__ = new MapCache(pairs);
	  }
	  data.set(key, value);
	  this.size = data.size;
	  return this;
	}

	module.exports = stackSet;


/***/ }),
/* 479 */
/***/ (function(module, exports, __webpack_require__) {

	var memoizeCapped = __webpack_require__(466);

	/** Used to match property names within property paths. */
	var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;

	/** Used to match backslashes in property paths. */
	var reEscapeChar = /\\(\\)?/g;

	/**
	 * Converts `string` to a property path array.
	 *
	 * @private
	 * @param {string} string The string to convert.
	 * @returns {Array} Returns the property path array.
	 */
	var stringToPath = memoizeCapped(function(string) {
	  var result = [];
	  if (string.charCodeAt(0) === 46 /* . */) {
	    result.push('');
	  }
	  string.replace(rePropName, function(match, number, quote, subString) {
	    result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));
	  });
	  return result;
	});

	module.exports = stringToPath;


/***/ }),
/* 480 */
/***/ (function(module, exports, __webpack_require__) {

	var baseGet = __webpack_require__(169);

	/**
	 * Gets the value at `path` of `object`. If the resolved value is
	 * `undefined`, the `defaultValue` is returned in its place.
	 *
	 * @static
	 * @memberOf _
	 * @since 3.7.0
	 * @category Object
	 * @param {Object} object The object to query.
	 * @param {Array|string} path The path of the property to get.
	 * @param {*} [defaultValue] The value returned for `undefined` resolved values.
	 * @returns {*} Returns the resolved value.
	 * @example
	 *
	 * var object = { 'a': [{ 'b': { 'c': 3 } }] };
	 *
	 * _.get(object, 'a[0].b.c');
	 * // => 3
	 *
	 * _.get(object, ['a', '0', 'b', 'c']);
	 * // => 3
	 *
	 * _.get(object, 'a.b.c', 'default');
	 * // => 'default'
	 */
	function get(object, path, defaultValue) {
	  var result = object == null ? undefined : baseGet(object, path);
	  return result === undefined ? defaultValue : result;
	}

	module.exports = get;


/***/ }),
/* 481 */
/***/ (function(module, exports, __webpack_require__) {

	var baseAssignValue = __webpack_require__(412),
	    createAggregator = __webpack_require__(434);

	/** Used for built-in method references. */
	var objectProto = Object.prototype;

	/** Used to check objects for own properties. */
	var hasOwnProperty = objectProto.hasOwnProperty;

	/**
	 * Creates an object composed of keys generated from the results of running
	 * each element of `collection` thru `iteratee`. The order of grouped values
	 * is determined by the order they occur in `collection`. The corresponding
	 * value of each key is an array of elements responsible for generating the
	 * key. The iteratee is invoked with one argument: (value).
	 *
	 * @static
	 * @memberOf _
	 * @since 0.1.0
	 * @category Collection
	 * @param {Array|Object} collection The collection to iterate over.
	 * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
	 * @returns {Object} Returns the composed aggregate object.
	 * @example
	 *
	 * _.groupBy([6.1, 4.2, 6.3], Math.floor);
	 * // => { '4': [4.2], '6': [6.1, 6.3] }
	 *
	 * // The `_.property` iteratee shorthand.
	 * _.groupBy(['one', 'two', 'three'], 'length');
	 * // => { '3': ['one', 'two'], '5': ['three'] }
	 */
	var groupBy = createAggregator(function(result, value, key) {
	  if (hasOwnProperty.call(result, key)) {
	    result[key].push(value);
	  } else {
	    baseAssignValue(result, key, [value]);
	  }
	});

	module.exports = groupBy;


/***/ }),
/* 482 */
/***/ (function(module, exports, __webpack_require__) {

	var baseHasIn = __webpack_require__(417),
	    hasPath = __webpack_require__(446);

	/**
	 * Checks if `path` is a direct or inherited property of `object`.
	 *
	 * @static
	 * @memberOf _
	 * @since 4.0.0
	 * @category Object
	 * @param {Object} object The object to query.
	 * @param {Array|string} path The path to check.
	 * @returns {boolean} Returns `true` if `path` exists, else `false`.
	 * @example
	 *
	 * var object = _.create({ 'a': _.create({ 'b': 2 }) });
	 *
	 * _.hasIn(object, 'a');
	 * // => true
	 *
	 * _.hasIn(object, 'a.b');
	 * // => true
	 *
	 * _.hasIn(object, ['a', 'b']);
	 * // => true
	 *
	 * _.hasIn(object, 'b');
	 * // => false
	 */
	function hasIn(object, path) {
	  return object != null && hasPath(object, path, baseHasIn);
	}

	module.exports = hasIn;


/***/ }),
/* 483 */
75,
/* 484 */
[1956, 93],
/* 485 */
/***/ (function(module, exports, __webpack_require__) {

	var baseProperty = __webpack_require__(427),
	    basePropertyDeep = __webpack_require__(428),
	    isKey = __webpack_require__(94),
	    toKey = __webpack_require__(65);

	/**
	 * Creates a function that returns the value at `path` of a given object.
	 *
	 * @static
	 * @memberOf _
	 * @since 2.4.0
	 * @category Util
	 * @param {Array|string} path The path of the property to get.
	 * @returns {Function} Returns the new accessor function.
	 * @example
	 *
	 * var objects = [
	 *   { 'a': { 'b': 2 } },
	 *   { 'a': { 'b': 1 } }
	 * ];
	 *
	 * _.map(objects, _.property('a.b'));
	 * // => [2, 1]
	 *
	 * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');
	 * // => [1, 2]
	 */
	function property(path) {
	  return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);
	}

	module.exports = property;


/***/ }),
/* 486 */
/***/ (function(module, exports) {

	/**
	 * This method returns a new empty array.
	 *
	 * @static
	 * @memberOf _
	 * @since 4.13.0
	 * @category Util
	 * @returns {Array} Returns the new empty array.
	 * @example
	 *
	 * var arrays = _.times(2, _.stubArray);
	 *
	 * console.log(arrays);
	 * // => [[], []]
	 *
	 * console.log(arrays[0] === arrays[1]);
	 * // => false
	 */
	function stubArray() {
	  return [];
	}

	module.exports = stubArray;


/***/ }),
/* 487 */
353,
/* 488 */
/***/ (function(module, exports, __webpack_require__) {

	var baseToString = __webpack_require__(430);

	/**
	 * Converts `value` to a string. An empty string is returned for `null`
	 * and `undefined` values. The sign of `-0` is preserved.
	 *
	 * @static
	 * @memberOf _
	 * @since 4.0.0
	 * @category Lang
	 * @param {*} value The value to convert.
	 * @returns {string} Returns the converted string.
	 * @example
	 *
	 * _.toString(null);
	 * // => ''
	 *
	 * _.toString(-0);
	 * // => '-0'
	 *
	 * _.toString([1, 2, 3]);
	 * // => '1,2,3'
	 */
	function toString(value) {
	  return value == null ? '' : baseToString(value);
	}

	module.exports = toString;


/***/ }),
/* 489 */,
/* 490 */,
/* 491 */,
/* 492 */,
/* 493 */,
/* 494 */,
/* 495 */,
/* 496 */,
/* 497 */,
/* 498 */,
/* 499 */,
/* 500 */,
/* 501 */,
/* 502 */,
/* 503 */,
/* 504 */,
/* 505 */,
/* 506 */,
/* 507 */,
/* 508 */,
/* 509 */,
/* 510 */,
/* 511 */,
/* 512 */,
/* 513 */,
/* 514 */,
/* 515 */,
/* 516 */,
/* 517 */,
/* 518 */,
/* 519 */,
/* 520 */,
/* 521 */,
/* 522 */,
/* 523 */,
/* 524 */,
/* 525 */,
/* 526 */,
/* 527 */,
/* 528 */,
/* 529 */,
/* 530 */,
/* 531 */,
/* 532 */,
/* 533 */,
/* 534 */,
/* 535 */,
/* 536 */,
/* 537 */,
/* 538 */,
/* 539 */,
/* 540 */,
/* 541 */,
/* 542 */,
/* 543 */,
/* 544 */,
/* 545 */,
/* 546 */,
/* 547 */,
/* 548 */,
/* 549 */,
/* 550 */,
/* 551 */,
/* 552 */,
/* 553 */,
/* 554 */,
/* 555 */,
/* 556 */,
/* 557 */,
/* 558 */,
/* 559 */,
/* 560 */,
/* 561 */,
/* 562 */,
/* 563 */,
/* 564 */,
/* 565 */,
/* 566 */,
/* 567 */,
/* 568 */,
/* 569 */,
/* 570 */,
/* 571 */,
/* 572 */,
/* 573 */,
/* 574 */,
/* 575 */,
/* 576 */,
/* 577 */,
/* 578 */,
/* 579 */,
/* 580 */,
/* 581 */,
/* 582 */,
/* 583 */,
/* 584 */,
/* 585 */,
/* 586 */,
/* 587 */,
/* 588 */,
/* 589 */,
/* 590 */,
/* 591 */,
/* 592 */,
/* 593 */,
/* 594 */,
/* 595 */,
/* 596 */,
/* 597 */,
/* 598 */,
/* 599 */,
/* 600 */,
/* 601 */,
/* 602 */,
/* 603 */,
/* 604 */,
/* 605 */,
/* 606 */,
/* 607 */,
/* 608 */,
/* 609 */,
/* 610 */,
/* 611 */,
/* 612 */,
/* 613 */,
/* 614 */,
/* 615 */,
/* 616 */,
/* 617 */,
/* 618 */,
/* 619 */,
/* 620 */,
/* 621 */,
/* 622 */,
/* 623 */,
/* 624 */,
/* 625 */,
/* 626 */,
/* 627 */,
/* 628 */,
/* 629 */,
/* 630 */,
/* 631 */,
/* 632 */,
/* 633 */,
/* 634 */,
/* 635 */,
/* 636 */,
/* 637 */,
/* 638 */,
/* 639 */,
/* 640 */,
/* 641 */,
/* 642 */,
/* 643 */,
/* 644 */,
/* 645 */,
/* 646 */,
/* 647 */,
/* 648 */,
/* 649 */,
/* 650 */,
/* 651 */,
/* 652 */,
/* 653 */,
/* 654 */,
/* 655 */,
/* 656 */,
/* 657 */,
/* 658 */,
/* 659 */,
/* 660 */,
/* 661 */,
/* 662 */,
/* 663 */,
/* 664 */,
/* 665 */,
/* 666 */,
/* 667 */,
/* 668 */,
/* 669 */,
/* 670 */,
/* 671 */,
/* 672 */,
/* 673 */,
/* 674 */,
/* 675 */,
/* 676 */,
/* 677 */,
/* 678 */,
/* 679 */,
/* 680 */,
/* 681 */,
/* 682 */,
/* 683 */,
/* 684 */,
/* 685 */,
/* 686 */,
/* 687 */,
/* 688 */,
/* 689 */,
/* 690 */,
/* 691 */,
/* 692 */,
/* 693 */,
/* 694 */,
/* 695 */,
/* 696 */,
/* 697 */,
/* 698 */,
/* 699 */,
/* 700 */,
/* 701 */,
/* 702 */,
/* 703 */,
/* 704 */,
/* 705 */,
/* 706 */,
/* 707 */,
/* 708 */,
/* 709 */,
/* 710 */,
/* 711 */,
/* 712 */,
/* 713 */,
/* 714 */,
/* 715 */,
/* 716 */,
/* 717 */,
/* 718 */,
/* 719 */,
/* 720 */,
/* 721 */,
/* 722 */,
/* 723 */,
/* 724 */,
/* 725 */,
/* 726 */,
/* 727 */,
/* 728 */,
/* 729 */,
/* 730 */,
/* 731 */,
/* 732 */,
/* 733 */,
/* 734 */,
/* 735 */,
/* 736 */,
/* 737 */,
/* 738 */,
/* 739 */,
/* 740 */,
/* 741 */,
/* 742 */,
/* 743 */,
/* 744 */,
/* 745 */,
/* 746 */,
/* 747 */,
/* 748 */,
/* 749 */,
/* 750 */,
/* 751 */,
/* 752 */,
/* 753 */,
/* 754 */,
/* 755 */,
/* 756 */,
/* 757 */,
/* 758 */,
/* 759 */,
/* 760 */,
/* 761 */,
/* 762 */,
/* 763 */,
/* 764 */,
/* 765 */,
/* 766 */,
/* 767 */,
/* 768 */,
/* 769 */,
/* 770 */,
/* 771 */,
/* 772 */,
/* 773 */,
/* 774 */,
/* 775 */,
/* 776 */,
/* 777 */,
/* 778 */,
/* 779 */,
/* 780 */,
/* 781 */,
/* 782 */,
/* 783 */,
/* 784 */,
/* 785 */,
/* 786 */,
/* 787 */,
/* 788 */,
/* 789 */,
/* 790 */,
/* 791 */,
/* 792 */,
/* 793 */,
/* 794 */,
/* 795 */,
/* 796 */,
/* 797 */,
/* 798 */,
/* 799 */,
/* 800 */,
/* 801 */,
/* 802 */,
/* 803 */,
/* 804 */,
/* 805 */,
/* 806 */,
/* 807 */,
/* 808 */,
/* 809 */,
/* 810 */,
/* 811 */,
/* 812 */,
/* 813 */,
/* 814 */,
/* 815 */,
/* 816 */,
/* 817 */,
/* 818 */,
/* 819 */,
/* 820 */,
/* 821 */,
/* 822 */,
/* 823 */,
/* 824 */,
/* 825 */,
/* 826 */,
/* 827 */,
/* 828 */,
/* 829 */,
/* 830 */,
/* 831 */,
/* 832 */,
/* 833 */,
/* 834 */,
/* 835 */,
/* 836 */,
/* 837 */,
/* 838 */,
/* 839 */,
/* 840 */,
/* 841 */,
/* 842 */,
/* 843 */,
/* 844 */,
/* 845 */,
/* 846 */,
/* 847 */,
/* 848 */,
/* 849 */,
/* 850 */,
/* 851 */,
/* 852 */,
/* 853 */,
/* 854 */,
/* 855 */,
/* 856 */,
/* 857 */,
/* 858 */,
/* 859 */,
/* 860 */,
/* 861 */,
/* 862 */,
/* 863 */,
/* 864 */,
/* 865 */,
/* 866 */,
/* 867 */,
/* 868 */,
/* 869 */,
/* 870 */,
/* 871 */,
/* 872 */,
/* 873 */,
/* 874 */,
/* 875 */,
/* 876 */,
/* 877 */,
/* 878 */,
/* 879 */,
/* 880 */,
/* 881 */,
/* 882 */,
/* 883 */,
/* 884 */,
/* 885 */,
/* 886 */,
/* 887 */,
/* 888 */,
/* 889 */,
/* 890 */,
/* 891 */,
/* 892 */,
/* 893 */,
/* 894 */,
/* 895 */,
/* 896 */,
/* 897 */,
/* 898 */,
/* 899 */,
/* 900 */,
/* 901 */,
/* 902 */,
/* 903 */,
/* 904 */,
/* 905 */,
/* 906 */,
/* 907 */,
/* 908 */,
/* 909 */,
/* 910 */,
/* 911 */,
/* 912 */,
/* 913 */,
/* 914 */,
/* 915 */,
/* 916 */,
/* 917 */,
/* 918 */,
/* 919 */,
/* 920 */,
/* 921 */,
/* 922 */,
/* 923 */,
/* 924 */,
/* 925 */,
/* 926 */,
/* 927 */,
/* 928 */,
/* 929 */,
/* 930 */,
/* 931 */,
/* 932 */,
/* 933 */,
/* 934 */,
/* 935 */,
/* 936 */,
/* 937 */,
/* 938 */,
/* 939 */,
/* 940 */,
/* 941 */,
/* 942 */,
/* 943 */,
/* 944 */,
/* 945 */,
/* 946 */,
/* 947 */,
/* 948 */,
/* 949 */,
/* 950 */,
/* 951 */,
/* 952 */,
/* 953 */,
/* 954 */,
/* 955 */,
/* 956 */,
/* 957 */,
/* 958 */,
/* 959 */,
/* 960 */,
/* 961 */,
/* 962 */,
/* 963 */,
/* 964 */,
/* 965 */,
/* 966 */,
/* 967 */,
/* 968 */,
/* 969 */,
/* 970 */,
/* 971 */,
/* 972 */,
/* 973 */,
/* 974 */,
/* 975 */,
/* 976 */,
/* 977 */,
/* 978 */,
/* 979 */,
/* 980 */,
/* 981 */,
/* 982 */,
/* 983 */,
/* 984 */,
/* 985 */,
/* 986 */,
/* 987 */,
/* 988 */,
/* 989 */,
/* 990 */,
/* 991 */,
/* 992 */,
/* 993 */,
/* 994 */,
/* 995 */,
/* 996 */,
/* 997 */,
/* 998 */,
/* 999 */,
/* 1000 */,
/* 1001 */,
/* 1002 */,
/* 1003 */,
/* 1004 */,
/* 1005 */,
/* 1006 */,
/* 1007 */,
/* 1008 */,
/* 1009 */,
/* 1010 */,
/* 1011 */,
/* 1012 */,
/* 1013 */,
/* 1014 */,
/* 1015 */,
/* 1016 */,
/* 1017 */,
/* 1018 */,
/* 1019 */,
/* 1020 */,
/* 1021 */,
/* 1022 */,
/* 1023 */,
/* 1024 */,
/* 1025 */,
/* 1026 */,
/* 1027 */,
/* 1028 */,
/* 1029 */,
/* 1030 */,
/* 1031 */,
/* 1032 */,
/* 1033 */,
/* 1034 */,
/* 1035 */,
/* 1036 */,
/* 1037 */,
/* 1038 */,
/* 1039 */,
/* 1040 */,
/* 1041 */,
/* 1042 */,
/* 1043 */,
/* 1044 */,
/* 1045 */,
/* 1046 */,
/* 1047 */,
/* 1048 */,
/* 1049 */,
/* 1050 */,
/* 1051 */,
/* 1052 */,
/* 1053 */,
/* 1054 */,
/* 1055 */,
/* 1056 */,
/* 1057 */,
/* 1058 */,
/* 1059 */,
/* 1060 */,
/* 1061 */,
/* 1062 */,
/* 1063 */,
/* 1064 */,
/* 1065 */,
/* 1066 */,
/* 1067 */,
/* 1068 */,
/* 1069 */,
/* 1070 */,
/* 1071 */,
/* 1072 */,
/* 1073 */,
/* 1074 */,
/* 1075 */,
/* 1076 */,
/* 1077 */,
/* 1078 */,
/* 1079 */,
/* 1080 */,
/* 1081 */,
/* 1082 */,
/* 1083 */,
/* 1084 */,
/* 1085 */,
/* 1086 */,
/* 1087 */,
/* 1088 */,
/* 1089 */,
/* 1090 */,
/* 1091 */,
/* 1092 */,
/* 1093 */,
/* 1094 */,
/* 1095 */,
/* 1096 */,
/* 1097 */,
/* 1098 */,
/* 1099 */,
/* 1100 */,
/* 1101 */,
/* 1102 */,
/* 1103 */,
/* 1104 */,
/* 1105 */,
/* 1106 */,
/* 1107 */,
/* 1108 */,
/* 1109 */,
/* 1110 */,
/* 1111 */,
/* 1112 */,
/* 1113 */,
/* 1114 */,
/* 1115 */,
/* 1116 */,
/* 1117 */,
/* 1118 */,
/* 1119 */,
/* 1120 */,
/* 1121 */,
/* 1122 */,
/* 1123 */,
/* 1124 */,
/* 1125 */,
/* 1126 */,
/* 1127 */,
/* 1128 */,
/* 1129 */,
/* 1130 */,
/* 1131 */,
/* 1132 */,
/* 1133 */,
/* 1134 */,
/* 1135 */,
/* 1136 */,
/* 1137 */,
/* 1138 */,
/* 1139 */,
/* 1140 */,
/* 1141 */,
/* 1142 */,
/* 1143 */,
/* 1144 */,
/* 1145 */,
/* 1146 */,
/* 1147 */,
/* 1148 */,
/* 1149 */,
/* 1150 */,
/* 1151 */,
/* 1152 */,
/* 1153 */,
/* 1154 */,
/* 1155 */,
/* 1156 */,
/* 1157 */,
/* 1158 */,
/* 1159 */,
/* 1160 */,
/* 1161 */,
/* 1162 */,
/* 1163 */,
/* 1164 */,
/* 1165 */,
/* 1166 */,
/* 1167 */,
/* 1168 */,
/* 1169 */,
/* 1170 */,
/* 1171 */,
/* 1172 */,
/* 1173 */,
/* 1174 */,
/* 1175 */,
/* 1176 */,
/* 1177 */,
/* 1178 */,
/* 1179 */,
/* 1180 */,
/* 1181 */,
/* 1182 */,
/* 1183 */,
/* 1184 */,
/* 1185 */,
/* 1186 */,
/* 1187 */,
/* 1188 */,
/* 1189 */,
/* 1190 */,
/* 1191 */,
/* 1192 */,
/* 1193 */,
/* 1194 */,
/* 1195 */,
/* 1196 */,
/* 1197 */,
/* 1198 */,
/* 1199 */,
/* 1200 */,
/* 1201 */,
/* 1202 */,
/* 1203 */,
/* 1204 */,
/* 1205 */,
/* 1206 */,
/* 1207 */,
/* 1208 */,
/* 1209 */,
/* 1210 */,
/* 1211 */,
/* 1212 */,
/* 1213 */,
/* 1214 */,
/* 1215 */,
/* 1216 */,
/* 1217 */,
/* 1218 */,
/* 1219 */,
/* 1220 */,
/* 1221 */,
/* 1222 */,
/* 1223 */,
/* 1224 */,
/* 1225 */,
/* 1226 */,
/* 1227 */,
/* 1228 */,
/* 1229 */,
/* 1230 */,
/* 1231 */,
/* 1232 */,
/* 1233 */,
/* 1234 */,
/* 1235 */,
/* 1236 */,
/* 1237 */,
/* 1238 */,
/* 1239 */,
/* 1240 */,
/* 1241 */,
/* 1242 */,
/* 1243 */,
/* 1244 */,
/* 1245 */,
/* 1246 */,
/* 1247 */,
/* 1248 */,
/* 1249 */,
/* 1250 */,
/* 1251 */,
/* 1252 */,
/* 1253 */,
/* 1254 */,
/* 1255 */,
/* 1256 */,
/* 1257 */,
/* 1258 */,
/* 1259 */,
/* 1260 */,
/* 1261 */,
/* 1262 */,
/* 1263 */,
/* 1264 */,
/* 1265 */,
/* 1266 */,
/* 1267 */,
/* 1268 */,
/* 1269 */,
/* 1270 */,
/* 1271 */,
/* 1272 */,
/* 1273 */,
/* 1274 */,
/* 1275 */,
/* 1276 */,
/* 1277 */,
/* 1278 */,
/* 1279 */,
/* 1280 */,
/* 1281 */,
/* 1282 */,
/* 1283 */,
/* 1284 */,
/* 1285 */,
/* 1286 */,
/* 1287 */,
/* 1288 */,
/* 1289 */,
/* 1290 */,
/* 1291 */,
/* 1292 */,
/* 1293 */,
/* 1294 */,
/* 1295 */,
/* 1296 */,
/* 1297 */,
/* 1298 */,
/* 1299 */,
/* 1300 */,
/* 1301 */,
/* 1302 */,
/* 1303 */,
/* 1304 */,
/* 1305 */,
/* 1306 */,
/* 1307 */,
/* 1308 */,
/* 1309 */,
/* 1310 */,
/* 1311 */,
/* 1312 */,
/* 1313 */,
/* 1314 */,
/* 1315 */,
/* 1316 */,
/* 1317 */,
/* 1318 */,
/* 1319 */,
/* 1320 */,
/* 1321 */,
/* 1322 */,
/* 1323 */,
/* 1324 */,
/* 1325 */,
/* 1326 */,
/* 1327 */,
/* 1328 */,
/* 1329 */,
/* 1330 */,
/* 1331 */,
/* 1332 */,
/* 1333 */,
/* 1334 */,
/* 1335 */,
/* 1336 */,
/* 1337 */,
/* 1338 */,
/* 1339 */,
/* 1340 */,
/* 1341 */,
/* 1342 */,
/* 1343 */,
/* 1344 */,
/* 1345 */,
/* 1346 */,
/* 1347 */,
/* 1348 */,
/* 1349 */,
/* 1350 */,
/* 1351 */,
/* 1352 */,
/* 1353 */,
/* 1354 */,
/* 1355 */,
/* 1356 */,
/* 1357 */,
/* 1358 */,
/* 1359 */,
/* 1360 */,
/* 1361 */,
/* 1362 */,
/* 1363 */,
/* 1364 */,
/* 1365 */,
/* 1366 */,
/* 1367 */,
/* 1368 */,
/* 1369 */,
/* 1370 */,
/* 1371 */,
/* 1372 */,
/* 1373 */,
/* 1374 */,
/* 1375 */,
/* 1376 */,
/* 1377 */,
/* 1378 */,
/* 1379 */,
/* 1380 */,
/* 1381 */,
/* 1382 */,
/* 1383 */,
/* 1384 */,
/* 1385 */,
/* 1386 */,
/* 1387 */,
/* 1388 */,
/* 1389 */,
/* 1390 */,
/* 1391 */,
/* 1392 */,
/* 1393 */,
/* 1394 */,
/* 1395 */,
/* 1396 */,
/* 1397 */,
/* 1398 */,
/* 1399 */,
/* 1400 */,
/* 1401 */,
/* 1402 */,
/* 1403 */,
/* 1404 */,
/* 1405 */,
/* 1406 */,
/* 1407 */,
/* 1408 */,
/* 1409 */,
/* 1410 */,
/* 1411 */,
/* 1412 */,
/* 1413 */,
/* 1414 */,
/* 1415 */,
/* 1416 */,
/* 1417 */,
/* 1418 */,
/* 1419 */,
/* 1420 */,
/* 1421 */,
/* 1422 */,
/* 1423 */,
/* 1424 */,
/* 1425 */,
/* 1426 */,
/* 1427 */,
/* 1428 */,
/* 1429 */,
/* 1430 */,
/* 1431 */,
/* 1432 */,
/* 1433 */,
/* 1434 */,
/* 1435 */,
/* 1436 */,
/* 1437 */,
/* 1438 */,
/* 1439 */,
/* 1440 */,
/* 1441 */,
/* 1442 */,
/* 1443 */,
/* 1444 */,
/* 1445 */,
/* 1446 */,
/* 1447 */,
/* 1448 */,
/* 1449 */,
/* 1450 */,
/* 1451 */,
/* 1452 */,
/* 1453 */,
/* 1454 */,
/* 1455 */,
/* 1456 */,
/* 1457 */,
/* 1458 */,
/* 1459 */,
/* 1460 */,
/* 1461 */,
/* 1462 */,
/* 1463 */,
/* 1464 */,
/* 1465 */,
/* 1466 */,
/* 1467 */,
/* 1468 */,
/* 1469 */,
/* 1470 */,
/* 1471 */,
/* 1472 */,
/* 1473 */,
/* 1474 */,
/* 1475 */,
/* 1476 */,
/* 1477 */,
/* 1478 */,
/* 1479 */,
/* 1480 */,
/* 1481 */,
/* 1482 */,
/* 1483 */,
/* 1484 */,
/* 1485 */,
/* 1486 */,
/* 1487 */,
/* 1488 */,
/* 1489 */,
/* 1490 */,
/* 1491 */,
/* 1492 */,
/* 1493 */,
/* 1494 */,
/* 1495 */,
/* 1496 */,
/* 1497 */,
/* 1498 */,
/* 1499 */,
/* 1500 */,
/* 1501 */,
/* 1502 */,
/* 1503 */,
/* 1504 */,
/* 1505 */,
/* 1506 */,
/* 1507 */,
/* 1508 */,
/* 1509 */,
/* 1510 */,
/* 1511 */,
/* 1512 */,
/* 1513 */,
/* 1514 */,
/* 1515 */,
/* 1516 */,
/* 1517 */,
/* 1518 */,
/* 1519 */,
/* 1520 */,
/* 1521 */,
/* 1522 */,
/* 1523 */,
/* 1524 */,
/* 1525 */,
/* 1526 */,
/* 1527 */,
/* 1528 */,
/* 1529 */,
/* 1530 */,
/* 1531 */,
/* 1532 */,
/* 1533 */,
/* 1534 */,
/* 1535 */,
/* 1536 */,
/* 1537 */,
/* 1538 */,
/* 1539 */,
/* 1540 */,
/* 1541 */,
/* 1542 */,
/* 1543 */,
/* 1544 */,
/* 1545 */,
/* 1546 */,
/* 1547 */,
/* 1548 */,
/* 1549 */,
/* 1550 */,
/* 1551 */,
/* 1552 */,
/* 1553 */,
/* 1554 */,
/* 1555 */,
/* 1556 */,
/* 1557 */,
/* 1558 */,
/* 1559 */,
/* 1560 */,
/* 1561 */,
/* 1562 */,
/* 1563 */,
/* 1564 */,
/* 1565 */,
/* 1566 */,
/* 1567 */,
/* 1568 */,
/* 1569 */,
/* 1570 */,
/* 1571 */,
/* 1572 */,
/* 1573 */,
/* 1574 */,
/* 1575 */,
/* 1576 */,
/* 1577 */,
/* 1578 */,
/* 1579 */,
/* 1580 */,
/* 1581 */,
/* 1582 */,
/* 1583 */,
/* 1584 */,
/* 1585 */,
/* 1586 */,
/* 1587 */,
/* 1588 */,
/* 1589 */,
/* 1590 */,
/* 1591 */,
/* 1592 */,
/* 1593 */,
/* 1594 */,
/* 1595 */,
/* 1596 */,
/* 1597 */,
/* 1598 */,
/* 1599 */,
/* 1600 */,
/* 1601 */,
/* 1602 */,
/* 1603 */,
/* 1604 */,
/* 1605 */,
/* 1606 */,
/* 1607 */,
/* 1608 */,
/* 1609 */,
/* 1610 */,
/* 1611 */,
/* 1612 */,
/* 1613 */,
/* 1614 */,
/* 1615 */,
/* 1616 */,
/* 1617 */,
/* 1618 */,
/* 1619 */,
/* 1620 */,
/* 1621 */,
/* 1622 */,
/* 1623 */,
/* 1624 */,
/* 1625 */,
/* 1626 */,
/* 1627 */,
/* 1628 */,
/* 1629 */,
/* 1630 */,
/* 1631 */,
/* 1632 */,
/* 1633 */,
/* 1634 */,
/* 1635 */,
/* 1636 */,
/* 1637 */,
/* 1638 */,
/* 1639 */,
/* 1640 */,
/* 1641 */,
/* 1642 */,
/* 1643 */,
/* 1644 */,
/* 1645 */,
/* 1646 */,
/* 1647 */,
/* 1648 */,
/* 1649 */,
/* 1650 */,
/* 1651 */,
/* 1652 */,
/* 1653 */,
/* 1654 */,
/* 1655 */,
/* 1656 */,
/* 1657 */,
/* 1658 */,
/* 1659 */,
/* 1660 */,
/* 1661 */,
/* 1662 */,
/* 1663 */,
/* 1664 */,
/* 1665 */,
/* 1666 */,
/* 1667 */,
/* 1668 */,
/* 1669 */,
/* 1670 */,
/* 1671 */,
/* 1672 */,
/* 1673 */,
/* 1674 */,
/* 1675 */,
/* 1676 */,
/* 1677 */,
/* 1678 */,
/* 1679 */,
/* 1680 */,
/* 1681 */,
/* 1682 */,
/* 1683 */,
/* 1684 */,
/* 1685 */,
/* 1686 */,
/* 1687 */,
/* 1688 */,
/* 1689 */,
/* 1690 */,
/* 1691 */,
/* 1692 */,
/* 1693 */,
/* 1694 */,
/* 1695 */,
/* 1696 */,
/* 1697 */,
/* 1698 */,
/* 1699 */,
/* 1700 */,
/* 1701 */,
/* 1702 */,
/* 1703 */,
/* 1704 */,
/* 1705 */,
/* 1706 */,
/* 1707 */,
/* 1708 */,
/* 1709 */,
/* 1710 */,
/* 1711 */,
/* 1712 */,
/* 1713 */,
/* 1714 */,
/* 1715 */,
/* 1716 */,
/* 1717 */,
/* 1718 */,
/* 1719 */,
/* 1720 */,
/* 1721 */,
/* 1722 */,
/* 1723 */,
/* 1724 */,
/* 1725 */,
/* 1726 */,
/* 1727 */,
/* 1728 */,
/* 1729 */,
/* 1730 */,
/* 1731 */,
/* 1732 */,
/* 1733 */,
/* 1734 */,
/* 1735 */,
/* 1736 */,
/* 1737 */,
/* 1738 */,
/* 1739 */,
/* 1740 */,
/* 1741 */,
/* 1742 */,
/* 1743 */,
/* 1744 */,
/* 1745 */,
/* 1746 */,
/* 1747 */,
/* 1748 */,
/* 1749 */,
/* 1750 */,
/* 1751 */,
/* 1752 */,
/* 1753 */,
/* 1754 */,
/* 1755 */,
/* 1756 */,
/* 1757 */,
/* 1758 */,
/* 1759 */,
/* 1760 */,
/* 1761 */,
/* 1762 */,
/* 1763 */,
/* 1764 */,
/* 1765 */,
/* 1766 */,
/* 1767 */,
/* 1768 */,
/* 1769 */,
/* 1770 */,
/* 1771 */,
/* 1772 */,
/* 1773 */,
/* 1774 */,
/* 1775 */,
/* 1776 */,
/* 1777 */,
/* 1778 */,
/* 1779 */,
/* 1780 */,
/* 1781 */,
/* 1782 */,
/* 1783 */,
/* 1784 */,
/* 1785 */,
/* 1786 */,
/* 1787 */,
/* 1788 */,
/* 1789 */,
/* 1790 */,
/* 1791 */,
/* 1792 */,
/* 1793 */,
/* 1794 */,
/* 1795 */,
/* 1796 */,
/* 1797 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__, __webpack_module_template_argument_1__, __webpack_module_template_argument_2__, __webpack_module_template_argument_3__, __webpack_module_template_argument_4__) {

	var hashClear = __webpack_require__(__webpack_module_template_argument_0__),
	    hashDelete = __webpack_require__(__webpack_module_template_argument_1__),
	    hashGet = __webpack_require__(__webpack_module_template_argument_2__),
	    hashHas = __webpack_require__(__webpack_module_template_argument_3__),
	    hashSet = __webpack_require__(__webpack_module_template_argument_4__);

	/**
	 * Creates a hash object.
	 *
	 * @private
	 * @constructor
	 * @param {Array} [entries] The key-value pairs to cache.
	 */
	function Hash(entries) {
	  var index = -1,
	      length = entries == null ? 0 : entries.length;

	  this.clear();
	  while (++index < length) {
	    var entry = entries[index];
	    this.set(entry[0], entry[1]);
	  }
	}

	// Add methods to `Hash`.
	Hash.prototype.clear = hashClear;
	Hash.prototype['delete'] = hashDelete;
	Hash.prototype.get = hashGet;
	Hash.prototype.has = hashHas;
	Hash.prototype.set = hashSet;

	module.exports = Hash;


/***/ }),
/* 1798 */,
/* 1799 */,
/* 1800 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__, __webpack_module_template_argument_1__, __webpack_module_template_argument_2__, __webpack_module_template_argument_3__, __webpack_module_template_argument_4__) {

	var listCacheClear = __webpack_require__(__webpack_module_template_argument_0__),
	    listCacheDelete = __webpack_require__(__webpack_module_template_argument_1__),
	    listCacheGet = __webpack_require__(__webpack_module_template_argument_2__),
	    listCacheHas = __webpack_require__(__webpack_module_template_argument_3__),
	    listCacheSet = __webpack_require__(__webpack_module_template_argument_4__);

	/**
	 * Creates an list cache object.
	 *
	 * @private
	 * @constructor
	 * @param {Array} [entries] The key-value pairs to cache.
	 */
	function ListCache(entries) {
	  var index = -1,
	      length = entries == null ? 0 : entries.length;

	  this.clear();
	  while (++index < length) {
	    var entry = entries[index];
	    this.set(entry[0], entry[1]);
	  }
	}

	// Add methods to `ListCache`.
	ListCache.prototype.clear = listCacheClear;
	ListCache.prototype['delete'] = listCacheDelete;
	ListCache.prototype.get = listCacheGet;
	ListCache.prototype.has = listCacheHas;
	ListCache.prototype.set = listCacheSet;

	module.exports = ListCache;


/***/ }),
/* 1801 */,
/* 1802 */,
/* 1803 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__, __webpack_module_template_argument_1__) {

	var getNative = __webpack_require__(__webpack_module_template_argument_0__),
	    root = __webpack_require__(__webpack_module_template_argument_1__);

	/* Built-in method references that are verified to be native. */
	var Map = getNative(root, 'Map');

	module.exports = Map;


/***/ }),
/* 1804 */,
/* 1805 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__, __webpack_module_template_argument_1__, __webpack_module_template_argument_2__, __webpack_module_template_argument_3__, __webpack_module_template_argument_4__) {

	var mapCacheClear = __webpack_require__(__webpack_module_template_argument_0__),
	    mapCacheDelete = __webpack_require__(__webpack_module_template_argument_1__),
	    mapCacheGet = __webpack_require__(__webpack_module_template_argument_2__),
	    mapCacheHas = __webpack_require__(__webpack_module_template_argument_3__),
	    mapCacheSet = __webpack_require__(__webpack_module_template_argument_4__);

	/**
	 * Creates a map cache object to store key-value pairs.
	 *
	 * @private
	 * @constructor
	 * @param {Array} [entries] The key-value pairs to cache.
	 */
	function MapCache(entries) {
	  var index = -1,
	      length = entries == null ? 0 : entries.length;

	  this.clear();
	  while (++index < length) {
	    var entry = entries[index];
	    this.set(entry[0], entry[1]);
	  }
	}

	// Add methods to `MapCache`.
	MapCache.prototype.clear = mapCacheClear;
	MapCache.prototype['delete'] = mapCacheDelete;
	MapCache.prototype.get = mapCacheGet;
	MapCache.prototype.has = mapCacheHas;
	MapCache.prototype.set = mapCacheSet;

	module.exports = MapCache;


/***/ }),
/* 1806 */,
/* 1807 */,
/* 1808 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__, __webpack_module_template_argument_1__) {

	var getNative = __webpack_require__(__webpack_module_template_argument_0__),
	    root = __webpack_require__(__webpack_module_template_argument_1__);

	/* Built-in method references that are verified to be native. */
	var Set = getNative(root, 'Set');

	module.exports = Set;


/***/ }),
/* 1809 */,
/* 1810 */,
/* 1811 */,
/* 1812 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__, __webpack_module_template_argument_1__, __webpack_module_template_argument_2__) {

	var MapCache = __webpack_require__(__webpack_module_template_argument_0__),
	    setCacheAdd = __webpack_require__(__webpack_module_template_argument_1__),
	    setCacheHas = __webpack_require__(__webpack_module_template_argument_2__);

	/**
	 *
	 * Creates an array cache object to store unique values.
	 *
	 * @private
	 * @constructor
	 * @param {Array} [values] The values to cache.
	 */
	function SetCache(values) {
	  var index = -1,
	      length = values == null ? 0 : values.length;

	  this.__data__ = new MapCache;
	  while (++index < length) {
	    this.add(values[index]);
	  }
	}

	// Add methods to `SetCache`.
	SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
	SetCache.prototype.has = setCacheHas;

	module.exports = SetCache;


/***/ }),
/* 1813 */,
/* 1814 */,
/* 1815 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var root = __webpack_require__(__webpack_module_template_argument_0__);

	/** Built-in value references. */
	var Symbol = root.Symbol;

	module.exports = Symbol;


/***/ }),
/* 1816 */,
/* 1817 */,
/* 1818 */,
/* 1819 */,
/* 1820 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__, __webpack_module_template_argument_1__, __webpack_module_template_argument_2__, __webpack_module_template_argument_3__, __webpack_module_template_argument_4__, __webpack_module_template_argument_5__) {

	var baseTimes = __webpack_require__(__webpack_module_template_argument_0__),
	    isArguments = __webpack_require__(__webpack_module_template_argument_1__),
	    isArray = __webpack_require__(__webpack_module_template_argument_2__),
	    isBuffer = __webpack_require__(__webpack_module_template_argument_3__),
	    isIndex = __webpack_require__(__webpack_module_template_argument_4__),
	    isTypedArray = __webpack_require__(__webpack_module_template_argument_5__);

	/** Used for built-in method references. */
	var objectProto = Object.prototype;

	/** Used to check objects for own properties. */
	var hasOwnProperty = objectProto.hasOwnProperty;

	/**
	 * Creates an array of the enumerable property names of the array-like `value`.
	 *
	 * @private
	 * @param {*} value The value to query.
	 * @param {boolean} inherited Specify returning inherited property names.
	 * @returns {Array} Returns the array of property names.
	 */
	function arrayLikeKeys(value, inherited) {
	  var isArr = isArray(value),
	      isArg = !isArr && isArguments(value),
	      isBuff = !isArr && !isArg && isBuffer(value),
	      isType = !isArr && !isArg && !isBuff && isTypedArray(value),
	      skipIndexes = isArr || isArg || isBuff || isType,
	      result = skipIndexes ? baseTimes(value.length, String) : [],
	      length = result.length;

	  for (var key in value) {
	    if ((inherited || hasOwnProperty.call(value, key)) &&
	        !(skipIndexes && (
	           // Safari 9 has enumerable `arguments.length` in strict mode.
	           key == 'length' ||
	           // Node.js 0.10 has enumerable non-index properties on buffers.
	           (isBuff && (key == 'offset' || key == 'parent')) ||
	           // PhantomJS 2 has enumerable non-index properties on typed arrays.
	           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
	           // Skip index properties.
	           isIndex(key, length)
	        ))) {
	      result.push(key);
	    }
	  }
	  return result;
	}

	module.exports = arrayLikeKeys;


/***/ }),
/* 1821 */,
/* 1822 */,
/* 1823 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var eq = __webpack_require__(__webpack_module_template_argument_0__);

	/**
	 * Gets the index at which the `key` is found in `array` of key-value pairs.
	 *
	 * @private
	 * @param {Array} array The array to inspect.
	 * @param {*} key The key to search for.
	 * @returns {number} Returns the index of the matched value, else `-1`.
	 */
	function assocIndexOf(array, key) {
	  var length = array.length;
	  while (length--) {
	    if (eq(array[length][0], key)) {
	      return length;
	    }
	  }
	  return -1;
	}

	module.exports = assocIndexOf;


/***/ }),
/* 1824 */,
/* 1825 */,
/* 1826 */,
/* 1827 */,
/* 1828 */,
/* 1829 */,
/* 1830 */,
/* 1831 */,
/* 1832 */,
/* 1833 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__, __webpack_module_template_argument_1__, __webpack_module_template_argument_2__) {

	var Symbol = __webpack_require__(__webpack_module_template_argument_0__),
	    getRawTag = __webpack_require__(__webpack_module_template_argument_1__),
	    objectToString = __webpack_require__(__webpack_module_template_argument_2__);

	/** `Object#toString` result references. */
	var nullTag = '[object Null]',
	    undefinedTag = '[object Undefined]';

	/** Built-in value references. */
	var symToStringTag = Symbol ? Symbol.toStringTag : undefined;

	/**
	 * The base implementation of `getTag` without fallbacks for buggy environments.
	 *
	 * @private
	 * @param {*} value The value to query.
	 * @returns {string} Returns the `toStringTag`.
	 */
	function baseGetTag(value) {
	  if (value == null) {
	    return value === undefined ? undefinedTag : nullTag;
	  }
	  return (symToStringTag && symToStringTag in Object(value))
	    ? getRawTag(value)
	    : objectToString(value);
	}

	module.exports = baseGetTag;


/***/ }),
/* 1834 */,
/* 1835 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__, __webpack_module_template_argument_1__) {

	var baseGetTag = __webpack_require__(__webpack_module_template_argument_0__),
	    isObjectLike = __webpack_require__(__webpack_module_template_argument_1__);

	/** `Object#toString` result references. */
	var argsTag = '[object Arguments]';

	/**
	 * The base implementation of `_.isArguments`.
	 *
	 * @private
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
	 */
	function baseIsArguments(value) {
	  return isObjectLike(value) && baseGetTag(value) == argsTag;
	}

	module.exports = baseIsArguments;


/***/ }),
/* 1836 */,
/* 1837 */,
/* 1838 */,
/* 1839 */,
/* 1840 */,
/* 1841 */,
/* 1842 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__, __webpack_module_template_argument_1__, __webpack_module_template_argument_2__, __webpack_module_template_argument_3__) {

	var isFunction = __webpack_require__(__webpack_module_template_argument_0__),
	    isMasked = __webpack_require__(__webpack_module_template_argument_1__),
	    isObject = __webpack_require__(__webpack_module_template_argument_2__),
	    toSource = __webpack_require__(__webpack_module_template_argument_3__);

	/**
	 * Used to match `RegExp`
	 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
	 */
	var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;

	/** Used to detect host constructors (Safari). */
	var reIsHostCtor = /^\[object .+?Constructor\]$/;

	/** Used for built-in method references. */
	var funcProto = Function.prototype,
	    objectProto = Object.prototype;

	/** Used to resolve the decompiled source of functions. */
	var funcToString = funcProto.toString;

	/** Used to check objects for own properties. */
	var hasOwnProperty = objectProto.hasOwnProperty;

	/** Used to detect if a method is native. */
	var reIsNative = RegExp('^' +
	  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
	  .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
	);

	/**
	 * The base implementation of `_.isNative` without bad shim checks.
	 *
	 * @private
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is a native function,
	 *  else `false`.
	 */
	function baseIsNative(value) {
	  if (!isObject(value) || isMasked(value)) {
	    return false;
	  }
	  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
	  return pattern.test(toSource(value));
	}

	module.exports = baseIsNative;


/***/ }),
/* 1843 */,
/* 1844 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__, __webpack_module_template_argument_1__, __webpack_module_template_argument_2__) {

	var baseGetTag = __webpack_require__(__webpack_module_template_argument_0__),
	    isLength = __webpack_require__(__webpack_module_template_argument_1__),
	    isObjectLike = __webpack_require__(__webpack_module_template_argument_2__);

	/** `Object#toString` result references. */
	var argsTag = '[object Arguments]',
	    arrayTag = '[object Array]',
	    boolTag = '[object Boolean]',
	    dateTag = '[object Date]',
	    errorTag = '[object Error]',
	    funcTag = '[object Function]',
	    mapTag = '[object Map]',
	    numberTag = '[object Number]',
	    objectTag = '[object Object]',
	    regexpTag = '[object RegExp]',
	    setTag = '[object Set]',
	    stringTag = '[object String]',
	    weakMapTag = '[object WeakMap]';

	var arrayBufferTag = '[object ArrayBuffer]',
	    dataViewTag = '[object DataView]',
	    float32Tag = '[object Float32Array]',
	    float64Tag = '[object Float64Array]',
	    int8Tag = '[object Int8Array]',
	    int16Tag = '[object Int16Array]',
	    int32Tag = '[object Int32Array]',
	    uint8Tag = '[object Uint8Array]',
	    uint8ClampedTag = '[object Uint8ClampedArray]',
	    uint16Tag = '[object Uint16Array]',
	    uint32Tag = '[object Uint32Array]';

	/** Used to identify `toStringTag` values of typed arrays. */
	var typedArrayTags = {};
	typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
	typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
	typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
	typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
	typedArrayTags[uint32Tag] = true;
	typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
	typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
	typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
	typedArrayTags[errorTag] = typedArrayTags[funcTag] =
	typedArrayTags[mapTag] = typedArrayTags[numberTag] =
	typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
	typedArrayTags[setTag] = typedArrayTags[stringTag] =
	typedArrayTags[weakMapTag] = false;

	/**
	 * The base implementation of `_.isTypedArray` without Node.js optimizations.
	 *
	 * @private
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
	 */
	function baseIsTypedArray(value) {
	  return isObjectLike(value) &&
	    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
	}

	module.exports = baseIsTypedArray;


/***/ }),
/* 1845 */,
/* 1846 */,
/* 1847 */,
/* 1848 */,
/* 1849 */,
/* 1850 */,
/* 1851 */,
/* 1852 */,
/* 1853 */,
/* 1854 */,
/* 1855 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var root = __webpack_require__(__webpack_module_template_argument_0__);

	/** Used to detect overreaching core-js shims. */
	var coreJsData = root['__core-js_shared__'];

	module.exports = coreJsData;


/***/ }),
/* 1856 */,
/* 1857 */,
/* 1858 */,
/* 1859 */,
/* 1860 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var getNative = __webpack_require__(__webpack_module_template_argument_0__);

	var defineProperty = (function() {
	  try {
	    var func = getNative(Object, 'defineProperty');
	    func({}, '', {});
	    return func;
	  } catch (e) {}
	}());

	module.exports = defineProperty;


/***/ }),
/* 1861 */,
/* 1862 */,
/* 1863 */,
/* 1864 */,
/* 1865 */,
/* 1866 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var isKeyable = __webpack_require__(__webpack_module_template_argument_0__);

	/**
	 * Gets the data for `map`.
	 *
	 * @private
	 * @param {Object} map The map to query.
	 * @param {string} key The reference key.
	 * @returns {*} Returns the map data.
	 */
	function getMapData(map, key) {
	  var data = map.__data__;
	  return isKeyable(key)
	    ? data[typeof key == 'string' ? 'string' : 'hash']
	    : data.map;
	}

	module.exports = getMapData;


/***/ }),
/* 1867 */,
/* 1868 */,
/* 1869 */,
/* 1870 */,
/* 1871 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__, __webpack_module_template_argument_1__) {

	var baseIsNative = __webpack_require__(__webpack_module_template_argument_0__),
	    getValue = __webpack_require__(__webpack_module_template_argument_1__);

	/**
	 * Gets the native function at `key` of `object`.
	 *
	 * @private
	 * @param {Object} object The object to query.
	 * @param {string} key The key of the method to get.
	 * @returns {*} Returns the function if it's native, else `undefined`.
	 */
	function getNative(object, key) {
	  var value = getValue(object, key);
	  return baseIsNative(value) ? value : undefined;
	}

	module.exports = getNative;


/***/ }),
/* 1872 */,
/* 1873 */,
/* 1874 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var Symbol = __webpack_require__(__webpack_module_template_argument_0__);

	/** Used for built-in method references. */
	var objectProto = Object.prototype;

	/** Used to check objects for own properties. */
	var hasOwnProperty = objectProto.hasOwnProperty;

	/**
	 * Used to resolve the
	 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
	 * of values.
	 */
	var nativeObjectToString = objectProto.toString;

	/** Built-in value references. */
	var symToStringTag = Symbol ? Symbol.toStringTag : undefined;

	/**
	 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
	 *
	 * @private
	 * @param {*} value The value to query.
	 * @returns {string} Returns the raw `toStringTag`.
	 */
	function getRawTag(value) {
	  var isOwn = hasOwnProperty.call(value, symToStringTag),
	      tag = value[symToStringTag];

	  try {
	    value[symToStringTag] = undefined;
	    var unmasked = true;
	  } catch (e) {}

	  var result = nativeObjectToString.call(value);
	  if (unmasked) {
	    if (isOwn) {
	      value[symToStringTag] = tag;
	    } else {
	      delete value[symToStringTag];
	    }
	  }
	  return result;
	}

	module.exports = getRawTag;


/***/ }),
/* 1875 */,
/* 1876 */,
/* 1877 */,
/* 1878 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var nativeCreate = __webpack_require__(__webpack_module_template_argument_0__);

	/**
	 * Removes all key-value entries from the hash.
	 *
	 * @private
	 * @name clear
	 * @memberOf Hash
	 */
	function hashClear() {
	  this.__data__ = nativeCreate ? nativeCreate(null) : {};
	  this.size = 0;
	}

	module.exports = hashClear;


/***/ }),
/* 1879 */,
/* 1880 */,
/* 1881 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var nativeCreate = __webpack_require__(__webpack_module_template_argument_0__);

	/** Used to stand-in for `undefined` hash values. */
	var HASH_UNDEFINED = '__lodash_hash_undefined__';

	/** Used for built-in method references. */
	var objectProto = Object.prototype;

	/** Used to check objects for own properties. */
	var hasOwnProperty = objectProto.hasOwnProperty;

	/**
	 * Gets the hash value for `key`.
	 *
	 * @private
	 * @name get
	 * @memberOf Hash
	 * @param {string} key The key of the value to get.
	 * @returns {*} Returns the entry value.
	 */
	function hashGet(key) {
	  var data = this.__data__;
	  if (nativeCreate) {
	    var result = data[key];
	    return result === HASH_UNDEFINED ? undefined : result;
	  }
	  return hasOwnProperty.call(data, key) ? data[key] : undefined;
	}

	module.exports = hashGet;


/***/ }),
/* 1882 */,
/* 1883 */,
/* 1884 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var nativeCreate = __webpack_require__(__webpack_module_template_argument_0__);

	/** Used for built-in method references. */
	var objectProto = Object.prototype;

	/** Used to check objects for own properties. */
	var hasOwnProperty = objectProto.hasOwnProperty;

	/**
	 * Checks if a hash value for `key` exists.
	 *
	 * @private
	 * @name has
	 * @memberOf Hash
	 * @param {string} key The key of the entry to check.
	 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
	 */
	function hashHas(key) {
	  var data = this.__data__;
	  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);
	}

	module.exports = hashHas;


/***/ }),
/* 1885 */,
/* 1886 */,
/* 1887 */,
/* 1888 */,
/* 1889 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var nativeCreate = __webpack_require__(__webpack_module_template_argument_0__);

	/** Used to stand-in for `undefined` hash values. */
	var HASH_UNDEFINED = '__lodash_hash_undefined__';

	/**
	 * Sets the hash `key` to `value`.
	 *
	 * @private
	 * @name set
	 * @memberOf Hash
	 * @param {string} key The key of the value to set.
	 * @param {*} value The value to set.
	 * @returns {Object} Returns the hash instance.
	 */
	function hashSet(key, value) {
	  var data = this.__data__;
	  this.size += this.has(key) ? 0 : 1;
	  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
	  return this;
	}

	module.exports = hashSet;


/***/ }),
/* 1890 */,
/* 1891 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var coreJsData = __webpack_require__(__webpack_module_template_argument_0__);

	/** Used to detect methods masquerading as native. */
	var maskSrcKey = (function() {
	  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
	  return uid ? ('Symbol(src)_1.' + uid) : '';
	}());

	/**
	 * Checks if `func` has its source masked.
	 *
	 * @private
	 * @param {Function} func The function to check.
	 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
	 */
	function isMasked(func) {
	  return !!maskSrcKey && (maskSrcKey in func);
	}

	module.exports = isMasked;


/***/ }),
/* 1892 */,
/* 1893 */,
/* 1894 */,
/* 1895 */,
/* 1896 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var assocIndexOf = __webpack_require__(__webpack_module_template_argument_0__);

	/** Used for built-in method references. */
	var arrayProto = Array.prototype;

	/** Built-in value references. */
	var splice = arrayProto.splice;

	/**
	 * Removes `key` and its value from the list cache.
	 *
	 * @private
	 * @name delete
	 * @memberOf ListCache
	 * @param {string} key The key of the value to remove.
	 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
	 */
	function listCacheDelete(key) {
	  var data = this.__data__,
	      index = assocIndexOf(data, key);

	  if (index < 0) {
	    return false;
	  }
	  var lastIndex = data.length - 1;
	  if (index == lastIndex) {
	    data.pop();
	  } else {
	    splice.call(data, index, 1);
	  }
	  --this.size;
	  return true;
	}

	module.exports = listCacheDelete;


/***/ }),
/* 1897 */,
/* 1898 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var assocIndexOf = __webpack_require__(__webpack_module_template_argument_0__);

	/**
	 * Gets the list cache value for `key`.
	 *
	 * @private
	 * @name get
	 * @memberOf ListCache
	 * @param {string} key The key of the value to get.
	 * @returns {*} Returns the entry value.
	 */
	function listCacheGet(key) {
	  var data = this.__data__,
	      index = assocIndexOf(data, key);

	  return index < 0 ? undefined : data[index][1];
	}

	module.exports = listCacheGet;


/***/ }),
/* 1899 */,
/* 1900 */,
/* 1901 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var assocIndexOf = __webpack_require__(__webpack_module_template_argument_0__);

	/**
	 * Checks if a list cache value for `key` exists.
	 *
	 * @private
	 * @name has
	 * @memberOf ListCache
	 * @param {string} key The key of the entry to check.
	 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
	 */
	function listCacheHas(key) {
	  return assocIndexOf(this.__data__, key) > -1;
	}

	module.exports = listCacheHas;


/***/ }),
/* 1902 */,
/* 1903 */,
/* 1904 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var assocIndexOf = __webpack_require__(__webpack_module_template_argument_0__);

	/**
	 * Sets the list cache `key` to `value`.
	 *
	 * @private
	 * @name set
	 * @memberOf ListCache
	 * @param {string} key The key of the value to set.
	 * @param {*} value The value to set.
	 * @returns {Object} Returns the list cache instance.
	 */
	function listCacheSet(key, value) {
	  var data = this.__data__,
	      index = assocIndexOf(data, key);

	  if (index < 0) {
	    ++this.size;
	    data.push([key, value]);
	  } else {
	    data[index][1] = value;
	  }
	  return this;
	}

	module.exports = listCacheSet;


/***/ }),
/* 1905 */,
/* 1906 */,
/* 1907 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__, __webpack_module_template_argument_1__, __webpack_module_template_argument_2__) {

	var Hash = __webpack_require__(__webpack_module_template_argument_0__),
	    ListCache = __webpack_require__(__webpack_module_template_argument_1__),
	    Map = __webpack_require__(__webpack_module_template_argument_2__);

	/**
	 * Removes all key-value entries from the map.
	 *
	 * @private
	 * @name clear
	 * @memberOf MapCache
	 */
	function mapCacheClear() {
	  this.size = 0;
	  this.__data__ = {
	    'hash': new Hash,
	    'map': new (Map || ListCache),
	    'string': new Hash
	  };
	}

	module.exports = mapCacheClear;


/***/ }),
/* 1908 */,
/* 1909 */,
/* 1910 */,
/* 1911 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var getMapData = __webpack_require__(__webpack_module_template_argument_0__);

	/**
	 * Removes `key` and its value from the map.
	 *
	 * @private
	 * @name delete
	 * @memberOf MapCache
	 * @param {string} key The key of the value to remove.
	 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
	 */
	function mapCacheDelete(key) {
	  var result = getMapData(this, key)['delete'](key);
	  this.size -= result ? 1 : 0;
	  return result;
	}

	module.exports = mapCacheDelete;


/***/ }),
/* 1912 */,
/* 1913 */,
/* 1914 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var getMapData = __webpack_require__(__webpack_module_template_argument_0__);

	/**
	 * Gets the map value for `key`.
	 *
	 * @private
	 * @name get
	 * @memberOf MapCache
	 * @param {string} key The key of the value to get.
	 * @returns {*} Returns the entry value.
	 */
	function mapCacheGet(key) {
	  return getMapData(this, key).get(key);
	}

	module.exports = mapCacheGet;


/***/ }),
/* 1915 */,
/* 1916 */,
/* 1917 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var getMapData = __webpack_require__(__webpack_module_template_argument_0__);

	/**
	 * Checks if a map value for `key` exists.
	 *
	 * @private
	 * @name has
	 * @memberOf MapCache
	 * @param {string} key The key of the entry to check.
	 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
	 */
	function mapCacheHas(key) {
	  return getMapData(this, key).has(key);
	}

	module.exports = mapCacheHas;


/***/ }),
/* 1918 */,
/* 1919 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var getMapData = __webpack_require__(__webpack_module_template_argument_0__);

	/**
	 * Sets the map `key` to `value`.
	 *
	 * @private
	 * @name set
	 * @memberOf MapCache
	 * @param {string} key The key of the value to set.
	 * @param {*} value The value to set.
	 * @returns {Object} Returns the map cache instance.
	 */
	function mapCacheSet(key, value) {
	  var data = getMapData(this, key),
	      size = data.size;

	  data.set(key, value);
	  this.size += data.size == size ? 0 : 1;
	  return this;
	}

	module.exports = mapCacheSet;


/***/ }),
/* 1920 */,
/* 1921 */,
/* 1922 */,
/* 1923 */,
/* 1924 */,
/* 1925 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var getNative = __webpack_require__(__webpack_module_template_argument_0__);

	/* Built-in method references that are verified to be native. */
	var nativeCreate = getNative(Object, 'create');

	module.exports = nativeCreate;


/***/ }),
/* 1926 */,
/* 1927 */,
/* 1928 */,
/* 1929 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(__webpack_module_template_argument_0__);

	/** Detect free variable `exports`. */
	var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;

	/** Detect free variable `module`. */
	var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;

	/** Detect the popular CommonJS extension `module.exports`. */
	var moduleExports = freeModule && freeModule.exports === freeExports;

	/** Detect free variable `process` from Node.js. */
	var freeProcess = moduleExports && freeGlobal.process;

	/** Used to access faster Node.js helpers. */
	var nodeUtil = (function() {
	  try {
	    // Use `util.types` for Node.js 10+.
	    var types = freeModule && freeModule.require && freeModule.require('util').types;

	    if (types) {
	      return types;
	    }

	    // Legacy `process.binding('util')` for Node.js < 10.
	    return freeProcess && freeProcess.binding && freeProcess.binding('util');
	  } catch (e) {}
	}());

	module.exports = nodeUtil;

	/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))

/***/ }),
/* 1930 */,
/* 1931 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var freeGlobal = __webpack_require__(__webpack_module_template_argument_0__);

	/** Detect free variable `self`. */
	var freeSelf = typeof self == 'object' && self && self.Object === Object && self;

	/** Used as a reference to the global object. */
	var root = freeGlobal || freeSelf || Function('return this')();

	module.exports = root;


/***/ }),
/* 1932 */,
/* 1933 */,
/* 1934 */,
/* 1935 */,
/* 1936 */,
/* 1937 */,
/* 1938 */,
/* 1939 */,
/* 1940 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__, __webpack_module_template_argument_1__) {

	var baseIsArguments = __webpack_require__(__webpack_module_template_argument_0__),
	    isObjectLike = __webpack_require__(__webpack_module_template_argument_1__);

	/** Used for built-in method references. */
	var objectProto = Object.prototype;

	/** Used to check objects for own properties. */
	var hasOwnProperty = objectProto.hasOwnProperty;

	/** Built-in value references. */
	var propertyIsEnumerable = objectProto.propertyIsEnumerable;

	/**
	 * Checks if `value` is likely an `arguments` object.
	 *
	 * @static
	 * @memberOf _
	 * @since 0.1.0
	 * @category Lang
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
	 *  else `false`.
	 * @example
	 *
	 * _.isArguments(function() { return arguments; }());
	 * // => true
	 *
	 * _.isArguments([1, 2, 3]);
	 * // => false
	 */
	var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
	  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
	    !propertyIsEnumerable.call(value, 'callee');
	};

	module.exports = isArguments;


/***/ }),
/* 1941 */,
/* 1942 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__, __webpack_module_template_argument_1__) {

	var isFunction = __webpack_require__(__webpack_module_template_argument_0__),
	    isLength = __webpack_require__(__webpack_module_template_argument_1__);

	/**
	 * Checks if `value` is array-like. A value is considered array-like if it's
	 * not a function and has a `value.length` that's an integer greater than or
	 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
	 *
	 * @static
	 * @memberOf _
	 * @since 4.0.0
	 * @category Lang
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
	 * @example
	 *
	 * _.isArrayLike([1, 2, 3]);
	 * // => true
	 *
	 * _.isArrayLike(document.body.children);
	 * // => true
	 *
	 * _.isArrayLike('abc');
	 * // => true
	 *
	 * _.isArrayLike(_.noop);
	 * // => false
	 */
	function isArrayLike(value) {
	  return value != null && isLength(value.length) && !isFunction(value);
	}

	module.exports = isArrayLike;


/***/ }),
/* 1943 */,
/* 1944 */,
/* 1945 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__, __webpack_module_template_argument_1__) {

	/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(__webpack_module_template_argument_0__),
	    stubFalse = __webpack_require__(__webpack_module_template_argument_1__);

	/** Detect free variable `exports`. */
	var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;

	/** Detect free variable `module`. */
	var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;

	/** Detect the popular CommonJS extension `module.exports`. */
	var moduleExports = freeModule && freeModule.exports === freeExports;

	/** Built-in value references. */
	var Buffer = moduleExports ? root.Buffer : undefined;

	/* Built-in method references for those with the same name as other `lodash` methods. */
	var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;

	/**
	 * Checks if `value` is a buffer.
	 *
	 * @static
	 * @memberOf _
	 * @since 4.3.0
	 * @category Lang
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
	 * @example
	 *
	 * _.isBuffer(new Buffer(2));
	 * // => true
	 *
	 * _.isBuffer(new Uint8Array(2));
	 * // => false
	 */
	var isBuffer = nativeIsBuffer || stubFalse;

	module.exports = isBuffer;

	/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)(module)))

/***/ }),
/* 1946 */,
/* 1947 */,
/* 1948 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__, __webpack_module_template_argument_1__) {

	var baseGetTag = __webpack_require__(__webpack_module_template_argument_0__),
	    isObject = __webpack_require__(__webpack_module_template_argument_1__);

	/** `Object#toString` result references. */
	var asyncTag = '[object AsyncFunction]',
	    funcTag = '[object Function]',
	    genTag = '[object GeneratorFunction]',
	    proxyTag = '[object Proxy]';

	/**
	 * Checks if `value` is classified as a `Function` object.
	 *
	 * @static
	 * @memberOf _
	 * @since 0.1.0
	 * @category Lang
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
	 * @example
	 *
	 * _.isFunction(_);
	 * // => true
	 *
	 * _.isFunction(/abc/);
	 * // => false
	 */
	function isFunction(value) {
	  if (!isObject(value)) {
	    return false;
	  }
	  // The use of `Object#toString` avoids issues with the `typeof` operator
	  // in Safari 9 which returns 'object' for typed arrays and other constructors.
	  var tag = baseGetTag(value);
	  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
	}

	module.exports = isFunction;


/***/ }),
/* 1949 */,
/* 1950 */,
/* 1951 */,
/* 1952 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__, __webpack_module_template_argument_1__, __webpack_module_template_argument_2__) {

	var baseIsTypedArray = __webpack_require__(__webpack_module_template_argument_0__),
	    baseUnary = __webpack_require__(__webpack_module_template_argument_1__),
	    nodeUtil = __webpack_require__(__webpack_module_template_argument_2__);

	/* Node.js helper references. */
	var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;

	/**
	 * Checks if `value` is classified as a typed array.
	 *
	 * @static
	 * @memberOf _
	 * @since 3.0.0
	 * @category Lang
	 * @param {*} value The value to check.
	 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
	 * @example
	 *
	 * _.isTypedArray(new Uint8Array);
	 * // => true
	 *
	 * _.isTypedArray([]);
	 * // => false
	 */
	var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;

	module.exports = isTypedArray;


/***/ }),
/* 1953 */,
/* 1954 */,
/* 1955 */,
/* 1956 */
/***/ (function(module, exports, __webpack_require__, __webpack_module_template_argument_0__) {

	var MapCache = __webpack_require__(__webpack_module_template_argument_0__);

	/** Error message constants. */
	var FUNC_ERROR_TEXT = 'Expected a function';

	/**
	 * Creates a function that memoizes the result of `func`. If `resolver` is
	 * provided, it determines the cache key for storing the result based on the
	 * arguments provided to the memoized function. By default, the first argument
	 * provided to the memoized function is used as the map cache key. The `func`
	 * is invoked with the `this` binding of the memoized function.
	 *
	 * **Note:** The cache is exposed as the `cache` property on the memoized
	 * function. Its creation may be customized by replacing the `_.memoize.Cache`
	 * constructor with one whose instances implement the
	 * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
	 * method interface of `clear`, `delete`, `get`, `has`, and `set`.
	 *
	 * @static
	 * @memberOf _
	 * @since 0.1.0
	 * @category Function
	 * @param {Function} func The function to have its output memoized.
	 * @param {Function} [resolver] The function to resolve the cache key.
	 * @returns {Function} Returns the new memoized function.
	 * @example
	 *
	 * var object = { 'a': 1, 'b': 2 };
	 * var other = { 'c': 3, 'd': 4 };
	 *
	 * var values = _.memoize(_.values);
	 * values(object);
	 * // => [1, 2]
	 *
	 * values(other);
	 * // => [3, 4]
	 *
	 * object.a = 2;
	 * values(object);
	 * // => [1, 2]
	 *
	 * // Modify the result cache.
	 * values.cache.set(object, ['a', 'b']);
	 * values(object);
	 * // => ['a', 'b']
	 *
	 * // Replace `_.memoize.Cache`.
	 * _.memoize.Cache = WeakMap;
	 */
	function memoize(func, resolver) {
	  if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {
	    throw new TypeError(FUNC_ERROR_TEXT);
	  }
	  var memoized = function() {
	    var args = arguments,
	        key = resolver ? resolver.apply(this, args) : args[0],
	        cache = memoized.cache;

	    if (cache.has(key)) {
	      return cache.get(key);
	    }
	    var result = func.apply(this, args);
	    memoized.cache = cache.set(key, result) || cache;
	    return result;
	  };
	  memoized.cache = new (memoize.Cache || MapCache);
	  return memoized;
	}

	// Expose `MapCache`.
	memoize.Cache = MapCache;

	module.exports = memoize;


/***/ })
/******/ ])))
});
;/**
 *  Copyright (c) 2014-2015, Facebook, Inc.
 *  All rights reserved.
 *
 *  This source code is licensed under the BSD-style license found in the
 *  LICENSE file in the root directory of this source tree. An additional grant
 *  of patent rights can be found in the PATENTS file in the same directory.
 */

(function (global, factory) {
   true ? module.exports = factory() :
  undefined;
}(this, function () { 'use strict';var SLICE$0 = Array.prototype.slice;

  function createClass(ctor, superClass) {
    if (superClass) {
      ctor.prototype = Object.create(superClass.prototype);
    }
    ctor.prototype.constructor = ctor;
  }

  function Iterable(value) {
      return isIterable(value) ? value : Seq(value);
    }


  createClass(KeyedIterable, Iterable);
    function KeyedIterable(value) {
      return isKeyed(value) ? value : KeyedSeq(value);
    }


  createClass(IndexedIterable, Iterable);
    function IndexedIterable(value) {
      return isIndexed(value) ? value : IndexedSeq(value);
    }


  createClass(SetIterable, Iterable);
    function SetIterable(value) {
      return isIterable(value) && !isAssociative(value) ? value : SetSeq(value);
    }



  function isIterable(maybeIterable) {
    return !!(maybeIterable && maybeIterable[IS_ITERABLE_SENTINEL]);
  }

  function isKeyed(maybeKeyed) {
    return !!(maybeKeyed && maybeKeyed[IS_KEYED_SENTINEL]);
  }

  function isIndexed(maybeIndexed) {
    return !!(maybeIndexed && maybeIndexed[IS_INDEXED_SENTINEL]);
  }

  function isAssociative(maybeAssociative) {
    return isKeyed(maybeAssociative) || isIndexed(maybeAssociative);
  }

  function isOrdered(maybeOrdered) {
    return !!(maybeOrdered && maybeOrdered[IS_ORDERED_SENTINEL]);
  }

  Iterable.isIterable = isIterable;
  Iterable.isKeyed = isKeyed;
  Iterable.isIndexed = isIndexed;
  Iterable.isAssociative = isAssociative;
  Iterable.isOrdered = isOrdered;

  Iterable.Keyed = KeyedIterable;
  Iterable.Indexed = IndexedIterable;
  Iterable.Set = SetIterable;


  var IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@';
  var IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@';
  var IS_INDEXED_SENTINEL = '@@__IMMUTABLE_INDEXED__@@';
  var IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@';

  // Used for setting prototype methods that IE8 chokes on.
  var DELETE = 'delete';

  // Constants describing the size of trie nodes.
  var SHIFT = 5; // Resulted in best performance after ______?
  var SIZE = 1 << SHIFT;
  var MASK = SIZE - 1;

  // A consistent shared value representing "not set" which equals nothing other
  // than itself, and nothing that could be provided externally.
  var NOT_SET = {};

  // Boolean references, Rough equivalent of `bool &`.
  var CHANGE_LENGTH = { value: false };
  var DID_ALTER = { value: false };

  function MakeRef(ref) {
    ref.value = false;
    return ref;
  }

  function SetRef(ref) {
    ref && (ref.value = true);
  }

  // A function which returns a value representing an "owner" for transient writes
  // to tries. The return value will only ever equal itself, and will not equal
  // the return of any subsequent call of this function.
  function OwnerID() {}

  // http://jsperf.com/copy-array-inline
  function arrCopy(arr, offset) {
    offset = offset || 0;
    var len = Math.max(0, arr.length - offset);
    var newArr = new Array(len);
    for (var ii = 0; ii < len; ii++) {
      newArr[ii] = arr[ii + offset];
    }
    return newArr;
  }

  function ensureSize(iter) {
    if (iter.size === undefined) {
      iter.size = iter.__iterate(returnTrue);
    }
    return iter.size;
  }

  function wrapIndex(iter, index) {
    // This implements "is array index" which the ECMAString spec defines as:
    //
    //     A String property name P is an array index if and only if
    //     ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal
    //     to 2^32−1.
    //
    // http://www.ecma-international.org/ecma-262/6.0/#sec-array-exotic-objects
    if (typeof index !== 'number') {
      var uint32Index = index >>> 0; // N >>> 0 is shorthand for ToUint32
      if ('' + uint32Index !== index || uint32Index === 4294967295) {
        return NaN;
      }
      index = uint32Index;
    }
    return index < 0 ? ensureSize(iter) + index : index;
  }

  function returnTrue() {
    return true;
  }

  function wholeSlice(begin, end, size) {
    return (begin === 0 || (size !== undefined && begin <= -size)) &&
      (end === undefined || (size !== undefined && end >= size));
  }

  function resolveBegin(begin, size) {
    return resolveIndex(begin, size, 0);
  }

  function resolveEnd(end, size) {
    return resolveIndex(end, size, size);
  }

  function resolveIndex(index, size, defaultIndex) {
    return index === undefined ?
      defaultIndex :
      index < 0 ?
        Math.max(0, size + index) :
        size === undefined ?
          index :
          Math.min(size, index);
  }

  /* global Symbol */

  var ITERATE_KEYS = 0;
  var ITERATE_VALUES = 1;
  var ITERATE_ENTRIES = 2;

  var REAL_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
  var FAUX_ITERATOR_SYMBOL = '@@iterator';

  var ITERATOR_SYMBOL = REAL_ITERATOR_SYMBOL || FAUX_ITERATOR_SYMBOL;


  function Iterator(next) {
      this.next = next;
    }

    Iterator.prototype.toString = function() {
      return '[Iterator]';
    };


  Iterator.KEYS = ITERATE_KEYS;
  Iterator.VALUES = ITERATE_VALUES;
  Iterator.ENTRIES = ITERATE_ENTRIES;

  Iterator.prototype.inspect =
  Iterator.prototype.toSource = function () { return this.toString(); }
  Iterator.prototype[ITERATOR_SYMBOL] = function () {
    return this;
  };


  function iteratorValue(type, k, v, iteratorResult) {
    var value = type === 0 ? k : type === 1 ? v : [k, v];
    iteratorResult ? (iteratorResult.value = value) : (iteratorResult = {
      value: value, done: false
    });
    return iteratorResult;
  }

  function iteratorDone() {
    return { value: undefined, done: true };
  }

  function hasIterator(maybeIterable) {
    return !!getIteratorFn(maybeIterable);
  }

  function isIterator(maybeIterator) {
    return maybeIterator && typeof maybeIterator.next === 'function';
  }

  function getIterator(iterable) {
    var iteratorFn = getIteratorFn(iterable);
    return iteratorFn && iteratorFn.call(iterable);
  }

  function getIteratorFn(iterable) {
    var iteratorFn = iterable && (
      (REAL_ITERATOR_SYMBOL && iterable[REAL_ITERATOR_SYMBOL]) ||
      iterable[FAUX_ITERATOR_SYMBOL]
    );
    if (typeof iteratorFn === 'function') {
      return iteratorFn;
    }
  }

  function isArrayLike(value) {
    return value && typeof value.length === 'number';
  }

  createClass(Seq, Iterable);
    function Seq(value) {
      return value === null || value === undefined ? emptySequence() :
        isIterable(value) ? value.toSeq() : seqFromValue(value);
    }

    Seq.of = function(/*...values*/) {
      return Seq(arguments);
    };

    Seq.prototype.toSeq = function() {
      return this;
    };

    Seq.prototype.toString = function() {
      return this.__toString('Seq {', '}');
    };

    Seq.prototype.cacheResult = function() {
      if (!this._cache && this.__iterateUncached) {
        this._cache = this.entrySeq().toArray();
        this.size = this._cache.length;
      }
      return this;
    };

    // abstract __iterateUncached(fn, reverse)

    Seq.prototype.__iterate = function(fn, reverse) {
      return seqIterate(this, fn, reverse, true);
    };

    // abstract __iteratorUncached(type, reverse)

    Seq.prototype.__iterator = function(type, reverse) {
      return seqIterator(this, type, reverse, true);
    };



  createClass(KeyedSeq, Seq);
    function KeyedSeq(value) {
      return value === null || value === undefined ?
        emptySequence().toKeyedSeq() :
        isIterable(value) ?
          (isKeyed(value) ? value.toSeq() : value.fromEntrySeq()) :
          keyedSeqFromValue(value);
    }

    KeyedSeq.prototype.toKeyedSeq = function() {
      return this;
    };



  createClass(IndexedSeq, Seq);
    function IndexedSeq(value) {
      return value === null || value === undefined ? emptySequence() :
        !isIterable(value) ? indexedSeqFromValue(value) :
        isKeyed(value) ? value.entrySeq() : value.toIndexedSeq();
    }

    IndexedSeq.of = function(/*...values*/) {
      return IndexedSeq(arguments);
    };

    IndexedSeq.prototype.toIndexedSeq = function() {
      return this;
    };

    IndexedSeq.prototype.toString = function() {
      return this.__toString('Seq [', ']');
    };

    IndexedSeq.prototype.__iterate = function(fn, reverse) {
      return seqIterate(this, fn, reverse, false);
    };

    IndexedSeq.prototype.__iterator = function(type, reverse) {
      return seqIterator(this, type, reverse, false);
    };



  createClass(SetSeq, Seq);
    function SetSeq(value) {
      return (
        value === null || value === undefined ? emptySequence() :
        !isIterable(value) ? indexedSeqFromValue(value) :
        isKeyed(value) ? value.entrySeq() : value
      ).toSetSeq();
    }

    SetSeq.of = function(/*...values*/) {
      return SetSeq(arguments);
    };

    SetSeq.prototype.toSetSeq = function() {
      return this;
    };



  Seq.isSeq = isSeq;
  Seq.Keyed = KeyedSeq;
  Seq.Set = SetSeq;
  Seq.Indexed = IndexedSeq;

  var IS_SEQ_SENTINEL = '@@__IMMUTABLE_SEQ__@@';

  Seq.prototype[IS_SEQ_SENTINEL] = true;



  createClass(ArraySeq, IndexedSeq);
    function ArraySeq(array) {
      this._array = array;
      this.size = array.length;
    }

    ArraySeq.prototype.get = function(index, notSetValue) {
      return this.has(index) ? this._array[wrapIndex(this, index)] : notSetValue;
    };

    ArraySeq.prototype.__iterate = function(fn, reverse) {
      var array = this._array;
      var maxIndex = array.length - 1;
      for (var ii = 0; ii <= maxIndex; ii++) {
        if (fn(array[reverse ? maxIndex - ii : ii], ii, this) === false) {
          return ii + 1;
        }
      }
      return ii;
    };

    ArraySeq.prototype.__iterator = function(type, reverse) {
      var array = this._array;
      var maxIndex = array.length - 1;
      var ii = 0;
      return new Iterator(function() 
        {return ii > maxIndex ?
          iteratorDone() :
          iteratorValue(type, ii, array[reverse ? maxIndex - ii++ : ii++])}
      );
    };



  createClass(ObjectSeq, KeyedSeq);
    function ObjectSeq(object) {
      var keys = Object.keys(object);
      this._object = object;
      this._keys = keys;
      this.size = keys.length;
    }

    ObjectSeq.prototype.get = function(key, notSetValue) {
      if (notSetValue !== undefined && !this.has(key)) {
        return notSetValue;
      }
      return this._object[key];
    };

    ObjectSeq.prototype.has = function(key) {
      return this._object.hasOwnProperty(key);
    };

    ObjectSeq.prototype.__iterate = function(fn, reverse) {
      var object = this._object;
      var keys = this._keys;
      var maxIndex = keys.length - 1;
      for (var ii = 0; ii <= maxIndex; ii++) {
        var key = keys[reverse ? maxIndex - ii : ii];
        if (fn(object[key], key, this) === false) {
          return ii + 1;
        }
      }
      return ii;
    };

    ObjectSeq.prototype.__iterator = function(type, reverse) {
      var object = this._object;
      var keys = this._keys;
      var maxIndex = keys.length - 1;
      var ii = 0;
      return new Iterator(function()  {
        var key = keys[reverse ? maxIndex - ii : ii];
        return ii++ > maxIndex ?
          iteratorDone() :
          iteratorValue(type, key, object[key]);
      });
    };

  ObjectSeq.prototype[IS_ORDERED_SENTINEL] = true;


  createClass(IterableSeq, IndexedSeq);
    function IterableSeq(iterable) {
      this._iterable = iterable;
      this.size = iterable.length || iterable.size;
    }

    IterableSeq.prototype.__iterateUncached = function(fn, reverse) {
      if (reverse) {
        return this.cacheResult().__iterate(fn, reverse);
      }
      var iterable = this._iterable;
      var iterator = getIterator(iterable);
      var iterations = 0;
      if (isIterator(iterator)) {
        var step;
        while (!(step = iterator.next()).done) {
          if (fn(step.value, iterations++, this) === false) {
            break;
          }
        }
      }
      return iterations;
    };

    IterableSeq.prototype.__iteratorUncached = function(type, reverse) {
      if (reverse) {
        return this.cacheResult().__iterator(type, reverse);
      }
      var iterable = this._iterable;
      var iterator = getIterator(iterable);
      if (!isIterator(iterator)) {
        return new Iterator(iteratorDone);
      }
      var iterations = 0;
      return new Iterator(function()  {
        var step = iterator.next();
        return step.done ? step : iteratorValue(type, iterations++, step.value);
      });
    };



  createClass(IteratorSeq, IndexedSeq);
    function IteratorSeq(iterator) {
      this._iterator = iterator;
      this._iteratorCache = [];
    }

    IteratorSeq.prototype.__iterateUncached = function(fn, reverse) {
      if (reverse) {
        return this.cacheResult().__iterate(fn, reverse);
      }
      var iterator = this._iterator;
      var cache = this._iteratorCache;
      var iterations = 0;
      while (iterations < cache.length) {
        if (fn(cache[iterations], iterations++, this) === false) {
          return iterations;
        }
      }
      var step;
      while (!(step = iterator.next()).done) {
        var val = step.value;
        cache[iterations] = val;
        if (fn(val, iterations++, this) === false) {
          break;
        }
      }
      return iterations;
    };

    IteratorSeq.prototype.__iteratorUncached = function(type, reverse) {
      if (reverse) {
        return this.cacheResult().__iterator(type, reverse);
      }
      var iterator = this._iterator;
      var cache = this._iteratorCache;
      var iterations = 0;
      return new Iterator(function()  {
        if (iterations >= cache.length) {
          var step = iterator.next();
          if (step.done) {
            return step;
          }
          cache[iterations] = step.value;
        }
        return iteratorValue(type, iterations, cache[iterations++]);
      });
    };




  // # pragma Helper functions

  function isSeq(maybeSeq) {
    return !!(maybeSeq && maybeSeq[IS_SEQ_SENTINEL]);
  }

  var EMPTY_SEQ;

  function emptySequence() {
    return EMPTY_SEQ || (EMPTY_SEQ = new ArraySeq([]));
  }

  function keyedSeqFromValue(value) {
    var seq =
      Array.isArray(value) ? new ArraySeq(value).fromEntrySeq() :
      isIterator(value) ? new IteratorSeq(value).fromEntrySeq() :
      hasIterator(value) ? new IterableSeq(value).fromEntrySeq() :
      typeof value === 'object' ? new ObjectSeq(value) :
      undefined;
    if (!seq) {
      throw new TypeError(
        'Expected Array or iterable object of [k, v] entries, '+
        'or keyed object: ' + value
      );
    }
    return seq;
  }

  function indexedSeqFromValue(value) {
    var seq = maybeIndexedSeqFromValue(value);
    if (!seq) {
      throw new TypeError(
        'Expected Array or iterable object of values: ' + value
      );
    }
    return seq;
  }

  function seqFromValue(value) {
    var seq = maybeIndexedSeqFromValue(value) ||
      (typeof value === 'object' && new ObjectSeq(value));
    if (!seq) {
      throw new TypeError(
        'Expected Array or iterable object of values, or keyed object: ' + value
      );
    }
    return seq;
  }

  function maybeIndexedSeqFromValue(value) {
    return (
      isArrayLike(value) ? new ArraySeq(value) :
      isIterator(value) ? new IteratorSeq(value) :
      hasIterator(value) ? new IterableSeq(value) :
      undefined
    );
  }

  function seqIterate(seq, fn, reverse, useKeys) {
    var cache = seq._cache;
    if (cache) {
      var maxIndex = cache.length - 1;
      for (var ii = 0; ii <= maxIndex; ii++) {
        var entry = cache[reverse ? maxIndex - ii : ii];
        if (fn(entry[1], useKeys ? entry[0] : ii, seq) === false) {
          return ii + 1;
        }
      }
      return ii;
    }
    return seq.__iterateUncached(fn, reverse);
  }

  function seqIterator(seq, type, reverse, useKeys) {
    var cache = seq._cache;
    if (cache) {
      var maxIndex = cache.length - 1;
      var ii = 0;
      return new Iterator(function()  {
        var entry = cache[reverse ? maxIndex - ii : ii];
        return ii++ > maxIndex ?
          iteratorDone() :
          iteratorValue(type, useKeys ? entry[0] : ii - 1, entry[1]);
      });
    }
    return seq.__iteratorUncached(type, reverse);
  }

  function fromJS(json, converter) {
    return converter ?
      fromJSWith(converter, json, '', {'': json}) :
      fromJSDefault(json);
  }

  function fromJSWith(converter, json, key, parentJSON) {
    if (Array.isArray(json)) {
      return converter.call(parentJSON, key, IndexedSeq(json).map(function(v, k)  {return fromJSWith(converter, v, k, json)}));
    }
    if (isPlainObj(json)) {
      return converter.call(parentJSON, key, KeyedSeq(json).map(function(v, k)  {return fromJSWith(converter, v, k, json)}));
    }
    return json;
  }

  function fromJSDefault(json) {
    if (Array.isArray(json)) {
      return IndexedSeq(json).map(fromJSDefault).toList();
    }
    if (isPlainObj(json)) {
      return KeyedSeq(json).map(fromJSDefault).toMap();
    }
    return json;
  }

  function isPlainObj(value) {
    return value && (value.constructor === Object || value.constructor === undefined);
  }

  /**
   * An extension of the "same-value" algorithm as [described for use by ES6 Map
   * and Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Key_equality)
   *
   * NaN is considered the same as NaN, however -0 and 0 are considered the same
   * value, which is different from the algorithm described by
   * [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is).
   *
   * This is extended further to allow Objects to describe the values they
   * represent, by way of `valueOf` or `equals` (and `hashCode`).
   *
   * Note: because of this extension, the key equality of Immutable.Map and the
   * value equality of Immutable.Set will differ from ES6 Map and Set.
   *
   * ### Defining custom values
   *
   * The easiest way to describe the value an object represents is by implementing
   * `valueOf`. For example, `Date` represents a value by returning a unix
   * timestamp for `valueOf`:
   *
   *     var date1 = new Date(1234567890000); // Fri Feb 13 2009 ...
   *     var date2 = new Date(1234567890000);
   *     date1.valueOf(); // 1234567890000
   *     assert( date1 !== date2 );
   *     assert( Immutable.is( date1, date2 ) );
   *
   * Note: overriding `valueOf` may have other implications if you use this object
   * where JavaScript expects a primitive, such as implicit string coercion.
   *
   * For more complex types, especially collections, implementing `valueOf` may
   * not be performant. An alternative is to implement `equals` and `hashCode`.
   *
   * `equals` takes another object, presumably of similar type, and returns true
   * if the it is equal. Equality is symmetrical, so the same result should be
   * returned if this and the argument are flipped.
   *
   *     assert( a.equals(b) === b.equals(a) );
   *
   * `hashCode` returns a 32bit integer number representing the object which will
   * be used to determine how to store the value object in a Map or Set. You must
   * provide both or neither methods, one must not exist without the other.
   *
   * Also, an important relationship between these methods must be upheld: if two
   * values are equal, they *must* return the same hashCode. If the values are not
   * equal, they might have the same hashCode; this is called a hash collision,
   * and while undesirable for performance reasons, it is acceptable.
   *
   *     if (a.equals(b)) {
   *       assert( a.hashCode() === b.hashCode() );
   *     }
   *
   * All Immutable collections implement `equals` and `hashCode`.
   *
   */
  function is(valueA, valueB) {
    if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {
      return true;
    }
    if (!valueA || !valueB) {
      return false;
    }
    if (typeof valueA.valueOf === 'function' &&
        typeof valueB.valueOf === 'function') {
      valueA = valueA.valueOf();
      valueB = valueB.valueOf();
      if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {
        return true;
      }
      if (!valueA || !valueB) {
        return false;
      }
    }
    if (typeof valueA.equals === 'function' &&
        typeof valueB.equals === 'function' &&
        valueA.equals(valueB)) {
      return true;
    }
    return false;
  }

  function deepEqual(a, b) {
    if (a === b) {
      return true;
    }

    if (
      !isIterable(b) ||
      a.size !== undefined && b.size !== undefined && a.size !== b.size ||
      a.__hash !== undefined && b.__hash !== undefined && a.__hash !== b.__hash ||
      isKeyed(a) !== isKeyed(b) ||
      isIndexed(a) !== isIndexed(b) ||
      isOrdered(a) !== isOrdered(b)
    ) {
      return false;
    }

    if (a.size === 0 && b.size === 0) {
      return true;
    }

    var notAssociative = !isAssociative(a);

    if (isOrdered(a)) {
      var entries = a.entries();
      return b.every(function(v, k)  {
        var entry = entries.next().value;
        return entry && is(entry[1], v) && (notAssociative || is(entry[0], k));
      }) && entries.next().done;
    }

    var flipped = false;

    if (a.size === undefined) {
      if (b.size === undefined) {
        if (typeof a.cacheResult === 'function') {
          a.cacheResult();
        }
      } else {
        flipped = true;
        var _ = a;
        a = b;
        b = _;
      }
    }

    var allEqual = true;
    var bSize = b.__iterate(function(v, k)  {
      if (notAssociative ? !a.has(v) :
          flipped ? !is(v, a.get(k, NOT_SET)) : !is(a.get(k, NOT_SET), v)) {
        allEqual = false;
        return false;
      }
    });

    return allEqual && a.size === bSize;
  }

  createClass(Repeat, IndexedSeq);

    function Repeat(value, times) {
      if (!(this instanceof Repeat)) {
        return new Repeat(value, times);
      }
      this._value = value;
      this.size = times === undefined ? Infinity : Math.max(0, times);
      if (this.size === 0) {
        if (EMPTY_REPEAT) {
          return EMPTY_REPEAT;
        }
        EMPTY_REPEAT = this;
      }
    }

    Repeat.prototype.toString = function() {
      if (this.size === 0) {
        return 'Repeat []';
      }
      return 'Repeat [ ' + this._value + ' ' + this.size + ' times ]';
    };

    Repeat.prototype.get = function(index, notSetValue) {
      return this.has(index) ? this._value : notSetValue;
    };

    Repeat.prototype.includes = function(searchValue) {
      return is(this._value, searchValue);
    };

    Repeat.prototype.slice = function(begin, end) {
      var size = this.size;
      return wholeSlice(begin, end, size) ? this :
        new Repeat(this._value, resolveEnd(end, size) - resolveBegin(begin, size));
    };

    Repeat.prototype.reverse = function() {
      return this;
    };

    Repeat.prototype.indexOf = function(searchValue) {
      if (is(this._value, searchValue)) {
        return 0;
      }
      return -1;
    };

    Repeat.prototype.lastIndexOf = function(searchValue) {
      if (is(this._value, searchValue)) {
        return this.size;
      }
      return -1;
    };

    Repeat.prototype.__iterate = function(fn, reverse) {
      for (var ii = 0; ii < this.size; ii++) {
        if (fn(this._value, ii, this) === false) {
          return ii + 1;
        }
      }
      return ii;
    };

    Repeat.prototype.__iterator = function(type, reverse) {var this$0 = this;
      var ii = 0;
      return new Iterator(function() 
        {return ii < this$0.size ? iteratorValue(type, ii++, this$0._value) : iteratorDone()}
      );
    };

    Repeat.prototype.equals = function(other) {
      return other instanceof Repeat ?
        is(this._value, other._value) :
        deepEqual(other);
    };


  var EMPTY_REPEAT;

  function invariant(condition, error) {
    if (!condition) throw new Error(error);
  }

  createClass(Range, IndexedSeq);

    function Range(start, end, step) {
      if (!(this instanceof Range)) {
        return new Range(start, end, step);
      }
      invariant(step !== 0, 'Cannot step a Range by 0');
      start = start || 0;
      if (end === undefined) {
        end = Infinity;
      }
      step = step === undefined ? 1 : Math.abs(step);
      if (end < start) {
        step = -step;
      }
      this._start = start;
      this._end = end;
      this._step = step;
      this.size = Math.max(0, Math.ceil((end - start) / step - 1) + 1);
      if (this.size === 0) {
        if (EMPTY_RANGE) {
          return EMPTY_RANGE;
        }
        EMPTY_RANGE = this;
      }
    }

    Range.prototype.toString = function() {
      if (this.size === 0) {
        return 'Range []';
      }
      return 'Range [ ' +
        this._start + '...' + this._end +
        (this._step > 1 ? ' by ' + this._step : '') +
      ' ]';
    };

    Range.prototype.get = function(index, notSetValue) {
      return this.has(index) ?
        this._start + wrapIndex(this, index) * this._step :
        notSetValue;
    };

    Range.prototype.includes = function(searchValue) {
      var possibleIndex = (searchValue - this._start) / this._step;
      return possibleIndex >= 0 &&
        possibleIndex < this.size &&
        possibleIndex === Math.floor(possibleIndex);
    };

    Range.prototype.slice = function(begin, end) {
      if (wholeSlice(begin, end, this.size)) {
        return this;
      }
      begin = resolveBegin(begin, this.size);
      end = resolveEnd(end, this.size);
      if (end <= begin) {
        return new Range(0, 0);
      }
      return new Range(this.get(begin, this._end), this.get(end, this._end), this._step);
    };

    Range.prototype.indexOf = function(searchValue) {
      var offsetValue = searchValue - this._start;
      if (offsetValue % this._step === 0) {
        var index = offsetValue / this._step;
        if (index >= 0 && index < this.size) {
          return index
        }
      }
      return -1;
    };

    Range.prototype.lastIndexOf = function(searchValue) {
      return this.indexOf(searchValue);
    };

    Range.prototype.__iterate = function(fn, reverse) {
      var maxIndex = this.size - 1;
      var step = this._step;
      var value = reverse ? this._start + maxIndex * step : this._start;
      for (var ii = 0; ii <= maxIndex; ii++) {
        if (fn(value, ii, this) === false) {
          return ii + 1;
        }
        value += reverse ? -step : step;
      }
      return ii;
    };

    Range.prototype.__iterator = function(type, reverse) {
      var maxIndex = this.size - 1;
      var step = this._step;
      var value = reverse ? this._start + maxIndex * step : this._start;
      var ii = 0;
      return new Iterator(function()  {
        var v = value;
        value += reverse ? -step : step;
        return ii > maxIndex ? iteratorDone() : iteratorValue(type, ii++, v);
      });
    };

    Range.prototype.equals = function(other) {
      return other instanceof Range ?
        this._start === other._start &&
        this._end === other._end &&
        this._step === other._step :
        deepEqual(this, other);
    };


  var EMPTY_RANGE;

  createClass(Collection, Iterable);
    function Collection() {
      throw TypeError('Abstract');
    }


  createClass(KeyedCollection, Collection);function KeyedCollection() {}

  createClass(IndexedCollection, Collection);function IndexedCollection() {}

  createClass(SetCollection, Collection);function SetCollection() {}


  Collection.Keyed = KeyedCollection;
  Collection.Indexed = IndexedCollection;
  Collection.Set = SetCollection;

  var imul =
    typeof Math.imul === 'function' && Math.imul(0xffffffff, 2) === -2 ?
    Math.imul :
    function imul(a, b) {
      a = a | 0; // int
      b = b | 0; // int
      var c = a & 0xffff;
      var d = b & 0xffff;
      // Shift by 0 fixes the sign on the high part.
      return (c * d) + ((((a >>> 16) * d + c * (b >>> 16)) << 16) >>> 0) | 0; // int
    };

  // v8 has an optimization for storing 31-bit signed numbers.
  // Values which have either 00 or 11 as the high order bits qualify.
  // This function drops the highest order bit in a signed number, maintaining
  // the sign bit.
  function smi(i32) {
    return ((i32 >>> 1) & 0x40000000) | (i32 & 0xBFFFFFFF);
  }

  function hash(o) {
    if (o === false || o === null || o === undefined) {
      return 0;
    }
    if (typeof o.valueOf === 'function') {
      o = o.valueOf();
      if (o === false || o === null || o === undefined) {
        return 0;
      }
    }
    if (o === true) {
      return 1;
    }
    var type = typeof o;
    if (type === 'number') {
      var h = o | 0;
      if (h !== o) {
        h ^= o * 0xFFFFFFFF;
      }
      while (o > 0xFFFFFFFF) {
        o /= 0xFFFFFFFF;
        h ^= o;
      }
      return smi(h);
    }
    if (type === 'string') {
      return o.length > STRING_HASH_CACHE_MIN_STRLEN ? cachedHashString(o) : hashString(o);
    }
    if (typeof o.hashCode === 'function') {
      return o.hashCode();
    }
    if (type === 'object') {
      return hashJSObj(o);
    }
    if (typeof o.toString === 'function') {
      return hashString(o.toString());
    }
    throw new Error('Value type ' + type + ' cannot be hashed.');
  }

  function cachedHashString(string) {
    var hash = stringHashCache[string];
    if (hash === undefined) {
      hash = hashString(string);
      if (STRING_HASH_CACHE_SIZE === STRING_HASH_CACHE_MAX_SIZE) {
        STRING_HASH_CACHE_SIZE = 0;
        stringHashCache = {};
      }
      STRING_HASH_CACHE_SIZE++;
      stringHashCache[string] = hash;
    }
    return hash;
  }

  // http://jsperf.com/hashing-strings
  function hashString(string) {
    // This is the hash from JVM
    // The hash code for a string is computed as
    // s[0] * 31 ^ (n - 1) + s[1] * 31 ^ (n - 2) + ... + s[n - 1],
    // where s[i] is the ith character of the string and n is the length of
    // the string. We "mod" the result to make it between 0 (inclusive) and 2^31
    // (exclusive) by dropping high bits.
    var hash = 0;
    for (var ii = 0; ii < string.length; ii++) {
      hash = 31 * hash + string.charCodeAt(ii) | 0;
    }
    return smi(hash);
  }

  function hashJSObj(obj) {
    var hash;
    if (usingWeakMap) {
      hash = weakMap.get(obj);
      if (hash !== undefined) {
        return hash;
      }
    }

    hash = obj[UID_HASH_KEY];
    if (hash !== undefined) {
      return hash;
    }

    if (!canDefineProperty) {
      hash = obj.propertyIsEnumerable && obj.propertyIsEnumerable[UID_HASH_KEY];
      if (hash !== undefined) {
        return hash;
      }

      hash = getIENodeHash(obj);
      if (hash !== undefined) {
        return hash;
      }
    }

    hash = ++objHashUID;
    if (objHashUID & 0x40000000) {
      objHashUID = 0;
    }

    if (usingWeakMap) {
      weakMap.set(obj, hash);
    } else if (isExtensible !== undefined && isExtensible(obj) === false) {
      throw new Error('Non-extensible objects are not allowed as keys.');
    } else if (canDefineProperty) {
      Object.defineProperty(obj, UID_HASH_KEY, {
        'enumerable': false,
        'configurable': false,
        'writable': false,
        'value': hash
      });
    } else if (obj.propertyIsEnumerable !== undefined &&
               obj.propertyIsEnumerable === obj.constructor.prototype.propertyIsEnumerable) {
      // Since we can't define a non-enumerable property on the object
      // we'll hijack one of the less-used non-enumerable properties to
      // save our hash on it. Since this is a function it will not show up in
      // `JSON.stringify` which is what we want.
      obj.propertyIsEnumerable = function() {
        return this.constructor.prototype.propertyIsEnumerable.apply(this, arguments);
      };
      obj.propertyIsEnumerable[UID_HASH_KEY] = hash;
    } else if (obj.nodeType !== undefined) {
      // At this point we couldn't get the IE `uniqueID` to use as a hash
      // and we couldn't use a non-enumerable property to exploit the
      // dontEnum bug so we simply add the `UID_HASH_KEY` on the node
      // itself.
      obj[UID_HASH_KEY] = hash;
    } else {
      throw new Error('Unable to set a non-enumerable property on object.');
    }

    return hash;
  }

  // Get references to ES5 object methods.
  var isExtensible = Object.isExtensible;

  // True if Object.defineProperty works as expected. IE8 fails this test.
  var canDefineProperty = (function() {
    try {
      Object.defineProperty({}, '@', {});
      return true;
    } catch (e) {
      return false;
    }
  }());

  // IE has a `uniqueID` property on DOM nodes. We can construct the hash from it
  // and avoid memory leaks from the IE cloneNode bug.
  function getIENodeHash(node) {
    if (node && node.nodeType > 0) {
      switch (node.nodeType) {
        case 1: // Element
          return node.uniqueID;
        case 9: // Document
          return node.documentElement && node.documentElement.uniqueID;
      }
    }
  }

  // If possible, use a WeakMap.
  var usingWeakMap = typeof WeakMap === 'function';
  var weakMap;
  if (usingWeakMap) {
    weakMap = new WeakMap();
  }

  var objHashUID = 0;

  var UID_HASH_KEY = '__immutablehash__';
  if (typeof Symbol === 'function') {
    UID_HASH_KEY = Symbol(UID_HASH_KEY);
  }

  var STRING_HASH_CACHE_MIN_STRLEN = 16;
  var STRING_HASH_CACHE_MAX_SIZE = 255;
  var STRING_HASH_CACHE_SIZE = 0;
  var stringHashCache = {};

  function assertNotInfinite(size) {
    invariant(
      size !== Infinity,
      'Cannot perform this action with an infinite size.'
    );
  }

  createClass(Map, KeyedCollection);

    // @pragma Construction

    function Map(value) {
      return value === null || value === undefined ? emptyMap() :
        isMap(value) && !isOrdered(value) ? value :
        emptyMap().withMutations(function(map ) {
          var iter = KeyedIterable(value);
          assertNotInfinite(iter.size);
          iter.forEach(function(v, k)  {return map.set(k, v)});
        });
    }

    Map.prototype.toString = function() {
      return this.__toString('Map {', '}');
    };

    // @pragma Access

    Map.prototype.get = function(k, notSetValue) {
      return this._root ?
        this._root.get(0, undefined, k, notSetValue) :
        notSetValue;
    };

    // @pragma Modification

    Map.prototype.set = function(k, v) {
      return updateMap(this, k, v);
    };

    Map.prototype.setIn = function(keyPath, v) {
      return this.updateIn(keyPath, NOT_SET, function()  {return v});
    };

    Map.prototype.remove = function(k) {
      return updateMap(this, k, NOT_SET);
    };

    Map.prototype.deleteIn = function(keyPath) {
      return this.updateIn(keyPath, function()  {return NOT_SET});
    };

    Map.prototype.update = function(k, notSetValue, updater) {
      return arguments.length === 1 ?
        k(this) :
        this.updateIn([k], notSetValue, updater);
    };

    Map.prototype.updateIn = function(keyPath, notSetValue, updater) {
      if (!updater) {
        updater = notSetValue;
        notSetValue = undefined;
      }
      var updatedValue = updateInDeepMap(
        this,
        forceIterator(keyPath),
        notSetValue,
        updater
      );
      return updatedValue === NOT_SET ? undefined : updatedValue;
    };

    Map.prototype.clear = function() {
      if (this.size === 0) {
        return this;
      }
      if (this.__ownerID) {
        this.size = 0;
        this._root = null;
        this.__hash = undefined;
        this.__altered = true;
        return this;
      }
      return emptyMap();
    };

    // @pragma Composition

    Map.prototype.merge = function(/*...iters*/) {
      return mergeIntoMapWith(this, undefined, arguments);
    };

    Map.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1);
      return mergeIntoMapWith(this, merger, iters);
    };

    Map.prototype.mergeIn = function(keyPath) {var iters = SLICE$0.call(arguments, 1);
      return this.updateIn(
        keyPath,
        emptyMap(),
        function(m ) {return typeof m.merge === 'function' ?
          m.merge.apply(m, iters) :
          iters[iters.length - 1]}
      );
    };

    Map.prototype.mergeDeep = function(/*...iters*/) {
      return mergeIntoMapWith(this, deepMerger, arguments);
    };

    Map.prototype.mergeDeepWith = function(merger) {var iters = SLICE$0.call(arguments, 1);
      return mergeIntoMapWith(this, deepMergerWith(merger), iters);
    };

    Map.prototype.mergeDeepIn = function(keyPath) {var iters = SLICE$0.call(arguments, 1);
      return this.updateIn(
        keyPath,
        emptyMap(),
        function(m ) {return typeof m.mergeDeep === 'function' ?
          m.mergeDeep.apply(m, iters) :
          iters[iters.length - 1]}
      );
    };

    Map.prototype.sort = function(comparator) {
      // Late binding
      return OrderedMap(sortFactory(this, comparator));
    };

    Map.prototype.sortBy = function(mapper, comparator) {
      // Late binding
      return OrderedMap(sortFactory(this, comparator, mapper));
    };

    // @pragma Mutability

    Map.prototype.withMutations = function(fn) {
      var mutable = this.asMutable();
      fn(mutable);
      return mutable.wasAltered() ? mutable.__ensureOwner(this.__ownerID) : this;
    };

    Map.prototype.asMutable = function() {
      return this.__ownerID ? this : this.__ensureOwner(new OwnerID());
    };

    Map.prototype.asImmutable = function() {
      return this.__ensureOwner();
    };

    Map.prototype.wasAltered = function() {
      return this.__altered;
    };

    Map.prototype.__iterator = function(type, reverse) {
      return new MapIterator(this, type, reverse);
    };

    Map.prototype.__iterate = function(fn, reverse) {var this$0 = this;
      var iterations = 0;
      this._root && this._root.iterate(function(entry ) {
        iterations++;
        return fn(entry[1], entry[0], this$0);
      }, reverse);
      return iterations;
    };

    Map.prototype.__ensureOwner = function(ownerID) {
      if (ownerID === this.__ownerID) {
        return this;
      }
      if (!ownerID) {
        this.__ownerID = ownerID;
        this.__altered = false;
        return this;
      }
      return makeMap(this.size, this._root, ownerID, this.__hash);
    };


  function isMap(maybeMap) {
    return !!(maybeMap && maybeMap[IS_MAP_SENTINEL]);
  }

  Map.isMap = isMap;

  var IS_MAP_SENTINEL = '@@__IMMUTABLE_MAP__@@';

  var MapPrototype = Map.prototype;
  MapPrototype[IS_MAP_SENTINEL] = true;
  MapPrototype[DELETE] = MapPrototype.remove;
  MapPrototype.removeIn = MapPrototype.deleteIn;


  // #pragma Trie Nodes



    function ArrayMapNode(ownerID, entries) {
      this.ownerID = ownerID;
      this.entries = entries;
    }

    ArrayMapNode.prototype.get = function(shift, keyHash, key, notSetValue) {
      var entries = this.entries;
      for (var ii = 0, len = entries.length; ii < len; ii++) {
        if (is(key, entries[ii][0])) {
          return entries[ii][1];
        }
      }
      return notSetValue;
    };

    ArrayMapNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {
      var removed = value === NOT_SET;

      var entries = this.entries;
      var idx = 0;
      for (var len = entries.length; idx < len; idx++) {
        if (is(key, entries[idx][0])) {
          break;
        }
      }
      var exists = idx < len;

      if (exists ? entries[idx][1] === value : removed) {
        return this;
      }

      SetRef(didAlter);
      (removed || !exists) && SetRef(didChangeSize);

      if (removed && entries.length === 1) {
        return; // undefined
      }

      if (!exists && !removed && entries.length >= MAX_ARRAY_MAP_SIZE) {
        return createNodes(ownerID, entries, key, value);
      }

      var isEditable = ownerID && ownerID === this.ownerID;
      var newEntries = isEditable ? entries : arrCopy(entries);

      if (exists) {
        if (removed) {
          idx === len - 1 ? newEntries.pop() : (newEntries[idx] = newEntries.pop());
        } else {
          newEntries[idx] = [key, value];
        }
      } else {
        newEntries.push([key, value]);
      }

      if (isEditable) {
        this.entries = newEntries;
        return this;
      }

      return new ArrayMapNode(ownerID, newEntries);
    };




    function BitmapIndexedNode(ownerID, bitmap, nodes) {
      this.ownerID = ownerID;
      this.bitmap = bitmap;
      this.nodes = nodes;
    }

    BitmapIndexedNode.prototype.get = function(shift, keyHash, key, notSetValue) {
      if (keyHash === undefined) {
        keyHash = hash(key);
      }
      var bit = (1 << ((shift === 0 ? keyHash : keyHash >>> shift) & MASK));
      var bitmap = this.bitmap;
      return (bitmap & bit) === 0 ? notSetValue :
        this.nodes[popCount(bitmap & (bit - 1))].get(shift + SHIFT, keyHash, key, notSetValue);
    };

    BitmapIndexedNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {
      if (keyHash === undefined) {
        keyHash = hash(key);
      }
      var keyHashFrag = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;
      var bit = 1 << keyHashFrag;
      var bitmap = this.bitmap;
      var exists = (bitmap & bit) !== 0;

      if (!exists && value === NOT_SET) {
        return this;
      }

      var idx = popCount(bitmap & (bit - 1));
      var nodes = this.nodes;
      var node = exists ? nodes[idx] : undefined;
      var newNode = updateNode(node, ownerID, shift + SHIFT, keyHash, key, value, didChangeSize, didAlter);

      if (newNode === node) {
        return this;
      }

      if (!exists && newNode && nodes.length >= MAX_BITMAP_INDEXED_SIZE) {
        return expandNodes(ownerID, nodes, bitmap, keyHashFrag, newNode);
      }

      if (exists && !newNode && nodes.length === 2 && isLeafNode(nodes[idx ^ 1])) {
        return nodes[idx ^ 1];
      }

      if (exists && newNode && nodes.length === 1 && isLeafNode(newNode)) {
        return newNode;
      }

      var isEditable = ownerID && ownerID === this.ownerID;
      var newBitmap = exists ? newNode ? bitmap : bitmap ^ bit : bitmap | bit;
      var newNodes = exists ? newNode ?
        setIn(nodes, idx, newNode, isEditable) :
        spliceOut(nodes, idx, isEditable) :
        spliceIn(nodes, idx, newNode, isEditable);

      if (isEditable) {
        this.bitmap = newBitmap;
        this.nodes = newNodes;
        return this;
      }

      return new BitmapIndexedNode(ownerID, newBitmap, newNodes);
    };




    function HashArrayMapNode(ownerID, count, nodes) {
      this.ownerID = ownerID;
      this.count = count;
      this.nodes = nodes;
    }

    HashArrayMapNode.prototype.get = function(shift, keyHash, key, notSetValue) {
      if (keyHash === undefined) {
        keyHash = hash(key);
      }
      var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;
      var node = this.nodes[idx];
      return node ? node.get(shift + SHIFT, keyHash, key, notSetValue) : notSetValue;
    };

    HashArrayMapNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {
      if (keyHash === undefined) {
        keyHash = hash(key);
      }
      var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;
      var removed = value === NOT_SET;
      var nodes = this.nodes;
      var node = nodes[idx];

      if (removed && !node) {
        return this;
      }

      var newNode = updateNode(node, ownerID, shift + SHIFT, keyHash, key, value, didChangeSize, didAlter);
      if (newNode === node) {
        return this;
      }

      var newCount = this.count;
      if (!node) {
        newCount++;
      } else if (!newNode) {
        newCount--;
        if (newCount < MIN_HASH_ARRAY_MAP_SIZE) {
          return packNodes(ownerID, nodes, newCount, idx);
        }
      }

      var isEditable = ownerID && ownerID === this.ownerID;
      var newNodes = setIn(nodes, idx, newNode, isEditable);

      if (isEditable) {
        this.count = newCount;
        this.nodes = newNodes;
        return this;
      }

      return new HashArrayMapNode(ownerID, newCount, newNodes);
    };




    function HashCollisionNode(ownerID, keyHash, entries) {
      this.ownerID = ownerID;
      this.keyHash = keyHash;
      this.entries = entries;
    }

    HashCollisionNode.prototype.get = function(shift, keyHash, key, notSetValue) {
      var entries = this.entries;
      for (var ii = 0, len = entries.length; ii < len; ii++) {
        if (is(key, entries[ii][0])) {
          return entries[ii][1];
        }
      }
      return notSetValue;
    };

    HashCollisionNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {
      if (keyHash === undefined) {
        keyHash = hash(key);
      }

      var removed = value === NOT_SET;

      if (keyHash !== this.keyHash) {
        if (removed) {
          return this;
        }
        SetRef(didAlter);
        SetRef(didChangeSize);
        return mergeIntoNode(this, ownerID, shift, keyHash, [key, value]);
      }

      var entries = this.entries;
      var idx = 0;
      for (var len = entries.length; idx < len; idx++) {
        if (is(key, entries[idx][0])) {
          break;
        }
      }
      var exists = idx < len;

      if (exists ? entries[idx][1] === value : removed) {
        return this;
      }

      SetRef(didAlter);
      (removed || !exists) && SetRef(didChangeSize);

      if (removed && len === 2) {
        return new ValueNode(ownerID, this.keyHash, entries[idx ^ 1]);
      }

      var isEditable = ownerID && ownerID === this.ownerID;
      var newEntries = isEditable ? entries : arrCopy(entries);

      if (exists) {
        if (removed) {
          idx === len - 1 ? newEntries.pop() : (newEntries[idx] = newEntries.pop());
        } else {
          newEntries[idx] = [key, value];
        }
      } else {
        newEntries.push([key, value]);
      }

      if (isEditable) {
        this.entries = newEntries;
        return this;
      }

      return new HashCollisionNode(ownerID, this.keyHash, newEntries);
    };




    function ValueNode(ownerID, keyHash, entry) {
      this.ownerID = ownerID;
      this.keyHash = keyHash;
      this.entry = entry;
    }

    ValueNode.prototype.get = function(shift, keyHash, key, notSetValue) {
      return is(key, this.entry[0]) ? this.entry[1] : notSetValue;
    };

    ValueNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {
      var removed = value === NOT_SET;
      var keyMatch = is(key, this.entry[0]);
      if (keyMatch ? value === this.entry[1] : removed) {
        return this;
      }

      SetRef(didAlter);

      if (removed) {
        SetRef(didChangeSize);
        return; // undefined
      }

      if (keyMatch) {
        if (ownerID && ownerID === this.ownerID) {
          this.entry[1] = value;
          return this;
        }
        return new ValueNode(ownerID, this.keyHash, [key, value]);
      }

      SetRef(didChangeSize);
      return mergeIntoNode(this, ownerID, shift, hash(key), [key, value]);
    };



  // #pragma Iterators

  ArrayMapNode.prototype.iterate =
  HashCollisionNode.prototype.iterate = function (fn, reverse) {
    var entries = this.entries;
    for (var ii = 0, maxIndex = entries.length - 1; ii <= maxIndex; ii++) {
      if (fn(entries[reverse ? maxIndex - ii : ii]) === false) {
        return false;
      }
    }
  }

  BitmapIndexedNode.prototype.iterate =
  HashArrayMapNode.prototype.iterate = function (fn, reverse) {
    var nodes = this.nodes;
    for (var ii = 0, maxIndex = nodes.length - 1; ii <= maxIndex; ii++) {
      var node = nodes[reverse ? maxIndex - ii : ii];
      if (node && node.iterate(fn, reverse) === false) {
        return false;
      }
    }
  }

  ValueNode.prototype.iterate = function (fn, reverse) {
    return fn(this.entry);
  }

  createClass(MapIterator, Iterator);

    function MapIterator(map, type, reverse) {
      this._type = type;
      this._reverse = reverse;
      this._stack = map._root && mapIteratorFrame(map._root);
    }

    MapIterator.prototype.next = function() {
      var type = this._type;
      var stack = this._stack;
      while (stack) {
        var node = stack.node;
        var index = stack.index++;
        var maxIndex;
        if (node.entry) {
          if (index === 0) {
            return mapIteratorValue(type, node.entry);
          }
        } else if (node.entries) {
          maxIndex = node.entries.length - 1;
          if (index <= maxIndex) {
            return mapIteratorValue(type, node.entries[this._reverse ? maxIndex - index : index]);
          }
        } else {
          maxIndex = node.nodes.length - 1;
          if (index <= maxIndex) {
            var subNode = node.nodes[this._reverse ? maxIndex - index : index];
            if (subNode) {
              if (subNode.entry) {
                return mapIteratorValue(type, subNode.entry);
              }
              stack = this._stack = mapIteratorFrame(subNode, stack);
            }
            continue;
          }
        }
        stack = this._stack = this._stack.__prev;
      }
      return iteratorDone();
    };


  function mapIteratorValue(type, entry) {
    return iteratorValue(type, entry[0], entry[1]);
  }

  function mapIteratorFrame(node, prev) {
    return {
      node: node,
      index: 0,
      __prev: prev
    };
  }

  function makeMap(size, root, ownerID, hash) {
    var map = Object.create(MapPrototype);
    map.size = size;
    map._root = root;
    map.__ownerID = ownerID;
    map.__hash = hash;
    map.__altered = false;
    return map;
  }

  var EMPTY_MAP;
  function emptyMap() {
    return EMPTY_MAP || (EMPTY_MAP = makeMap(0));
  }

  function updateMap(map, k, v) {
    var newRoot;
    var newSize;
    if (!map._root) {
      if (v === NOT_SET) {
        return map;
      }
      newSize = 1;
      newRoot = new ArrayMapNode(map.__ownerID, [[k, v]]);
    } else {
      var didChangeSize = MakeRef(CHANGE_LENGTH);
      var didAlter = MakeRef(DID_ALTER);
      newRoot = updateNode(map._root, map.__ownerID, 0, undefined, k, v, didChangeSize, didAlter);
      if (!didAlter.value) {
        return map;
      }
      newSize = map.size + (didChangeSize.value ? v === NOT_SET ? -1 : 1 : 0);
    }
    if (map.__ownerID) {
      map.size = newSize;
      map._root = newRoot;
      map.__hash = undefined;
      map.__altered = true;
      return map;
    }
    return newRoot ? makeMap(newSize, newRoot) : emptyMap();
  }

  function updateNode(node, ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {
    if (!node) {
      if (value === NOT_SET) {
        return node;
      }
      SetRef(didAlter);
      SetRef(didChangeSize);
      return new ValueNode(ownerID, keyHash, [key, value]);
    }
    return node.update(ownerID, shift, keyHash, key, value, didChangeSize, didAlter);
  }

  function isLeafNode(node) {
    return node.constructor === ValueNode || node.constructor === HashCollisionNode;
  }

  function mergeIntoNode(node, ownerID, shift, keyHash, entry) {
    if (node.keyHash === keyHash) {
      return new HashCollisionNode(ownerID, keyHash, [node.entry, entry]);
    }

    var idx1 = (shift === 0 ? node.keyHash : node.keyHash >>> shift) & MASK;
    var idx2 = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;

    var newNode;
    var nodes = idx1 === idx2 ?
      [mergeIntoNode(node, ownerID, shift + SHIFT, keyHash, entry)] :
      ((newNode = new ValueNode(ownerID, keyHash, entry)), idx1 < idx2 ? [node, newNode] : [newNode, node]);

    return new BitmapIndexedNode(ownerID, (1 << idx1) | (1 << idx2), nodes);
  }

  function createNodes(ownerID, entries, key, value) {
    if (!ownerID) {
      ownerID = new OwnerID();
    }
    var node = new ValueNode(ownerID, hash(key), [key, value]);
    for (var ii = 0; ii < entries.length; ii++) {
      var entry = entries[ii];
      node = node.update(ownerID, 0, undefined, entry[0], entry[1]);
    }
    return node;
  }

  function packNodes(ownerID, nodes, count, excluding) {
    var bitmap = 0;
    var packedII = 0;
    var packedNodes = new Array(count);
    for (var ii = 0, bit = 1, len = nodes.length; ii < len; ii++, bit <<= 1) {
      var node = nodes[ii];
      if (node !== undefined && ii !== excluding) {
        bitmap |= bit;
        packedNodes[packedII++] = node;
      }
    }
    return new BitmapIndexedNode(ownerID, bitmap, packedNodes);
  }

  function expandNodes(ownerID, nodes, bitmap, including, node) {
    var count = 0;
    var expandedNodes = new Array(SIZE);
    for (var ii = 0; bitmap !== 0; ii++, bitmap >>>= 1) {
      expandedNodes[ii] = bitmap & 1 ? nodes[count++] : undefined;
    }
    expandedNodes[including] = node;
    return new HashArrayMapNode(ownerID, count + 1, expandedNodes);
  }

  function mergeIntoMapWith(map, merger, iterables) {
    var iters = [];
    for (var ii = 0; ii < iterables.length; ii++) {
      var value = iterables[ii];
      var iter = KeyedIterable(value);
      if (!isIterable(value)) {
        iter = iter.map(function(v ) {return fromJS(v)});
      }
      iters.push(iter);
    }
    return mergeIntoCollectionWith(map, merger, iters);
  }

  function deepMerger(existing, value, key) {
    return existing && existing.mergeDeep && isIterable(value) ?
      existing.mergeDeep(value) :
      is(existing, value) ? existing : value;
  }

  function deepMergerWith(merger) {
    return function(existing, value, key)  {
      if (existing && existing.mergeDeepWith && isIterable(value)) {
        return existing.mergeDeepWith(merger, value);
      }
      var nextValue = merger(existing, value, key);
      return is(existing, nextValue) ? existing : nextValue;
    };
  }

  function mergeIntoCollectionWith(collection, merger, iters) {
    iters = iters.filter(function(x ) {return x.size !== 0});
    if (iters.length === 0) {
      return collection;
    }
    if (collection.size === 0 && !collection.__ownerID && iters.length === 1) {
      return collection.constructor(iters[0]);
    }
    return collection.withMutations(function(collection ) {
      var mergeIntoMap = merger ?
        function(value, key)  {
          collection.update(key, NOT_SET, function(existing )
            {return existing === NOT_SET ? value : merger(existing, value, key)}
          );
        } :
        function(value, key)  {
          collection.set(key, value);
        }
      for (var ii = 0; ii < iters.length; ii++) {
        iters[ii].forEach(mergeIntoMap);
      }
    });
  }

  function updateInDeepMap(existing, keyPathIter, notSetValue, updater) {
    var isNotSet = existing === NOT_SET;
    var step = keyPathIter.next();
    if (step.done) {
      var existingValue = isNotSet ? notSetValue : existing;
      var newValue = updater(existingValue);
      return newValue === existingValue ? existing : newValue;
    }
    invariant(
      isNotSet || (existing && existing.set),
      'invalid keyPath'
    );
    var key = step.value;
    var nextExisting = isNotSet ? NOT_SET : existing.get(key, NOT_SET);
    var nextUpdated = updateInDeepMap(
      nextExisting,
      keyPathIter,
      notSetValue,
      updater
    );
    return nextUpdated === nextExisting ? existing :
      nextUpdated === NOT_SET ? existing.remove(key) :
      (isNotSet ? emptyMap() : existing).set(key, nextUpdated);
  }

  function popCount(x) {
    x = x - ((x >> 1) & 0x55555555);
    x = (x & 0x33333333) + ((x >> 2) & 0x33333333);
    x = (x + (x >> 4)) & 0x0f0f0f0f;
    x = x + (x >> 8);
    x = x + (x >> 16);
    return x & 0x7f;
  }

  function setIn(array, idx, val, canEdit) {
    var newArray = canEdit ? array : arrCopy(array);
    newArray[idx] = val;
    return newArray;
  }

  function spliceIn(array, idx, val, canEdit) {
    var newLen = array.length + 1;
    if (canEdit && idx + 1 === newLen) {
      array[idx] = val;
      return array;
    }
    var newArray = new Array(newLen);
    var after = 0;
    for (var ii = 0; ii < newLen; ii++) {
      if (ii === idx) {
        newArray[ii] = val;
        after = -1;
      } else {
        newArray[ii] = array[ii + after];
      }
    }
    return newArray;
  }

  function spliceOut(array, idx, canEdit) {
    var newLen = array.length - 1;
    if (canEdit && idx === newLen) {
      array.pop();
      return array;
    }
    var newArray = new Array(newLen);
    var after = 0;
    for (var ii = 0; ii < newLen; ii++) {
      if (ii === idx) {
        after = 1;
      }
      newArray[ii] = array[ii + after];
    }
    return newArray;
  }

  var MAX_ARRAY_MAP_SIZE = SIZE / 4;
  var MAX_BITMAP_INDEXED_SIZE = SIZE / 2;
  var MIN_HASH_ARRAY_MAP_SIZE = SIZE / 4;

  createClass(List, IndexedCollection);

    // @pragma Construction

    function List(value) {
      var empty = emptyList();
      if (value === null || value === undefined) {
        return empty;
      }
      if (isList(value)) {
        return value;
      }
      var iter = IndexedIterable(value);
      var size = iter.size;
      if (size === 0) {
        return empty;
      }
      assertNotInfinite(size);
      if (size > 0 && size < SIZE) {
        return makeList(0, size, SHIFT, null, new VNode(iter.toArray()));
      }
      return empty.withMutations(function(list ) {
        list.setSize(size);
        iter.forEach(function(v, i)  {return list.set(i, v)});
      });
    }

    List.of = function(/*...values*/) {
      return this(arguments);
    };

    List.prototype.toString = function() {
      return this.__toString('List [', ']');
    };

    // @pragma Access

    List.prototype.get = function(index, notSetValue) {
      index = wrapIndex(this, index);
      if (index >= 0 && index < this.size) {
        index += this._origin;
        var node = listNodeFor(this, index);
        return node && node.array[index & MASK];
      }
      return notSetValue;
    };

    // @pragma Modification

    List.prototype.set = function(index, value) {
      return updateList(this, index, value);
    };

    List.prototype.remove = function(index) {
      return !this.has(index) ? this :
        index === 0 ? this.shift() :
        index === this.size - 1 ? this.pop() :
        this.splice(index, 1);
    };

    List.prototype.insert = function(index, value) {
      return this.splice(index, 0, value);
    };

    List.prototype.clear = function() {
      if (this.size === 0) {
        return this;
      }
      if (this.__ownerID) {
        this.size = this._origin = this._capacity = 0;
        this._level = SHIFT;
        this._root = this._tail = null;
        this.__hash = undefined;
        this.__altered = true;
        return this;
      }
      return emptyList();
    };

    List.prototype.push = function(/*...values*/) {
      var values = arguments;
      var oldSize = this.size;
      return this.withMutations(function(list ) {
        setListBounds(list, 0, oldSize + values.length);
        for (var ii = 0; ii < values.length; ii++) {
          list.set(oldSize + ii, values[ii]);
        }
      });
    };

    List.prototype.pop = function() {
      return setListBounds(this, 0, -1);
    };

    List.prototype.unshift = function(/*...values*/) {
      var values = arguments;
      return this.withMutations(function(list ) {
        setListBounds(list, -values.length);
        for (var ii = 0; ii < values.length; ii++) {
          list.set(ii, values[ii]);
        }
      });
    };

    List.prototype.shift = function() {
      return setListBounds(this, 1);
    };

    // @pragma Composition

    List.prototype.merge = function(/*...iters*/) {
      return mergeIntoListWith(this, undefined, arguments);
    };

    List.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1);
      return mergeIntoListWith(this, merger, iters);
    };

    List.prototype.mergeDeep = function(/*...iters*/) {
      return mergeIntoListWith(this, deepMerger, arguments);
    };

    List.prototype.mergeDeepWith = function(merger) {var iters = SLICE$0.call(arguments, 1);
      return mergeIntoListWith(this, deepMergerWith(merger), iters);
    };

    List.prototype.setSize = function(size) {
      return setListBounds(this, 0, size);
    };

    // @pragma Iteration

    List.prototype.slice = function(begin, end) {
      var size = this.size;
      if (wholeSlice(begin, end, size)) {
        return this;
      }
      return setListBounds(
        this,
        resolveBegin(begin, size),
        resolveEnd(end, size)
      );
    };

    List.prototype.__iterator = function(type, reverse) {
      var index = 0;
      var values = iterateList(this, reverse);
      return new Iterator(function()  {
        var value = values();
        return value === DONE ?
          iteratorDone() :
          iteratorValue(type, index++, value);
      });
    };

    List.prototype.__iterate = function(fn, reverse) {
      var index = 0;
      var values = iterateList(this, reverse);
      var value;
      while ((value = values()) !== DONE) {
        if (fn(value, index++, this) === false) {
          break;
        }
      }
      return index;
    };

    List.prototype.__ensureOwner = function(ownerID) {
      if (ownerID === this.__ownerID) {
        return this;
      }
      if (!ownerID) {
        this.__ownerID = ownerID;
        return this;
      }
      return makeList(this._origin, this._capacity, this._level, this._root, this._tail, ownerID, this.__hash);
    };


  function isList(maybeList) {
    return !!(maybeList && maybeList[IS_LIST_SENTINEL]);
  }

  List.isList = isList;

  var IS_LIST_SENTINEL = '@@__IMMUTABLE_LIST__@@';

  var ListPrototype = List.prototype;
  ListPrototype[IS_LIST_SENTINEL] = true;
  ListPrototype[DELETE] = ListPrototype.remove;
  ListPrototype.setIn = MapPrototype.setIn;
  ListPrototype.deleteIn =
  ListPrototype.removeIn = MapPrototype.removeIn;
  ListPrototype.update = MapPrototype.update;
  ListPrototype.updateIn = MapPrototype.updateIn;
  ListPrototype.mergeIn = MapPrototype.mergeIn;
  ListPrototype.mergeDeepIn = MapPrototype.mergeDeepIn;
  ListPrototype.withMutations = MapPrototype.withMutations;
  ListPrototype.asMutable = MapPrototype.asMutable;
  ListPrototype.asImmutable = MapPrototype.asImmutable;
  ListPrototype.wasAltered = MapPrototype.wasAltered;



    function VNode(array, ownerID) {
      this.array = array;
      this.ownerID = ownerID;
    }

    // TODO: seems like these methods are very similar

    VNode.prototype.removeBefore = function(ownerID, level, index) {
      if (index === level ? 1 << level :  false || this.array.length === 0) {
        return this;
      }
      var originIndex = (index >>> level) & MASK;
      if (originIndex >= this.array.length) {
        return new VNode([], ownerID);
      }
      var removingFirst = originIndex === 0;
      var newChild;
      if (level > 0) {
        var oldChild = this.array[originIndex];
        newChild = oldChild && oldChild.removeBefore(ownerID, level - SHIFT, index);
        if (newChild === oldChild && removingFirst) {
          return this;
        }
      }
      if (removingFirst && !newChild) {
        return this;
      }
      var editable = editableVNode(this, ownerID);
      if (!removingFirst) {
        for (var ii = 0; ii < originIndex; ii++) {
          editable.array[ii] = undefined;
        }
      }
      if (newChild) {
        editable.array[originIndex] = newChild;
      }
      return editable;
    };

    VNode.prototype.removeAfter = function(ownerID, level, index) {
      if (index === (level ? 1 << level : 0) || this.array.length === 0) {
        return this;
      }
      var sizeIndex = ((index - 1) >>> level) & MASK;
      if (sizeIndex >= this.array.length) {
        return this;
      }

      var newChild;
      if (level > 0) {
        var oldChild = this.array[sizeIndex];
        newChild = oldChild && oldChild.removeAfter(ownerID, level - SHIFT, index);
        if (newChild === oldChild && sizeIndex === this.array.length - 1) {
          return this;
        }
      }

      var editable = editableVNode(this, ownerID);
      editable.array.splice(sizeIndex + 1);
      if (newChild) {
        editable.array[sizeIndex] = newChild;
      }
      return editable;
    };



  var DONE = {};

  function iterateList(list, reverse) {
    var left = list._origin;
    var right = list._capacity;
    var tailPos = getTailOffset(right);
    var tail = list._tail;

    return iterateNodeOrLeaf(list._root, list._level, 0);

    function iterateNodeOrLeaf(node, level, offset) {
      return level === 0 ?
        iterateLeaf(node, offset) :
        iterateNode(node, level, offset);
    }

    function iterateLeaf(node, offset) {
      var array = offset === tailPos ? tail && tail.array : node && node.array;
      var from = offset > left ? 0 : left - offset;
      var to = right - offset;
      if (to > SIZE) {
        to = SIZE;
      }
      return function()  {
        if (from === to) {
          return DONE;
        }
        var idx = reverse ? --to : from++;
        return array && array[idx];
      };
    }

    function iterateNode(node, level, offset) {
      var values;
      var array = node && node.array;
      var from = offset > left ? 0 : (left - offset) >> level;
      var to = ((right - offset) >> level) + 1;
      if (to > SIZE) {
        to = SIZE;
      }
      return function()  {
        do {
          if (values) {
            var value = values();
            if (value !== DONE) {
              return value;
            }
            values = null;
          }
          if (from === to) {
            return DONE;
          }
          var idx = reverse ? --to : from++;
          values = iterateNodeOrLeaf(
            array && array[idx], level - SHIFT, offset + (idx << level)
          );
        } while (true);
      };
    }
  }

  function makeList(origin, capacity, level, root, tail, ownerID, hash) {
    var list = Object.create(ListPrototype);
    list.size = capacity - origin;
    list._origin = origin;
    list._capacity = capacity;
    list._level = level;
    list._root = root;
    list._tail = tail;
    list.__ownerID = ownerID;
    list.__hash = hash;
    list.__altered = false;
    return list;
  }

  var EMPTY_LIST;
  function emptyList() {
    return EMPTY_LIST || (EMPTY_LIST = makeList(0, 0, SHIFT));
  }

  function updateList(list, index, value) {
    index = wrapIndex(list, index);

    if (index !== index) {
      return list;
    }

    if (index >= list.size || index < 0) {
      return list.withMutations(function(list ) {
        index < 0 ?
          setListBounds(list, index).set(0, value) :
          setListBounds(list, 0, index + 1).set(index, value)
      });
    }

    index += list._origin;

    var newTail = list._tail;
    var newRoot = list._root;
    var didAlter = MakeRef(DID_ALTER);
    if (index >= getTailOffset(list._capacity)) {
      newTail = updateVNode(newTail, list.__ownerID, 0, index, value, didAlter);
    } else {
      newRoot = updateVNode(newRoot, list.__ownerID, list._level, index, value, didAlter);
    }

    if (!didAlter.value) {
      return list;
    }

    if (list.__ownerID) {
      list._root = newRoot;
      list._tail = newTail;
      list.__hash = undefined;
      list.__altered = true;
      return list;
    }
    return makeList(list._origin, list._capacity, list._level, newRoot, newTail);
  }

  function updateVNode(node, ownerID, level, index, value, didAlter) {
    var idx = (index >>> level) & MASK;
    var nodeHas = node && idx < node.array.length;
    if (!nodeHas && value === undefined) {
      return node;
    }

    var newNode;

    if (level > 0) {
      var lowerNode = node && node.array[idx];
      var newLowerNode = updateVNode(lowerNode, ownerID, level - SHIFT, index, value, didAlter);
      if (newLowerNode === lowerNode) {
        return node;
      }
      newNode = editableVNode(node, ownerID);
      newNode.array[idx] = newLowerNode;
      return newNode;
    }

    if (nodeHas && node.array[idx] === value) {
      return node;
    }

    SetRef(didAlter);

    newNode = editableVNode(node, ownerID);
    if (value === undefined && idx === newNode.array.length - 1) {
      newNode.array.pop();
    } else {
      newNode.array[idx] = value;
    }
    return newNode;
  }

  function editableVNode(node, ownerID) {
    if (ownerID && node && ownerID === node.ownerID) {
      return node;
    }
    return new VNode(node ? node.array.slice() : [], ownerID);
  }

  function listNodeFor(list, rawIndex) {
    if (rawIndex >= getTailOffset(list._capacity)) {
      return list._tail;
    }
    if (rawIndex < 1 << (list._level + SHIFT)) {
      var node = list._root;
      var level = list._level;
      while (node && level > 0) {
        node = node.array[(rawIndex >>> level) & MASK];
        level -= SHIFT;
      }
      return node;
    }
  }

  function setListBounds(list, begin, end) {
    // Sanitize begin & end using this shorthand for ToInt32(argument)
    // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32
    if (begin !== undefined) {
      begin = begin | 0;
    }
    if (end !== undefined) {
      end = end | 0;
    }
    var owner = list.__ownerID || new OwnerID();
    var oldOrigin = list._origin;
    var oldCapacity = list._capacity;
    var newOrigin = oldOrigin + begin;
    var newCapacity = end === undefined ? oldCapacity : end < 0 ? oldCapacity + end : oldOrigin + end;
    if (newOrigin === oldOrigin && newCapacity === oldCapacity) {
      return list;
    }

    // If it's going to end after it starts, it's empty.
    if (newOrigin >= newCapacity) {
      return list.clear();
    }

    var newLevel = list._level;
    var newRoot = list._root;

    // New origin might need creating a higher root.
    var offsetShift = 0;
    while (newOrigin + offsetShift < 0) {
      newRoot = new VNode(newRoot && newRoot.array.length ? [undefined, newRoot] : [], owner);
      newLevel += SHIFT;
      offsetShift += 1 << newLevel;
    }
    if (offsetShift) {
      newOrigin += offsetShift;
      oldOrigin += offsetShift;
      newCapacity += offsetShift;
      oldCapacity += offsetShift;
    }

    var oldTailOffset = getTailOffset(oldCapacity);
    var newTailOffset = getTailOffset(newCapacity);

    // New size might need creating a higher root.
    while (newTailOffset >= 1 << (newLevel + SHIFT)) {
      newRoot = new VNode(newRoot && newRoot.array.length ? [newRoot] : [], owner);
      newLevel += SHIFT;
    }

    // Locate or create the new tail.
    var oldTail = list._tail;
    var newTail = newTailOffset < oldTailOffset ?
      listNodeFor(list, newCapacity - 1) :
      newTailOffset > oldTailOffset ? new VNode([], owner) : oldTail;

    // Merge Tail into tree.
    if (oldTail && newTailOffset > oldTailOffset && newOrigin < oldCapacity && oldTail.array.length) {
      newRoot = editableVNode(newRoot, owner);
      var node = newRoot;
      for (var level = newLevel; level > SHIFT; level -= SHIFT) {
        var idx = (oldTailOffset >>> level) & MASK;
        node = node.array[idx] = editableVNode(node.array[idx], owner);
      }
      node.array[(oldTailOffset >>> SHIFT) & MASK] = oldTail;
    }

    // If the size has been reduced, there's a chance the tail needs to be trimmed.
    if (newCapacity < oldCapacity) {
      newTail = newTail && newTail.removeAfter(owner, 0, newCapacity);
    }

    // If the new origin is within the tail, then we do not need a root.
    if (newOrigin >= newTailOffset) {
      newOrigin -= newTailOffset;
      newCapacity -= newTailOffset;
      newLevel = SHIFT;
      newRoot = null;
      newTail = newTail && newTail.removeBefore(owner, 0, newOrigin);

    // Otherwise, if the root has been trimmed, garbage collect.
    } else if (newOrigin > oldOrigin || newTailOffset < oldTailOffset) {
      offsetShift = 0;

      // Identify the new top root node of the subtree of the old root.
      while (newRoot) {
        var beginIndex = (newOrigin >>> newLevel) & MASK;
        if (beginIndex !== (newTailOffset >>> newLevel) & MASK) {
          break;
        }
        if (beginIndex) {
          offsetShift += (1 << newLevel) * beginIndex;
        }
        newLevel -= SHIFT;
        newRoot = newRoot.array[beginIndex];
      }

      // Trim the new sides of the new root.
      if (newRoot && newOrigin > oldOrigin) {
        newRoot = newRoot.removeBefore(owner, newLevel, newOrigin - offsetShift);
      }
      if (newRoot && newTailOffset < oldTailOffset) {
        newRoot = newRoot.removeAfter(owner, newLevel, newTailOffset - offsetShift);
      }
      if (offsetShift) {
        newOrigin -= offsetShift;
        newCapacity -= offsetShift;
      }
    }

    if (list.__ownerID) {
      list.size = newCapacity - newOrigin;
      list._origin = newOrigin;
      list._capacity = newCapacity;
      list._level = newLevel;
      list._root = newRoot;
      list._tail = newTail;
      list.__hash = undefined;
      list.__altered = true;
      return list;
    }
    return makeList(newOrigin, newCapacity, newLevel, newRoot, newTail);
  }

  function mergeIntoListWith(list, merger, iterables) {
    var iters = [];
    var maxSize = 0;
    for (var ii = 0; ii < iterables.length; ii++) {
      var value = iterables[ii];
      var iter = IndexedIterable(value);
      if (iter.size > maxSize) {
        maxSize = iter.size;
      }
      if (!isIterable(value)) {
        iter = iter.map(function(v ) {return fromJS(v)});
      }
      iters.push(iter);
    }
    if (maxSize > list.size) {
      list = list.setSize(maxSize);
    }
    return mergeIntoCollectionWith(list, merger, iters);
  }

  function getTailOffset(size) {
    return size < SIZE ? 0 : (((size - 1) >>> SHIFT) << SHIFT);
  }

  createClass(OrderedMap, Map);

    // @pragma Construction

    function OrderedMap(value) {
      return value === null || value === undefined ? emptyOrderedMap() :
        isOrderedMap(value) ? value :
        emptyOrderedMap().withMutations(function(map ) {
          var iter = KeyedIterable(value);
          assertNotInfinite(iter.size);
          iter.forEach(function(v, k)  {return map.set(k, v)});
        });
    }

    OrderedMap.of = function(/*...values*/) {
      return this(arguments);
    };

    OrderedMap.prototype.toString = function() {
      return this.__toString('OrderedMap {', '}');
    };

    // @pragma Access

    OrderedMap.prototype.get = function(k, notSetValue) {
      var index = this._map.get(k);
      return index !== undefined ? this._list.get(index)[1] : notSetValue;
    };

    // @pragma Modification

    OrderedMap.prototype.clear = function() {
      if (this.size === 0) {
        return this;
      }
      if (this.__ownerID) {
        this.size = 0;
        this._map.clear();
        this._list.clear();
        return this;
      }
      return emptyOrderedMap();
    };

    OrderedMap.prototype.set = function(k, v) {
      return updateOrderedMap(this, k, v);
    };

    OrderedMap.prototype.remove = function(k) {
      return updateOrderedMap(this, k, NOT_SET);
    };

    OrderedMap.prototype.wasAltered = function() {
      return this._map.wasAltered() || this._list.wasAltered();
    };

    OrderedMap.prototype.__iterate = function(fn, reverse) {var this$0 = this;
      return this._list.__iterate(
        function(entry ) {return entry && fn(entry[1], entry[0], this$0)},
        reverse
      );
    };

    OrderedMap.prototype.__iterator = function(type, reverse) {
      return this._list.fromEntrySeq().__iterator(type, reverse);
    };

    OrderedMap.prototype.__ensureOwner = function(ownerID) {
      if (ownerID === this.__ownerID) {
        return this;
      }
      var newMap = this._map.__ensureOwner(ownerID);
      var newList = this._list.__ensureOwner(ownerID);
      if (!ownerID) {
        this.__ownerID = ownerID;
        this._map = newMap;
        this._list = newList;
        return this;
      }
      return makeOrderedMap(newMap, newList, ownerID, this.__hash);
    };


  function isOrderedMap(maybeOrderedMap) {
    return isMap(maybeOrderedMap) && isOrdered(maybeOrderedMap);
  }

  OrderedMap.isOrderedMap = isOrderedMap;

  OrderedMap.prototype[IS_ORDERED_SENTINEL] = true;
  OrderedMap.prototype[DELETE] = OrderedMap.prototype.remove;



  function makeOrderedMap(map, list, ownerID, hash) {
    var omap = Object.create(OrderedMap.prototype);
    omap.size = map ? map.size : 0;
    omap._map = map;
    omap._list = list;
    omap.__ownerID = ownerID;
    omap.__hash = hash;
    return omap;
  }

  var EMPTY_ORDERED_MAP;
  function emptyOrderedMap() {
    return EMPTY_ORDERED_MAP || (EMPTY_ORDERED_MAP = makeOrderedMap(emptyMap(), emptyList()));
  }

  function updateOrderedMap(omap, k, v) {
    var map = omap._map;
    var list = omap._list;
    var i = map.get(k);
    var has = i !== undefined;
    var newMap;
    var newList;
    if (v === NOT_SET) { // removed
      if (!has) {
        return omap;
      }
      if (list.size >= SIZE && list.size >= map.size * 2) {
        newList = list.filter(function(entry, idx)  {return entry !== undefined && i !== idx});
        newMap = newList.toKeyedSeq().map(function(entry ) {return entry[0]}).flip().toMap();
        if (omap.__ownerID) {
          newMap.__ownerID = newList.__ownerID = omap.__ownerID;
        }
      } else {
        newMap = map.remove(k);
        newList = i === list.size - 1 ? list.pop() : list.set(i, undefined);
      }
    } else {
      if (has) {
        if (v === list.get(i)[1]) {
          return omap;
        }
        newMap = map;
        newList = list.set(i, [k, v]);
      } else {
        newMap = map.set(k, list.size);
        newList = list.set(list.size, [k, v]);
      }
    }
    if (omap.__ownerID) {
      omap.size = newMap.size;
      omap._map = newMap;
      omap._list = newList;
      omap.__hash = undefined;
      return omap;
    }
    return makeOrderedMap(newMap, newList);
  }

  createClass(ToKeyedSequence, KeyedSeq);
    function ToKeyedSequence(indexed, useKeys) {
      this._iter = indexed;
      this._useKeys = useKeys;
      this.size = indexed.size;
    }

    ToKeyedSequence.prototype.get = function(key, notSetValue) {
      return this._iter.get(key, notSetValue);
    };

    ToKeyedSequence.prototype.has = function(key) {
      return this._iter.has(key);
    };

    ToKeyedSequence.prototype.valueSeq = function() {
      return this._iter.valueSeq();
    };

    ToKeyedSequence.prototype.reverse = function() {var this$0 = this;
      var reversedSequence = reverseFactory(this, true);
      if (!this._useKeys) {
        reversedSequence.valueSeq = function()  {return this$0._iter.toSeq().reverse()};
      }
      return reversedSequence;
    };

    ToKeyedSequence.prototype.map = function(mapper, context) {var this$0 = this;
      var mappedSequence = mapFactory(this, mapper, context);
      if (!this._useKeys) {
        mappedSequence.valueSeq = function()  {return this$0._iter.toSeq().map(mapper, context)};
      }
      return mappedSequence;
    };

    ToKeyedSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;
      var ii;
      return this._iter.__iterate(
        this._useKeys ?
          function(v, k)  {return fn(v, k, this$0)} :
          ((ii = reverse ? resolveSize(this) : 0),
            function(v ) {return fn(v, reverse ? --ii : ii++, this$0)}),
        reverse
      );
    };

    ToKeyedSequence.prototype.__iterator = function(type, reverse) {
      if (this._useKeys) {
        return this._iter.__iterator(type, reverse);
      }
      var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);
      var ii = reverse ? resolveSize(this) : 0;
      return new Iterator(function()  {
        var step = iterator.next();
        return step.done ? step :
          iteratorValue(type, reverse ? --ii : ii++, step.value, step);
      });
    };

  ToKeyedSequence.prototype[IS_ORDERED_SENTINEL] = true;


  createClass(ToIndexedSequence, IndexedSeq);
    function ToIndexedSequence(iter) {
      this._iter = iter;
      this.size = iter.size;
    }

    ToIndexedSequence.prototype.includes = function(value) {
      return this._iter.includes(value);
    };

    ToIndexedSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;
      var iterations = 0;
      return this._iter.__iterate(function(v ) {return fn(v, iterations++, this$0)}, reverse);
    };

    ToIndexedSequence.prototype.__iterator = function(type, reverse) {
      var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);
      var iterations = 0;
      return new Iterator(function()  {
        var step = iterator.next();
        return step.done ? step :
          iteratorValue(type, iterations++, step.value, step)
      });
    };



  createClass(ToSetSequence, SetSeq);
    function ToSetSequence(iter) {
      this._iter = iter;
      this.size = iter.size;
    }

    ToSetSequence.prototype.has = function(key) {
      return this._iter.includes(key);
    };

    ToSetSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;
      return this._iter.__iterate(function(v ) {return fn(v, v, this$0)}, reverse);
    };

    ToSetSequence.prototype.__iterator = function(type, reverse) {
      var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);
      return new Iterator(function()  {
        var step = iterator.next();
        return step.done ? step :
          iteratorValue(type, step.value, step.value, step);
      });
    };



  createClass(FromEntriesSequence, KeyedSeq);
    function FromEntriesSequence(entries) {
      this._iter = entries;
      this.size = entries.size;
    }

    FromEntriesSequence.prototype.entrySeq = function() {
      return this._iter.toSeq();
    };

    FromEntriesSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;
      return this._iter.__iterate(function(entry ) {
        // Check if entry exists first so array access doesn't throw for holes
        // in the parent iteration.
        if (entry) {
          validateEntry(entry);
          var indexedIterable = isIterable(entry);
          return fn(
            indexedIterable ? entry.get(1) : entry[1],
            indexedIterable ? entry.get(0) : entry[0],
            this$0
          );
        }
      }, reverse);
    };

    FromEntriesSequence.prototype.__iterator = function(type, reverse) {
      var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);
      return new Iterator(function()  {
        while (true) {
          var step = iterator.next();
          if (step.done) {
            return step;
          }
          var entry = step.value;
          // Check if entry exists first so array access doesn't throw for holes
          // in the parent iteration.
          if (entry) {
            validateEntry(entry);
            var indexedIterable = isIterable(entry);
            return iteratorValue(
              type,
              indexedIterable ? entry.get(0) : entry[0],
              indexedIterable ? entry.get(1) : entry[1],
              step
            );
          }
        }
      });
    };


  ToIndexedSequence.prototype.cacheResult =
  ToKeyedSequence.prototype.cacheResult =
  ToSetSequence.prototype.cacheResult =
  FromEntriesSequence.prototype.cacheResult =
    cacheResultThrough;


  function flipFactory(iterable) {
    var flipSequence = makeSequence(iterable);
    flipSequence._iter = iterable;
    flipSequence.size = iterable.size;
    flipSequence.flip = function()  {return iterable};
    flipSequence.reverse = function () {
      var reversedSequence = iterable.reverse.apply(this); // super.reverse()
      reversedSequence.flip = function()  {return iterable.reverse()};
      return reversedSequence;
    };
    flipSequence.has = function(key ) {return iterable.includes(key)};
    flipSequence.includes = function(key ) {return iterable.has(key)};
    flipSequence.cacheResult = cacheResultThrough;
    flipSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;
      return iterable.__iterate(function(v, k)  {return fn(k, v, this$0) !== false}, reverse);
    }
    flipSequence.__iteratorUncached = function(type, reverse) {
      if (type === ITERATE_ENTRIES) {
        var iterator = iterable.__iterator(type, reverse);
        return new Iterator(function()  {
          var step = iterator.next();
          if (!step.done) {
            var k = step.value[0];
            step.value[0] = step.value[1];
            step.value[1] = k;
          }
          return step;
        });
      }
      return iterable.__iterator(
        type === ITERATE_VALUES ? ITERATE_KEYS : ITERATE_VALUES,
        reverse
      );
    }
    return flipSequence;
  }


  function mapFactory(iterable, mapper, context) {
    var mappedSequence = makeSequence(iterable);
    mappedSequence.size = iterable.size;
    mappedSequence.has = function(key ) {return iterable.has(key)};
    mappedSequence.get = function(key, notSetValue)  {
      var v = iterable.get(key, NOT_SET);
      return v === NOT_SET ?
        notSetValue :
        mapper.call(context, v, key, iterable);
    };
    mappedSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;
      return iterable.__iterate(
        function(v, k, c)  {return fn(mapper.call(context, v, k, c), k, this$0) !== false},
        reverse
      );
    }
    mappedSequence.__iteratorUncached = function (type, reverse) {
      var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);
      return new Iterator(function()  {
        var step = iterator.next();
        if (step.done) {
          return step;
        }
        var entry = step.value;
        var key = entry[0];
        return iteratorValue(
          type,
          key,
          mapper.call(context, entry[1], key, iterable),
          step
        );
      });
    }
    return mappedSequence;
  }


  function reverseFactory(iterable, useKeys) {
    var reversedSequence = makeSequence(iterable);
    reversedSequence._iter = iterable;
    reversedSequence.size = iterable.size;
    reversedSequence.reverse = function()  {return iterable};
    if (iterable.flip) {
      reversedSequence.flip = function () {
        var flipSequence = flipFactory(iterable);
        flipSequence.reverse = function()  {return iterable.flip()};
        return flipSequence;
      };
    }
    reversedSequence.get = function(key, notSetValue) 
      {return iterable.get(useKeys ? key : -1 - key, notSetValue)};
    reversedSequence.has = function(key )
      {return iterable.has(useKeys ? key : -1 - key)};
    reversedSequence.includes = function(value ) {return iterable.includes(value)};
    reversedSequence.cacheResult = cacheResultThrough;
    reversedSequence.__iterate = function (fn, reverse) {var this$0 = this;
      return iterable.__iterate(function(v, k)  {return fn(v, k, this$0)}, !reverse);
    };
    reversedSequence.__iterator =
      function(type, reverse)  {return iterable.__iterator(type, !reverse)};
    return reversedSequence;
  }


  function filterFactory(iterable, predicate, context, useKeys) {
    var filterSequence = makeSequence(iterable);
    if (useKeys) {
      filterSequence.has = function(key ) {
        var v = iterable.get(key, NOT_SET);
        return v !== NOT_SET && !!predicate.call(context, v, key, iterable);
      };
      filterSequence.get = function(key, notSetValue)  {
        var v = iterable.get(key, NOT_SET);
        return v !== NOT_SET && predicate.call(context, v, key, iterable) ?
          v : notSetValue;
      };
    }
    filterSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;
      var iterations = 0;
      iterable.__iterate(function(v, k, c)  {
        if (predicate.call(context, v, k, c)) {
          iterations++;
          return fn(v, useKeys ? k : iterations - 1, this$0);
        }
      }, reverse);
      return iterations;
    };
    filterSequence.__iteratorUncached = function (type, reverse) {
      var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);
      var iterations = 0;
      return new Iterator(function()  {
        while (true) {
          var step = iterator.next();
          if (step.done) {
            return step;
          }
          var entry = step.value;
          var key = entry[0];
          var value = entry[1];
          if (predicate.call(context, value, key, iterable)) {
            return iteratorValue(type, useKeys ? key : iterations++, value, step);
          }
        }
      });
    }
    return filterSequence;
  }


  function countByFactory(iterable, grouper, context) {
    var groups = Map().asMutable();
    iterable.__iterate(function(v, k)  {
      groups.update(
        grouper.call(context, v, k, iterable),
        0,
        function(a ) {return a + 1}
      );
    });
    return groups.asImmutable();
  }


  function groupByFactory(iterable, grouper, context) {
    var isKeyedIter = isKeyed(iterable);
    var groups = (isOrdered(iterable) ? OrderedMap() : Map()).asMutable();
    iterable.__iterate(function(v, k)  {
      groups.update(
        grouper.call(context, v, k, iterable),
        function(a ) {return (a = a || [], a.push(isKeyedIter ? [k, v] : v), a)}
      );
    });
    var coerce = iterableClass(iterable);
    return groups.map(function(arr ) {return reify(iterable, coerce(arr))});
  }


  function sliceFactory(iterable, begin, end, useKeys) {
    var originalSize = iterable.size;

    // Sanitize begin & end using this shorthand for ToInt32(argument)
    // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32
    if (begin !== undefined) {
      begin = begin | 0;
    }
    if (end !== undefined) {
      end = end | 0;
    }

    if (wholeSlice(begin, end, originalSize)) {
      return iterable;
    }

    var resolvedBegin = resolveBegin(begin, originalSize);
    var resolvedEnd = resolveEnd(end, originalSize);

    // begin or end will be NaN if they were provided as negative numbers and
    // this iterable's size is unknown. In that case, cache first so there is
    // a known size and these do not resolve to NaN.
    if (resolvedBegin !== resolvedBegin || resolvedEnd !== resolvedEnd) {
      return sliceFactory(iterable.toSeq().cacheResult(), begin, end, useKeys);
    }

    // Note: resolvedEnd is undefined when the original sequence's length is
    // unknown and this slice did not supply an end and should contain all
    // elements after resolvedBegin.
    // In that case, resolvedSize will be NaN and sliceSize will remain undefined.
    var resolvedSize = resolvedEnd - resolvedBegin;
    var sliceSize;
    if (resolvedSize === resolvedSize) {
      sliceSize = resolvedSize < 0 ? 0 : resolvedSize;
    }

    var sliceSeq = makeSequence(iterable);

    // If iterable.size is undefined, the size of the realized sliceSeq is
    // unknown at this point unless the number of items to slice is 0
    sliceSeq.size = sliceSize === 0 ? sliceSize : iterable.size && sliceSize || undefined;

    if (!useKeys && isSeq(iterable) && sliceSize >= 0) {
      sliceSeq.get = function (index, notSetValue) {
        index = wrapIndex(this, index);
        return index >= 0 && index < sliceSize ?
          iterable.get(index + resolvedBegin, notSetValue) :
          notSetValue;
      }
    }

    sliceSeq.__iterateUncached = function(fn, reverse) {var this$0 = this;
      if (sliceSize === 0) {
        return 0;
      }
      if (reverse) {
        return this.cacheResult().__iterate(fn, reverse);
      }
      var skipped = 0;
      var isSkipping = true;
      var iterations = 0;
      iterable.__iterate(function(v, k)  {
        if (!(isSkipping && (isSkipping = skipped++ < resolvedBegin))) {
          iterations++;
          return fn(v, useKeys ? k : iterations - 1, this$0) !== false &&
                 iterations !== sliceSize;
        }
      });
      return iterations;
    };

    sliceSeq.__iteratorUncached = function(type, reverse) {
      if (sliceSize !== 0 && reverse) {
        return this.cacheResult().__iterator(type, reverse);
      }
      // Don't bother instantiating parent iterator if taking 0.
      var iterator = sliceSize !== 0 && iterable.__iterator(type, reverse);
      var skipped = 0;
      var iterations = 0;
      return new Iterator(function()  {
        while (skipped++ < resolvedBegin) {
          iterator.next();
        }
        if (++iterations > sliceSize) {
          return iteratorDone();
        }
        var step = iterator.next();
        if (useKeys || type === ITERATE_VALUES) {
          return step;
        } else if (type === ITERATE_KEYS) {
          return iteratorValue(type, iterations - 1, undefined, step);
        } else {
          return iteratorValue(type, iterations - 1, step.value[1], step);
        }
      });
    }

    return sliceSeq;
  }


  function takeWhileFactory(iterable, predicate, context) {
    var takeSequence = makeSequence(iterable);
    takeSequence.__iterateUncached = function(fn, reverse) {var this$0 = this;
      if (reverse) {
        return this.cacheResult().__iterate(fn, reverse);
      }
      var iterations = 0;
      iterable.__iterate(function(v, k, c) 
        {return predicate.call(context, v, k, c) && ++iterations && fn(v, k, this$0)}
      );
      return iterations;
    };
    takeSequence.__iteratorUncached = function(type, reverse) {var this$0 = this;
      if (reverse) {
        return this.cacheResult().__iterator(type, reverse);
      }
      var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);
      var iterating = true;
      return new Iterator(function()  {
        if (!iterating) {
          return iteratorDone();
        }
        var step = iterator.next();
        if (step.done) {
          return step;
        }
        var entry = step.value;
        var k = entry[0];
        var v = entry[1];
        if (!predicate.call(context, v, k, this$0)) {
          iterating = false;
          return iteratorDone();
        }
        return type === ITERATE_ENTRIES ? step :
          iteratorValue(type, k, v, step);
      });
    };
    return takeSequence;
  }


  function skipWhileFactory(iterable, predicate, context, useKeys) {
    var skipSequence = makeSequence(iterable);
    skipSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;
      if (reverse) {
        return this.cacheResult().__iterate(fn, reverse);
      }
      var isSkipping = true;
      var iterations = 0;
      iterable.__iterate(function(v, k, c)  {
        if (!(isSkipping && (isSkipping = predicate.call(context, v, k, c)))) {
          iterations++;
          return fn(v, useKeys ? k : iterations - 1, this$0);
        }
      });
      return iterations;
    };
    skipSequence.__iteratorUncached = function(type, reverse) {var this$0 = this;
      if (reverse) {
        return this.cacheResult().__iterator(type, reverse);
      }
      var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);
      var skipping = true;
      var iterations = 0;
      return new Iterator(function()  {
        var step, k, v;
        do {
          step = iterator.next();
          if (step.done) {
            if (useKeys || type === ITERATE_VALUES) {
              return step;
            } else if (type === ITERATE_KEYS) {
              return iteratorValue(type, iterations++, undefined, step);
            } else {
              return iteratorValue(type, iterations++, step.value[1], step);
            }
          }
          var entry = step.value;
          k = entry[0];
          v = entry[1];
          skipping && (skipping = predicate.call(context, v, k, this$0));
        } while (skipping);
        return type === ITERATE_ENTRIES ? step :
          iteratorValue(type, k, v, step);
      });
    };
    return skipSequence;
  }


  function concatFactory(iterable, values) {
    var isKeyedIterable = isKeyed(iterable);
    var iters = [iterable].concat(values).map(function(v ) {
      if (!isIterable(v)) {
        v = isKeyedIterable ?
          keyedSeqFromValue(v) :
          indexedSeqFromValue(Array.isArray(v) ? v : [v]);
      } else if (isKeyedIterable) {
        v = KeyedIterable(v);
      }
      return v;
    }).filter(function(v ) {return v.size !== 0});

    if (iters.length === 0) {
      return iterable;
    }

    if (iters.length === 1) {
      var singleton = iters[0];
      if (singleton === iterable ||
          isKeyedIterable && isKeyed(singleton) ||
          isIndexed(iterable) && isIndexed(singleton)) {
        return singleton;
      }
    }

    var concatSeq = new ArraySeq(iters);
    if (isKeyedIterable) {
      concatSeq = concatSeq.toKeyedSeq();
    } else if (!isIndexed(iterable)) {
      concatSeq = concatSeq.toSetSeq();
    }
    concatSeq = concatSeq.flatten(true);
    concatSeq.size = iters.reduce(
      function(sum, seq)  {
        if (sum !== undefined) {
          var size = seq.size;
          if (size !== undefined) {
            return sum + size;
          }
        }
      },
      0
    );
    return concatSeq;
  }


  function flattenFactory(iterable, depth, useKeys) {
    var flatSequence = makeSequence(iterable);
    flatSequence.__iterateUncached = function(fn, reverse) {
      var iterations = 0;
      var stopped = false;
      function flatDeep(iter, currentDepth) {var this$0 = this;
        iter.__iterate(function(v, k)  {
          if ((!depth || currentDepth < depth) && isIterable(v)) {
            flatDeep(v, currentDepth + 1);
          } else if (fn(v, useKeys ? k : iterations++, this$0) === false) {
            stopped = true;
          }
          return !stopped;
        }, reverse);
      }
      flatDeep(iterable, 0);
      return iterations;
    }
    flatSequence.__iteratorUncached = function(type, reverse) {
      var iterator = iterable.__iterator(type, reverse);
      var stack = [];
      var iterations = 0;
      return new Iterator(function()  {
        while (iterator) {
          var step = iterator.next();
          if (step.done !== false) {
            iterator = stack.pop();
            continue;
          }
          var v = step.value;
          if (type === ITERATE_ENTRIES) {
            v = v[1];
          }
          if ((!depth || stack.length < depth) && isIterable(v)) {
            stack.push(iterator);
            iterator = v.__iterator(type, reverse);
          } else {
            return useKeys ? step : iteratorValue(type, iterations++, v, step);
          }
        }
        return iteratorDone();
      });
    }
    return flatSequence;
  }


  function flatMapFactory(iterable, mapper, context) {
    var coerce = iterableClass(iterable);
    return iterable.toSeq().map(
      function(v, k)  {return coerce(mapper.call(context, v, k, iterable))}
    ).flatten(true);
  }


  function interposeFactory(iterable, separator) {
    var interposedSequence = makeSequence(iterable);
    interposedSequence.size = iterable.size && iterable.size * 2 -1;
    interposedSequence.__iterateUncached = function(fn, reverse) {var this$0 = this;
      var iterations = 0;
      iterable.__iterate(function(v, k) 
        {return (!iterations || fn(separator, iterations++, this$0) !== false) &&
        fn(v, iterations++, this$0) !== false},
        reverse
      );
      return iterations;
    };
    interposedSequence.__iteratorUncached = function(type, reverse) {
      var iterator = iterable.__iterator(ITERATE_VALUES, reverse);
      var iterations = 0;
      var step;
      return new Iterator(function()  {
        if (!step || iterations % 2) {
          step = iterator.next();
          if (step.done) {
            return step;
          }
        }
        return iterations % 2 ?
          iteratorValue(type, iterations++, separator) :
          iteratorValue(type, iterations++, step.value, step);
      });
    };
    return interposedSequence;
  }


  function sortFactory(iterable, comparator, mapper) {
    if (!comparator) {
      comparator = defaultComparator;
    }
    var isKeyedIterable = isKeyed(iterable);
    var index = 0;
    var entries = iterable.toSeq().map(
      function(v, k)  {return [k, v, index++, mapper ? mapper(v, k, iterable) : v]}
    ).toArray();
    entries.sort(function(a, b)  {return comparator(a[3], b[3]) || a[2] - b[2]}).forEach(
      isKeyedIterable ?
      function(v, i)  { entries[i].length = 2; } :
      function(v, i)  { entries[i] = v[1]; }
    );
    return isKeyedIterable ? KeyedSeq(entries) :
      isIndexed(iterable) ? IndexedSeq(entries) :
      SetSeq(entries);
  }


  function maxFactory(iterable, comparator, mapper) {
    if (!comparator) {
      comparator = defaultComparator;
    }
    if (mapper) {
      var entry = iterable.toSeq()
        .map(function(v, k)  {return [v, mapper(v, k, iterable)]})
        .reduce(function(a, b)  {return maxCompare(comparator, a[1], b[1]) ? b : a});
      return entry && entry[0];
    } else {
      return iterable.reduce(function(a, b)  {return maxCompare(comparator, a, b) ? b : a});
    }
  }

  function maxCompare(comparator, a, b) {
    var comp = comparator(b, a);
    // b is considered the new max if the comparator declares them equal, but
    // they are not equal and b is in fact a nullish value.
    return (comp === 0 && b !== a && (b === undefined || b === null || b !== b)) || comp > 0;
  }


  function zipWithFactory(keyIter, zipper, iters) {
    var zipSequence = makeSequence(keyIter);
    zipSequence.size = new ArraySeq(iters).map(function(i ) {return i.size}).min();
    // Note: this a generic base implementation of __iterate in terms of
    // __iterator which may be more generically useful in the future.
    zipSequence.__iterate = function(fn, reverse) {
      /* generic:
      var iterator = this.__iterator(ITERATE_ENTRIES, reverse);
      var step;
      var iterations = 0;
      while (!(step = iterator.next()).done) {
        iterations++;
        if (fn(step.value[1], step.value[0], this) === false) {
          break;
        }
      }
      return iterations;
      */
      // indexed:
      var iterator = this.__iterator(ITERATE_VALUES, reverse);
      var step;
      var iterations = 0;
      while (!(step = iterator.next()).done) {
        if (fn(step.value, iterations++, this) === false) {
          break;
        }
      }
      return iterations;
    };
    zipSequence.__iteratorUncached = function(type, reverse) {
      var iterators = iters.map(function(i )
        {return (i = Iterable(i), getIterator(reverse ? i.reverse() : i))}
      );
      var iterations = 0;
      var isDone = false;
      return new Iterator(function()  {
        var steps;
        if (!isDone) {
          steps = iterators.map(function(i ) {return i.next()});
          isDone = steps.some(function(s ) {return s.done});
        }
        if (isDone) {
          return iteratorDone();
        }
        return iteratorValue(
          type,
          iterations++,
          zipper.apply(null, steps.map(function(s ) {return s.value}))
        );
      });
    };
    return zipSequence
  }


  // #pragma Helper Functions

  function reify(iter, seq) {
    return isSeq(iter) ? seq : iter.constructor(seq);
  }

  function validateEntry(entry) {
    if (entry !== Object(entry)) {
      throw new TypeError('Expected [K, V] tuple: ' + entry);
    }
  }

  function resolveSize(iter) {
    assertNotInfinite(iter.size);
    return ensureSize(iter);
  }

  function iterableClass(iterable) {
    return isKeyed(iterable) ? KeyedIterable :
      isIndexed(iterable) ? IndexedIterable :
      SetIterable;
  }

  function makeSequence(iterable) {
    return Object.create(
      (
        isKeyed(iterable) ? KeyedSeq :
        isIndexed(iterable) ? IndexedSeq :
        SetSeq
      ).prototype
    );
  }

  function cacheResultThrough() {
    if (this._iter.cacheResult) {
      this._iter.cacheResult();
      this.size = this._iter.size;
      return this;
    } else {
      return Seq.prototype.cacheResult.call(this);
    }
  }

  function defaultComparator(a, b) {
    return a > b ? 1 : a < b ? -1 : 0;
  }

  function forceIterator(keyPath) {
    var iter = getIterator(keyPath);
    if (!iter) {
      // Array might not be iterable in this environment, so we need a fallback
      // to our wrapped type.
      if (!isArrayLike(keyPath)) {
        throw new TypeError('Expected iterable or array-like: ' + keyPath);
      }
      iter = getIterator(Iterable(keyPath));
    }
    return iter;
  }

  createClass(Record, KeyedCollection);

    function Record(defaultValues, name) {
      var hasInitialized;

      var RecordType = function Record(values) {
        if (values instanceof RecordType) {
          return values;
        }
        if (!(this instanceof RecordType)) {
          return new RecordType(values);
        }
        if (!hasInitialized) {
          hasInitialized = true;
          var keys = Object.keys(defaultValues);
          setProps(RecordTypePrototype, keys);
          RecordTypePrototype.size = keys.length;
          RecordTypePrototype._name = name;
          RecordTypePrototype._keys = keys;
          RecordTypePrototype._defaultValues = defaultValues;
        }
        this._map = Map(values);
      };

      var RecordTypePrototype = RecordType.prototype = Object.create(RecordPrototype);
      RecordTypePrototype.constructor = RecordType;

      return RecordType;
    }

    Record.prototype.toString = function() {
      return this.__toString(recordName(this) + ' {', '}');
    };

    // @pragma Access

    Record.prototype.has = function(k) {
      return this._defaultValues.hasOwnProperty(k);
    };

    Record.prototype.get = function(k, notSetValue) {
      if (!this.has(k)) {
        return notSetValue;
      }
      var defaultVal = this._defaultValues[k];
      return this._map ? this._map.get(k, defaultVal) : defaultVal;
    };

    // @pragma Modification

    Record.prototype.clear = function() {
      if (this.__ownerID) {
        this._map && this._map.clear();
        return this;
      }
      var RecordType = this.constructor;
      return RecordType._empty || (RecordType._empty = makeRecord(this, emptyMap()));
    };

    Record.prototype.set = function(k, v) {
      if (!this.has(k)) {
        throw new Error('Cannot set unknown key "' + k + '" on ' + recordName(this));
      }
      var newMap = this._map && this._map.set(k, v);
      if (this.__ownerID || newMap === this._map) {
        return this;
      }
      return makeRecord(this, newMap);
    };

    Record.prototype.remove = function(k) {
      if (!this.has(k)) {
        return this;
      }
      var newMap = this._map && this._map.remove(k);
      if (this.__ownerID || newMap === this._map) {
        return this;
      }
      return makeRecord(this, newMap);
    };

    Record.prototype.wasAltered = function() {
      return this._map.wasAltered();
    };

    Record.prototype.__iterator = function(type, reverse) {var this$0 = this;
      return KeyedIterable(this._defaultValues).map(function(_, k)  {return this$0.get(k)}).__iterator(type, reverse);
    };

    Record.prototype.__iterate = function(fn, reverse) {var this$0 = this;
      return KeyedIterable(this._defaultValues).map(function(_, k)  {return this$0.get(k)}).__iterate(fn, reverse);
    };

    Record.prototype.__ensureOwner = function(ownerID) {
      if (ownerID === this.__ownerID) {
        return this;
      }
      var newMap = this._map && this._map.__ensureOwner(ownerID);
      if (!ownerID) {
        this.__ownerID = ownerID;
        this._map = newMap;
        return this;
      }
      return makeRecord(this, newMap, ownerID);
    };


  var RecordPrototype = Record.prototype;
  RecordPrototype[DELETE] = RecordPrototype.remove;
  RecordPrototype.deleteIn =
  RecordPrototype.removeIn = MapPrototype.removeIn;
  RecordPrototype.merge = MapPrototype.merge;
  RecordPrototype.mergeWith = MapPrototype.mergeWith;
  RecordPrototype.mergeIn = MapPrototype.mergeIn;
  RecordPrototype.mergeDeep = MapPrototype.mergeDeep;
  RecordPrototype.mergeDeepWith = MapPrototype.mergeDeepWith;
  RecordPrototype.mergeDeepIn = MapPrototype.mergeDeepIn;
  RecordPrototype.setIn = MapPrototype.setIn;
  RecordPrototype.update = MapPrototype.update;
  RecordPrototype.updateIn = MapPrototype.updateIn;
  RecordPrototype.withMutations = MapPrototype.withMutations;
  RecordPrototype.asMutable = MapPrototype.asMutable;
  RecordPrototype.asImmutable = MapPrototype.asImmutable;


  function makeRecord(likeRecord, map, ownerID) {
    var record = Object.create(Object.getPrototypeOf(likeRecord));
    record._map = map;
    record.__ownerID = ownerID;
    return record;
  }

  function recordName(record) {
    return record._name || record.constructor.name || 'Record';
  }

  function setProps(prototype, names) {
    try {
      names.forEach(setProp.bind(undefined, prototype));
    } catch (error) {
      // Object.defineProperty failed. Probably IE8.
    }
  }

  function setProp(prototype, name) {
    Object.defineProperty(prototype, name, {
      get: function() {
        return this.get(name);
      },
      set: function(value) {
        invariant(this.__ownerID, 'Cannot set on an immutable record.');
        this.set(name, value);
      }
    });
  }

  createClass(Set, SetCollection);

    // @pragma Construction

    function Set(value) {
      return value === null || value === undefined ? emptySet() :
        isSet(value) && !isOrdered(value) ? value :
        emptySet().withMutations(function(set ) {
          var iter = SetIterable(value);
          assertNotInfinite(iter.size);
          iter.forEach(function(v ) {return set.add(v)});
        });
    }

    Set.of = function(/*...values*/) {
      return this(arguments);
    };

    Set.fromKeys = function(value) {
      return this(KeyedIterable(value).keySeq());
    };

    Set.prototype.toString = function() {
      return this.__toString('Set {', '}');
    };

    // @pragma Access

    Set.prototype.has = function(value) {
      return this._map.has(value);
    };

    // @pragma Modification

    Set.prototype.add = function(value) {
      return updateSet(this, this._map.set(value, true));
    };

    Set.prototype.remove = function(value) {
      return updateSet(this, this._map.remove(value));
    };

    Set.prototype.clear = function() {
      return updateSet(this, this._map.clear());
    };

    // @pragma Composition

    Set.prototype.union = function() {var iters = SLICE$0.call(arguments, 0);
      iters = iters.filter(function(x ) {return x.size !== 0});
      if (iters.length === 0) {
        return this;
      }
      if (this.size === 0 && !this.__ownerID && iters.length === 1) {
        return this.constructor(iters[0]);
      }
      return this.withMutations(function(set ) {
        for (var ii = 0; ii < iters.length; ii++) {
          SetIterable(iters[ii]).forEach(function(value ) {return set.add(value)});
        }
      });
    };

    Set.prototype.intersect = function() {var iters = SLICE$0.call(arguments, 0);
      if (iters.length === 0) {
        return this;
      }
      iters = iters.map(function(iter ) {return SetIterable(iter)});
      var originalSet = this;
      return this.withMutations(function(set ) {
        originalSet.forEach(function(value ) {
          if (!iters.every(function(iter ) {return iter.includes(value)})) {
            set.remove(value);
          }
        });
      });
    };

    Set.prototype.subtract = function() {var iters = SLICE$0.call(arguments, 0);
      if (iters.length === 0) {
        return this;
      }
      iters = iters.map(function(iter ) {return SetIterable(iter)});
      var originalSet = this;
      return this.withMutations(function(set ) {
        originalSet.forEach(function(value ) {
          if (iters.some(function(iter ) {return iter.includes(value)})) {
            set.remove(value);
          }
        });
      });
    };

    Set.prototype.merge = function() {
      return this.union.apply(this, arguments);
    };

    Set.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1);
      return this.union.apply(this, iters);
    };

    Set.prototype.sort = function(comparator) {
      // Late binding
      return OrderedSet(sortFactory(this, comparator));
    };

    Set.prototype.sortBy = function(mapper, comparator) {
      // Late binding
      return OrderedSet(sortFactory(this, comparator, mapper));
    };

    Set.prototype.wasAltered = function() {
      return this._map.wasAltered();
    };

    Set.prototype.__iterate = function(fn, reverse) {var this$0 = this;
      return this._map.__iterate(function(_, k)  {return fn(k, k, this$0)}, reverse);
    };

    Set.prototype.__iterator = function(type, reverse) {
      return this._map.map(function(_, k)  {return k}).__iterator(type, reverse);
    };

    Set.prototype.__ensureOwner = function(ownerID) {
      if (ownerID === this.__ownerID) {
        return this;
      }
      var newMap = this._map.__ensureOwner(ownerID);
      if (!ownerID) {
        this.__ownerID = ownerID;
        this._map = newMap;
        return this;
      }
      return this.__make(newMap, ownerID);
    };


  function isSet(maybeSet) {
    return !!(maybeSet && maybeSet[IS_SET_SENTINEL]);
  }

  Set.isSet = isSet;

  var IS_SET_SENTINEL = '@@__IMMUTABLE_SET__@@';

  var SetPrototype = Set.prototype;
  SetPrototype[IS_SET_SENTINEL] = true;
  SetPrototype[DELETE] = SetPrototype.remove;
  SetPrototype.mergeDeep = SetPrototype.merge;
  SetPrototype.mergeDeepWith = SetPrototype.mergeWith;
  SetPrototype.withMutations = MapPrototype.withMutations;
  SetPrototype.asMutable = MapPrototype.asMutable;
  SetPrototype.asImmutable = MapPrototype.asImmutable;

  SetPrototype.__empty = emptySet;
  SetPrototype.__make = makeSet;

  function updateSet(set, newMap) {
    if (set.__ownerID) {
      set.size = newMap.size;
      set._map = newMap;
      return set;
    }
    return newMap === set._map ? set :
      newMap.size === 0 ? set.__empty() :
      set.__make(newMap);
  }

  function makeSet(map, ownerID) {
    var set = Object.create(SetPrototype);
    set.size = map ? map.size : 0;
    set._map = map;
    set.__ownerID = ownerID;
    return set;
  }

  var EMPTY_SET;
  function emptySet() {
    return EMPTY_SET || (EMPTY_SET = makeSet(emptyMap()));
  }

  createClass(OrderedSet, Set);

    // @pragma Construction

    function OrderedSet(value) {
      return value === null || value === undefined ? emptyOrderedSet() :
        isOrderedSet(value) ? value :
        emptyOrderedSet().withMutations(function(set ) {
          var iter = SetIterable(value);
          assertNotInfinite(iter.size);
          iter.forEach(function(v ) {return set.add(v)});
        });
    }

    OrderedSet.of = function(/*...values*/) {
      return this(arguments);
    };

    OrderedSet.fromKeys = function(value) {
      return this(KeyedIterable(value).keySeq());
    };

    OrderedSet.prototype.toString = function() {
      return this.__toString('OrderedSet {', '}');
    };


  function isOrderedSet(maybeOrderedSet) {
    return isSet(maybeOrderedSet) && isOrdered(maybeOrderedSet);
  }

  OrderedSet.isOrderedSet = isOrderedSet;

  var OrderedSetPrototype = OrderedSet.prototype;
  OrderedSetPrototype[IS_ORDERED_SENTINEL] = true;

  OrderedSetPrototype.__empty = emptyOrderedSet;
  OrderedSetPrototype.__make = makeOrderedSet;

  function makeOrderedSet(map, ownerID) {
    var set = Object.create(OrderedSetPrototype);
    set.size = map ? map.size : 0;
    set._map = map;
    set.__ownerID = ownerID;
    return set;
  }

  var EMPTY_ORDERED_SET;
  function emptyOrderedSet() {
    return EMPTY_ORDERED_SET || (EMPTY_ORDERED_SET = makeOrderedSet(emptyOrderedMap()));
  }

  createClass(Stack, IndexedCollection);

    // @pragma Construction

    function Stack(value) {
      return value === null || value === undefined ? emptyStack() :
        isStack(value) ? value :
        emptyStack().unshiftAll(value);
    }

    Stack.of = function(/*...values*/) {
      return this(arguments);
    };

    Stack.prototype.toString = function() {
      return this.__toString('Stack [', ']');
    };

    // @pragma Access

    Stack.prototype.get = function(index, notSetValue) {
      var head = this._head;
      index = wrapIndex(this, index);
      while (head && index--) {
        head = head.next;
      }
      return head ? head.value : notSetValue;
    };

    Stack.prototype.peek = function() {
      return this._head && this._head.value;
    };

    // @pragma Modification

    Stack.prototype.push = function(/*...values*/) {
      if (arguments.length === 0) {
        return this;
      }
      var newSize = this.size + arguments.length;
      var head = this._head;
      for (var ii = arguments.length - 1; ii >= 0; ii--) {
        head = {
          value: arguments[ii],
          next: head
        };
      }
      if (this.__ownerID) {
        this.size = newSize;
        this._head = head;
        this.__hash = undefined;
        this.__altered = true;
        return this;
      }
      return makeStack(newSize, head);
    };

    Stack.prototype.pushAll = function(iter) {
      iter = IndexedIterable(iter);
      if (iter.size === 0) {
        return this;
      }
      assertNotInfinite(iter.size);
      var newSize = this.size;
      var head = this._head;
      iter.reverse().forEach(function(value ) {
        newSize++;
        head = {
          value: value,
          next: head
        };
      });
      if (this.__ownerID) {
        this.size = newSize;
        this._head = head;
        this.__hash = undefined;
        this.__altered = true;
        return this;
      }
      return makeStack(newSize, head);
    };

    Stack.prototype.pop = function() {
      return this.slice(1);
    };

    Stack.prototype.unshift = function(/*...values*/) {
      return this.push.apply(this, arguments);
    };

    Stack.prototype.unshiftAll = function(iter) {
      return this.pushAll(iter);
    };

    Stack.prototype.shift = function() {
      return this.pop.apply(this, arguments);
    };

    Stack.prototype.clear = function() {
      if (this.size === 0) {
        return this;
      }
      if (this.__ownerID) {
        this.size = 0;
        this._head = undefined;
        this.__hash = undefined;
        this.__altered = true;
        return this;
      }
      return emptyStack();
    };

    Stack.prototype.slice = function(begin, end) {
      if (wholeSlice(begin, end, this.size)) {
        return this;
      }
      var resolvedBegin = resolveBegin(begin, this.size);
      var resolvedEnd = resolveEnd(end, this.size);
      if (resolvedEnd !== this.size) {
        // super.slice(begin, end);
        return IndexedCollection.prototype.slice.call(this, begin, end);
      }
      var newSize = this.size - resolvedBegin;
      var head = this._head;
      while (resolvedBegin--) {
        head = head.next;
      }
      if (this.__ownerID) {
        this.size = newSize;
        this._head = head;
        this.__hash = undefined;
        this.__altered = true;
        return this;
      }
      return makeStack(newSize, head);
    };

    // @pragma Mutability

    Stack.prototype.__ensureOwner = function(ownerID) {
      if (ownerID === this.__ownerID) {
        return this;
      }
      if (!ownerID) {
        this.__ownerID = ownerID;
        this.__altered = false;
        return this;
      }
      return makeStack(this.size, this._head, ownerID, this.__hash);
    };

    // @pragma Iteration

    Stack.prototype.__iterate = function(fn, reverse) {
      if (reverse) {
        return this.reverse().__iterate(fn);
      }
      var iterations = 0;
      var node = this._head;
      while (node) {
        if (fn(node.value, iterations++, this) === false) {
          break;
        }
        node = node.next;
      }
      return iterations;
    };

    Stack.prototype.__iterator = function(type, reverse) {
      if (reverse) {
        return this.reverse().__iterator(type);
      }
      var iterations = 0;
      var node = this._head;
      return new Iterator(function()  {
        if (node) {
          var value = node.value;
          node = node.next;
          return iteratorValue(type, iterations++, value);
        }
        return iteratorDone();
      });
    };


  function isStack(maybeStack) {
    return !!(maybeStack && maybeStack[IS_STACK_SENTINEL]);
  }

  Stack.isStack = isStack;

  var IS_STACK_SENTINEL = '@@__IMMUTABLE_STACK__@@';

  var StackPrototype = Stack.prototype;
  StackPrototype[IS_STACK_SENTINEL] = true;
  StackPrototype.withMutations = MapPrototype.withMutations;
  StackPrototype.asMutable = MapPrototype.asMutable;
  StackPrototype.asImmutable = MapPrototype.asImmutable;
  StackPrototype.wasAltered = MapPrototype.wasAltered;


  function makeStack(size, head, ownerID, hash) {
    var map = Object.create(StackPrototype);
    map.size = size;
    map._head = head;
    map.__ownerID = ownerID;
    map.__hash = hash;
    map.__altered = false;
    return map;
  }

  var EMPTY_STACK;
  function emptyStack() {
    return EMPTY_STACK || (EMPTY_STACK = makeStack(0));
  }

  /**
   * Contributes additional methods to a constructor
   */
  function mixin(ctor, methods) {
    var keyCopier = function(key ) { ctor.prototype[key] = methods[key]; };
    Object.keys(methods).forEach(keyCopier);
    Object.getOwnPropertySymbols &&
      Object.getOwnPropertySymbols(methods).forEach(keyCopier);
    return ctor;
  }

  Iterable.Iterator = Iterator;

  mixin(Iterable, {

    // ### Conversion to other types

    toArray: function() {
      assertNotInfinite(this.size);
      var array = new Array(this.size || 0);
      this.valueSeq().__iterate(function(v, i)  { array[i] = v; });
      return array;
    },

    toIndexedSeq: function() {
      return new ToIndexedSequence(this);
    },

    toJS: function() {
      return this.toSeq().map(
        function(value ) {return value && typeof value.toJS === 'function' ? value.toJS() : value}
      ).__toJS();
    },

    toJSON: function() {
      return this.toSeq().map(
        function(value ) {return value && typeof value.toJSON === 'function' ? value.toJSON() : value}
      ).__toJS();
    },

    toKeyedSeq: function() {
      return new ToKeyedSequence(this, true);
    },

    toMap: function() {
      // Use Late Binding here to solve the circular dependency.
      return Map(this.toKeyedSeq());
    },

    toObject: function() {
      assertNotInfinite(this.size);
      var object = {};
      this.__iterate(function(v, k)  { object[k] = v; });
      return object;
    },

    toOrderedMap: function() {
      // Use Late Binding here to solve the circular dependency.
      return OrderedMap(this.toKeyedSeq());
    },

    toOrderedSet: function() {
      // Use Late Binding here to solve the circular dependency.
      return OrderedSet(isKeyed(this) ? this.valueSeq() : this);
    },

    toSet: function() {
      // Use Late Binding here to solve the circular dependency.
      return Set(isKeyed(this) ? this.valueSeq() : this);
    },

    toSetSeq: function() {
      return new ToSetSequence(this);
    },

    toSeq: function() {
      return isIndexed(this) ? this.toIndexedSeq() :
        isKeyed(this) ? this.toKeyedSeq() :
        this.toSetSeq();
    },

    toStack: function() {
      // Use Late Binding here to solve the circular dependency.
      return Stack(isKeyed(this) ? this.valueSeq() : this);
    },

    toList: function() {
      // Use Late Binding here to solve the circular dependency.
      return List(isKeyed(this) ? this.valueSeq() : this);
    },


    // ### Common JavaScript methods and properties

    toString: function() {
      return '[Iterable]';
    },

    __toString: function(head, tail) {
      if (this.size === 0) {
        return head + tail;
      }
      return head + ' ' + this.toSeq().map(this.__toStringMapper).join(', ') + ' ' + tail;
    },


    // ### ES6 Collection methods (ES6 Array and Map)

    concat: function() {var values = SLICE$0.call(arguments, 0);
      return reify(this, concatFactory(this, values));
    },

    includes: function(searchValue) {
      return this.some(function(value ) {return is(value, searchValue)});
    },

    entries: function() {
      return this.__iterator(ITERATE_ENTRIES);
    },

    every: function(predicate, context) {
      assertNotInfinite(this.size);
      var returnValue = true;
      this.__iterate(function(v, k, c)  {
        if (!predicate.call(context, v, k, c)) {
          returnValue = false;
          return false;
        }
      });
      return returnValue;
    },

    filter: function(predicate, context) {
      return reify(this, filterFactory(this, predicate, context, true));
    },

    find: function(predicate, context, notSetValue) {
      var entry = this.findEntry(predicate, context);
      return entry ? entry[1] : notSetValue;
    },

    findEntry: function(predicate, context) {
      var found;
      this.__iterate(function(v, k, c)  {
        if (predicate.call(context, v, k, c)) {
          found = [k, v];
          return false;
        }
      });
      return found;
    },

    findLastEntry: function(predicate, context) {
      return this.toSeq().reverse().findEntry(predicate, context);
    },

    forEach: function(sideEffect, context) {
      assertNotInfinite(this.size);
      return this.__iterate(context ? sideEffect.bind(context) : sideEffect);
    },

    join: function(separator) {
      assertNotInfinite(this.size);
      separator = separator !== undefined ? '' + separator : ',';
      var joined = '';
      var isFirst = true;
      this.__iterate(function(v ) {
        isFirst ? (isFirst = false) : (joined += separator);
        joined += v !== null && v !== undefined ? v.toString() : '';
      });
      return joined;
    },

    keys: function() {
      return this.__iterator(ITERATE_KEYS);
    },

    map: function(mapper, context) {
      return reify(this, mapFactory(this, mapper, context));
    },

    reduce: function(reducer, initialReduction, context) {
      assertNotInfinite(this.size);
      var reduction;
      var useFirst;
      if (arguments.length < 2) {
        useFirst = true;
      } else {
        reduction = initialReduction;
      }
      this.__iterate(function(v, k, c)  {
        if (useFirst) {
          useFirst = false;
          reduction = v;
        } else {
          reduction = reducer.call(context, reduction, v, k, c);
        }
      });
      return reduction;
    },

    reduceRight: function(reducer, initialReduction, context) {
      var reversed = this.toKeyedSeq().reverse();
      return reversed.reduce.apply(reversed, arguments);
    },

    reverse: function() {
      return reify(this, reverseFactory(this, true));
    },

    slice: function(begin, end) {
      return reify(this, sliceFactory(this, begin, end, true));
    },

    some: function(predicate, context) {
      return !this.every(not(predicate), context);
    },

    sort: function(comparator) {
      return reify(this, sortFactory(this, comparator));
    },

    values: function() {
      return this.__iterator(ITERATE_VALUES);
    },


    // ### More sequential methods

    butLast: function() {
      return this.slice(0, -1);
    },

    isEmpty: function() {
      return this.size !== undefined ? this.size === 0 : !this.some(function()  {return true});
    },

    count: function(predicate, context) {
      return ensureSize(
        predicate ? this.toSeq().filter(predicate, context) : this
      );
    },

    countBy: function(grouper, context) {
      return countByFactory(this, grouper, context);
    },

    equals: function(other) {
      return deepEqual(this, other);
    },

    entrySeq: function() {
      var iterable = this;
      if (iterable._cache) {
        // We cache as an entries array, so we can just return the cache!
        return new ArraySeq(iterable._cache);
      }
      var entriesSequence = iterable.toSeq().map(entryMapper).toIndexedSeq();
      entriesSequence.fromEntrySeq = function()  {return iterable.toSeq()};
      return entriesSequence;
    },

    filterNot: function(predicate, context) {
      return this.filter(not(predicate), context);
    },

    findLast: function(predicate, context, notSetValue) {
      return this.toKeyedSeq().reverse().find(predicate, context, notSetValue);
    },

    first: function() {
      return this.find(returnTrue);
    },

    flatMap: function(mapper, context) {
      return reify(this, flatMapFactory(this, mapper, context));
    },

    flatten: function(depth) {
      return reify(this, flattenFactory(this, depth, true));
    },

    fromEntrySeq: function() {
      return new FromEntriesSequence(this);
    },

    get: function(searchKey, notSetValue) {
      return this.find(function(_, key)  {return is(key, searchKey)}, undefined, notSetValue);
    },

    getIn: function(searchKeyPath, notSetValue) {
      var nested = this;
      // Note: in an ES6 environment, we would prefer:
      // for (var key of searchKeyPath) {
      var iter = forceIterator(searchKeyPath);
      var step;
      while (!(step = iter.next()).done) {
        var key = step.value;
        nested = nested && nested.get ? nested.get(key, NOT_SET) : NOT_SET;
        if (nested === NOT_SET) {
          return notSetValue;
        }
      }
      return nested;
    },

    groupBy: function(grouper, context) {
      return groupByFactory(this, grouper, context);
    },

    has: function(searchKey) {
      return this.get(searchKey, NOT_SET) !== NOT_SET;
    },

    hasIn: function(searchKeyPath) {
      return this.getIn(searchKeyPath, NOT_SET) !== NOT_SET;
    },

    isSubset: function(iter) {
      iter = typeof iter.includes === 'function' ? iter : Iterable(iter);
      return this.every(function(value ) {return iter.includes(value)});
    },

    isSuperset: function(iter) {
      iter = typeof iter.isSubset === 'function' ? iter : Iterable(iter);
      return iter.isSubset(this);
    },

    keySeq: function() {
      return this.toSeq().map(keyMapper).toIndexedSeq();
    },

    last: function() {
      return this.toSeq().reverse().first();
    },

    max: function(comparator) {
      return maxFactory(this, comparator);
    },

    maxBy: function(mapper, comparator) {
      return maxFactory(this, comparator, mapper);
    },

    min: function(comparator) {
      return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator);
    },

    minBy: function(mapper, comparator) {
      return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator, mapper);
    },

    rest: function() {
      return this.slice(1);
    },

    skip: function(amount) {
      return this.slice(Math.max(0, amount));
    },

    skipLast: function(amount) {
      return reify(this, this.toSeq().reverse().skip(amount).reverse());
    },

    skipWhile: function(predicate, context) {
      return reify(this, skipWhileFactory(this, predicate, context, true));
    },

    skipUntil: function(predicate, context) {
      return this.skipWhile(not(predicate), context);
    },

    sortBy: function(mapper, comparator) {
      return reify(this, sortFactory(this, comparator, mapper));
    },

    take: function(amount) {
      return this.slice(0, Math.max(0, amount));
    },

    takeLast: function(amount) {
      return reify(this, this.toSeq().reverse().take(amount).reverse());
    },

    takeWhile: function(predicate, context) {
      return reify(this, takeWhileFactory(this, predicate, context));
    },

    takeUntil: function(predicate, context) {
      return this.takeWhile(not(predicate), context);
    },

    valueSeq: function() {
      return this.toIndexedSeq();
    },


    // ### Hashable Object

    hashCode: function() {
      return this.__hash || (this.__hash = hashIterable(this));
    }


    // ### Internal

    // abstract __iterate(fn, reverse)

    // abstract __iterator(type, reverse)
  });

  // var IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@';
  // var IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@';
  // var IS_INDEXED_SENTINEL = '@@__IMMUTABLE_INDEXED__@@';
  // var IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@';

  var IterablePrototype = Iterable.prototype;
  IterablePrototype[IS_ITERABLE_SENTINEL] = true;
  IterablePrototype[ITERATOR_SYMBOL] = IterablePrototype.values;
  IterablePrototype.__toJS = IterablePrototype.toArray;
  IterablePrototype.__toStringMapper = quoteString;
  IterablePrototype.inspect =
  IterablePrototype.toSource = function() { return this.toString(); };
  IterablePrototype.chain = IterablePrototype.flatMap;
  IterablePrototype.contains = IterablePrototype.includes;

  // Temporary warning about using length
  (function () {
    try {
      Object.defineProperty(IterablePrototype, 'length', {
        get: function () {
          if (!Iterable.noLengthWarning) {
            var stack;
            try {
              throw new Error();
            } catch (error) {
              stack = error.stack;
            }
            if (stack.indexOf('_wrapObject') === -1) {
              console && console.warn && console.warn(
                'iterable.length has been deprecated, '+
                'use iterable.size or iterable.count(). '+
                'This warning will become a silent error in a future version. ' +
                stack
              );
              return this.size;
            }
          }
        }
      });
    } catch (e) {}
  })();



  mixin(KeyedIterable, {

    // ### More sequential methods

    flip: function() {
      return reify(this, flipFactory(this));
    },

    findKey: function(predicate, context) {
      var entry = this.findEntry(predicate, context);
      return entry && entry[0];
    },

    findLastKey: function(predicate, context) {
      return this.toSeq().reverse().findKey(predicate, context);
    },

    keyOf: function(searchValue) {
      return this.findKey(function(value ) {return is(value, searchValue)});
    },

    lastKeyOf: function(searchValue) {
      return this.findLastKey(function(value ) {return is(value, searchValue)});
    },

    mapEntries: function(mapper, context) {var this$0 = this;
      var iterations = 0;
      return reify(this,
        this.toSeq().map(
          function(v, k)  {return mapper.call(context, [k, v], iterations++, this$0)}
        ).fromEntrySeq()
      );
    },

    mapKeys: function(mapper, context) {var this$0 = this;
      return reify(this,
        this.toSeq().flip().map(
          function(k, v)  {return mapper.call(context, k, v, this$0)}
        ).flip()
      );
    }

  });

  var KeyedIterablePrototype = KeyedIterable.prototype;
  KeyedIterablePrototype[IS_KEYED_SENTINEL] = true;
  KeyedIterablePrototype[ITERATOR_SYMBOL] = IterablePrototype.entries;
  KeyedIterablePrototype.__toJS = IterablePrototype.toObject;
  KeyedIterablePrototype.__toStringMapper = function(v, k)  {return JSON.stringify(k) + ': ' + quoteString(v)};



  mixin(IndexedIterable, {

    // ### Conversion to other types

    toKeyedSeq: function() {
      return new ToKeyedSequence(this, false);
    },


    // ### ES6 Collection methods (ES6 Array and Map)

    filter: function(predicate, context) {
      return reify(this, filterFactory(this, predicate, context, false));
    },

    findIndex: function(predicate, context) {
      var entry = this.findEntry(predicate, context);
      return entry ? entry[0] : -1;
    },

    indexOf: function(searchValue) {
      var key = this.toKeyedSeq().keyOf(searchValue);
      return key === undefined ? -1 : key;
    },

    lastIndexOf: function(searchValue) {
      var key = this.toKeyedSeq().reverse().keyOf(searchValue);
      return key === undefined ? -1 : key;

      // var index =
      // return this.toSeq().reverse().indexOf(searchValue);
    },

    reverse: function() {
      return reify(this, reverseFactory(this, false));
    },

    slice: function(begin, end) {
      return reify(this, sliceFactory(this, begin, end, false));
    },

    splice: function(index, removeNum /*, ...values*/) {
      var numArgs = arguments.length;
      removeNum = Math.max(removeNum | 0, 0);
      if (numArgs === 0 || (numArgs === 2 && !removeNum)) {
        return this;
      }
      // If index is negative, it should resolve relative to the size of the
      // collection. However size may be expensive to compute if not cached, so
      // only call count() if the number is in fact negative.
      index = resolveBegin(index, index < 0 ? this.count() : this.size);
      var spliced = this.slice(0, index);
      return reify(
        this,
        numArgs === 1 ?
          spliced :
          spliced.concat(arrCopy(arguments, 2), this.slice(index + removeNum))
      );
    },


    // ### More collection methods

    findLastIndex: function(predicate, context) {
      var key = this.toKeyedSeq().findLastKey(predicate, context);
      return key === undefined ? -1 : key;
    },

    first: function() {
      return this.get(0);
    },

    flatten: function(depth) {
      return reify(this, flattenFactory(this, depth, false));
    },

    get: function(index, notSetValue) {
      index = wrapIndex(this, index);
      return (index < 0 || (this.size === Infinity ||
          (this.size !== undefined && index > this.size))) ?
        notSetValue :
        this.find(function(_, key)  {return key === index}, undefined, notSetValue);
    },

    has: function(index) {
      index = wrapIndex(this, index);
      return index >= 0 && (this.size !== undefined ?
        this.size === Infinity || index < this.size :
        this.indexOf(index) !== -1
      );
    },

    interpose: function(separator) {
      return reify(this, interposeFactory(this, separator));
    },

    interleave: function(/*...iterables*/) {
      var iterables = [this].concat(arrCopy(arguments));
      var zipped = zipWithFactory(this.toSeq(), IndexedSeq.of, iterables);
      var interleaved = zipped.flatten(true);
      if (zipped.size) {
        interleaved.size = zipped.size * iterables.length;
      }
      return reify(this, interleaved);
    },

    last: function() {
      return this.get(-1);
    },

    skipWhile: function(predicate, context) {
      return reify(this, skipWhileFactory(this, predicate, context, false));
    },

    zip: function(/*, ...iterables */) {
      var iterables = [this].concat(arrCopy(arguments));
      return reify(this, zipWithFactory(this, defaultZipper, iterables));
    },

    zipWith: function(zipper/*, ...iterables */) {
      var iterables = arrCopy(arguments);
      iterables[0] = this;
      return reify(this, zipWithFactory(this, zipper, iterables));
    }

  });

  IndexedIterable.prototype[IS_INDEXED_SENTINEL] = true;
  IndexedIterable.prototype[IS_ORDERED_SENTINEL] = true;



  mixin(SetIterable, {

    // ### ES6 Collection methods (ES6 Array and Map)

    get: function(value, notSetValue) {
      return this.has(value) ? value : notSetValue;
    },

    includes: function(value) {
      return this.has(value);
    },


    // ### More sequential methods

    keySeq: function() {
      return this.valueSeq();
    }

  });

  SetIterable.prototype.has = IterablePrototype.includes;


  // Mixin subclasses

  mixin(KeyedSeq, KeyedIterable.prototype);
  mixin(IndexedSeq, IndexedIterable.prototype);
  mixin(SetSeq, SetIterable.prototype);

  mixin(KeyedCollection, KeyedIterable.prototype);
  mixin(IndexedCollection, IndexedIterable.prototype);
  mixin(SetCollection, SetIterable.prototype);


  // #pragma Helper functions

  function keyMapper(v, k) {
    return k;
  }

  function entryMapper(v, k) {
    return [k, v];
  }

  function not(predicate) {
    return function() {
      return !predicate.apply(this, arguments);
    }
  }

  function neg(predicate) {
    return function() {
      return -predicate.apply(this, arguments);
    }
  }

  function quoteString(value) {
    return typeof value === 'string' ? JSON.stringify(value) : value;
  }

  function defaultZipper() {
    return arrCopy(arguments);
  }

  function defaultNegComparator(a, b) {
    return a < b ? 1 : a > b ? -1 : 0;
  }

  function hashIterable(iterable) {
    if (iterable.size === Infinity) {
      return 0;
    }
    var ordered = isOrdered(iterable);
    var keyed = isKeyed(iterable);
    var h = ordered ? 1 : 0;
    var size = iterable.__iterate(
      keyed ?
        ordered ?
          function(v, k)  { h = 31 * h + hashMerge(hash(v), hash(k)) | 0; } :
          function(v, k)  { h = h + hashMerge(hash(v), hash(k)) | 0; } :
        ordered ?
          function(v ) { h = 31 * h + hash(v) | 0; } :
          function(v ) { h = h + hash(v) | 0; }
    );
    return murmurHashOfSize(size, h);
  }

  function murmurHashOfSize(size, h) {
    h = imul(h, 0xCC9E2D51);
    h = imul(h << 15 | h >>> -15, 0x1B873593);
    h = imul(h << 13 | h >>> -13, 5);
    h = (h + 0xE6546B64 | 0) ^ size;
    h = imul(h ^ h >>> 16, 0x85EBCA6B);
    h = imul(h ^ h >>> 13, 0xC2B2AE35);
    h = smi(h ^ h >>> 16);
    return h;
  }

  function hashMerge(a, b) {
    return a ^ b + 0x9E3779B9 + (a << 6) + (a >> 2) | 0; // int
  }

  var Immutable = {

    Iterable: Iterable,

    Seq: Seq,
    Collection: Collection,
    Map: Map,
    OrderedMap: OrderedMap,
    List: List,
    Stack: Stack,
    Set: Set,
    OrderedSet: OrderedSet,

    Record: Record,
    Range: Range,
    Repeat: Repeat,

    is: is,
    fromJS: fromJS

  };

  return Immutable;

}));

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.Legend = exports.ScatterplotChart = exports.ScatterplotChartStatic = exports.ScatterplotChartHybrid = exports.AreaChart = exports.LineChart = exports.PieChartStatic = exports.PieChart = exports.PieChartHybrid = exports.BarChart = undefined;

var _barChart = __webpack_require__(1000);

var _barChart2 = _interopRequireDefault(_barChart);

var _hybrid = __webpack_require__(1062);

var _hybrid2 = _interopRequireDefault(_hybrid);

var _static = __webpack_require__(1063);

var _static2 = _interopRequireDefault(_static);

var _lineChart = __webpack_require__(1064);

var _lineChart2 = _interopRequireDefault(_lineChart);

var _areaChart = __webpack_require__(1065);

var _areaChart2 = _interopRequireDefault(_areaChart);

var _hybrid3 = __webpack_require__(1066);

var _hybrid4 = _interopRequireDefault(_hybrid3);

var _static3 = __webpack_require__(1067);

var _static4 = _interopRequireDefault(_static3);

var _legend = __webpack_require__(1068);

var _legend2 = _interopRequireDefault(_legend);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

exports.BarChart = _barChart2.default;
exports.PieChartHybrid = _hybrid2.default;
exports.PieChart = _hybrid2.default;
exports.PieChartStatic = _static2.default;
exports.LineChart = _lineChart2.default;
exports.AreaChart = _areaChart2.default;
exports.ScatterplotChartHybrid = _hybrid4.default;
exports.ScatterplotChartStatic = _static4.default;
exports.ScatterplotChart = _hybrid4.default;
exports.Legend = _legend2.default;
//# sourceMappingURL=index.js.map

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _getPrototypeOf = __webpack_require__(246);

var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _createClass2 = __webpack_require__(34);

var _createClass3 = _interopRequireDefault(_createClass2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _d3Scale = __webpack_require__(305);

var _d = __webpack_require__(217);

var _shared = __webpack_require__(247);

var _interpolate = __webpack_require__(495);

var _interpolate2 = _interopRequireDefault(_interpolate);

var _d3Array = __webpack_require__(72);

var _d3TimeFormat = __webpack_require__(169);

var _reactFauxDom = __webpack_require__(273);

var _reactFauxDom2 = _interopRequireDefault(_reactFauxDom);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _radium = __webpack_require__(248);

var _lodash = __webpack_require__(249);

var _lodash2 = _interopRequireDefault(_lodash);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var dateParser = {};

var colorScale = (0, _d.scaleOrdinal)(_d.schemeCategory20).domain((0, _d.range)(0, 20));

var BarChart = function (_PureComponent) {
  (0, _inherits3.default)(BarChart, _PureComponent);
  (0, _createClass3.default)(BarChart, null, [{
    key: 'propTypes',
    get: function get() {
      return {
        data: _propTypes2.default.array.isRequired,
        lineData: _propTypes2.default.array,
        width: _propTypes2.default.number,
        height: _propTypes2.default.number,
        margin: _propTypes2.default.object,
        mouseOverHandler: _propTypes2.default.func,
        mouseOutHandler: _propTypes2.default.func,
        mouseMoveHandler: _propTypes2.default.func,
        clickHandler: _propTypes2.default.func,
        interpolate: _propTypes2.default.string,
        style: _propTypes2.default.object,
        colorBars: _propTypes2.default.bool,
        axes: _propTypes2.default.bool,
        grid: _propTypes2.default.bool,
        axisLabels: _propTypes2.default.shape({
          x: _propTypes2.default.string,
          y: _propTypes2.default.string
        }),
        xType: _propTypes2.default.string,
        yType: _propTypes2.default.string,
        y2Type: _propTypes2.default.string,
        xDomainRange: _propTypes2.default.array,
        yDomainRange: _propTypes2.default.array,
        datePattern: _propTypes2.default.string,
        tickTimeDisplayFormat: _propTypes2.default.string,
        yAxisOrientRight: _propTypes2.default.bool,
        barWidth: _propTypes2.default.number,
        xTickNumber: _propTypes2.default.number,
        yTickNumber: _propTypes2.default.number
      };
    }
  }, {
    key: 'defaultProps',
    get: function get() {
      return {
        lineData: [],
        width: 400,
        height: 200,
        barWidth: 10,
        axes: false,
        xType: 'text',
        yType: 'linear',
        y2Type: 'linear',
        interpolate: 'linear',
        mouseOverHandler: function mouseOverHandler() {},
        mouseOutHandler: function mouseOutHandler() {},
        mouseMoveHandler: function mouseMoveHandler() {},
        clickHandler: function clickHandler() {},
        datePattern: '%d-%b-%y',
        axisLabels: {
          x: '',
          y: ''
        }
      };
    }
  }]);

  function BarChart(props) {
    (0, _classCallCheck3.default)(this, BarChart);

    var _this = (0, _possibleConstructorReturn3.default)(this, (BarChart.__proto__ || (0, _getPrototypeOf2.default)(BarChart)).call(this, props));

    _this.uid = (0, _shared.createUniqueID)(props);
    return _this;
  }

  (0, _createClass3.default)(BarChart, [{
    key: 'componentDidMount',
    value: function componentDidMount() {
      var ref = this.refs.barChart;
      (0, _shared.createCircularTicks)(ref);
    }
  }, {
    key: 'componentDidUpdate',
    value: function componentDidUpdate() {
      var ref = this.refs.barChart;
      (0, _shared.createCircularTicks)(ref);
    }
  }, {
    key: 'createDomainRangeGenerator',
    value: function createDomainRangeGenerator(axesType, domainRange, data, type, length) {
      var _this2 = this;

      var dataIndex = axesType === 'x' ? 'x' : 'y';
      var barPadding = length / data.length > 40 ? 0.02 : 0.04;
      var parseDate = function parseDate(v) {
        return _this2.parseDate(v);
      };
      var axis = void 0;
      switch (type) {
        case 'text':
          axis = (0, _d3Scale.scaleBand)();
          axis.domain(data.map(function (d) {
            return d[dataIndex];
          })).range([0, length]).padding(barPadding);
          break;
        case 'linear':
          axis = (0, _d3Scale.scaleLinear)();
          axis.domain(Array.isArray(domainRange) ? domainRange // calculateDomainRange(domainRange, type, parseDate)
          : [0, (0, _d.max)(data, function (d) {
            return d[dataIndex];
          })]).range(axesType === 'x' ? [0, length] : [length, 0]);
          break;
        case 'time':
          axis = (0, _d.scaleTime)();
          axis.domain(Array.isArray(domainRange) ? (0, _shared.calculateDomainRange)(domainRange, type, parseDate) : (0, _d3Array.extent)(data, function (d) {
            return parseDate(d[dataIndex]);
          })).range(axesType === 'x' ? [0, length] : [length, 0]);
          break;
        default:
          break;
      }
      return axis;
    }
  }, {
    key: 'defineColor',
    value: function defineColor(i, d, colorBars) {
      if (d.color) return d.color;
      if (colorBars) return colorScale(i);
      return null;
    }
  }, {
    key: 'createSvgNode',
    value: function createSvgNode(_ref) {
      var m = _ref.m,
          w = _ref.w,
          h = _ref.h;

      var node = new _reactFauxDom2.default.Element('svg');
      node.setAttribute('width', w + m.left + m.right);
      node.setAttribute('height', h + m.top + m.bottom);
      return node;
    }
  }, {
    key: 'createSvgRoot',
    value: function createSvgRoot(_ref2) {
      var node = _ref2.node,
          m = _ref2.m;

      return (0, _d.select)(node).append('g').attr('transform', 'translate(' + m.left + ', ' + m.top + ')');
    }
  }, {
    key: 'createXAxis',
    value: function createXAxis(_ref3) {
      var root = _ref3.root,
          m = _ref3.m,
          w = _ref3.w,
          h = _ref3.h,
          x = _ref3.x;
      var _props = this.props,
          label = _props.axisLabels.x,
          xType = _props.xType,
          tickTimeDisplayFormat = _props.tickTimeDisplayFormat,
          xTickNumber = _props.xTickNumber,
          yAxisOrientRight = _props.yAxisOrientRight;


      var axis = (0, _d.axisBottom)(x);

      if (xType === 'time' && tickTimeDisplayFormat) {
        axis.tickFormat((0, _d.timeFormat)(tickTimeDisplayFormat));
      }

      axis.tickSize(0).tickPadding(15);

      if (xTickNumber) {
        axis.ticks(xTickNumber);
      }

      var group = root.append('g').attr('class', 'x axis').attr('transform', 'translate(0, ' + h + ')');

      group.call(axis);

      if (label) {
        group.append('text').attr('class', 'label').attr('x', yAxisOrientRight ? 0 : w).attr('y', m.bottom - 10).style('text-anchor', yAxisOrientRight ? 'start' : 'end').text(label);
      }
    }
  }, {
    key: 'createYAxis',
    value: function createYAxis(_ref4) {
      var root = _ref4.root,
          m = _ref4.m,
          w = _ref4.w,
          y = _ref4.y;
      var _props2 = this.props,
          label = _props2.axisLabels.y,
          yTickNumber = _props2.yTickNumber,
          yAxisOrientRight = _props2.yAxisOrientRight,
          grid = _props2.grid;


      var axis = yAxisOrientRight ? (0, _d.axisRight)(y) : (0, _d.axisLeft)(y);

      if (yTickNumber) {
        axis.ticks(yTickNumber);
      }

      if (grid) {
        axis.tickSize(-w, 6).tickPadding(12);
      } else {
        axis.tickPadding(10);
      }

      var group = root.append('g').attr('class', 'y axis');

      group.call(axis);

      if (label) {
        group.attr('transform', yAxisOrientRight ? 'translate(' + w + ', 0)' : 'translate(0, 0)').append('text').attr('class', 'label').attr('transform', 'rotate(-90)').attr('x', 0).attr('y', yAxisOrientRight ? -25 + m.right : 10 - m.left).attr('dy', '.9em').style('text-anchor', 'end').text(label);
      }
    }
  }, {
    key: 'createYAxis2',
    value: function createYAxis2(_ref5) {
      var root = _ref5.root,
          m = _ref5.m,
          w = _ref5.w,
          h = _ref5.h;
      var _props3 = this.props,
          lineData = _props3.lineData,
          label = _props3.axisLabels.y2,
          y2Type = _props3.y2Type,
          yTickNumber = _props3.yTickNumber,
          yAxisOrientRight = _props3.yAxisOrientRight,
          grid = _props3.grid,
          yDomainRange = _props3.yDomainRange;


      var y = this.createDomainRangeGenerator('y', yDomainRange, lineData, y2Type, h);

      var axis = yAxisOrientRight ? (0, _d.axisRight)(y) : (0, _d.axisLeft)(y);

      if (yTickNumber) {
        axis.ticks(yTickNumber);
      }

      if (grid) {
        axis.tickSize(-w, 6).tickPadding(12);
      } else {
        axis.tickPadding(10);
      }

      var group = root.append('g').attr('class', 'y axis');

      group.call(axis);

      if (label) {
        group.attr('transform', yAxisOrientRight ? 'translate(0, 0)' : 'translate(' + w + ', 0)').append('text').attr('class', 'label').attr('transform', 'rotate(-90)').attr('x', 0).attr('y', yAxisOrientRight ? 10 - m.left : -25 + m.right).attr('dy', '.9em').style('text-anchor', 'end').text(label);
      }
    }
  }, {
    key: 'createBarChart',
    value: function createBarChart(_ref6) {
      var _this3 = this;

      var root = _ref6.root,
          h = _ref6.h,
          x = _ref6.x,
          y = _ref6.y;
      var _props4 = this.props,
          data = _props4.data,
          mouseOverHandler = _props4.mouseOverHandler,
          mouseOutHandler = _props4.mouseOutHandler,
          mouseMoveHandler = _props4.mouseMoveHandler,
          clickHandler = _props4.clickHandler,
          colorBars = _props4.colorBars,
          xType = _props4.xType,
          barWidth = _props4.barWidth;


      var calculateDate = function calculateDate(v) {
        return _this3.parseDate(v);
      };
      var calculateFill = function calculateFill(d, i) {
        return _this3.defineColor(i, d, colorBars);
      };

      var calculateX = function calculateX(d) {
        return xType === 'time' ? x(calculateDate(d.x)) : x(d.x);
      };
      var calculateY = function calculateY(d) {
        return y(d.y);
      };
      var calculateW = function calculateW() {
        return xType === 'text' ? x.bandwidth() : barWidth;
      };
      var calculateH = function calculateH(d) {
        return h - y(d.y);
      };

      var mouseover = function mouseover(d) {
        return mouseOverHandler(d, _d.event);
      };
      var mouseout = function mouseout(d) {
        return mouseOutHandler(d, _d.event);
      };
      var mousemove = function mousemove(d) {
        return mouseMoveHandler(d, _d.event);
      };
      var click = function click(d) {
        return clickHandler(d, _d.event);
      };

      var group = root.selectAll('rect') // '.bar'
      .data(data);

      group.enter().append('rect').attr('class', 'bar').style('fill', calculateFill).attr('x', calculateX).attr('y', calculateY).attr('width', calculateW).attr('height', calculateH).on('mouseover', mouseover).on('mouseout', mouseout).on('mousemove', mousemove).on('click', click);

      group.exit().remove();
    }
  }, {
    key: 'createLinePath',
    value: function createLinePath(_ref7) {
      var _this4 = this;

      var root = _ref7.root,
          h = _ref7.h,
          x = _ref7.x;
      var _props5 = this.props,
          lineData = _props5.lineData,
          xType = _props5.xType,
          y2Type = _props5.y2Type,
          interpolate = _props5.interpolate,
          yDomainRange = _props5.yDomainRange;


      var parseDate = function parseDate(v) {
        return _this4.parseDate(v);
      };

      var y = this.createDomainRangeGenerator('y', yDomainRange, lineData, y2Type, h);

      var yValue = (0, _shared.createValueGenerator)('y', y2Type, parseDate);
      var xValue = (0, _shared.createValueGenerator)('x', xType, parseDate);

      var linePath = (0, _d.line)().curve((0, _interpolate2.default)(interpolate)).x(function (d) {
        return x(xValue(d));
      }).y(function (d) {
        return y(yValue(d));
      });

      root.append('path').datum(lineData).attr('class', 'line').attr('style', 'stroke: red').attr('d', linePath);
    }
  }, {
    key: 'createStyle',
    value: function createStyle() {
      var _props6 = this.props,
          style = _props6.style,
          yAxisOrientRight = _props6.yAxisOrientRight,
          grid = _props6.grid;


      var uid = this.uid;
      var scope = '.bar-chart-' + uid;
      var axisStyles = (0, _shared.getAxisStyles)(grid, false, yAxisOrientRight);
      var rules = (0, _lodash2.default)({}, _shared.defaultStyles, style, axisStyles);

      return _react2.default.createElement(_radium.Style, {
        scopeSelector: scope,
        rules: rules
      });
    }
  }, {
    key: 'hasLineData',
    value: function hasLineData() {
      var lineData = this.props.lineData;


      return lineData.length > 0;
    }
  }, {
    key: 'parseDate',
    value: function parseDate(v) {
      var datePattern = this.props.datePattern;


      var datePatternParser = dateParser[datePattern] || (dateParser[datePattern] = (0, _d3TimeFormat.timeParse)(datePattern));

      return datePatternParser(v);
    }
  }, {
    key: 'calculateChartParameters',
    value: function calculateChartParameters() {
      var _props7 = this.props,
          data = _props7.data,
          axes = _props7.axes,
          xType = _props7.xType,
          yType = _props7.yType,
          yAxisOrientRight = _props7.yAxisOrientRight,
          xDomainRange = _props7.xDomainRange,
          yDomainRange = _props7.yDomainRange,
          margin = _props7.margin,
          width = _props7.width,
          height = _props7.height;


      var hasLineData = this.hasLineData();
      var m = (0, _shared.calculateMargin)(axes, margin, yAxisOrientRight, hasLineData);
      var w = (0, _shared.reduce)(width, m.left, m.right);
      var h = (0, _shared.reduce)(height, m.top, m.bottom);
      var x = this.createDomainRangeGenerator('x', xDomainRange, data, xType, w);
      var y = this.createDomainRangeGenerator('y', yDomainRange, data, yType, h);

      var node = this.createSvgNode({ m: m, w: w, h: h });
      var root = this.createSvgRoot({ node: node, m: m });

      return {
        m: m,
        w: w,
        h: h,
        x: x,
        y: y,
        node: node,
        root: root
      };
    }
  }, {
    key: 'render',
    value: function render() {
      var axes = this.props.axes;


      var hasLineData = this.hasLineData();
      var p = this.calculateChartParameters();

      if (axes) {
        this.createXAxis(p);

        this.createYAxis(p); // const yAxis = this.createYAxis(p);

        if (hasLineData) {
          this.createYAxis2(p); // { ...p, yAxis });
        }
      }

      this.createBarChart(p);

      if (hasLineData) {
        this.createLinePath(p);
      }

      var uid = this.uid;
      var className = 'bar-chart-' + uid;
      var node = p.node;


      return _react2.default.createElement(
        'div',
        { ref: 'barChart', className: className },
        this.createStyle(),
        node.toReact()
      );
    }
  }]);
  return BarChart;
}(_react.PureComponent);

exports.default = BarChart;
module.exports = exports['default'];
//# sourceMappingURL=index.js.mapmodule.exports = { "default": __webpack_require__(1001), __esModule: true };__webpack_require__(1002);
module.exports = __webpack_require__(159).Object.getPrototypeOf;
// 19.1.2.9 Object.getPrototypeOf(O)
var toObject = __webpack_require__(412);
var $getPrototypeOf = __webpack_require__(650);

__webpack_require__(1003)('getPrototypeOf', function () {
  return function getPrototypeOf(it) {
    return $getPrototypeOf(toObject(it));
  };
});
// most Object methods by ES6 should accept primitives
var $export = __webpack_require__(252);
var core = __webpack_require__(159);
var fails = __webpack_require__(312);
module.exports = function (KEY, exec) {
  var fn = (core.Object || {})[KEY] || Object[KEY];
  var exp = {};
  exp[KEY] = exec(fn);
  $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
};


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.defaultStyles = exports.defaultColors = undefined;

var _slicedToArray2 = __webpack_require__(393);

var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);

exports.reduce = reduce;
exports.createValueGenerator = createValueGenerator;
exports.createCircularTicks = createCircularTicks;
exports.getAxisStyles = getAxisStyles;
exports.createUniqueID = createUniqueID;
exports.calculateMargin = calculateMargin;
exports.textDomainRange = textDomainRange;
exports.calculateExtent = calculateExtent;
exports.calculateDomainRange = calculateDomainRange;
exports.createDomainRangeGenerator = createDomainRangeGenerator;

var _d3Array = __webpack_require__(72);

var _d3Scale = __webpack_require__(305);

var _d = __webpack_require__(217);

var _objectHash = __webpack_require__(1004);

var _objectHash2 = _interopRequireDefault(_objectHash);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var defaultColors = exports.defaultColors = ['#3F4C55', '#E3A51A', '#F4E956', '#AAAC84'];

var defaultStyles = exports.defaultStyles = {
  '.pie-chart-slice': {
    stroke: '#fff',
    strokeWidth: 1,
    opacity: '1'
  },
  '.pie-chart-slice:hover': {
    opacity: '0.8'
  },
  '.pie-chart-label': {
    fontFamily: 'sans-serif',
    fontSize: '12px',
    textAnchor: 'middle',
    fill: '#000'
  },
  '.bar': {
    fill: 'blue',
    transition: 'x 0.35s ease-in, y 0.35s ease-in, height 0.5s ease-in, width 0.5s ease-in',
    opacity: 1
  },
  '.bar:hover': {
    opacity: 0.8
  },
  '.line': {
    fill: 'none',
    strokeWidth: 1.5,
    opacity: 0.7
  },
  '.line:hover': {
    opacity: 1
  },
  '.area': {
    opacity: 0.7
  },
  '.area:hover': {
    opacity: 1
  },
  '.dot': {
    strokeWidth: 0,
    opacity: 0.85,
    transition: 'cx 0.35s ease-in, cy 0.35s ease-in, r 0.5s ease-in'
  },
  '.dot:hover': {
    opacity: 1
  },
  'circle.data-point': {
    r: 4,
    opacity: 0.7,
    transition: 'cx 0.35s ease-in, cy 0.35s ease-in'
  },
  'circle.data-point:hover': {
    r: 6,
    opacity: 1
  },
  'circle.tick-circle': {
    r: 2,
    fill: 'lightgrey'
  },
  '.x circle.tick-circle': {
    cy: '8px'
  },
  '.axis': {
    'font-family': 'dobra-light,Arial,sans-serif',
    'font-size': '9px'
  },
  '.axis .label': {
    font: '14px arial'
  },
  '.axis path, .axis line': {
    fill: 'none',
    strokeWidth: 1,
    'shape-rendering': 'crispEdges'
  },
  'x.axis path': {
    display: 'none',
    stroke: 'lightgrey'
  },
  '.tick line': {
    stroke: 'lightgrey',
    strokeWidth: 1,
    opacity: '0.7'
  }
};

function reduce() {
  for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
    args[_key] = arguments[_key];
  }

  var rVal = args[0];
  for (var i = 1; i < args.length; i++) {
    rVal -= args[i];
  }
  return rVal;
}

function createValueGenerator(scale, type, parseDate) {
  var dataIndex = scale === 'x' ? 'x' : 'y';
  return type === 'time' ? function (d) {
    return parseDate(d[dataIndex]);
  } : function (d) {
    return d[dataIndex];
  };
}

function createCircularTicks(containerElement) {
  (0, _d.select)(containerElement).select('svg').selectAll('.tick-circle').remove();

  var ticks = (0, _d.select)(containerElement).select('svg').selectAll('.tick');

  function circleAppender() {
    (0, _d.select)(this).append('circle').attr('class', 'tick-circle');
  }
  ticks.each(circleAppender);
}

function getAxisStyles(grid, verticalGrid, yAxisOrientRight) {
  return {
    '.x circle.tick-circle ': {
      fill: verticalGrid ? 'none' : 'lightgrey'
    },
    '.y circle.tick-circle': {
      cx: yAxisOrientRight ? '+5px' : '-8px',
      fill: grid ? 'none' : 'lightgrey'
    },
    '.y.axis line': {
      display: grid ? 'inline' : 'none',
      stroke: 'lightgrey'
    }
  };
}

function createUniqueID(o) {
  return (0, _objectHash2.default)(o);
}

function calculateMargin(axes, margin, yAxisOrientRight, y2) {
  if (margin) return margin;
  if (yAxisOrientRight) {
    return axes ? { top: 20, right: 50, bottom: 50, left: y2 ? 50 : 20 } : { top: 0, right: 0, bottom: 0, left: 0 };
  }
  return axes ? { top: 20, right: y2 ? 50 : 20, bottom: 50, left: 50 } : { top: 0, right: 0, bottom: 0, left: 0 };
}

/* eslint no-shadow: 0 */
function textDomainRange(d, s) {
  var a = [];

  d.forEach(function (d) {
    d.forEach(function (d, i) {
      var v = d[s];
      if (!a.includes(v)) a.splice(i, 0, v);
    });
  });

  return a;
}

function calculateExtent(data, accessor) {
  var lo = void 0; // Low
  var hi = void 0; // High
  data.forEach(function (item) {
    var _extent = (0, _d3Array.extent)(item, accessor),
        _extent2 = (0, _slicedToArray3.default)(_extent, 2),
        LO = _extent2[0],
        HI = _extent2[1];

    lo = lo < LO ? lo : LO;
    hi = hi > HI ? hi : HI;
  });
  return [lo, hi];
}

function timeDomainRange(domainRange, parseDate) {
  var _domainRange = (0, _slicedToArray3.default)(domainRange, 2),
      LO = _domainRange[0],
      HI = _domainRange[1];

  var lo = parseDate(LO);
  var hi = parseDate(HI);
  return [lo, hi];
}

function calculateDomainRange(domainRange, type, parseDate) {
  if (!Array.isArray(domainRange)) return null;
  return type === 'time' ? timeDomainRange(domainRange, parseDate) : domainRange;
}

function createDomainRangeGenerator(scale, domainRange, data, type, length, parseDate) {
  /*
  const dataIndex =
    (scale === 'x')
      ? 'x'
      : 'y';
  */
  var axis = void 0;

  switch (type) {
    case 'text':
      axis = (0, _d3Scale.scalePoint)();
      axis.domain(Array.isArray(domainRange) ? domainRange // calculateDomainRange(domainRange, type, parseDate)
      : textDomainRange(data, scale)).range([0, length]).padding(0);
      break;
    case 'linear':
      axis = (0, _d3Scale.scaleLinear)();
      axis.domain(Array.isArray(domainRange) ? domainRange // calculateDomainRange(domainRange, type, parseDate)
      : calculateExtent(data, createValueGenerator(scale, type, parseDate))).range(scale === 'x' ? [0, length] : [length, 0]);
      break;
    case 'time':
      axis = (0, _d.scaleTime)();
      axis.domain(Array.isArray(domainRange) ? timeDomainRange(domainRange, parseDate) : calculateExtent(data, createValueGenerator(scale, type, parseDate))).range(scale === 'x' ? [0, length] : [length, 0]);
      break;
    default:
      break;
  }
  return axis;
}
//# sourceMappingURL=shared.js.map

exports.__esModule = true;

var _isIterable2 = __webpack_require__(852);

var _isIterable3 = _interopRequireDefault(_isIterable2);

var _getIterator2 = __webpack_require__(855);

var _getIterator3 = _interopRequireDefault(_getIterator2);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

exports.default = function () {
  function sliceIterator(arr, i) {
    var _arr = [];
    var _n = true;
    var _d = false;
    var _e = undefined;

    try {
      for (var _i = (0, _getIterator3.default)(arr), _s; !(_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"]) _i["return"]();
      } finally {
        if (_d) throw _e;
      }
    }

    return _arr;
  }

  return function (arr, i) {
    if (Array.isArray(arr)) {
      return arr;
    } else if ((0, _isIterable3.default)(Object(arr))) {
      return sliceIterator(arr, i);
    } else {
      throw new TypeError("Invalid attempt to destructure non-iterable instance");
    }
  };
}();module.exports = { "default": __webpack_require__(853), __esModule: true };__webpack_require__(480);
__webpack_require__(406);
module.exports = __webpack_require__(854);
var classof = __webpack_require__(648);
var ITERATOR = __webpack_require__(198)('iterator');
var Iterators = __webpack_require__(310);
module.exports = __webpack_require__(159).isIterable = function (it) {
  var O = Object(it);
  return O[ITERATOR] !== undefined
    || '@@iterator' in O
    // eslint-disable-next-line no-prototype-builtins
    || Iterators.hasOwnProperty(classof(O));
};
module.exports = { "default": __webpack_require__(856), __esModule: true };__webpack_require__(480);
__webpack_require__(406);
module.exports = __webpack_require__(857);
var anObject = __webpack_require__(277);
var get = __webpack_require__(647);
module.exports = __webpack_require__(159).getIterator = function (it) {
  var iterFn = get(it);
  if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');
  return anObject(iterFn.call(it));
};
var require;var require;!function(e){if(true)module.exports=e();else { var t; }}(function(){return function e(t,n,r){function o(u,a){if(!n[u]){if(!t[u]){var f="function"==typeof require&&require;if(!a&&f)return require(u,!0);if(i)return i(u,!0);throw new Error("Cannot find module '"+u+"'")}var s=n[u]={exports:{}};t[u][0].call(s.exports,function(e){var n=t[u][1][e];return o(n?n:e)},s,s.exports,e,t,n,r)}return n[u].exports}for(var i="function"==typeof require&&require,u=0;u<r.length;u++)o(r[u]);return o}({1:[function(e,t,n){(function(r,o,i,u,a,f,s,c,l){"use strict";function d(e,t){return t=h(e,t),y(e,t)}function h(e,t){if(t=t||{},t.algorithm=t.algorithm||"sha1",t.encoding=t.encoding||"hex",t.excludeValues=!!t.excludeValues,t.algorithm=t.algorithm.toLowerCase(),t.encoding=t.encoding.toLowerCase(),t.ignoreUnknown=t.ignoreUnknown===!0,t.respectType=t.respectType!==!1,t.respectFunctionNames=t.respectFunctionNames!==!1,t.respectFunctionProperties=t.respectFunctionProperties!==!1,t.unorderedArrays=t.unorderedArrays===!0,t.unorderedSets=t.unorderedSets!==!1,t.unorderedObjects=t.unorderedObjects!==!1,t.replacer=t.replacer||void 0,t.excludeKeys=t.excludeKeys||void 0,"undefined"==typeof e)throw new Error("Object argument required.");for(var n=0;n<v.length;++n)v[n].toLowerCase()===t.algorithm.toLowerCase()&&(t.algorithm=v[n]);if(v.indexOf(t.algorithm)===-1)throw new Error('Algorithm "'+t.algorithm+'"  not supported. supported values: '+v.join(", "));if(m.indexOf(t.encoding)===-1&&"passthrough"!==t.algorithm)throw new Error('Encoding "'+t.encoding+'"  not supported. supported values: '+m.join(", "));return t}function p(e){if("function"!=typeof e)return!1;var t=/^function\s+\w*\s*\(\s*\)\s*{\s+\[native code\]\s+}$/i;return null!=t.exec(Function.prototype.toString.call(e))}function y(e,t){var n;n="passthrough"!==t.algorithm?b.createHash(t.algorithm):new w,"undefined"==typeof n.write&&(n.write=n.update,n.end=n.update);var r=g(t,n);if(r.dispatch(e),n.update||n.end(""),n.digest)return n.digest("buffer"===t.encoding?void 0:t.encoding);var o=n.read();return"buffer"===t.encoding?o:o.toString(t.encoding)}function g(e,t,n){n=n||[];var r=function(e){return t.update?t.update(e,"utf8"):t.write(e,"utf8")};return{dispatch:function(t){e.replacer&&(t=e.replacer(t));var n=typeof t;return null===t&&(n="null"),this["_"+n](t)},_object:function(t){var o=/\[object (.*)\]/i,u=Object.prototype.toString.call(t),a=o.exec(u);a=a?a[1]:"unknown:["+u+"]",a=a.toLowerCase();var f=null;if((f=n.indexOf(t))>=0)return this.dispatch("[CIRCULAR:"+f+"]");if(n.push(t),"undefined"!=typeof i&&i.isBuffer&&i.isBuffer(t))return r("buffer:"),r(t);if("object"===a||"function"===a){var s=Object.keys(t);e.unorderedObjects&&(s=s.sort()),e.respectType===!1||p(t)||s.splice(0,0,"prototype","__proto__","constructor"),e.excludeKeys&&(s=s.filter(function(t){return!e.excludeKeys(t)})),r("object:"+s.length+":");var c=this;return s.forEach(function(n){c.dispatch(n),r(":"),e.excludeValues||c.dispatch(t[n]),r(",")})}if(!this["_"+a]){if(e.ignoreUnknown)return r("["+a+"]");throw new Error('Unknown object type "'+a+'"')}this["_"+a](t)},_array:function(t,o){o="undefined"!=typeof o?o:e.unorderedArrays!==!1;var i=this;if(r("array:"+t.length+":"),!o||t.length<=1)return t.forEach(function(e){return i.dispatch(e)});var u=[],a=t.map(function(t){var r=new w,o=n.slice(),i=g(e,r,o);return i.dispatch(t),u=u.concat(o.slice(n.length)),r.read().toString()});return n=n.concat(u),a.sort(),this._array(a,!1)},_date:function(e){return r("date:"+e.toJSON())},_symbol:function(e){return r("symbol:"+e.toString())},_error:function(e){return r("error:"+e.toString())},_boolean:function(e){return r("bool:"+e.toString())},_string:function(e){r("string:"+e.length+":"),r(e)},_function:function(t){r("fn:"),p(t)?this.dispatch("[native]"):this.dispatch(t.toString()),e.respectFunctionNames!==!1&&this.dispatch("function-name:"+String(t.name)),e.respectFunctionProperties&&this._object(t)},_number:function(e){return r("number:"+e.toString())},_xml:function(e){return r("xml:"+e.toString())},_null:function(){return r("Null")},_undefined:function(){return r("Undefined")},_regexp:function(e){return r("regex:"+e.toString())},_uint8array:function(e){return r("uint8array:"),this.dispatch(Array.prototype.slice.call(e))},_uint8clampedarray:function(e){return r("uint8clampedarray:"),this.dispatch(Array.prototype.slice.call(e))},_int8array:function(e){return r("uint8array:"),this.dispatch(Array.prototype.slice.call(e))},_uint16array:function(e){return r("uint16array:"),this.dispatch(Array.prototype.slice.call(e))},_int16array:function(e){return r("uint16array:"),this.dispatch(Array.prototype.slice.call(e))},_uint32array:function(e){return r("uint32array:"),this.dispatch(Array.prototype.slice.call(e))},_int32array:function(e){return r("uint32array:"),this.dispatch(Array.prototype.slice.call(e))},_float32array:function(e){return r("float32array:"),this.dispatch(Array.prototype.slice.call(e))},_float64array:function(e){return r("float64array:"),this.dispatch(Array.prototype.slice.call(e))},_arraybuffer:function(e){return r("arraybuffer:"),this.dispatch(new Uint8Array(e))},_url:function(e){return r("url:"+e.toString(),"utf8")},_map:function(t){r("map:");var n=Array.from(t);return this._array(n,e.unorderedSets!==!1)},_set:function(t){r("set:");var n=Array.from(t);return this._array(n,e.unorderedSets!==!1)},_blob:function(){if(e.ignoreUnknown)return r("[blob]");throw Error('Hashing Blob objects is currently not supported\n(see https://github.com/puleos/object-hash/issues/26)\nUse "options.replacer" or "options.ignoreUnknown"\n')},_domwindow:function(){return r("domwindow")},_process:function(){return r("process")},_timer:function(){return r("timer")},_pipe:function(){return r("pipe")},_tcp:function(){return r("tcp")},_udp:function(){return r("udp")},_tty:function(){return r("tty")},_statwatcher:function(){return r("statwatcher")},_securecontext:function(){return r("securecontext")},_connection:function(){return r("connection")},_zlib:function(){return r("zlib")},_context:function(){return r("context")},_nodescript:function(){return r("nodescript")},_httpparser:function(){return r("httpparser")},_dataview:function(){return r("dataview")},_signal:function(){return r("signal")},_fsevent:function(){return r("fsevent")},_tlswrap:function(){return r("tlswrap")}}}function w(){return{buf:"",write:function(e){this.buf+=e},end:function(e){this.buf+=e},read:function(){return this.buf}}}var b=e("crypto");n=t.exports=d,n.sha1=function(e){return d(e)},n.keys=function(e){return d(e,{excludeValues:!0,algorithm:"sha1",encoding:"hex"})},n.MD5=function(e){return d(e,{algorithm:"md5",encoding:"hex"})},n.keysMD5=function(e){return d(e,{algorithm:"md5",encoding:"hex",excludeValues:!0})};var v=b.getHashes?b.getHashes().slice():["sha1","md5"];v.push("passthrough");var m=["buffer","hex","binary","base64"];n.writeToStream=function(e,t,n){return"undefined"==typeof n&&(n=t,t={}),t=h(e,t),g(t,n).dispatch(e)}}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/fake_5f1a2fc7.js","/")},{buffer:3,crypto:5,lYpoI2:10}],2:[function(e,t,n){(function(e,t,r,o,i,u,a,f,s){var c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";!function(e){"use strict";function t(e){var t=e.charCodeAt(0);return t===i||t===l?62:t===u||t===d?63:t<a?-1:t<a+10?t-a+26+26:t<s+26?t-s:t<f+26?t-f+26:void 0}function n(e){function n(e){s[l++]=e}var r,i,u,a,f,s;if(e.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var c=e.length;f="="===e.charAt(c-2)?2:"="===e.charAt(c-1)?1:0,s=new o(3*e.length/4-f),u=f>0?e.length-4:e.length;var l=0;for(r=0,i=0;r<u;r+=4,i+=3)a=t(e.charAt(r))<<18|t(e.charAt(r+1))<<12|t(e.charAt(r+2))<<6|t(e.charAt(r+3)),n((16711680&a)>>16),n((65280&a)>>8),n(255&a);return 2===f?(a=t(e.charAt(r))<<2|t(e.charAt(r+1))>>4,n(255&a)):1===f&&(a=t(e.charAt(r))<<10|t(e.charAt(r+1))<<4|t(e.charAt(r+2))>>2,n(a>>8&255),n(255&a)),s}function r(e){function t(e){return c.charAt(e)}function n(e){return t(e>>18&63)+t(e>>12&63)+t(e>>6&63)+t(63&e)}var r,o,i,u=e.length%3,a="";for(r=0,i=e.length-u;r<i;r+=3)o=(e[r]<<16)+(e[r+1]<<8)+e[r+2],a+=n(o);switch(u){case 1:o=e[e.length-1],a+=t(o>>2),a+=t(o<<4&63),a+="==";break;case 2:o=(e[e.length-2]<<8)+e[e.length-1],a+=t(o>>10),a+=t(o>>4&63),a+=t(o<<2&63),a+="="}return a}var o="undefined"!=typeof Uint8Array?Uint8Array:Array,i="+".charCodeAt(0),u="/".charCodeAt(0),a="0".charCodeAt(0),f="a".charCodeAt(0),s="A".charCodeAt(0),l="-".charCodeAt(0),d="_".charCodeAt(0);e.toByteArray=n,e.fromByteArray=r}("undefined"==typeof n?this.base64js={}:n)}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/base64-js/lib/b64.js","/node_modules/gulp-browserify/node_modules/base64-js/lib")},{buffer:3,lYpoI2:10}],3:[function(e,t,n){(function(t,r,o,i,u,a,f,s,c){function o(e,t,n){if(!(this instanceof o))return new o(e,t,n);var r=typeof e;if("base64"===t&&"string"===r)for(e=N(e);e.length%4!==0;)e+="=";var i;if("number"===r)i=F(e);else if("string"===r)i=o.byteLength(e,t);else{if("object"!==r)throw new Error("First argument needs to be a number, array or string.");i=F(e.length)}var u;o._useTypedArrays?u=o._augment(new Uint8Array(i)):(u=this,u.length=i,u._isBuffer=!0);var a;if(o._useTypedArrays&&"number"==typeof e.byteLength)u._set(e);else if(O(e))for(a=0;a<i;a++)o.isBuffer(e)?u[a]=e.readUInt8(a):u[a]=e[a];else if("string"===r)u.write(e,0,t);else if("number"===r&&!o._useTypedArrays&&!n)for(a=0;a<i;a++)u[a]=0;return u}function l(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r),r>i&&(r=i)):r=i;var u=t.length;$(u%2===0,"Invalid hex string"),r>u/2&&(r=u/2);for(var a=0;a<r;a++){var f=parseInt(t.substr(2*a,2),16);$(!isNaN(f),"Invalid hex string"),e[n+a]=f}return o._charsWritten=2*a,a}function d(e,t,n,r){var i=o._charsWritten=W(V(t),e,n,r);return i}function h(e,t,n,r){var i=o._charsWritten=W(q(t),e,n,r);return i}function p(e,t,n,r){return h(e,t,n,r)}function y(e,t,n,r){var i=o._charsWritten=W(R(t),e,n,r);return i}function g(e,t,n,r){var i=o._charsWritten=W(P(t),e,n,r);return i}function w(e,t,n){return 0===t&&n===e.length?G.fromByteArray(e):G.fromByteArray(e.slice(t,n))}function b(e,t,n){var r="",o="";n=Math.min(e.length,n);for(var i=t;i<n;i++)e[i]<=127?(r+=J(o)+String.fromCharCode(e[i]),o=""):o+="%"+e[i].toString(16);return r+J(o)}function v(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;o++)r+=String.fromCharCode(e[o]);return r}function m(e,t,n){return v(e,t,n)}function _(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var o="",i=t;i<n;i++)o+=H(e[i]);return o}function E(e,t,n){for(var r=e.slice(t,n),o="",i=0;i<r.length;i+=2)o+=String.fromCharCode(r[i]+256*r[i+1]);return o}function I(e,t,n,r){r||($("boolean"==typeof n,"missing or invalid endian"),$(void 0!==t&&null!==t,"missing offset"),$(t+1<e.length,"Trying to read beyond buffer length"));var o=e.length;if(!(t>=o)){var i;return n?(i=e[t],t+1<o&&(i|=e[t+1]<<8)):(i=e[t]<<8,t+1<o&&(i|=e[t+1])),i}}function A(e,t,n,r){r||($("boolean"==typeof n,"missing or invalid endian"),$(void 0!==t&&null!==t,"missing offset"),$(t+3<e.length,"Trying to read beyond buffer length"));var o=e.length;if(!(t>=o)){var i;return n?(t+2<o&&(i=e[t+2]<<16),t+1<o&&(i|=e[t+1]<<8),i|=e[t],t+3<o&&(i+=e[t+3]<<24>>>0)):(t+1<o&&(i=e[t+1]<<16),t+2<o&&(i|=e[t+2]<<8),t+3<o&&(i|=e[t+3]),i+=e[t]<<24>>>0),i}}function B(e,t,n,r){r||($("boolean"==typeof n,"missing or invalid endian"),$(void 0!==t&&null!==t,"missing offset"),$(t+1<e.length,"Trying to read beyond buffer length"));var o=e.length;if(!(t>=o)){var i=I(e,t,n,!0),u=32768&i;return u?(65535-i+1)*-1:i}}function L(e,t,n,r){r||($("boolean"==typeof n,"missing or invalid endian"),$(void 0!==t&&null!==t,"missing offset"),$(t+3<e.length,"Trying to read beyond buffer length"));var o=e.length;if(!(t>=o)){var i=A(e,t,n,!0),u=2147483648&i;return u?(4294967295-i+1)*-1:i}}function U(e,t,n,r){return r||($("boolean"==typeof n,"missing or invalid endian"),$(t+3<e.length,"Trying to read beyond buffer length")),Q.read(e,t,n,23,4)}function x(e,t,n,r){return r||($("boolean"==typeof n,"missing or invalid endian"),$(t+7<e.length,"Trying to read beyond buffer length")),Q.read(e,t,n,52,8)}function S(e,t,n,r,o){o||($(void 0!==t&&null!==t,"missing value"),$("boolean"==typeof r,"missing or invalid endian"),$(void 0!==n&&null!==n,"missing offset"),$(n+1<e.length,"trying to write beyond buffer length"),K(t,65535));var i=e.length;if(!(n>=i))for(var u=0,a=Math.min(i-n,2);u<a;u++)e[n+u]=(t&255<<8*(r?u:1-u))>>>8*(r?u:1-u)}function j(e,t,n,r,o){o||($(void 0!==t&&null!==t,"missing value"),$("boolean"==typeof r,"missing or invalid endian"),$(void 0!==n&&null!==n,"missing offset"),$(n+3<e.length,"trying to write beyond buffer length"),K(t,4294967295));var i=e.length;if(!(n>=i))for(var u=0,a=Math.min(i-n,4);u<a;u++)e[n+u]=t>>>8*(r?u:3-u)&255}function C(e,t,n,r,o){o||($(void 0!==t&&null!==t,"missing value"),$("boolean"==typeof r,"missing or invalid endian"),$(void 0!==n&&null!==n,"missing offset"),$(n+1<e.length,"Trying to write beyond buffer length"),z(t,32767,-32768));var i=e.length;n>=i||(t>=0?S(e,t,n,r,o):S(e,65535+t+1,n,r,o))}function k(e,t,n,r,o){o||($(void 0!==t&&null!==t,"missing value"),$("boolean"==typeof r,"missing or invalid endian"),$(void 0!==n&&null!==n,"missing offset"),$(n+3<e.length,"Trying to write beyond buffer length"),z(t,2147483647,-2147483648));var i=e.length;n>=i||(t>=0?j(e,t,n,r,o):j(e,4294967295+t+1,n,r,o))}function T(e,t,n,r,o){o||($(void 0!==t&&null!==t,"missing value"),$("boolean"==typeof r,"missing or invalid endian"),$(void 0!==n&&null!==n,"missing offset"),$(n+3<e.length,"Trying to write beyond buffer length"),X(t,3.4028234663852886e38,-3.4028234663852886e38));var i=e.length;n>=i||Q.write(e,t,n,r,23,4)}function M(e,t,n,r,o){o||($(void 0!==t&&null!==t,"missing value"),$("boolean"==typeof r,"missing or invalid endian"),$(void 0!==n&&null!==n,"missing offset"),$(n+7<e.length,"Trying to write beyond buffer length"),X(t,1.7976931348623157e308,-1.7976931348623157e308));var i=e.length;n>=i||Q.write(e,t,n,r,52,8)}function N(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function Y(e,t,n){return"number"!=typeof e?n:(e=~~e,e>=t?t:e>=0?e:(e+=t,e>=0?e:0))}function F(e){return e=~~Math.ceil(+e),e<0?0:e}function D(e){return(Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)})(e)}function O(e){return D(e)||o.isBuffer(e)||e&&"object"==typeof e&&"number"==typeof e.length}function H(e){return e<16?"0"+e.toString(16):e.toString(16)}function V(e){for(var t=[],n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<=127)t.push(e.charCodeAt(n));else{var o=n;r>=55296&&r<=57343&&n++;for(var i=encodeURIComponent(e.slice(o,n+1)).substr(1).split("%"),u=0;u<i.length;u++)t.push(parseInt(i[u],16))}}return t}function q(e){for(var t=[],n=0;n<e.length;n++)t.push(255&e.charCodeAt(n));return t}function P(e){for(var t,n,r,o=[],i=0;i<e.length;i++)t=e.charCodeAt(i),n=t>>8,r=t%256,o.push(r),o.push(n);return o}function R(e){return G.toByteArray(e)}function W(e,t,n,r){for(var o=0;o<r&&!(o+n>=t.length||o>=e.length);o++)t[o+n]=e[o];return o}function J(e){try{return decodeURIComponent(e)}catch(t){return String.fromCharCode(65533)}}function K(e,t){$("number"==typeof e,"cannot write a non-number as a number"),$(e>=0,"specified a negative value for writing an unsigned value"),$(e<=t,"value is larger than maximum value for type"),$(Math.floor(e)===e,"value has a fractional component")}function z(e,t,n){$("number"==typeof e,"cannot write a non-number as a number"),$(e<=t,"value larger than maximum allowed value"),$(e>=n,"value smaller than minimum allowed value"),$(Math.floor(e)===e,"value has a fractional component")}function X(e,t,n){$("number"==typeof e,"cannot write a non-number as a number"),$(e<=t,"value larger than maximum allowed value"),$(e>=n,"value smaller than minimum allowed value")}function $(e,t){if(!e)throw new Error(t||"Failed assertion")}var G=e("base64-js"),Q=e("ieee754");n.Buffer=o,n.SlowBuffer=o,n.INSPECT_MAX_BYTES=50,o.poolSize=8192,o._useTypedArrays=function(){try{var e=new ArrayBuffer(0),t=new Uint8Array(e);return t.foo=function(){return 42},42===t.foo()&&"function"==typeof t.subarray}catch(n){return!1}}(),o.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},o.isBuffer=function(e){return!(null===e||void 0===e||!e._isBuffer)},o.byteLength=function(e,t){var n;switch(e+="",t||"utf8"){case"hex":n=e.length/2;break;case"utf8":case"utf-8":n=V(e).length;break;case"ascii":case"binary":case"raw":n=e.length;break;case"base64":n=R(e).length;break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":n=2*e.length;break;default:throw new Error("Unknown encoding")}return n},o.concat=function(e,t){if($(D(e),"Usage: Buffer.concat(list, [totalLength])\nlist should be an Array."),0===e.length)return new o(0);if(1===e.length)return e[0];var n;if("number"!=typeof t)for(t=0,n=0;n<e.length;n++)t+=e[n].length;var r=new o(t),i=0;for(n=0;n<e.length;n++){var u=e[n];u.copy(r,i),i+=u.length}return r},o.prototype.write=function(e,t,n,r){if(isFinite(t))isFinite(n)||(r=n,n=void 0);else{var o=r;r=t,t=n,n=o}t=Number(t)||0;var i=this.length-t;n?(n=Number(n),n>i&&(n=i)):n=i,r=String(r||"utf8").toLowerCase();var u;switch(r){case"hex":u=l(this,e,t,n);break;case"utf8":case"utf-8":u=d(this,e,t,n);break;case"ascii":u=h(this,e,t,n);break;case"binary":u=p(this,e,t,n);break;case"base64":u=y(this,e,t,n);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":u=g(this,e,t,n);break;default:throw new Error("Unknown encoding")}return u},o.prototype.toString=function(e,t,n){var r=this;if(e=String(e||"utf8").toLowerCase(),t=Number(t)||0,n=void 0!==n?Number(n):n=r.length,n===t)return"";var o;switch(e){case"hex":o=_(r,t,n);break;case"utf8":case"utf-8":o=b(r,t,n);break;case"ascii":o=v(r,t,n);break;case"binary":o=m(r,t,n);break;case"base64":o=w(r,t,n);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":o=E(r,t,n);break;default:throw new Error("Unknown encoding")}return o},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},o.prototype.copy=function(e,t,n,r){var i=this;if(n||(n=0),r||0===r||(r=this.length),t||(t=0),r!==n&&0!==e.length&&0!==i.length){$(r>=n,"sourceEnd < sourceStart"),$(t>=0&&t<e.length,"targetStart out of bounds"),$(n>=0&&n<i.length,"sourceStart out of bounds"),$(r>=0&&r<=i.length,"sourceEnd out of bounds"),r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var u=r-n;if(u<100||!o._useTypedArrays)for(var a=0;a<u;a++)e[a+t]=this[a+n];else e._set(this.subarray(n,n+u),t)}},o.prototype.slice=function(e,t){var n=this.length;if(e=Y(e,n,0),t=Y(t,n,n),o._useTypedArrays)return o._augment(this.subarray(e,t));for(var r=t-e,i=new o(r,(void 0),(!0)),u=0;u<r;u++)i[u]=this[u+e];return i},o.prototype.get=function(e){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(e)},o.prototype.set=function(e,t){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(e,t)},o.prototype.readUInt8=function(e,t){if(t||($(void 0!==e&&null!==e,"missing offset"),$(e<this.length,"Trying to read beyond buffer length")),!(e>=this.length))return this[e]},o.prototype.readUInt16LE=function(e,t){return I(this,e,!0,t)},o.prototype.readUInt16BE=function(e,t){return I(this,e,!1,t)},o.prototype.readUInt32LE=function(e,t){return A(this,e,!0,t)},o.prototype.readUInt32BE=function(e,t){return A(this,e,!1,t)},o.prototype.readInt8=function(e,t){if(t||($(void 0!==e&&null!==e,"missing offset"),$(e<this.length,"Trying to read beyond buffer length")),!(e>=this.length)){var n=128&this[e];return n?(255-this[e]+1)*-1:this[e]}},o.prototype.readInt16LE=function(e,t){return B(this,e,!0,t)},o.prototype.readInt16BE=function(e,t){return B(this,e,!1,t)},o.prototype.readInt32LE=function(e,t){return L(this,e,!0,t)},o.prototype.readInt32BE=function(e,t){return L(this,e,!1,t)},o.prototype.readFloatLE=function(e,t){return U(this,e,!0,t)},o.prototype.readFloatBE=function(e,t){return U(this,e,!1,t)},o.prototype.readDoubleLE=function(e,t){return x(this,e,!0,t)},o.prototype.readDoubleBE=function(e,t){return x(this,e,!1,t)},o.prototype.writeUInt8=function(e,t,n){n||($(void 0!==e&&null!==e,"missing value"),$(void 0!==t&&null!==t,"missing offset"),$(t<this.length,"trying to write beyond buffer length"),K(e,255)),t>=this.length||(this[t]=e)},o.prototype.writeUInt16LE=function(e,t,n){S(this,e,t,!0,n)},o.prototype.writeUInt16BE=function(e,t,n){S(this,e,t,!1,n)},o.prototype.writeUInt32LE=function(e,t,n){j(this,e,t,!0,n)},o.prototype.writeUInt32BE=function(e,t,n){j(this,e,t,!1,n)},o.prototype.writeInt8=function(e,t,n){n||($(void 0!==e&&null!==e,"missing value"),$(void 0!==t&&null!==t,"missing offset"),$(t<this.length,"Trying to write beyond buffer length"),z(e,127,-128)),t>=this.length||(e>=0?this.writeUInt8(e,t,n):this.writeUInt8(255+e+1,t,n))},o.prototype.writeInt16LE=function(e,t,n){C(this,e,t,!0,n)},o.prototype.writeInt16BE=function(e,t,n){C(this,e,t,!1,n)},o.prototype.writeInt32LE=function(e,t,n){k(this,e,t,!0,n)},o.prototype.writeInt32BE=function(e,t,n){k(this,e,t,!1,n)},o.prototype.writeFloatLE=function(e,t,n){T(this,e,t,!0,n)},o.prototype.writeFloatBE=function(e,t,n){T(this,e,t,!1,n)},o.prototype.writeDoubleLE=function(e,t,n){M(this,e,t,!0,n)},o.prototype.writeDoubleBE=function(e,t,n){M(this,e,t,!1,n)},o.prototype.fill=function(e,t,n){if(e||(e=0),t||(t=0),n||(n=this.length),"string"==typeof e&&(e=e.charCodeAt(0)),$("number"==typeof e&&!isNaN(e),"value is not a number"),$(n>=t,"end < start"),n!==t&&0!==this.length){$(t>=0&&t<this.length,"start out of bounds"),$(n>=0&&n<=this.length,"end out of bounds");for(var r=t;r<n;r++)this[r]=e}},o.prototype.inspect=function(){for(var e=[],t=this.length,r=0;r<t;r++)if(e[r]=H(this[r]),r===n.INSPECT_MAX_BYTES){e[r+1]="...";break}return"<Buffer "+e.join(" ")+">"},o.prototype.toArrayBuffer=function(){if("undefined"!=typeof Uint8Array){if(o._useTypedArrays)return new o(this).buffer;for(var e=new Uint8Array(this.length),t=0,n=e.length;t<n;t+=1)e[t]=this[t];return e.buffer}throw new Error("Buffer.toArrayBuffer not supported in this browser")};var Z=o.prototype;o._augment=function(e){return e._isBuffer=!0,e._get=e.get,e._set=e.set,e.get=Z.get,e.set=Z.set,e.write=Z.write,e.toString=Z.toString,e.toLocaleString=Z.toString,e.toJSON=Z.toJSON,e.copy=Z.copy,e.slice=Z.slice,e.readUInt8=Z.readUInt8,e.readUInt16LE=Z.readUInt16LE,e.readUInt16BE=Z.readUInt16BE,e.readUInt32LE=Z.readUInt32LE,e.readUInt32BE=Z.readUInt32BE,e.readInt8=Z.readInt8,e.readInt16LE=Z.readInt16LE,e.readInt16BE=Z.readInt16BE,e.readInt32LE=Z.readInt32LE,e.readInt32BE=Z.readInt32BE,e.readFloatLE=Z.readFloatLE,e.readFloatBE=Z.readFloatBE,e.readDoubleLE=Z.readDoubleLE,e.readDoubleBE=Z.readDoubleBE,e.writeUInt8=Z.writeUInt8,e.writeUInt16LE=Z.writeUInt16LE,e.writeUInt16BE=Z.writeUInt16BE,e.writeUInt32LE=Z.writeUInt32LE,e.writeUInt32BE=Z.writeUInt32BE,e.writeInt8=Z.writeInt8,e.writeInt16LE=Z.writeInt16LE,e.writeInt16BE=Z.writeInt16BE,e.writeInt32LE=Z.writeInt32LE,e.writeInt32BE=Z.writeInt32BE,e.writeFloatLE=Z.writeFloatLE,e.writeFloatBE=Z.writeFloatBE,e.writeDoubleLE=Z.writeDoubleLE,e.writeDoubleBE=Z.writeDoubleBE,e.fill=Z.fill,e.inspect=Z.inspect,e.toArrayBuffer=Z.toArrayBuffer,e}}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/buffer/index.js","/node_modules/gulp-browserify/node_modules/buffer")},{"base64-js":2,buffer:3,ieee754:11,lYpoI2:10}],4:[function(e,t,n){(function(n,r,o,i,u,a,f,s,c){function l(e,t){if(e.length%p!==0){var n=e.length+(p-e.length%p);e=o.concat([e,y],n)}for(var r=[],i=t?e.readInt32BE:e.readInt32LE,u=0;u<e.length;u+=p)r.push(i.call(e,u));return r}function d(e,t,n){for(var r=new o(t),i=n?r.writeInt32BE:r.writeInt32LE,u=0;u<e.length;u++)i.call(r,e[u],4*u,!0);return r}function h(e,t,n,r){o.isBuffer(e)||(e=new o(e));var i=t(l(e,r),e.length*g);return d(i,n,r)}var o=e("buffer").Buffer,p=4,y=new o(p);y.fill(0);var g=8;t.exports={hash:h}}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/helpers.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{buffer:3,lYpoI2:10}],5:[function(e,t,n){(function(t,r,o,i,u,a,f,s,c){function l(e,t,n){o.isBuffer(t)||(t=new o(t)),o.isBuffer(n)||(n=new o(n)),t.length>m?t=e(t):t.length<m&&(t=o.concat([t,_],m));for(var r=new o(m),i=new o(m),u=0;u<m;u++)r[u]=54^t[u],i[u]=92^t[u];var a=e(o.concat([r,n]));return e(o.concat([i,a]))}function d(e,t){e=e||"sha1";var n=v[e],r=[],i=0;return n||h("algorithm:",e,"is not yet supported"),{update:function(e){return o.isBuffer(e)||(e=new o(e)),r.push(e),i+=e.length,this},digest:function(e){var i=o.concat(r),u=t?l(n,t,i):n(i);return r=null,e?u.toString(e):u}}}function h(){var e=[].slice.call(arguments).join(" ");throw new Error([e,"we accept pull requests","http://github.com/dominictarr/crypto-browserify"].join("\n"))}function p(e,t){for(var n in e)t(e[n],n)}var o=e("buffer").Buffer,y=e("./sha"),g=e("./sha256"),w=e("./rng"),b=e("./md5"),v={sha1:y,sha256:g,md5:b},m=64,_=new o(m);_.fill(0),n.createHash=function(e){return d(e)},n.createHmac=function(e,t){return d(e,t)},n.randomBytes=function(e,t){if(!t||!t.call)return new o(w(e));try{t.call(this,void 0,new o(w(e)))}catch(n){t(n)}},p(["createCredentials","createCipher","createCipheriv","createDecipher","createDecipheriv","createSign","createVerify","createDiffieHellman","pbkdf2"],function(e){n[e]=function(){h("sorry,",e,"is not implemented yet")}})}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/index.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./md5":6,"./rng":7,"./sha":8,"./sha256":9,buffer:3,lYpoI2:10}],6:[function(e,t,n){(function(n,r,o,i,u,a,f,s,c){function l(e,t){e[t>>5]|=128<<t%32,e[(t+64>>>9<<4)+14]=t;for(var n=1732584193,r=-271733879,o=-1732584194,i=271733878,u=0;u<e.length;u+=16){var a=n,f=r,s=o,c=i;n=h(n,r,o,i,e[u+0],7,-680876936),i=h(i,n,r,o,e[u+1],12,-389564586),o=h(o,i,n,r,e[u+2],17,606105819),r=h(r,o,i,n,e[u+3],22,-1044525330),n=h(n,r,o,i,e[u+4],7,-176418897),i=h(i,n,r,o,e[u+5],12,1200080426),o=h(o,i,n,r,e[u+6],17,-1473231341),r=h(r,o,i,n,e[u+7],22,-45705983),n=h(n,r,o,i,e[u+8],7,1770035416),i=h(i,n,r,o,e[u+9],12,-1958414417),o=h(o,i,n,r,e[u+10],17,-42063),r=h(r,o,i,n,e[u+11],22,-1990404162),n=h(n,r,o,i,e[u+12],7,1804603682),i=h(i,n,r,o,e[u+13],12,-40341101),o=h(o,i,n,r,e[u+14],17,-1502002290),r=h(r,o,i,n,e[u+15],22,1236535329),n=p(n,r,o,i,e[u+1],5,-165796510),i=p(i,n,r,o,e[u+6],9,-1069501632),o=p(o,i,n,r,e[u+11],14,643717713),r=p(r,o,i,n,e[u+0],20,-373897302),n=p(n,r,o,i,e[u+5],5,-701558691),i=p(i,n,r,o,e[u+10],9,38016083),o=p(o,i,n,r,e[u+15],14,-660478335),r=p(r,o,i,n,e[u+4],20,-405537848),n=p(n,r,o,i,e[u+9],5,568446438),i=p(i,n,r,o,e[u+14],9,-1019803690),o=p(o,i,n,r,e[u+3],14,-187363961),r=p(r,o,i,n,e[u+8],20,1163531501),n=p(n,r,o,i,e[u+13],5,-1444681467),i=p(i,n,r,o,e[u+2],9,-51403784),o=p(o,i,n,r,e[u+7],14,1735328473),r=p(r,o,i,n,e[u+12],20,-1926607734),n=y(n,r,o,i,e[u+5],4,-378558),i=y(i,n,r,o,e[u+8],11,-2022574463),o=y(o,i,n,r,e[u+11],16,1839030562),r=y(r,o,i,n,e[u+14],23,-35309556),n=y(n,r,o,i,e[u+1],4,-1530992060),i=y(i,n,r,o,e[u+4],11,1272893353),o=y(o,i,n,r,e[u+7],16,-155497632),r=y(r,o,i,n,e[u+10],23,-1094730640),n=y(n,r,o,i,e[u+13],4,681279174),i=y(i,n,r,o,e[u+0],11,-358537222),o=y(o,i,n,r,e[u+3],16,-722521979),r=y(r,o,i,n,e[u+6],23,76029189),n=y(n,r,o,i,e[u+9],4,-640364487),i=y(i,n,r,o,e[u+12],11,-421815835),o=y(o,i,n,r,e[u+15],16,530742520),r=y(r,o,i,n,e[u+2],23,-995338651),n=g(n,r,o,i,e[u+0],6,-198630844),i=g(i,n,r,o,e[u+7],10,1126891415),o=g(o,i,n,r,e[u+14],15,-1416354905),r=g(r,o,i,n,e[u+5],21,-57434055),n=g(n,r,o,i,e[u+12],6,1700485571),i=g(i,n,r,o,e[u+3],10,-1894986606),o=g(o,i,n,r,e[u+10],15,-1051523),r=g(r,o,i,n,e[u+1],21,-2054922799),n=g(n,r,o,i,e[u+8],6,1873313359),i=g(i,n,r,o,e[u+15],10,-30611744),o=g(o,i,n,r,e[u+6],15,-1560198380),r=g(r,o,i,n,e[u+13],21,1309151649),n=g(n,r,o,i,e[u+4],6,-145523070),i=g(i,n,r,o,e[u+11],10,-1120210379),o=g(o,i,n,r,e[u+2],15,718787259),r=g(r,o,i,n,e[u+9],21,-343485551),n=w(n,a),r=w(r,f),o=w(o,s),i=w(i,c)}return Array(n,r,o,i)}function d(e,t,n,r,o,i){return w(b(w(w(t,e),w(r,i)),o),n)}function h(e,t,n,r,o,i,u){return d(t&n|~t&r,e,t,o,i,u)}function p(e,t,n,r,o,i,u){return d(t&r|n&~r,e,t,o,i,u)}function y(e,t,n,r,o,i,u){return d(t^n^r,e,t,o,i,u)}function g(e,t,n,r,o,i,u){return d(n^(t|~r),e,t,o,i,u)}function w(e,t){var n=(65535&e)+(65535&t),r=(e>>16)+(t>>16)+(n>>16);return r<<16|65535&n}function b(e,t){return e<<t|e>>>32-t}var v=e("./helpers");t.exports=function(e){return v.hash(e,l,16)}}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/md5.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:10}],7:[function(e,t,n){(function(e,n,r,o,i,u,a,f,s){!function(){var e,n,r=this;e=function(e){for(var t,t,n=new Array(e),r=0;r<e;r++)0==(3&r)&&(t=4294967296*Math.random()),n[r]=t>>>((3&r)<<3)&255;return n},r.crypto&&crypto.getRandomValues&&(n=function(e){var t=new Uint8Array(e);return crypto.getRandomValues(t),t}),t.exports=n||e}()}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/rng.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{buffer:3,lYpoI2:10}],8:[function(e,t,n){(function(n,r,o,i,u,a,f,s,c){function l(e,t){e[t>>5]|=128<<24-t%32,e[(t+64>>9<<4)+15]=t;for(var n=Array(80),r=1732584193,o=-271733879,i=-1732584194,u=271733878,a=-1009589776,f=0;f<e.length;f+=16){for(var s=r,c=o,l=i,g=u,w=a,b=0;b<80;b++){b<16?n[b]=e[f+b]:n[b]=y(n[b-3]^n[b-8]^n[b-14]^n[b-16],1);var v=p(p(y(r,5),d(b,o,i,u)),p(p(a,n[b]),h(b)));a=u,u=i,i=y(o,30),o=r,r=v}r=p(r,s),o=p(o,c),i=p(i,l),u=p(u,g),a=p(a,w)}return Array(r,o,i,u,a)}function d(e,t,n,r){return e<20?t&n|~t&r:e<40?t^n^r:e<60?t&n|t&r|n&r:t^n^r}function h(e){return e<20?1518500249:e<40?1859775393:e<60?-1894007588:-899497514}function p(e,t){var n=(65535&e)+(65535&t),r=(e>>16)+(t>>16)+(n>>16);return r<<16|65535&n}function y(e,t){return e<<t|e>>>32-t}var g=e("./helpers");t.exports=function(e){return g.hash(e,l,20,!0)}}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:10}],9:[function(e,t,n){(function(n,r,o,i,u,a,f,s,c){var l=e("./helpers"),d=function(e,t){var n=(65535&e)+(65535&t),r=(e>>16)+(t>>16)+(n>>16);return r<<16|65535&n},h=function(e,t){return e>>>t|e<<32-t},p=function(e,t){return e>>>t},y=function(e,t,n){return e&t^~e&n},g=function(e,t,n){return e&t^e&n^t&n},w=function(e){return h(e,2)^h(e,13)^h(e,22)},b=function(e){
return h(e,6)^h(e,11)^h(e,25)},v=function(e){return h(e,7)^h(e,18)^p(e,3)},m=function(e){return h(e,17)^h(e,19)^p(e,10)},_=function(e,t){var n,r,o,i,u,a,f,s,c,l,h,p,_=new Array(1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298),E=new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225),I=new Array(64);e[t>>5]|=128<<24-t%32,e[(t+64>>9<<4)+15]=t;for(var c=0;c<e.length;c+=16){n=E[0],r=E[1],o=E[2],i=E[3],u=E[4],a=E[5],f=E[6],s=E[7];for(var l=0;l<64;l++)l<16?I[l]=e[l+c]:I[l]=d(d(d(m(I[l-2]),I[l-7]),v(I[l-15])),I[l-16]),h=d(d(d(d(s,b(u)),y(u,a,f)),_[l]),I[l]),p=d(w(n),g(n,r,o)),s=f,f=a,a=u,u=d(i,h),i=o,o=r,r=n,n=d(h,p);E[0]=d(n,E[0]),E[1]=d(r,E[1]),E[2]=d(o,E[2]),E[3]=d(i,E[3]),E[4]=d(u,E[4]),E[5]=d(a,E[5]),E[6]=d(f,E[6]),E[7]=d(s,E[7])}return E};t.exports=function(e){return l.hash(e,_,32,!0)}}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha256.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:10}],10:[function(e,t,n){(function(e,n,r,o,i,u,a,f,s){function c(){}var e=t.exports={};e.nextTick=function(){var e="undefined"!=typeof window&&window.setImmediate,t="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};if(t){var n=[];return window.addEventListener("message",function(e){var t=e.source;if((t===window||null===t)&&"process-tick"===e.data&&(e.stopPropagation(),n.length>0)){var r=n.shift();r()}},!0),function(e){n.push(e),window.postMessage("process-tick","*")}}return function(e){setTimeout(e,0)}}(),e.title="browser",e.browser=!0,e.env={},e.argv=[],e.on=c,e.addListener=c,e.once=c,e.off=c,e.removeListener=c,e.removeAllListeners=c,e.emit=c,e.binding=function(e){throw new Error("process.binding is not supported")},e.cwd=function(){return"/"},e.chdir=function(e){throw new Error("process.chdir is not supported")}}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/process/browser.js","/node_modules/gulp-browserify/node_modules/process")},{buffer:3,lYpoI2:10}],11:[function(e,t,n){(function(e,t,r,o,i,u,a,f,s){n.read=function(e,t,n,r,o){var i,u,a=8*o-r-1,f=(1<<a)-1,s=f>>1,c=-7,l=n?o-1:0,d=n?-1:1,h=e[t+l];for(l+=d,i=h&(1<<-c)-1,h>>=-c,c+=a;c>0;i=256*i+e[t+l],l+=d,c-=8);for(u=i&(1<<-c)-1,i>>=-c,c+=r;c>0;u=256*u+e[t+l],l+=d,c-=8);if(0===i)i=1-s;else{if(i===f)return u?NaN:(h?-1:1)*(1/0);u+=Math.pow(2,r),i-=s}return(h?-1:1)*u*Math.pow(2,i-r)},n.write=function(e,t,n,r,o,i){var u,a,f,s=8*i-o-1,c=(1<<s)-1,l=c>>1,d=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:i-1,p=r?1:-1,y=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,u=c):(u=Math.floor(Math.log(t)/Math.LN2),t*(f=Math.pow(2,-u))<1&&(u--,f*=2),t+=u+l>=1?d/f:d*Math.pow(2,1-l),t*f>=2&&(u++,f/=2),u+l>=c?(a=0,u=c):u+l>=1?(a=(t*f-1)*Math.pow(2,o),u+=l):(a=t*Math.pow(2,l-1)*Math.pow(2,o),u=0));o>=8;e[n+h]=255&a,h+=p,a/=256,o-=8);for(u=u<<o|a,s+=o;s>0;e[n+h]=255&u,h+=p,u/=256,s-=8);e[n+h-p]|=128*y}}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/ieee754/index.js","/node_modules/ieee754")},{buffer:3,lYpoI2:10}]},{},[1])(1)});

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _d = __webpack_require__(217);

var interpolate = function interpolate(type) {
  switch (type) {
    case 'stepBefore':
      return _d.curveStepBefore;
    case 'stepAfter':
      return _d.curveStepAfter;
    case 'basis':
      return _d.curveBasis;
    case 'basisOpen':
      return _d.curveBasisOpen;
    case 'basisClosed':
      return _d.curveBasisClosed;
    case 'bundle':
      return _d.curveBundle;
    case 'cardinal':
      return _d.curveCardinal;
    case 'cardinalOpen':
      return _d.curveCardinalOpen;
    case 'cardinalClosed':
      return _d.curveCardinalClosed;
    case 'natural':
      return _d.curveNatural;
    default:
      return _d.curveLinear;
  }
};

exports.default = interpolate;
module.exports = exports['default'];
//# sourceMappingURL=interpolate.js.mapvar factory = __webpack_require__(1005)
module.exports = factory()
var element = __webpack_require__(1006)
var window = __webpack_require__(1016)
var withFauxDOM = __webpack_require__(1017)

function factory () {
  var Element = element()
  var Window = window()
  var ReactFauxDOM = {
    Element: Element,
    defaultView: Window,
    withFauxDOM: withFauxDOM(Element),
    createElement: function (nodeName) {
      return new Element(nodeName)
    },
    createElementNS: function (namespace, nodeName) {
      return this.createElement(nodeName)
    },
    compareDocumentPosition: function () {
      // The selector engine tries to validate with this, but we don't care.
      // 8 = DOCUMENT_POSITION_CONTAINS, so we say all nodes are in this document.
      return 8
    }
  }

  Element.prototype.ownerDocument = ReactFauxDOM
  return ReactFauxDOM
}

module.exports = factory
var React = __webpack_require__(2)
var styleAttr = __webpack_require__(1007)
var querySelectorAll = __webpack_require__(1008)
var camelCase = __webpack_require__(624)
var isString = __webpack_require__(1012)
var isUndefined = __webpack_require__(1013)
var assign = __webpack_require__(1014)
var mapValues = __webpack_require__(625)
var styleCamelCase = __webpack_require__(1015)

function element () {
  function Element (nodeName, parentNode) {
    this.nodeName = nodeName
    this.parentNode = parentNode
    this.childNodes = []
    this.eventListeners = {}
    this.text = ''
    var self = this
    var props = this.props = {
      ref: function (component) {
        self.component = component
      },
      style: {
        setProperty: function (name, value) {
          props.style[styleCamelCase(name)] = value
        },
        getProperty: function (name) {
          return props.style[styleCamelCase(name)] || ''
        },
        getPropertyValue: function (name) {
          return props.style.getProperty(name)
        },
        removeProperty: function (name) {
          delete props.style[styleCamelCase(name)]
        }
      }
    }

    this.style = props.style
  }

  Element.prototype.nodeType = 1

  // This was easy to do with Vim.
  // Just saying.
  Element.prototype.eventNameMappings = {
    'blur': 'onBlur',
    'change': 'onChange',
    'click': 'onClick',
    'contextmenu': 'onContextMenu',
    'copy': 'onCopy',
    'cut': 'onCut',
    'doubleclick': 'onDoubleClick',
    'drag': 'onDrag',
    'dragend': 'onDragEnd',
    'dragenter': 'onDragEnter',
    'dragexit': 'onDragExit',
    'dragleave': 'onDragLeave',
    'dragover': 'onDragOver',
    'dragstart': 'onDragStart',
    'drop': 'onDrop',
    'error': 'onError',
    'focus': 'onFocus',
    'input': 'onInput',
    'keydown': 'onKeyDown',
    'keypress': 'onKeyPress',
    'keyup': 'onKeyUp',
    'load': 'onLoad',
    'mousedown': 'onMouseDown',
    'mouseenter': 'onMouseEnter',
    'mouseleave': 'onMouseLeave',
    'mousemove': 'onMouseMove',
    'mouseout': 'onMouseOut',
    'mouseover': 'onMouseOver',
    'mouseup': 'onMouseUp',
    'paste': 'onPaste',
    'scroll': 'onScroll',
    'submit': 'onSubmit',
    'touchcancel': 'onTouchCancel',
    'touchend': 'onTouchEnd',
    'touchmove': 'onTouchMove',
    'touchstart': 'onTouchStart',
    'wheel': 'onWheel'
  }

  Element.prototype.skipNameTransformationExpressions = [
    /^data-/,
    /^aria-/
  ]

  Element.prototype.attributeNameMappings = {
    'class': 'className'
  }

  Element.prototype.attributeToPropName = function (name) {
    var skipTransformMatches = this.skipNameTransformationExpressions.map(function (expr) {
      return expr.test(name)
    })

    if (skipTransformMatches.some(Boolean)) {
      return name
    } else {
      return this.attributeNameMappings[name] || camelCase(name)
    }
  }

  Element.prototype.setAttribute = function (name, value) {
    if (name === 'style' && isString(value)) {
      var styles = styleAttr.parse(value)

      for (var key in styles) {
        this.style.setProperty(key, styles[key])
      }
    } else {
      this.props[this.attributeToPropName(name)] = value
    }
  }

  Element.prototype.getAttribute = function (name) {
    return this.props[this.attributeToPropName(name)]
  }

  Element.prototype.getAttributeNode = function (name) {
    var value = this.getAttribute(name)

    if (!isUndefined(value)) {
      return {
        value: value,
        specified: true
      }
    }
  }

  Element.prototype.removeAttribute = function (name) {
    delete this.props[this.attributeToPropName(name)]
  }

  Element.prototype.eventToPropName = function (name) {
    return this.eventNameMappings[name] || name
  }

  Element.prototype.addEventListener = function (name, fn) {
    var prop = this.eventToPropName(name)
    this.eventListeners[prop] = this.eventListeners[prop] || []
    this.eventListeners[prop].push(fn)
  }

  Element.prototype.removeEventListener = function (name, fn) {
    var listeners = this.eventListeners[this.eventToPropName(name)]

    if (listeners) {
      var match = listeners.indexOf(fn)

      if (match !== -1) {
        listeners.splice(match, 1)
      }
    }
  }

  Element.prototype.appendChild = function (el) {
    if (el instanceof Element) {
      el.parentNode = this
    }

    this.childNodes.push(el)
    return el
  }

  Element.prototype.insertBefore = function (el, before) {
    var index = this.childNodes.indexOf(before)
    el.parentNode = this

    if (index !== -1) {
      this.childNodes.splice(index, 0, el)
    } else {
      this.childNodes.push(el)
    }

    return el
  }

  Element.prototype.removeChild = function (child) {
    var target = this.childNodes.indexOf(child)
    this.childNodes.splice(target, 1)
  }

  Element.prototype.querySelector = function () {
    return this.querySelectorAll.apply(this, arguments)[0] || null
  }

  Element.prototype.querySelectorAll = function (selector) {
    if (!selector) {
      throw new Error('Not enough arguments')
    }

    return querySelectorAll(selector, this)
  }

  Element.prototype.getElementsByTagName = function (nodeName) {
    var children = this.children

    if (children.length === 0) {
      return []
    } else {
      var matches

      if (nodeName !== '*') {
        matches = children.filter(function (el) {
          return el.nodeName === nodeName
        })
      } else {
        matches = children
      }

      var childMatches = children.map(function (el) {
        return el.getElementsByTagName(nodeName)
      })

      return matches.concat.apply(matches, childMatches)
    }
  }

  Element.prototype.getElementById = function (id) {
    var children = this.children

    if (children.length === 0) {
      return null
    } else {
      var match = children.filter(function (el) {
        return el.getAttribute('id') === id
      })[0]

      if (match) {
        return match
      } else {
        var childMatches = children.map(function (el) {
          return el.getElementById(id)
        })

        return childMatches.filter(function (match) {
          return match !== null
        })[0] || null
      }
    }
  }

  Element.prototype.getBoundingClientRect = function () {
    if (!this.component) {
      return undefined
    }

    return this.component.getBoundingClientRect()
  }

  Element.prototype.toReact = function (index) {
    index = index || 0
    var props = assign({}, this.props)
    props.style = assign({}, props.style)

    var originalElement = this

    function uniqueKey () {
      return 'faux-dom-' + index
    }

    if (isUndefined(props.key)) {
      props.key = uniqueKey()
    }

    delete props.style.setProperty
    delete props.style.getProperty
    delete props.style.getPropertyValue
    delete props.style.removeProperty

    assign(props, mapValues(this.eventListeners, function (listeners) {
      return function (syntheticEvent) {
        var event

        if (syntheticEvent) {
          event = syntheticEvent.nativeEvent
          event.syntheticEvent = syntheticEvent
        }

        mapValues(listeners, function (listener) {
          listener.call(originalElement, event)
        })
      }
    }))

    return React.createElement(this.nodeName, props, this.text || this.children.map(function (el, i) {
      if (el instanceof Element) {
        return el.toReact(i)
      } else {
        return el
      }
    }))
  }

  Object.defineProperties(Element.prototype, {
    nextSibling: {
      get: function () {
        var siblings = this.parentNode.children
        var me = siblings.indexOf(this)
        return siblings[me + 1]
      }
    },
    previousSibling: {
      get: function () {
        var siblings = this.parentNode.children
        var me = siblings.indexOf(this)
        return siblings[me - 1]
      }
    },
    innerHTML: {
      get: function () {
        return this.text
      },
      set: function (text) {
        this.text = text
      }
    },
    textContent: {
      get: function () {
        return this.text
      },
      set: function (text) {
        this.text = text
      }
    },
    children: {
      get: function () {
        // So far nodes created by this library are all of nodeType 1 (elements),
        // but this could change in the future.
        return this.childNodes.filter(function (el) {
          if (!el.nodeType) {
            // It's a React element, we always add it
            return true
          }

          // It's a HTML node. We want to filter to have only nodes with type 1
          return el.nodeType === 1
        })
      }
    }
  })

  // These NS methods are called by things like D3 if it spots a namespace.
  // Like xlink:href. I don't care about namespaces, so these functions have NS aliases created.
  var namespaceMethods = [
    'setAttribute',
    'getAttribute',
    'getAttributeNode',
    'removeAttribute',
    'getElementsByTagName',
    'getElementById'
  ]

  namespaceMethods.forEach(function (name) {
    var fn = Element.prototype[name]
    Element.prototype[name + 'NS'] = function () {
      return fn.apply(this, Array.prototype.slice.call(arguments, 1))
    }
  })

  return Element
}

module.exports = element


/*:: type Attr = { [key: string]: string | number } */
/*:: type Opts = { preserveNumbers: ?boolean } */

/*

style-attr
====

Very simple parsing and stringifying of style attributes.

`parse`
----

Convert a style attribute string to an object.

*/

/*:: declare function parse (raw: string, opts: ?Opts): Attr */
function parse(raw, opts) {
  opts = opts || {};

  var preserveNumbers = opts.preserveNumbers;
  var trim = function (s) {
    return s.trim();
  };
  var obj = {};

  getKeyValueChunks(raw).map(trim).filter(Boolean).forEach(function (item) {
    // split with `.indexOf` rather than `.split` because the value may also contain colons.
    var pos = item.indexOf(':');
    var key = item.substr(0, pos).trim();
    var val = item.substr(pos + 1).trim();
    if (preserveNumbers && isNumeric(val)) {
      val = Number(val);
    }

    obj[key] = val;
  });

  return obj;
}

/*

`isNumeric`
----

Check if a value is numeric.
Via: https://stackoverflow.com/a/1830844/9324

*/

/*:: declare function isNumeric (n: any): boolean */

function isNumeric(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}

/*

`getKeyValueChunks`
----

Split a string into chunks matching `<key>: <value>`

*/
/*:: declare function getKeyValueChunks (raw: string): Array<string> */
function getKeyValueChunks(raw) {
  var chunks = [];
  var offset = 0;
  var sep = ';';
  var hasUnclosedUrl = /url\([^\)]+$/;
  var chunk = '';
  var nextSplit;
  while (offset < raw.length) {
    nextSplit = raw.indexOf(sep, offset);
    if (nextSplit === -1) {
      nextSplit = raw.length;
    }

    chunk += raw.substring(offset, nextSplit);

    // data URIs can contain semicolons, so make sure we get the whole thing
    if (hasUnclosedUrl.test(chunk)) {
      chunk += ';';
      offset = nextSplit + 1;
      continue;
    }

    chunks.push(chunk);
    chunk = '';
    offset = nextSplit + 1;
  }

  return chunks;
}

/*

`stringify`
----

Convert an object into an attribute string

*/
/*:: declare function stringify (obj: Attr): string */
function stringify(obj) {
  return Object.keys(obj).map(function (key) {
    return key + ':' + obj[key];
  }).join(';');
}

/*

`normalize`
----

Normalize an attribute string (eg. collapse duplicates)

*/
/*:: declare function normalize (str: string, opts: ?Opts): string */
function normalize(str, opts) {
  return stringify(parse(str, opts));
}

module.exports.parse = parse;
module.exports.stringify = stringify;
module.exports.normalize = normalize;module.exports = __webpack_require__(1009);/**
 * @ignore
 * css3 selector engine for ie6-8
 * @author yiminghe@gmail.com
 */

var util = __webpack_require__(1010);
var parser = __webpack_require__(1011);

var EXPANDO_SELECTOR_KEY = '_ks_data_selector_id_',
  caches = {},
  isContextXML,
  uuid = 0,
  subMatchesCache = {},
  getAttr = function (el, name) {
    if (isContextXML) {
      return util.getSimpleAttr(el, name);
    } else {
      return util.attr(el, name);
    }
  },
  hasSingleClass = util.hasSingleClass,
  isTag = util.isTag,
  aNPlusB = /^(([+-]?(?:\d+)?)?n)?([+-]?\d+)?$/;

// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
var unescape = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,
  unescapeFn = function (_, escaped) {
    var high = '0x' + escaped - 0x10000;
    // NaN means non-codepoint
    return isNaN(high) ?
      escaped :
      // BMP codepoint
      high < 0 ?
        String.fromCharCode(high + 0x10000) :
        // Supplemental Plane codepoint (surrogate pair)
        String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);
  };

var matchExpr;

var pseudoFnExpr = {
  'nth-child': function (el, param) {
    var ab = getAb(param),
      a = ab.a,
      b = ab.b;
    if (a === 0 && b === 0) {
      return 0;
    }
    var index = 0,
      parent = el.parentNode;
    if (parent) {
      var childNodes = parent.childNodes,
        count = 0,
        child,
        ret,
        len = childNodes.length;
      for (; count < len; count++) {
        child = childNodes[count];
        if (child.nodeType === 1) {
          index++;
          ret = matchIndexByAb(index, a, b, child === el);
          if (ret !== undefined) {
            return ret;
          }
        }
      }
    }
    return 0;
  },
  'nth-last-child': function (el, param) {
    var ab = getAb(param),
      a = ab.a,
      b = ab.b;
    if (a === 0 && b === 0) {
      return 0;
    }
    var index = 0,
      parent = el.parentNode;
    if (parent) {
      var childNodes = parent.childNodes,
        len = childNodes.length,
        count = len - 1,
        child,
        ret;
      for (; count >= 0; count--) {
        child = childNodes[count];
        if (child.nodeType === 1) {
          index++;
          ret = matchIndexByAb(index, a, b, child === el);
          if (ret !== undefined) {
            return ret;
          }
        }
      }
    }
    return 0;
  },
  'nth-of-type': function (el, param) {
    var ab = getAb(param),
      a = ab.a,
      b = ab.b;
    if (a === 0 && b === 0) {
      return 0;
    }
    var index = 0,
      parent = el.parentNode;
    if (parent) {
      var childNodes = parent.childNodes,
        elType = el.tagName,
        count = 0,
        child,
        ret,
        len = childNodes.length;
      for (; count < len; count++) {
        child = childNodes[count];
        if (child.tagName === elType) {
          index++;
          ret = matchIndexByAb(index, a, b, child === el);
          if (ret !== undefined) {
            return ret;
          }
        }
      }
    }
    return 0;
  },
  'nth-last-of-type': function (el, param) {
    var ab = getAb(param),
      a = ab.a,
      b = ab.b;
    if (a === 0 && b === 0) {
      return 0;
    }
    var index = 0,
      parent = el.parentNode;
    if (parent) {
      var childNodes = parent.childNodes,
        len = childNodes.length,
        elType = el.tagName,
        count = len - 1,
        child,
        ret;
      for (; count >= 0; count--) {
        child = childNodes[count];
        if (child.tagName === elType) {
          index++;
          ret = matchIndexByAb(index, a, b, child === el);
          if (ret !== undefined) {
            return ret;
          }
        }
      }
    }
    return 0;
  },
  lang: function (el, lang) {
    var elLang;
    lang = unEscape(lang.toLowerCase());
    do {
      if ((elLang = (isContextXML ?
        el.getAttribute('xml:lang') || el.getAttribute('lang') :
          el.lang))) {
        elLang = elLang.toLowerCase();
        return elLang === lang || elLang.indexOf(lang + '-') === 0;
      }
    } while ((el = el.parentNode) && el.nodeType === 1);
    return false;
  },
  not: function (el, negationArg) {
    return !matchExpr[negationArg.t](el, negationArg.value);
  }
};

var pseudoIdentExpr = {
  empty: function (el) {
    var childNodes = el.childNodes,
      index = 0,
      len = childNodes.length - 1,
      child,
      nodeType;
    for (; index < len; index++) {
      child = childNodes[index];
      nodeType = child.nodeType;
      // only element nodes and content nodes
      // (such as Dom [Dom-LEVEL-3-CORE] text nodes,
      // CDATA nodes, and entity references
      if (nodeType === 1 || nodeType === 3 || nodeType === 4 || nodeType === 5) {
        return 0;
      }
    }
    return 1;
  },
  root: function (el) {
    if (el.nodeType === 9) {
      return true;
    }
    return el.ownerDocument &&
      el === el.ownerDocument.documentElement;
  },
  'first-child': function (el) {
    return pseudoFnExpr['nth-child'](el, 1);
  },
  'last-child': function (el) {
    return pseudoFnExpr['nth-last-child'](el, 1);
  },
  'first-of-type': function (el) {
    return pseudoFnExpr['nth-of-type'](el, 1);
  },
  'last-of-type': function (el) {
    return pseudoFnExpr['nth-last-of-type'](el, 1);
  },
  'only-child': function (el) {
    return pseudoIdentExpr['first-child'](el) &&
      pseudoIdentExpr['last-child'](el);
  },
  'only-of-type': function (el) {
    return pseudoIdentExpr['first-of-type'](el) &&
      pseudoIdentExpr['last-of-type'](el);
  },
  focus: function (el) {
    var doc = el.ownerDocument;
    return doc && el === doc.activeElement &&
      (!doc.hasFocus || doc.hasFocus()) && !!(el.type || el.href || el.tabIndex >= 0);
  },
  target: function (el) {
    var hash = location.hash;
    return hash && hash.slice(1) === getAttr(el, 'id');
  },
  enabled: function (el) {
    return !el.disabled;
  },
  disabled: function (el) {
    return el.disabled;
  },
  checked: function (el) {
    var nodeName = el.nodeName.toLowerCase();
    return (nodeName === 'input' && el.checked) ||
      (nodeName === 'option' && el.selected);
  }
};

var attributeExpr = {
  '~=': function (elValue, value) {
    if (!value || value.indexOf(' ') > -1) {
      return 0;
    }
    return (' ' + elValue + ' ').indexOf(' ' + value + ' ') !== -1;
  },
  '|=': function (elValue, value) {
    return (' ' + elValue).indexOf(' ' + value + '-') !== -1;
  },
  '^=': function (elValue, value) {
    return value && util.startsWith(elValue, value);
  },
  '$=': function (elValue, value) {
    return value && util.endsWith(elValue, value);
  },
  '*=': function (elValue, value) {
    return value && elValue.indexOf(value) !== -1;
  },
  '=': function (elValue, value) {
    return elValue === value;
  }
};

var relativeExpr = {
  '>': {
    dir: 'parentNode',
    immediate: 1
  },
  ' ': {
    dir: 'parentNode'
  },
  '+': {
    dir: 'previousSibling',
    immediate: 1
  },
  '~': {
    dir: 'previousSibling'
  }
};

matchExpr = {
  tag: isTag,
  cls: hasSingleClass,
  id: function (el, value) {
    return getAttr(el, 'id') === value;
  },
  attrib: function (el, value) {
    var name = value.ident;
    if (!isContextXML) {
      name = name.toLowerCase();
    }
    var elValue = getAttr(el, name);
    var match = value.match;
    if (!match && elValue !== undefined) {
      return 1;
    } else if (match) {
      if (elValue === undefined) {
        return 0;
      }
      var matchFn = attributeExpr[match];
      if (matchFn) {
        return matchFn(elValue + '', value.value + '');
      }
    }
    return 0;
  },
  pseudo: function (el, value) {
    var fn, fnStr, ident;
    if ((fnStr = value.fn)) {
      if (!(fn = pseudoFnExpr[fnStr])) {
        throw new SyntaxError('Syntax error: not support pseudo: ' + fnStr);
      }
      return fn(el, value.param);
    }
    if ((ident = value.ident)) {
      if (!pseudoIdentExpr[ident]) {
        throw new SyntaxError('Syntax error: not support pseudo: ' + ident);
      }
      return pseudoIdentExpr[ident](el);
    }
    return 0;
  }
};

function unEscape(str) {
  return str.replace(unescape, unescapeFn);
}

parser.lexer.yy = {
  trim: util.trim,
  unEscape: unEscape,
  unEscapeStr: function (str) {
    return this.unEscape(str.slice(1, -1));
  }
};

function resetStatus() {
  subMatchesCache = {};
}

function dir(el, direction) {
  do {
    el = el[direction];
  } while (el && el.nodeType !== 1);
  return el;
}

function getAb(param) {
  var a = 0,
    match,
    b = 0;
  if (typeof param === 'number') {
    b = param;
  } else if (param === 'odd') {
    a = 2;
    b = 1;
  } else if (param === 'even') {
    a = 2;
    b = 0;
  } else if ((match = param.replace(/\s/g, '').match(aNPlusB))) {
    if (match[1]) {
      a = parseInt(match[2], 10);
      if (isNaN(a)) {
        if (match[2] === '-') {
          a = -1;
        } else {
          a = 1;
        }
      }
    } else {
      a = 0;
    }
    b = parseInt(match[3], 10) || 0;
  }
  return {
    a: a,
    b: b
  };
}

function matchIndexByAb(index, a, b, eq) {
  if (a === 0) {
    if (index === b) {
      return eq;
    }
  } else {
    if ((index - b) / a >= 0 && (index - b) % a === 0 && eq) {
      return 1;
    }
  }
  return undefined;
}

function isXML(elem) {
  var documentElement = elem && (elem.ownerDocument || elem).documentElement;
  return documentElement ? documentElement.nodeName.toLowerCase() !== 'html' : false;
}

function matches(str, seeds) {
  return select(str, null, seeds);
}

function singleMatch(el, match) {
  if (!match) {
    return true;
  }
  if (!el) {
    return false;
  }

  if (el.nodeType === 9) {
    return false;
  }

  var matched = 1,
    matchSuffix = match.suffix,
    matchSuffixLen,
    matchSuffixIndex;

  if (match.t === 'tag') {
    matched &= matchExpr.tag(el, match.value);
  }

  if (matched && matchSuffix) {
    matchSuffixLen = matchSuffix.length;
    matchSuffixIndex = 0;
    for (; matched && matchSuffixIndex < matchSuffixLen; matchSuffixIndex++) {
      var singleMatchSuffix = matchSuffix[matchSuffixIndex],
        singleMatchSuffixType = singleMatchSuffix.t;
      if (matchExpr[singleMatchSuffixType]) {
        matched &= matchExpr[singleMatchSuffixType](el, singleMatchSuffix.value);
      }
    }
  }

  return matched;
}

// match by adjacent immediate single selector match
function matchImmediate(el, match) {
  var matched = 1,
    startEl = el,
    relativeOp,
    startMatch = match;

  do {
    matched &= singleMatch(el, match);
    if (matched) {
      // advance
      match = match && match.prev;
      if (!match) {
        return true;
      }
      relativeOp = relativeExpr[match.nextCombinator];
      el = dir(el, relativeOp.dir);
      if (!relativeOp.immediate) {
        return {
          // advance for non-immediate
          el: el,
          match: match
        };
      }
    } else {
      relativeOp = relativeExpr[match.nextCombinator];
      if (relativeOp.immediate) {
        // retreat but advance startEl
        return {
          el: dir(startEl, relativeExpr[startMatch.nextCombinator].dir),
          match: startMatch
        };
      } else {
        // advance (before immediate match + jump unmatched)
        return {
          el: el && dir(el, relativeOp.dir),
          match: match
        };
      }
    }
  } while (el);

  // only occur when match immediate
  return {
    el: dir(startEl, relativeExpr[startMatch.nextCombinator].dir),
    match: startMatch
  };
}

// find fixed part, fixed with seeds
function findFixedMatchFromHead(el, head) {
  var relativeOp,
    cur = head;

  do {
    if (!singleMatch(el, cur)) {
      return null;
    }
    cur = cur.prev;
    if (!cur) {
      return true;
    }
    relativeOp = relativeExpr[cur.nextCombinator];
    el = dir(el, relativeOp.dir);
  } while (el && relativeOp.immediate);
  if (!el) {
    return null;
  }
  return {
    el: el,
    match: cur
  };
}

function genId(el) {
  var selectorId;

  if (isContextXML) {
    if (!(selectorId = el.getAttribute(EXPANDO_SELECTOR_KEY))) {
      el.setAttribute(EXPANDO_SELECTOR_KEY, selectorId = (+new Date() + '_' + (++uuid)));
    }
  } else {
    if (!(selectorId = el[EXPANDO_SELECTOR_KEY])) {
      selectorId = el[EXPANDO_SELECTOR_KEY] = (+new Date()) + '_' + (++uuid);
    }
  }

  return selectorId;
}

function matchSub(el, match) {
  var selectorId = genId(el),
    matchKey;
  matchKey = selectorId + '_' + (match.order || 0);
  if (matchKey in subMatchesCache) {
    return subMatchesCache[matchKey];
  }
  subMatchesCache[matchKey] = matchSubInternal(el, match);
  return subMatchesCache[matchKey];
}

// recursive match by sub selector string from right to left
// grouped by immediate selectors
function matchSubInternal(el, match) {
  var matchImmediateRet = matchImmediate(el, match);
  if (matchImmediateRet === true) {
    return true;
  } else {
    el = matchImmediateRet.el;
    match = matchImmediateRet.match;
    while (el) {
      if (matchSub(el, match)) {
        return true;
      }
      el = dir(el, relativeExpr[match.nextCombinator].dir);
    }
    return false;
  }
}

function select(str, context, seeds) {
  if (!caches[str]) {
    caches[str] = parser.parse(str);
  }

  var selector = caches[str],
    groupIndex = 0,
    groupLen = selector.length,
    contextDocument,
    group,
    ret = [];

  if (seeds) {
    context = context || seeds[0].ownerDocument;
  }

  contextDocument = context && context.ownerDocument || typeof document !== 'undefined' && document;

  if (context && context.nodeType === 9 && !contextDocument) {
    contextDocument = context;
  }

  context = context || contextDocument;

  isContextXML = isXML(context);

  for (; groupIndex < groupLen; groupIndex++) {
    resetStatus();

    group = selector[groupIndex];

    var suffix = group.suffix,
      suffixIndex,
      suffixLen,
      seedsIndex,
      mySeeds = seeds,
      seedsLen,
      id = null;

    if (!mySeeds) {
      if (suffix && !isContextXML) {
        suffixIndex = 0;
        suffixLen = suffix.length;
        for (; suffixIndex < suffixLen; suffixIndex++) {
          var singleSuffix = suffix[suffixIndex];
          if (singleSuffix.t === 'id') {
            id = singleSuffix.value;
            break;
          }
        }
      }

      if (id) {
        // http://yiminghe.github.io/lab/playground/fragment-selector/selector.html
        var doesNotHasById = !context.getElementById,
          contextInDom = util.contains(contextDocument, context),
          tmp = doesNotHasById ? (
            contextInDom ?
              contextDocument.getElementById(id) :
              null
          ) : context.getElementById(id);
        // id bug
        // https://github.com/kissyteam/kissy/issues/67
        if (!tmp && doesNotHasById || tmp && getAttr(tmp, 'id') !== id) {
          var tmps = util.getElementsByTagName('*', context),
            tmpLen = tmps.length,
            tmpI = 0;
          for (; tmpI < tmpLen; tmpI++) {
            tmp = tmps[tmpI];
            if (getAttr(tmp, 'id') === id) {
              mySeeds = [tmp];
              break;
            }
          }
          if (tmpI === tmpLen) {
            mySeeds = [];
          }
        } else {
          if (contextInDom && tmp && context !== contextDocument) {
            tmp = util.contains(context, tmp) ? tmp : null;
          }
          mySeeds = tmp ? [tmp] : [];
        }
      } else {
        mySeeds = util.getElementsByTagName(group.value || '*', context);
      }
    }

    seedsIndex = 0;
    seedsLen = mySeeds.length;

    if (!seedsLen) {
      continue;
    }

    for (; seedsIndex < seedsLen; seedsIndex++) {
      var seed = mySeeds[seedsIndex];
      var matchHead = findFixedMatchFromHead(seed, group);
      if (matchHead === true) {
        ret.push(seed);
      } else if (matchHead) {
        if (matchSub(matchHead.el, matchHead.match)) {
          ret.push(seed);
        }
      }
    }
  }

  if (groupLen > 1) {
    ret = util.unique(ret);
  }

  return ret;
}

module.exports = select;

select.parse = function (str) {
  return parser.parse(str);
};

select.matches = matches;

select.util = util;

select.version = '@VERSION@';
/**
 * @ignore
 * note 2013-03-28
 *  - use recursive call to replace backtracking algorithm
 *
 * refer
 *  - http://www.w3.org/TR/selectors/
 *  - http://www.impressivewebs.com/browser-support-css3-selectors/
 *  - http://blogs.msdn.com/ie/archive/2010/05/13/the-css-corner-css3-selectors.aspx
 *  - http://sizzlejs.com/
 *//**
 * attr fix for old ie
 * @author yiminghe@gmail.com
 */
var R_BOOLEAN = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
  R_FOCUSABLE = /^(?:button|input|object|select|textarea)$/i,
  R_CLICKABLE = /^a(?:rea)?$/i,
  R_INVALID_CHAR = /:|^on/;

var attrFix = {},
  propFix,
  attrHooks = {
    // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
    tabindex: {
      get: function (el) {
        // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
        var attributeNode = el.getAttributeNode('tabindex');
        return attributeNode && attributeNode.specified ?
          parseInt(attributeNode.value, 10) :
          R_FOCUSABLE.test(el.nodeName) ||
          R_CLICKABLE.test(el.nodeName) && el.href ?
            0 :
            undefined;
      }
    }
  },
  boolHook = {
    get: function (elem, name) {
      // 转发到 prop 方法
      return elem[propFix[name] || name] ?
        // 根据 w3c attribute , true 时返回属性名字符串
        name.toLowerCase() :
        undefined;
    }
  },
  attrNodeHook = {};

attrHooks.style = {
  get: function (el) {
    return el.style.cssText;
  }
};

propFix = {
  hidefocus: 'hideFocus',
  tabindex: 'tabIndex',
  readonly: 'readOnly',
  'for': 'htmlFor',
  'class': 'className',
  maxlength: 'maxLength',
  cellspacing: 'cellSpacing',
  cellpadding: 'cellPadding',
  rowspan: 'rowSpan',
  colspan: 'colSpan',
  usemap: 'useMap',
  frameborder: 'frameBorder',
  contenteditable: 'contentEditable'
};

var ua = typeof navigator !== 'undefined' ? navigator.userAgent : '';
var doc = typeof document !== 'undefined' ? document : {};

function numberify(s) {
  var c = 0;
  // convert '1.2.3.4' to 1.234
  return parseFloat(s.replace(/\./g, function () {
    return (c++ === 0) ? '.' : '';
  }));
}

function ieVersion() {
  var m, v;
  if ((m = ua.match(/MSIE ([^;]*)|Trident.*; rv(?:\s|:)?([0-9.]+)/)) &&
    (v = (m[1] || m[2]))) {
    return doc.documentMode || numberify(v);
  }
}

function mix(s, t) {
  for (var p in t) {
    s[p] = t[p];
  }
}

function each(arr, fn) {
  var i = 0, l = arr.length;
  for (; i < l; i++) {
    if (fn(arr[i], i) === false) {
      break;
    }
  }
}
var ie = ieVersion();

if (ie && ie < 8) {
  attrHooks.style.set = function (el, val) {
    el.style.cssText = val;
  };

  // get attribute value from attribute node for ie
  mix(attrNodeHook, {
    get: function (elem, name) {
      var ret = elem.getAttributeNode(name);
      // Return undefined if attribute node specified by user
      return ret && (
        // fix #100
      ret.specified || ret.nodeValue) ?
        ret.nodeValue :
        undefined;
    }
  });

  // ie6,7 不区分 attribute 与 property
  mix(attrFix, propFix);

  // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
  attrHooks.tabIndex = attrHooks.tabindex;

  // 不光是 href, src, 还有 rowspan 等非 mapping 属性，也需要用第 2 个参数来获取原始值
  // 注意 colSpan rowSpan 已经由 propFix 转为大写
  each(['href', 'src', 'width', 'height', 'colSpan', 'rowSpan'], function (name) {
    attrHooks[name] = {
      get: function (elem) {
        var ret = elem.getAttribute(name, 2);
        return ret === null ? undefined : ret;
      }
    };
  });

  attrHooks.placeholder = {
    get: function (elem, name) {
      return elem[name] || attrNodeHook.get(elem, name);
    }
  };
}

if (ie) {
  var hrefFix = attrHooks.href = attrHooks.href || {};
  hrefFix.set = function (el, val, name) {
    var childNodes = el.childNodes,
      b,
      len = childNodes.length,
      allText = len > 0;
    for (len = len - 1; len >= 0; len--) {
      if (childNodes[len].nodeType !== 3) {
        allText = 0;
      }
    }
    if (allText) {
      b = el.ownerDocument.createElement('b');
      b.style.display = 'none';
      el.appendChild(b);
    }
    el.setAttribute(name, '' + val);
    if (b) {
      el.removeChild(b);
    }
  };
}

var RE_TRIM = /^[\s\xa0]+|[\s\xa0]+$/g,
  trim = String.prototype.trim;
var SPACE = ' ';

var getElementsByTagName;
getElementsByTagName = function (name, context) {
  return context.getElementsByTagName(name);
};

if (doc.createElement) {
  var div = doc.createElement('div');
  div.appendChild(document.createComment(''));
  if (div.getElementsByTagName('*').length) {
    getElementsByTagName = function (name, context) {
      var nodes = context.getElementsByTagName(name),
        needsFilter = name === '*';
      // <input id='length'>
      if (needsFilter || typeof nodes.length !== 'number') {
        var ret = [],
          i = 0,
          el;
        while ((el = nodes[i++])) {
          if (!needsFilter || el.nodeType === 1) {
            ret.push(el);
          }
        }
        return ret;
      } else {
        return nodes;
      }
    };
  }
}

var compareNodeOrder = ('sourceIndex' in (doc && doc.documentElement || {})) ? function (a, b) {
  return a.sourceIndex - b.sourceIndex;
} : function (a, b) {
  if (!a.compareDocumentPosition || !b.compareDocumentPosition) {
    return a.compareDocumentPosition ? -1 : 1;
  }
  var bit = a.compareDocumentPosition(b) & 4;
  return bit ? -1 : 1;
};

var util = module.exports = {
  ie: ie,

  unique: (function () {
    var hasDuplicate,
      baseHasDuplicate = true;

    // Here we check if the JavaScript engine is using some sort of
    // optimization where it does not always call our comparison
    // function. If that is the case, discard the hasDuplicate value.
    // Thus far that includes Google Chrome.
    [0, 0].sort(function () {
      baseHasDuplicate = false;
      return 0;
    });

    function sortOrder(a, b) {
      if (a === b) {
        hasDuplicate = true;
        return 0;
      }

      return compareNodeOrder(a, b);
    }

    // 排序去重
    return function (elements) {
      hasDuplicate = baseHasDuplicate;
      elements.sort(sortOrder);

      if (hasDuplicate) {
        var i = 1, len = elements.length;
        while (i < len) {
          if (elements[i] === elements[i - 1]) {
            elements.splice(i, 1);
            --len;
          } else {
            i++;
          }
        }
      }
      return elements;
    };
  })(),

  getElementsByTagName: getElementsByTagName,

  getSimpleAttr: function (el, name) {
    var ret = el && el.getAttributeNode(name);
    if (ret && ret.specified) {
      return 'value' in ret ? ret.value : ret.nodeValue;
    }
    return undefined;
  },

  contains: ie ? function (a, b) {
    if (a.nodeType === 9) {
      a = a.documentElement;
    }
    // !a.contains => a===document || text
    // 注意原生 contains 判断时 a===b 也返回 true
    b = b.parentNode;

    if (a === b) {
      return true;
    }

    // when b is document, a.contains(b) 不支持的接口 in ie
    if (b && b.nodeType === 1) {
      return a.contains && a.contains(b);
    } else {
      return false;
    }
  } : function (a, b) {
    return !!(a.compareDocumentPosition(b) & 16);
  },

  isTag: function (el, value) {
    return value === '*' || el.nodeName.toLowerCase() === value.toLowerCase();
  },

  hasSingleClass: function (el, cls) {
    // consider xml
    // https://github.com/kissyteam/kissy/issues/532
    var className = el && util.getSimpleAttr(el, 'class');
    return className && (className = className.replace(/[\r\t\n]/g, SPACE)) &&
      (SPACE + className + SPACE).indexOf(SPACE + cls + SPACE) > -1;
  },

  startsWith: function (str, prefix) {
    return str.lastIndexOf(prefix, 0) === 0;
  },

  endsWith: function (str, suffix) {
    var ind = str.length - suffix.length;
    return ind >= 0 && str.indexOf(suffix, ind) === ind;
  },

  trim: trim ?
    function (str) {
      return str == null ? '' : trim.call(str);
    } :
    function (str) {
      return str == null ? '' : (str + '').replace(RE_TRIM, '');
    },

  attr: function (el, name) {
    var attrNormalizer, ret;
    // scrollLeft
    name = name.toLowerCase();
    // custom attrs
    name = attrFix[name] || name;
    if (R_BOOLEAN.test(name)) {
      attrNormalizer = boolHook;
    } else if (R_INVALID_CHAR.test(name)) {
      // only old ie?
      attrNormalizer = attrNodeHook;
    } else {
      attrNormalizer = attrHooks[name];
    }
    if (el && el.nodeType === 1) {
      // browsers index elements by id/name on forms, give priority to attributes.
      if (el.nodeName.toLowerCase() === 'form') {
        attrNormalizer = attrNodeHook;
      }
      if (attrNormalizer && attrNormalizer.get) {
        return attrNormalizer.get(el, name);
      }
      ret = el.getAttribute(name);
      if (ret === '') {
        var attrNode = el.getAttributeNode(name);
        if (!attrNode || !attrNode.specified) {
          return undefined;
        }
      }
      // standard browser non-existing attribute return null
      // ie<8 will return undefined , because it return property
      // so norm to undefined
      return ret === null ? undefined : ret;
    }
  }
};/*
  Generated by kison.*/
var parser = (function (undefined) {
    /*jshint quotmark:false, loopfunc:true, indent:false, unused:false, asi:true, boss:true*/
    /* Generated by kison */
    var parser = {},
        GrammarConst = {
            'SHIFT_TYPE': 1,
            'REDUCE_TYPE': 2,
            'ACCEPT_TYPE': 0,
            'TYPE_INDEX': 0,
            'PRODUCTION_INDEX': 1,
            'TO_INDEX': 2
        };
    /*jslint quotmark: false*/
    function mix(to, from) {
        for (var f in from) {
            to[f] = from[f];
        }
    }

    function isArray(obj) {
        return '[object Array]' === Object.prototype.toString.call(obj);
    }

    function each(object, fn, context) {
        if (object) {
            var key,
                val,
                length,
                i = 0;

            context = context || null;

            if (!isArray(object)) {
                for (key in object) {
                    // can not use hasOwnProperty
                    if (fn.call(context, object[key], key, object) === false) {
                        break;
                    }
                }
            } else {
                length = object.length;
                for (val = object[0]; i < length; val = object[++i]) {
                    if (fn.call(context, val, i, object) === false) {
                        break;
                    }
                }
            }
        }
    }

    function inArray(item, arr) {
        for (var i = 0, l = arr.length; i < l; i++) {
            if (arr[i] === item) {
                return true;
            }
        }
        return false;
    }
    var Lexer = function Lexer(cfg) {

        var self = this;

        /*
     lex rules.
     @type {Object[]}
     @example
     [
     {
     regexp:'\\w+',
     state:['xx'],
     token:'c',
     // this => lex
     action:function(){}
     }
     ]
     */
        self.rules = [];

        mix(self, cfg);

        /*
     Input languages
     @type {String}
     */

        self.resetInput(self.input);
    };
    Lexer.prototype = {
        'resetInput': function (input) {
            mix(this, {
                input: input,
                matched: '',
                stateStack: [Lexer.STATIC.INITIAL],
                match: '',
                text: '',
                firstLine: 1,
                lineNumber: 1,
                lastLine: 1,
                firstColumn: 1,
                lastColumn: 1
            });
        },
        'getCurrentRules': function () {
            var self = this,
                currentState = self.stateStack[self.stateStack.length - 1],
                rules = [];
            //#JSCOVERAGE_IF
            if (self.mapState) {
                currentState = self.mapState(currentState);
            }
            each(self.rules, function (r) {
                var state = r.state || r[3];
                if (!state) {
                    if (currentState === Lexer.STATIC.INITIAL) {
                        rules.push(r);
                    }
                } else if (inArray(currentState, state)) {
                    rules.push(r);
                }
            });
            return rules;
        },
        'pushState': function (state) {
            this.stateStack.push(state);
        },
        'popState': function (num) {
            num = num || 1;
            var ret;
            while (num--) {
                ret = this.stateStack.pop();
            }
            return ret;
        },
        'showDebugInfo': function () {
            var self = this,
                DEBUG_CONTEXT_LIMIT = Lexer.STATIC.DEBUG_CONTEXT_LIMIT,
                matched = self.matched,
                match = self.match,
                input = self.input;
            matched = matched.slice(0, matched.length - match.length);
            //#JSCOVERAGE_IF 0
            var past = (matched.length > DEBUG_CONTEXT_LIMIT ? '...' : '') +
                matched.slice(0 - DEBUG_CONTEXT_LIMIT).replace(/\n/, ' '),
                next = match + input;
            //#JSCOVERAGE_ENDIF
            next = next.slice(0, DEBUG_CONTEXT_LIMIT) +
                (next.length > DEBUG_CONTEXT_LIMIT ? '...' : '');
            return past + next + '\n' + new Array(past.length + 1).join('-') + '^';
        },
        'mapSymbol': function mapSymbolForCodeGen(t) {
            return this.symbolMap[t];
        },
        'mapReverseSymbol': function (rs) {
            var self = this,
                symbolMap = self.symbolMap,
                i,
                reverseSymbolMap = self.reverseSymbolMap;
            if (!reverseSymbolMap && symbolMap) {
                reverseSymbolMap = self.reverseSymbolMap = {};
                for (i in symbolMap) {
                    reverseSymbolMap[symbolMap[i]] = i;
                }
            }
            //#JSCOVERAGE_IF
            if (reverseSymbolMap) {
                return reverseSymbolMap[rs];
            } else {
                return rs;
            }
        },
        'lex': function () {
            var self = this,
                input = self.input,
                i,
                rule,
                m,
                ret,
                lines,
                rules = self.getCurrentRules();

            self.match = self.text = '';

            if (!input) {
                return self.mapSymbol(Lexer.STATIC.END_TAG);
            }

            for (i = 0; i < rules.length; i++) {
                rule = rules[i];
                //#JSCOVERAGE_IF 0
                var regexp = rule.regexp || rule[1],
                    token = rule.token || rule[0],
                    action = rule.action || rule[2] || undefined;
                //#JSCOVERAGE_ENDIF
                if ((m = input.match(regexp))) {
                    lines = m[0].match(/\n.*/g);
                    if (lines) {
                        self.lineNumber += lines.length;
                    }
                    mix(self, {
                        firstLine: self.lastLine,
                        lastLine: self.lineNumber + 1,
                        firstColumn: self.lastColumn,
                        lastColumn: lines ?
                            lines[lines.length - 1].length - 1 : self.lastColumn + m[0].length
                    });
                    var match;
                    // for error report
                    match = self.match = m[0];

                    // all matches
                    self.matches = m;
                    // may change by user
                    self.text = match;
                    // matched content utils now
                    self.matched += match;
                    ret = action && action.call(self);
                    if (ret === undefined) {
                        ret = token;
                    } else {
                        ret = self.mapSymbol(ret);
                    }
                    input = input.slice(match.length);
                    self.input = input;

                    if (ret) {
                        return ret;
                    } else {
                        // ignore
                        return self.lex();
                    }
                }
            }
        }
    };
    Lexer.STATIC = {
        'INITIAL': 'I',
        'DEBUG_CONTEXT_LIMIT': 20,
        'END_TAG': '$EOF'
    };
    var lexer = new Lexer({
        'rules': [
            ['b', /^\[(?:[\t\r\n\f\x20]*)/,
                function () {
                    this.text = this.yy.trim(this.text);
                }
            ],
            ['c', /^(?:[\t\r\n\f\x20]*)\]/,
                function () {
                    this.text = this.yy.trim(this.text);
                }
            ],
            ['d', /^(?:[\t\r\n\f\x20]*)~=(?:[\t\r\n\f\x20]*)/,
                function () {
                    this.text = this.yy.trim(this.text);
                }
            ],
            ['e', /^(?:[\t\r\n\f\x20]*)\|=(?:[\t\r\n\f\x20]*)/,
                function () {
                    this.text = this.yy.trim(this.text);
                }
            ],
            ['f', /^(?:[\t\r\n\f\x20]*)\^=(?:[\t\r\n\f\x20]*)/,
                function () {
                    this.text = this.yy.trim(this.text);
                }
            ],
            ['g', /^(?:[\t\r\n\f\x20]*)\$=(?:[\t\r\n\f\x20]*)/,
                function () {
                    this.text = this.yy.trim(this.text);
                }
            ],
            ['h', /^(?:[\t\r\n\f\x20]*)\*=(?:[\t\r\n\f\x20]*)/,
                function () {
                    this.text = this.yy.trim(this.text);
                }
            ],
            ['i', /^(?:[\t\r\n\f\x20]*)\=(?:[\t\r\n\f\x20]*)/,
                function () {
                    this.text = this.yy.trim(this.text);
                }
            ],
            ['j', /^(?:(?:[\w]|[^\x00-\xa0]|(?:\\[^\n\r\f0-9a-f]))(?:[\w\d-]|[^\x00-\xa0]|(?:\\[^\n\r\f0-9a-f]))*)\(/,
                function () {
                    this.text = this.yy.trim(this.text).slice(0, -1);
                    this.pushState('fn');
                }
            ],
            ['k', /^[^\)]*/,
                function () {
                    this.popState();
                },
                ['fn']
            ],
            ['l', /^(?:[\t\r\n\f\x20]*)\)/,
                function () {
                    this.text = this.yy.trim(this.text);
                }
            ],
            ['m', /^:not\((?:[\t\r\n\f\x20]*)/i,
                function () {
                    this.text = this.yy.trim(this.text);
                }
            ],
            ['n', /^(?:(?:[\w]|[^\x00-\xa0]|(?:\\[^\n\r\f0-9a-f]))(?:[\w\d-]|[^\x00-\xa0]|(?:\\[^\n\r\f0-9a-f]))*)/,
                function () {
                    this.text = this.yy.unEscape(this.text);
                }
            ],
            ['o', /^"(\\"|[^"])*"/,
                function () {
                    this.text = this.yy.unEscapeStr(this.text);
                }
            ],
            ['o', /^'(\\'|[^'])*'/,
                function () {
                    this.text = this.yy.unEscapeStr(this.text);
                }
            ],
            ['p', /^#(?:(?:[\w\d-]|[^\x00-\xa0]|(?:\\[^\n\r\f0-9a-f]))+)/,
                function () {
                    this.text = this.yy.unEscape(this.text.slice(1));
                }
            ],
            ['q', /^\.(?:(?:[\w]|[^\x00-\xa0]|(?:\\[^\n\r\f0-9a-f]))(?:[\w\d-]|[^\x00-\xa0]|(?:\\[^\n\r\f0-9a-f]))*)/,
                function () {
                    this.text = this.yy.unEscape(this.text.slice(1));
                }
            ],
            ['r', /^(?:[\t\r\n\f\x20]*),(?:[\t\r\n\f\x20]*)/,
                function () {
                    this.text = this.yy.trim(this.text);
                }
            ],
            ['s', /^::?/, 0],
            ['t', /^(?:[\t\r\n\f\x20]*)\+(?:[\t\r\n\f\x20]*)/,
                function () {
                    this.text = this.yy.trim(this.text);
                }
            ],
            ['u', /^(?:[\t\r\n\f\x20]*)>(?:[\t\r\n\f\x20]*)/,
                function () {
                    this.text = this.yy.trim(this.text);
                }
            ],
            ['v', /^(?:[\t\r\n\f\x20]*)~(?:[\t\r\n\f\x20]*)/,
                function () {
                    this.text = this.yy.trim(this.text);
                }
            ],
            ['w', /^\*/, 0],
            ['x', /^(?:[\t\r\n\f\x20]+)/, 0],
            ['y', /^./, 0]
        ]
    });
    parser.lexer = lexer;
    lexer.symbolMap = {
        '$EOF': 'a',
        'LEFT_BRACKET': 'b',
        'RIGHT_BRACKET': 'c',
        'INCLUDES': 'd',
        'DASH_MATCH': 'e',
        'PREFIX_MATCH': 'f',
        'SUFFIX_MATCH': 'g',
        'SUBSTRING_MATCH': 'h',
        'ALL_MATCH': 'i',
        'FUNCTION': 'j',
        'PARAMETER': 'k',
        'RIGHT_PARENTHESES': 'l',
        'NOT': 'm',
        'IDENT': 'n',
        'STRING': 'o',
        'HASH': 'p',
        'CLASS': 'q',
        'COMMA': 'r',
        'COLON': 's',
        'PLUS': 't',
        'GREATER': 'u',
        'TILDE': 'v',
        'UNIVERSAL': 'w',
        'S': 'x',
        'INVALID': 'y',
        '$START': 'z',
        'selectors_group': 'aa',
        'selector': 'ab',
        'simple_selector_sequence': 'ac',
        'combinator': 'ad',
        'type_selector': 'ae',
        'id_selector': 'af',
        'class_selector': 'ag',
        'attrib_match': 'ah',
        'attrib': 'ai',
        'attrib_val': 'aj',
        'pseudo': 'ak',
        'negation': 'al',
        'negation_arg': 'am',
        'suffix_selector': 'an',
        'suffix_selectors': 'ao'
    };
    parser.productions = [
        ['z', ['aa']],
        ['aa', ['ab'],
            function () {
                return [this.$1];
            }
        ],
        ['aa', ['aa', 'r', 'ab'],
            function () {
                this.$1.push(this.$3);
            }
        ],
        ['ab', ['ac']],
        ['ab', ['ab', 'ad', 'ac'],
            function () {
                // LinkedList

                this.$1.nextCombinator = this.$3.prevCombinator = this.$2;
                var order;
                order = this.$1.order = this.$1.order || 0;
                this.$3.order = order + 1;
                this.$3.prev = this.$1;
                this.$1.next = this.$3;
                return this.$3;
            }
        ],
        ['ad', ['t']],
        ['ad', ['u']],
        ['ad', ['v']],
        ['ad', ['x'],
            function () {
                return ' ';
            }
        ],
        ['ae', ['n'],
            function () {
                return {
                    t: 'tag',
                    value: this.$1
                };
            }
        ],
        ['ae', ['w'],
            function () {
                return {
                    t: 'tag',
                    value: this.$1
                };
            }
        ],
        ['af', ['p'],
            function () {
                return {
                    t: 'id',
                    value: this.$1
                };
            }
        ],
        ['ag', ['q'],
            function () {
                return {
                    t: 'cls',
                    value: this.$1
                };
            }
        ],
        ['ah', ['f']],
        ['ah', ['g']],
        ['ah', ['h']],
        ['ah', ['i']],
        ['ah', ['d']],
        ['ah', ['e']],
        ['ai', ['b', 'n', 'c'],
            function () {
                return {
                    t: 'attrib',
                    value: {
                        ident: this.$2
                    }
                };
            }
        ],
        ['aj', ['n']],
        ['aj', ['o']],
        ['ai', ['b', 'n', 'ah', 'aj', 'c'],
            function () {
                return {
                    t: 'attrib',
                    value: {
                        ident: this.$2,
                        match: this.$3,
                        value: this.$4
                    }
                };
            }
        ],
        ['ak', ['s', 'j', 'k', 'l'],
            function () {
                return {
                    t: 'pseudo',
                    value: {
                        fn: this.$2.toLowerCase(),
                        param: this.$3
                    }
                };
            }
        ],
        ['ak', ['s', 'n'],
            function () {
                return {
                    t: 'pseudo',
                    value: {
                        ident: this.$2.toLowerCase()
                    }
                };
            }
        ],
        ['al', ['m', 'am', 'l'],
            function () {
                return {
                    t: 'pseudo',
                    value: {
                        fn: 'not',
                        param: this.$2
                    }
                };
            }
        ],
        ['am', ['ae']],
        ['am', ['af']],
        ['am', ['ag']],
        ['am', ['ai']],
        ['am', ['ak']],
        ['an', ['af']],
        ['an', ['ag']],
        ['an', ['ai']],
        ['an', ['ak']],
        ['an', ['al']],
        ['ao', ['an'],
            function () {
                return [this.$1];
            }
        ],
        ['ao', ['ao', 'an'],
            function () {
                this.$1.push(this.$2);
            }
        ],
        ['ac', ['ae']],
        ['ac', ['ao'],
            function () {
                return {
                    suffix: this.$1
                };
            }
        ],
        ['ac', ['ae', 'ao'],
            function () {
                return {
                    t: 'tag',
                    value: this.$1.value,
                    suffix: this.$2
                };
            }
        ]
    ];
    parser.table = {
        'gotos': {
            '0': {
                'aa': 8,
                'ab': 9,
                'ae': 10,
                'af': 11,
                'ag': 12,
                'ai': 13,
                'ak': 14,
                'al': 15,
                'an': 16,
                'ao': 17,
                'ac': 18
            },
            '2': {
                'ae': 20,
                'af': 21,
                'ag': 22,
                'ai': 23,
                'ak': 24,
                'am': 25
            },
            '9': {
                'ad': 33
            },
            '10': {
                'af': 11,
                'ag': 12,
                'ai': 13,
                'ak': 14,
                'al': 15,
                'an': 16,
                'ao': 34
            },
            '17': {
                'af': 11,
                'ag': 12,
                'ai': 13,
                'ak': 14,
                'al': 15,
                'an': 35
            },
            '19': {
                'ah': 43
            },
            '28': {
                'ab': 46,
                'ae': 10,
                'af': 11,
                'ag': 12,
                'ai': 13,
                'ak': 14,
                'al': 15,
                'an': 16,
                'ao': 17,
                'ac': 18
            },
            '33': {
                'ae': 10,
                'af': 11,
                'ag': 12,
                'ai': 13,
                'ak': 14,
                'al': 15,
                'an': 16,
                'ao': 17,
                'ac': 47
            },
            '34': {
                'af': 11,
                'ag': 12,
                'ai': 13,
                'ak': 14,
                'al': 15,
                'an': 35
            },
            '43': {
                'aj': 50
            },
            '46': {
                'ad': 33
            }
        },
        'action': {
            '0': {
                'b': [1, undefined, 1],
                'm': [1, undefined, 2],
                'n': [1, undefined, 3],
                'p': [1, undefined, 4],
                'q': [1, undefined, 5],
                's': [1, undefined, 6],
                'w': [1, undefined, 7]
            },
            '1': {
                'n': [1, undefined, 19]
            },
            '2': {
                'b': [1, undefined, 1],
                'n': [1, undefined, 3],
                'p': [1, undefined, 4],
                'q': [1, undefined, 5],
                's': [1, undefined, 6],
                'w': [1, undefined, 7]
            },
            '3': {
                'a': [2, 9],
                'r': [2, 9],
                't': [2, 9],
                'u': [2, 9],
                'v': [2, 9],
                'x': [2, 9],
                'p': [2, 9],
                'q': [2, 9],
                'b': [2, 9],
                's': [2, 9],
                'm': [2, 9],
                'l': [2, 9]
            },
            '4': {
                'a': [2, 11],
                'r': [2, 11],
                't': [2, 11],
                'u': [2, 11],
                'v': [2, 11],
                'x': [2, 11],
                'p': [2, 11],
                'q': [2, 11],
                'b': [2, 11],
                's': [2, 11],
                'm': [2, 11],
                'l': [2, 11]
            },
            '5': {
                'a': [2, 12],
                'r': [2, 12],
                't': [2, 12],
                'u': [2, 12],
                'v': [2, 12],
                'x': [2, 12],
                'p': [2, 12],
                'q': [2, 12],
                'b': [2, 12],
                's': [2, 12],
                'm': [2, 12],
                'l': [2, 12]
            },
            '6': {
                'j': [1, undefined, 26],
                'n': [1, undefined, 27]
            },
            '7': {
                'a': [2, 10],
                'r': [2, 10],
                't': [2, 10],
                'u': [2, 10],
                'v': [2, 10],
                'x': [2, 10],
                'p': [2, 10],
                'q': [2, 10],
                'b': [2, 10],
                's': [2, 10],
                'm': [2, 10],
                'l': [2, 10]
            },
            '8': {
                'a': [0],
                'r': [1, undefined, 28]
            },
            '9': {
                'a': [2, 1],
                'r': [2, 1],
                't': [1, undefined, 29],
                'u': [1, undefined, 30],
                'v': [1, undefined, 31],
                'x': [1, undefined, 32]
            },
            '10': {
                'a': [2, 38],
                'r': [2, 38],
                't': [2, 38],
                'u': [2, 38],
                'v': [2, 38],
                'x': [2, 38],
                'b': [1, undefined, 1],
                'm': [1, undefined, 2],
                'p': [1, undefined, 4],
                'q': [1, undefined, 5],
                's': [1, undefined, 6]
            },
            '11': {
                'a': [2, 31],
                'r': [2, 31],
                't': [2, 31],
                'u': [2, 31],
                'v': [2, 31],
                'x': [2, 31],
                'p': [2, 31],
                'q': [2, 31],
                'b': [2, 31],
                's': [2, 31],
                'm': [2, 31]
            },
            '12': {
                'a': [2, 32],
                'r': [2, 32],
                't': [2, 32],
                'u': [2, 32],
                'v': [2, 32],
                'x': [2, 32],
                'p': [2, 32],
                'q': [2, 32],
                'b': [2, 32],
                's': [2, 32],
                'm': [2, 32]
            },
            '13': {
                'a': [2, 33],
                'r': [2, 33],
                't': [2, 33],
                'u': [2, 33],
                'v': [2, 33],
                'x': [2, 33],
                'p': [2, 33],
                'q': [2, 33],
                'b': [2, 33],
                's': [2, 33],
                'm': [2, 33]
            },
            '14': {
                'a': [2, 34],
                'r': [2, 34],
                't': [2, 34],
                'u': [2, 34],
                'v': [2, 34],
                'x': [2, 34],
                'p': [2, 34],
                'q': [2, 34],
                'b': [2, 34],
                's': [2, 34],
                'm': [2, 34]
            },
            '15': {
                'a': [2, 35],
                'r': [2, 35],
                't': [2, 35],
                'u': [2, 35],
                'v': [2, 35],
                'x': [2, 35],
                'p': [2, 35],
                'q': [2, 35],
                'b': [2, 35],
                's': [2, 35],
                'm': [2, 35]
            },
            '16': {
                'a': [2, 36],
                'r': [2, 36],
                't': [2, 36],
                'u': [2, 36],
                'v': [2, 36],
                'x': [2, 36],
                'p': [2, 36],
                'q': [2, 36],
                'b': [2, 36],
                's': [2, 36],
                'm': [2, 36]
            },
            '17': {
                'a': [2, 39],
                'r': [2, 39],
                't': [2, 39],
                'u': [2, 39],
                'v': [2, 39],
                'x': [2, 39],
                'b': [1, undefined, 1],
                'm': [1, undefined, 2],
                'p': [1, undefined, 4],
                'q': [1, undefined, 5],
                's': [1, undefined, 6]
            },
            '18': {
                'a': [2, 3],
                'r': [2, 3],
                't': [2, 3],
                'u': [2, 3],
                'v': [2, 3],
                'x': [2, 3]
            },
            '19': {
                'c': [1, undefined, 36],
                'd': [1, undefined, 37],
                'e': [1, undefined, 38],
                'f': [1, undefined, 39],
                'g': [1, undefined, 40],
                'h': [1, undefined, 41],
                'i': [1, undefined, 42]
            },
            '20': {
                'l': [2, 26]
            },
            '21': {
                'l': [2, 27]
            },
            '22': {
                'l': [2, 28]
            },
            '23': {
                'l': [2, 29]
            },
            '24': {
                'l': [2, 30]
            },
            '25': {
                'l': [1, undefined, 44]
            },
            '26': {
                'k': [1, undefined, 45]
            },
            '27': {
                'a': [2, 24],
                'r': [2, 24],
                't': [2, 24],
                'u': [2, 24],
                'v': [2, 24],
                'x': [2, 24],
                'p': [2, 24],
                'q': [2, 24],
                'b': [2, 24],
                's': [2, 24],
                'm': [2, 24],
                'l': [2, 24]
            },
            '28': {
                'b': [1, undefined, 1],
                'm': [1, undefined, 2],
                'n': [1, undefined, 3],
                'p': [1, undefined, 4],
                'q': [1, undefined, 5],
                's': [1, undefined, 6],
                'w': [1, undefined, 7]
            },
            '29': {
                'n': [2, 5],
                'w': [2, 5],
                'p': [2, 5],
                'q': [2, 5],
                'b': [2, 5],
                's': [2, 5],
                'm': [2, 5]
            },
            '30': {
                'n': [2, 6],
                'w': [2, 6],
                'p': [2, 6],
                'q': [2, 6],
                'b': [2, 6],
                's': [2, 6],
                'm': [2, 6]
            },
            '31': {
                'n': [2, 7],
                'w': [2, 7],
                'p': [2, 7],
                'q': [2, 7],
                'b': [2, 7],
                's': [2, 7],
                'm': [2, 7]
            },
            '32': {
                'n': [2, 8],
                'w': [2, 8],
                'p': [2, 8],
                'q': [2, 8],
                'b': [2, 8],
                's': [2, 8],
                'm': [2, 8]
            },
            '33': {
                'b': [1, undefined, 1],
                'm': [1, undefined, 2],
                'n': [1, undefined, 3],
                'p': [1, undefined, 4],
                'q': [1, undefined, 5],
                's': [1, undefined, 6],
                'w': [1, undefined, 7]
            },
            '34': {
                'a': [2, 40],
                'r': [2, 40],
                't': [2, 40],
                'u': [2, 40],
                'v': [2, 40],
                'x': [2, 40],
                'b': [1, undefined, 1],
                'm': [1, undefined, 2],
                'p': [1, undefined, 4],
                'q': [1, undefined, 5],
                's': [1, undefined, 6]
            },
            '35': {
                'a': [2, 37],
                'r': [2, 37],
                't': [2, 37],
                'u': [2, 37],
                'v': [2, 37],
                'x': [2, 37],
                'p': [2, 37],
                'q': [2, 37],
                'b': [2, 37],
                's': [2, 37],
                'm': [2, 37]
            },
            '36': {
                'a': [2, 19],
                'r': [2, 19],
                't': [2, 19],
                'u': [2, 19],
                'v': [2, 19],
                'x': [2, 19],
                'p': [2, 19],
                'q': [2, 19],
                'b': [2, 19],
                's': [2, 19],
                'm': [2, 19],
                'l': [2, 19]
            },
            '37': {
                'n': [2, 17],
                'o': [2, 17]
            },
            '38': {
                'n': [2, 18],
                'o': [2, 18]
            },
            '39': {
                'n': [2, 13],
                'o': [2, 13]
            },
            '40': {
                'n': [2, 14],
                'o': [2, 14]
            },
            '41': {
                'n': [2, 15],
                'o': [2, 15]
            },
            '42': {
                'n': [2, 16],
                'o': [2, 16]
            },
            '43': {
                'n': [1, undefined, 48],
                'o': [1, undefined, 49]
            },
            '44': {
                'a': [2, 25],
                'r': [2, 25],
                't': [2, 25],
                'u': [2, 25],
                'v': [2, 25],
                'x': [2, 25],
                'p': [2, 25],
                'q': [2, 25],
                'b': [2, 25],
                's': [2, 25],
                'm': [2, 25]
            },
            '45': {
                'l': [1, undefined, 51]
            },
            '46': {
                'a': [2, 2],
                'r': [2, 2],
                't': [1, undefined, 29],
                'u': [1, undefined, 30],
                'v': [1, undefined, 31],
                'x': [1, undefined, 32]
            },
            '47': {
                'a': [2, 4],
                'r': [2, 4],
                't': [2, 4],
                'u': [2, 4],
                'v': [2, 4],
                'x': [2, 4]
            },
            '48': {
                'c': [2, 20]
            },
            '49': {
                'c': [2, 21]
            },
            '50': {
                'c': [1, undefined, 52]
            },
            '51': {
                'a': [2, 23],
                'r': [2, 23],
                't': [2, 23],
                'u': [2, 23],
                'v': [2, 23],
                'x': [2, 23],
                'p': [2, 23],
                'q': [2, 23],
                'b': [2, 23],
                's': [2, 23],
                'm': [2, 23],
                'l': [2, 23]
            },
            '52': {
                'a': [2, 22],
                'r': [2, 22],
                't': [2, 22],
                'u': [2, 22],
                'v': [2, 22],
                'x': [2, 22],
                'p': [2, 22],
                'q': [2, 22],
                'b': [2, 22],
                's': [2, 22],
                'm': [2, 22],
                'l': [2, 22]
            }
        }
    };
    parser.parse = function parse(input, filename) {
        var self = this,
            lexer = self.lexer,
            state,
            symbol,
            action,
            table = self.table,
            gotos = table.gotos,
            tableAction = table.action,
            productions = self.productions,
            valueStack = [null],
            // for debug info
            prefix = filename ? ('in file: ' + filename + ' ') : '',
            stack = [0];

        lexer.resetInput(input);

        while (1) {
            // retrieve state number from top of stack
            state = stack[stack.length - 1];

            if (!symbol) {
                symbol = lexer.lex();
            }

            if (symbol) {
                // read action for current state and first input
                action = tableAction[state] && tableAction[state][symbol];
            } else {
                action = null;
            }

            if (!action) {
                var expected = [],
                    error;
                //#JSCOVERAGE_IF
                if (tableAction[state]) {
                    for (var symbolForState in tableAction[state]) {
                        expected.push(self.lexer.mapReverseSymbol(symbolForState));
                    }
                }
                error = prefix + 'syntax error at line ' + lexer.lineNumber +
                    ':\n' + lexer.showDebugInfo() +
                    '\n' + 'expect ' + expected.join(', ');
                throw new Error(error);
            }

            switch (action[GrammarConst.TYPE_INDEX]) {
            case GrammarConst.SHIFT_TYPE:
                stack.push(symbol);

                valueStack.push(lexer.text);

                // push state
                stack.push(action[GrammarConst.TO_INDEX]);

                // allow to read more
                symbol = null;

                break;

            case GrammarConst.REDUCE_TYPE:
                var production = productions[action[GrammarConst.PRODUCTION_INDEX]],
                    reducedSymbol = production.symbol || production[0],
                    reducedAction = production.action || production[2],
                    reducedRhs = production.rhs || production[1],
                    len = reducedRhs.length,
                    i = 0,
                    ret,
                    $$ = valueStack[valueStack.length - len]; // default to $$ = $1

                ret = undefined;

                self.$$ = $$;

                for (; i < len; i++) {
                    self['$' + (len - i)] = valueStack[valueStack.length - 1 - i];
                }

                if (reducedAction) {
                    ret = reducedAction.call(self);
                }

                if (ret !== undefined) {
                    $$ = ret;
                } else {
                    $$ = self.$$;
                }

                stack = stack.slice(0, -1 * len * 2);
                valueStack = valueStack.slice(0, -1 * len);

                stack.push(reducedSymbol);

                valueStack.push($$);

                var newState = gotos[stack[stack.length - 2]][stack[stack.length - 1]];

                stack.push(newState);

                break;

            case GrammarConst.ACCEPT_TYPE:
                return $$;
            }
        }
    };
    return parser;
})();
if (true) {
    module.exports = parser;
}var hyphenExpression = /-+([a-z])/gi

function upperCaseFirstMatch (match, c, offset) {
  if (offset !== 0) {
    return c.toUpperCase()
  } else {
    return c
  }
}

function camelCase (str) {
  var camelCased = str.replace(hyphenExpression, upperCaseFirstMatch)
  hyphenExpression.lastIndex = 0
  return camelCased
}

module.exports = camelCase
function isString (value) {
  return typeof value === 'string'
}

module.exports = isString
function isUndefined (value) {
  return typeof value === 'undefined'
}

module.exports = isUndefined
function assign (dest) {
  var args = arguments
  var source

  for (var i = 1; i < args.length; i++) {
    source = args[i]

    for (var key in source) {
      dest[key] = source[key]
    }
  }

  return dest
}

module.exports = assign
function mapValues (source, fn) {
  var destination = {}

  for (var key in source) {
    if (source.hasOwnProperty(key)) {
      destination[key] = fn(source[key])
    }
  }

  return destination
}

module.exports = mapValues
var camelCase = __webpack_require__(624)

function styleCamelCase (name) {
  var camel = camelCase(name)

  // Detect if the style property is already camelCased
  // To not convert Webkit*, Moz* and O* to lowercase
  if (camel.charAt(0).toUpperCase() === name.charAt(0)) {
    return name.charAt(0) + camel.slice(1)
  }

  if (name.charAt(0) === '-') {
    return camel.indexOf('ms') === 0 ? camel
      : camel.charAt(0).toUpperCase() + camel.slice(1)
  } else {
    return camel
  }
}

module.exports = styleCamelCase
function window () {
  var Window = {
    getComputedStyle: function (node) {
      return {
        getPropertyValue: node.style.getProperty
      }
    }
  }

  return Window
}

module.exports = window
var React = __webpack_require__(2)
var createReactClass = __webpack_require__(75)
var mapValues = __webpack_require__(625)

function withFauxDOMFactory (Element) {
  function withFauxDOM (WrappedComponent) {
    var WithFauxDOM = createReactClass({
      componentWillMount: function () {
        this.connectedFauxDOM = {}
        this.animateFauxDOMUntil = 0
      },
      componentWillUnmount: function () {
        this.stopAnimatingFauxDOM()
        this.stopDrawFauxDOM()
      },
      connectFauxDOM: function (node, name, discardNode) {
        if (!this.connectedFauxDOM[name] || discardNode) {
          this.connectedFauxDOM[name] = typeof node !== 'string' ? node : new Element(node)
          this.drawFauxDOMTimeout = setTimeout(this.drawFauxDOM)
        }
        return this.connectedFauxDOM[name]
      },
      drawFauxDOM: function () {
        var virtualDOM = mapValues(this.connectedFauxDOM, function (n) {
          return n.toReact()
        })
        this.setState(virtualDOM)
      },
      animateFauxDOM: function (duration) {
        this.animateFauxDOMUntil = Math.max(Date.now() + duration, this.animateFauxDOMUntil)
        if (!this.fauxDOMAnimationInterval) {
          this.fauxDOMAnimationInterval = setInterval(function () {
            if (Date.now() < this.animateFauxDOMUntil) {
              this.drawFauxDOM()
            } else {
              this.stopAnimatingFauxDOM()
            }
          }.bind(this), 16)
        }
      },
      stopAnimatingFauxDOM: function () {
        this.fauxDOMAnimationInterval = clearInterval(this.fauxDOMAnimationInterval)
        this.animateFauxDOMUntil = 0
      },
      stopDrawFauxDOM: function () {
        this.drawFauxDOMTimeout = clearTimeout(this.drawFauxDOMTimeout)
      },
      isAnimatingFauxDOM: function () {
        return !!this.fauxDOMAnimationInterval
      },
      render: function () {
        var props = Object.assign({}, this.props, this.state, {
          connectFauxDOM: this.connectFauxDOM,
          drawFauxDOM: this.drawFauxDOM,
          animateFauxDOM: this.animateFauxDOM,
          stopAnimatingFauxDOM: this.stopAnimatingFauxDOM,
          isAnimatingFauxDOM: this.isAnimatingFauxDOM
        })
        return React.createElement(WrappedComponent, props)
      }
    })
    WithFauxDOM.displayName = 'WithFauxDOM(' + getDisplayName(WrappedComponent) + ')'
    return WithFauxDOM
  }

  return withFauxDOM
}

function getDisplayName (WrappedComponent) {
  return WrappedComponent.displayName || WrappedComponent.name || 'Component'
}

module.exports = withFauxDOMFactory


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _enhancer = __webpack_require__(626);

var _enhancer2 = _interopRequireDefault(_enhancer);

var _plugins = __webpack_require__(636);

var _plugins2 = _interopRequireDefault(_plugins);

var _style = __webpack_require__(1058);

var _style2 = _interopRequireDefault(_style);

var _styleRoot = __webpack_require__(1059);

var _styleRoot2 = _interopRequireDefault(_styleRoot);

var _getState = __webpack_require__(633);

var _getState2 = _interopRequireDefault(_getState);

var _keyframes = __webpack_require__(1061);

var _keyframes2 = _interopRequireDefault(_keyframes);

var _resolveStyles = __webpack_require__(627);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function Radium(ComposedComponent) {
  return (0, _enhancer2.default)(ComposedComponent);
}

Radium.Plugins = _plugins2.default;
Radium.Style = _style2.default;
Radium.StyleRoot = _styleRoot2.default;
Radium.getState = _getState2.default;
Radium.keyframes = _keyframes2.default;

if (false) {}

exports.default = Radium;
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _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; };

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

exports.default = enhanceWithRadium;

var _react = __webpack_require__(2);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _styleKeeper = __webpack_require__(496);

var _styleKeeper2 = _interopRequireDefault(_styleKeeper);

var _resolveStyles = __webpack_require__(627);

var _resolveStyles2 = _interopRequireDefault(_resolveStyles);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var KEYS_TO_IGNORE_WHEN_COPYING_PROPERTIES = ['arguments', 'callee', 'caller', 'length', 'name', 'prototype', 'type'];

function copyProperties(source, target) {
  Object.getOwnPropertyNames(source).forEach(function (key) {
    if (KEYS_TO_IGNORE_WHEN_COPYING_PROPERTIES.indexOf(key) < 0 && !target.hasOwnProperty(key)) {
      var descriptor = Object.getOwnPropertyDescriptor(source, key);
      Object.defineProperty(target, key, descriptor);
    }
  });
}

function isStateless(component) {
  return !component.render && !(component.prototype && component.prototype.render);
}

// Check if value is a real ES class in Native / Node code.
// See: https://stackoverflow.com/a/30760236
function isNativeClass(component) {
  return typeof component === 'function' && /^\s*class\s+/.test(component.toString());
}

// Manually apply babel-ish class inheritance.
function inherits(subClass, superClass) {
  if (typeof superClass !== 'function' && superClass !== null) {
    throw new TypeError('Super expression must either be null or a function, not ' + (typeof superClass === 'undefined' ? 'undefined' : _typeof(superClass)));
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });

  if (superClass) {
    if (Object.setPrototypeOf) {
      Object.setPrototypeOf(subClass, superClass);
    } else {
      subClass.__proto__ = superClass; // eslint-disable-line no-proto
    }
  }
}

function enhanceWithRadium(configOrComposedComponent) {
  var _class, _temp;

  var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

  if (typeof configOrComposedComponent !== 'function') {
    var newConfig = _extends({}, config, configOrComposedComponent);
    return function (configOrComponent) {
      return enhanceWithRadium(configOrComponent, newConfig);
    };
  }

  var component = configOrComposedComponent;
  var ComposedComponent = component;

  // Handle Native ES classes.
  if (isNativeClass(ComposedComponent)) {
    // Manually approximate babel's class transpilation, but _with_ a real `new` call.
    ComposedComponent = function (OrigComponent) {
      function NewComponent() {
        // Ordinarily, babel would produce something like:
        //
        // ```
        // return _possibleConstructorReturn(this, OrigComponent.apply(this, arguments));
        // ```
        //
        // Instead, we just call `new` directly without the `_possibleConstructorReturn` wrapper.
        var source = new (Function.prototype.bind.apply(OrigComponent, [null].concat(Array.prototype.slice.call(arguments))))();

        // Then we manually update context with properties.
        copyProperties(source, this);

        return this;
      }

      inherits(NewComponent, OrigComponent);

      return NewComponent;
    }(ComposedComponent);
  }

  // Handle stateless components
  if (isStateless(ComposedComponent)) {
    ComposedComponent = function (_Component) {
      _inherits(ComposedComponent, _Component);

      function ComposedComponent() {
        _classCallCheck(this, ComposedComponent);

        return _possibleConstructorReturn(this, _Component.apply(this, arguments));
      }

      ComposedComponent.prototype.render = function render() {
        return component(this.props, this.context);
      };

      return ComposedComponent;
    }(_react.Component);

    ComposedComponent.displayName = component.displayName || component.name;
  }

  var RadiumEnhancer = (_temp = _class = function (_ComposedComponent) {
    _inherits(RadiumEnhancer, _ComposedComponent);

    function RadiumEnhancer() {
      _classCallCheck(this, RadiumEnhancer);

      var _this2 = _possibleConstructorReturn(this, _ComposedComponent.apply(this, arguments));

      _this2.state = _this2.state || {};
      _this2.state._radiumStyleState = {};
      _this2._radiumIsMounted = true;
      return _this2;
    }

    RadiumEnhancer.prototype.componentWillUnmount = function componentWillUnmount() {
      if (_ComposedComponent.prototype.componentWillUnmount) {
        _ComposedComponent.prototype.componentWillUnmount.call(this);
      }

      this._radiumIsMounted = false;

      if (this._radiumMouseUpListener) {
        this._radiumMouseUpListener.remove();
      }

      if (this._radiumMediaQueryListenersByQuery) {
        Object.keys(this._radiumMediaQueryListenersByQuery).forEach(function (query) {
          this._radiumMediaQueryListenersByQuery[query].remove();
        }, this);
      }
    };

    RadiumEnhancer.prototype.getChildContext = function getChildContext() {
      var superChildContext = _ComposedComponent.prototype.getChildContext ? _ComposedComponent.prototype.getChildContext.call(this) : {};

      if (!this.props.radiumConfig) {
        return superChildContext;
      }

      var newContext = _extends({}, superChildContext);

      if (this.props.radiumConfig) {
        newContext._radiumConfig = this.props.radiumConfig;
      }

      return newContext;
    };

    RadiumEnhancer.prototype.render = function render() {
      var renderedElement = _ComposedComponent.prototype.render.call(this);
      var currentConfig = this.props.radiumConfig || this.context._radiumConfig || config;

      if (config && currentConfig !== config) {
        currentConfig = _extends({}, config, currentConfig);
      }

      return (0, _resolveStyles2.default)(this, renderedElement, currentConfig);
    };

    return RadiumEnhancer;
  }(ComposedComponent), _class._isRadiumEnhanced = true, _temp);

  // Class inheritance uses Object.create and because of __proto__ issues
  // with IE <10 any static properties of the superclass aren't inherited and
  // so need to be manually populated.
  // See http://babeljs.io/docs/advanced/caveats/#classes-10-and-below-

  copyProperties(component, RadiumEnhancer);

  if (false) {}

  if (RadiumEnhancer.propTypes && RadiumEnhancer.propTypes.style) {
    RadiumEnhancer.propTypes = _extends({}, RadiumEnhancer.propTypes, {
      style: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object])
    });
  }

  RadiumEnhancer.displayName = component.displayName || component.name || 'Component';

  RadiumEnhancer.contextTypes = _extends({}, RadiumEnhancer.contextTypes, {
    _radiumConfig: _propTypes2.default.object,
    _radiumStyleKeeper: _propTypes2.default.instanceOf(_styleKeeper2.default)
  });

  RadiumEnhancer.childContextTypes = _extends({}, RadiumEnhancer.childContextTypes, {
    _radiumConfig: _propTypes2.default.object,
    _radiumStyleKeeper: _propTypes2.default.instanceOf(_styleKeeper2.default)
  });

  return RadiumEnhancer;
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

var StyleKeeper = function () {
  function StyleKeeper(userAgent) {
    _classCallCheck(this, StyleKeeper);

    this._userAgent = userAgent;
    this._listeners = [];
    this._cssSet = {};
  }

  StyleKeeper.prototype.subscribe = function subscribe(listener) {
    var _this = this;

    if (this._listeners.indexOf(listener) === -1) {
      this._listeners.push(listener);
    }

    return {
      // Must be fat arrow to capture `this`
      remove: function remove() {
        var listenerIndex = _this._listeners.indexOf(listener);
        if (listenerIndex > -1) {
          _this._listeners.splice(listenerIndex, 1);
        }
      }
    };
  };

  StyleKeeper.prototype.addCSS = function addCSS(css) {
    var _this2 = this;

    if (!this._cssSet[css]) {
      this._cssSet[css] = true;
      this._emitChange();
    }

    return {
      // Must be fat arrow to capture `this`
      remove: function remove() {
        delete _this2._cssSet[css];
        _this2._emitChange();
      }
    };
  };

  StyleKeeper.prototype.getCSS = function getCSS() {
    return Object.keys(this._cssSet).join('\n');
  };

  StyleKeeper.prototype._emitChange = function _emitChange() {
    this._listeners.forEach(function (listener) {
      return listener();
    });
  };

  return StyleKeeper;
}();

exports.default = StyleKeeper;
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _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; };

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

var _appendImportantToEachValue = __webpack_require__(1018);

var _appendImportantToEachValue2 = _interopRequireDefault(_appendImportantToEachValue);

var _cssRuleSetToString = __webpack_require__(497);

var _cssRuleSetToString2 = _interopRequireDefault(_cssRuleSetToString);

var _getState = __webpack_require__(633);

var _getState2 = _interopRequireDefault(_getState);

var _getStateKey = __webpack_require__(634);

var _getStateKey2 = _interopRequireDefault(_getStateKey);

var _hash = __webpack_require__(635);

var _hash2 = _interopRequireDefault(_hash);

var _mergeStyles = __webpack_require__(1048);

var _plugins = __webpack_require__(636);

var _plugins2 = _interopRequireDefault(_plugins);

var _exenv = __webpack_require__(333);

var _exenv2 = _interopRequireDefault(_exenv);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var DEFAULT_CONFIG = {
  plugins: [_plugins2.default.mergeStyleArray, _plugins2.default.checkProps, _plugins2.default.resolveMediaQueries, _plugins2.default.resolveInteractionStyles, _plugins2.default.keyframes, _plugins2.default.visited, _plugins2.default.removeNestedStyles, _plugins2.default.prefix, _plugins2.default.checkProps]
};

// Gross
var globalState = {};

// Declare early for recursive helpers.
var resolveStyles = null;

var _shouldResolveStyles = function _shouldResolveStyles(component) {
  return component.type && !component.type._isRadiumEnhanced;
};

var _resolveChildren = function _resolveChildren(_ref) {
  var children = _ref.children,
      component = _ref.component,
      config = _ref.config,
      existingKeyMap = _ref.existingKeyMap;

  if (!children) {
    return children;
  }

  var childrenType = typeof children === 'undefined' ? 'undefined' : _typeof(children);

  if (childrenType === 'string' || childrenType === 'number') {
    // Don't do anything with a single primitive child
    return children;
  }

  if (childrenType === 'function') {
    // Wrap the function, resolving styles on the result
    return function () {
      var result = children.apply(this, arguments);
      if (_react2.default.isValidElement(result)) {
        return resolveStyles(component, result, config, existingKeyMap, true);
      }
      return result;
    };
  }

  if (_react2.default.Children.count(children) === 1 && children.type) {
    // If a React Element is an only child, don't wrap it in an array for
    // React.Children.map() for React.Children.only() compatibility.
    var onlyChild = _react2.default.Children.only(children);
    return resolveStyles(component, onlyChild, config, existingKeyMap, true);
  }

  return _react2.default.Children.map(children, function (child) {
    if (_react2.default.isValidElement(child)) {
      return resolveStyles(component, child, config, existingKeyMap, true);
    }

    return child;
  });
};

// Recurse over props, just like children
var _resolveProps = function _resolveProps(_ref2) {
  var component = _ref2.component,
      config = _ref2.config,
      existingKeyMap = _ref2.existingKeyMap,
      props = _ref2.props;

  var newProps = props;

  Object.keys(props).forEach(function (prop) {
    // We already recurse over children above
    if (prop === 'children') {
      return;
    }

    var propValue = props[prop];
    if (_react2.default.isValidElement(propValue)) {
      newProps = _extends({}, newProps);
      newProps[prop] = resolveStyles(component, propValue, config, existingKeyMap, true);
    }
  });

  return newProps;
};

var _buildGetKey = function _buildGetKey(_ref3) {
  var componentName = _ref3.componentName,
      existingKeyMap = _ref3.existingKeyMap,
      renderedElement = _ref3.renderedElement;

  // We need a unique key to correlate state changes due to user interaction
  // with the rendered element, so we know to apply the proper interactive
  // styles.
  var originalKey = typeof renderedElement.ref === 'string' ? renderedElement.ref : renderedElement.key;
  var key = (0, _getStateKey2.default)(originalKey);

  var alreadyGotKey = false;
  var getKey = function getKey() {
    if (alreadyGotKey) {
      return key;
    }

    alreadyGotKey = true;

    if (existingKeyMap[key]) {
      var elementName = void 0;
      if (typeof renderedElement.type === 'string') {
        elementName = renderedElement.type;
      } else if (renderedElement.type.constructor) {
        elementName = renderedElement.type.constructor.displayName || renderedElement.type.constructor.name;
      }

      throw new Error('Radium requires each element with interactive styles to have a unique ' + 'key, set using either the ref or key prop. ' + (originalKey ? 'Key "' + originalKey + '" is a duplicate.' : 'Multiple elements have no key specified.') + ' ' + 'Component: "' + componentName + '". ' + (elementName ? 'Element: "' + elementName + '".' : ''));
    }

    existingKeyMap[key] = true;

    return key;
  };

  return getKey;
};

var _setStyleState = function _setStyleState(component, key, stateKey, value) {
  if (!component._radiumIsMounted) {
    return;
  }

  var existing = component._lastRadiumState || component.state && component.state._radiumStyleState || {};

  var state = { _radiumStyleState: _extends({}, existing) };
  state._radiumStyleState[key] = _extends({}, state._radiumStyleState[key]);
  state._radiumStyleState[key][stateKey] = value;

  component._lastRadiumState = state._radiumStyleState;
  component.setState(state);
};

var _runPlugins = function _runPlugins(_ref4) {
  var component = _ref4.component,
      config = _ref4.config,
      existingKeyMap = _ref4.existingKeyMap,
      props = _ref4.props,
      renderedElement = _ref4.renderedElement;

  // Don't run plugins if renderedElement is not a simple ReactDOMElement or has
  // no style.
  if (!_react2.default.isValidElement(renderedElement) || typeof renderedElement.type !== 'string' || !props.style) {
    return props;
  }

  var newProps = props;

  var plugins = config.plugins || DEFAULT_CONFIG.plugins;

  var componentName = component.constructor.displayName || component.constructor.name;
  var getKey = _buildGetKey({
    renderedElement: renderedElement,
    existingKeyMap: existingKeyMap,
    componentName: componentName
  });
  var getComponentField = function getComponentField(key) {
    return component[key];
  };
  var getGlobalState = function getGlobalState(key) {
    return globalState[key];
  };
  var componentGetState = function componentGetState(stateKey, elementKey) {
    return (0, _getState2.default)(component.state, elementKey || getKey(), stateKey);
  };
  var setState = function setState(stateKey, value, elementKey) {
    return _setStyleState(component, elementKey || getKey(), stateKey, value);
  };

  var addCSS = function addCSS(css) {
    var styleKeeper = component._radiumStyleKeeper || component.context._radiumStyleKeeper;
    if (!styleKeeper) {
      if (__isTestModeEnabled) {
        return {
          remove: function remove() {}
        };
      }

      throw new Error('To use plugins requiring `addCSS` (e.g. keyframes, media queries), ' + 'please wrap your application in the StyleRoot component. Component ' + 'name: `' + componentName + '`.');
    }

    return styleKeeper.addCSS(css);
  };

  var newStyle = props.style;

  plugins.forEach(function (plugin) {
    var result = plugin({
      ExecutionEnvironment: _exenv2.default,
      addCSS: addCSS,
      appendImportantToEachValue: _appendImportantToEachValue2.default,
      componentName: componentName,
      config: config,
      cssRuleSetToString: _cssRuleSetToString2.default,
      getComponentField: getComponentField,
      getGlobalState: getGlobalState,
      getState: componentGetState,
      hash: _hash2.default,
      mergeStyles: _mergeStyles.mergeStyles,
      props: newProps,
      setState: setState,
      isNestedStyle: _mergeStyles.isNestedStyle,
      style: newStyle
    }) || {};

    newStyle = result.style || newStyle;

    newProps = result.props && Object.keys(result.props).length ? _extends({}, newProps, result.props) : newProps;

    var newComponentFields = result.componentFields || {};
    Object.keys(newComponentFields).forEach(function (fieldName) {
      component[fieldName] = newComponentFields[fieldName];
    });

    var newGlobalState = result.globalState || {};
    Object.keys(newGlobalState).forEach(function (key) {
      globalState[key] = newGlobalState[key];
    });
  });

  if (newStyle !== props.style) {
    newProps = _extends({}, newProps, { style: newStyle });
  }

  return newProps;
};

// Wrapper around React.cloneElement. To avoid processing the same element
// twice, whenever we clone an element add a special prop to make sure we don't
// process this element again.
var _cloneElement = function _cloneElement(renderedElement, newProps, newChildren) {
  // Only add flag if this is a normal DOM element
  if (typeof renderedElement.type === 'string') {
    newProps = _extends({}, newProps, { 'data-radium': true });
  }

  return _react2.default.cloneElement(renderedElement, newProps, newChildren);
};

//
// The nucleus of Radium. resolveStyles is called on the rendered elements
// before they are returned in render. It iterates over the elements and
// children, rewriting props to add event handlers required to capture user
// interactions (e.g. mouse over). It also replaces the style prop because it
// adds in the various interaction styles (e.g. :hover).
//
resolveStyles = function resolveStyles(component, // ReactComponent, flow+eslint complaining
renderedElement) {
  var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_CONFIG;
  var existingKeyMap = arguments[3];
  var shouldCheckBeforeResolve = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;

  // ReactElement
  existingKeyMap = existingKeyMap || {};
  if (!renderedElement ||
  // Bail if we've already processed this element. This ensures that only the
  // owner of an element processes that element, since the owner's render
  // function will be called first (which will always be the case, since you
  // can't know what else to render until you render the parent component).
  renderedElement.props && renderedElement.props['data-radium'] ||
  // Bail if this element is a radium enhanced element, because if it is,
  // then it will take care of resolving its own styles.
  shouldCheckBeforeResolve && !_shouldResolveStyles(renderedElement)) {
    return renderedElement;
  }

  var newChildren = _resolveChildren({
    children: renderedElement.props.children,
    component: component,
    config: config,
    existingKeyMap: existingKeyMap
  });

  var newProps = _resolveProps({
    component: component,
    config: config,
    existingKeyMap: existingKeyMap,
    props: renderedElement.props
  });

  newProps = _runPlugins({
    component: component,
    config: config,
    existingKeyMap: existingKeyMap,
    props: newProps,
    renderedElement: renderedElement
  });

  // If nothing changed, don't bother cloning the element. Might be a bit
  // wasteful, as we add the sentinal to stop double-processing when we clone.
  // Assume benign double-processing is better than unneeded cloning.
  if (newChildren === renderedElement.props.children && newProps === renderedElement.props) {
    return renderedElement;
  }

  return _cloneElement(renderedElement, newProps !== renderedElement.props ? newProps : {}, newChildren);
};

// Only for use by tests
var __isTestModeEnabled = false;
if (false) {}

exports.default = resolveStyles;
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = appendImportantToEachValue;

var _appendPxIfNeeded = __webpack_require__(628);

var _appendPxIfNeeded2 = _interopRequireDefault(_appendPxIfNeeded);

var _mapObject = __webpack_require__(629);

var _mapObject2 = _interopRequireDefault(_mapObject);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function appendImportantToEachValue(style) {
  return (0, _mapObject2.default)(style, function (result, key) {
    return (0, _appendPxIfNeeded2.default)(key, style[key]) + ' !important';
  });
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = appendPxIfNeeded;


// Copied from https://github.com/facebook/react/blob/
// 102cd291899f9942a76c40a0e78920a6fe544dc1/
// src/renderers/dom/shared/CSSProperty.js
var isUnitlessNumber = {
  animationIterationCount: true,
  boxFlex: true,
  boxFlexGroup: true,
  boxOrdinalGroup: true,
  columnCount: true,
  flex: true,
  flexGrow: true,
  flexPositive: true,
  flexShrink: true,
  flexNegative: true,
  flexOrder: true,
  gridRow: true,
  gridColumn: true,
  fontWeight: true,
  lineClamp: true,
  lineHeight: true,
  opacity: true,
  order: true,
  orphans: true,
  tabSize: true,
  widows: true,
  zIndex: true,
  zoom: true,

  // SVG-related properties
  fillOpacity: true,
  stopOpacity: true,
  strokeDashoffset: true,
  strokeOpacity: true,
  strokeWidth: true
};

function appendPxIfNeeded(propertyName, value) {
  var needsPxSuffix = !isUnitlessNumber[propertyName] && typeof value === 'number' && value !== 0;
  return needsPxSuffix ? value + 'px' : value;
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = mapObject;
function mapObject(object, mapper) {
  return Object.keys(object).reduce(function (result, key) {
    result[key] = mapper(object[key], key);
    return result;
  }, {});
}
module.exports = exports["default"];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = cssRuleSetToString;

var _appendPxIfNeeded = __webpack_require__(628);

var _appendPxIfNeeded2 = _interopRequireDefault(_appendPxIfNeeded);

var _camelCasePropsToDashCase = __webpack_require__(1019);

var _camelCasePropsToDashCase2 = _interopRequireDefault(_camelCasePropsToDashCase);

var _mapObject = __webpack_require__(629);

var _mapObject2 = _interopRequireDefault(_mapObject);

var _prefixer = __webpack_require__(498);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function createMarkupForStyles(style) {
  return Object.keys(style).map(function (property) {
    return property + ': ' + style[property] + ';';
  }).join('\n');
}

function cssRuleSetToString(selector, rules, userAgent) {
  if (!rules) {
    return '';
  }

  var rulesWithPx = (0, _mapObject2.default)(rules, function (value, key) {
    return (0, _appendPxIfNeeded2.default)(key, value);
  });
  var prefixedRules = (0, _prefixer.getPrefixedStyle)(rulesWithPx, userAgent);
  var cssPrefixedRules = (0, _camelCasePropsToDashCase2.default)(prefixedRules);
  var serializedRules = createMarkupForStyles(cssPrefixedRules);

  return selector + '{' + serializedRules + '}';
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
var _camelCaseRegex = /([a-z])?([A-Z])/g;

var _camelCaseReplacer = function _camelCaseReplacer(match, p1, p2) {
  return (p1 || '') + '-' + p2.toLowerCase();
};

var _camelCaseToDashCase = function _camelCaseToDashCase(s) {
  return s.replace(_camelCaseRegex, _camelCaseReplacer);
};

var camelCasePropsToDashCase = function camelCasePropsToDashCase(prefixedStyle) {
  // Since prefix is expected to work on inline style objects, we must
  // translate the keys to dash case for rendering to CSS.
  return Object.keys(prefixedStyle).reduce(function (result, key) {
    var dashCaseKey = _camelCaseToDashCase(key);

    // Fix IE vendor prefix
    if (/^ms-/.test(dashCaseKey)) {
      dashCaseKey = '-' + dashCaseKey;
    }

    result[dashCaseKey] = prefixedStyle[key];
    return result;
  }, {});
};

exports.default = camelCasePropsToDashCase;
module.exports = exports['default'];/* WEBPACK VAR INJECTION */(function(global) {

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /**
                                                                                                                                                                                                                                                                               * Based on https://github.com/jsstyles/css-vendor, but without having to
                                                                                                                                                                                                                                                                               * convert between different cases all the time.
                                                                                                                                                                                                                                                                               *
                                                                                                                                                                                                                                                                               * 
                                                                                                                                                                                                                                                                               */

exports.getPrefixedKeyframes = getPrefixedKeyframes;
exports.getPrefixedStyle = getPrefixedStyle;

var _inlineStylePrefixer = __webpack_require__(1020);

var _inlineStylePrefixer2 = _interopRequireDefault(_inlineStylePrefixer);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function transformValues(style) {
  return Object.keys(style).reduce(function (newStyle, key) {
    var value = style[key];
    if (Array.isArray(value)) {
      value = value.join(';' + key + ':');
    } else if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && typeof value.toString === 'function') {
      value = value.toString();
    }

    newStyle[key] = value;
    return newStyle;
  }, {});
}

var _hasWarnedAboutUserAgent = false;
var _lastUserAgent = void 0;
var _cachedPrefixer = void 0;

function getPrefixer(userAgent) {
  var actualUserAgent = userAgent || global && global.navigator && global.navigator.userAgent;

  if (false) {}

  if (!_cachedPrefixer || actualUserAgent !== _lastUserAgent) {
    if (actualUserAgent === 'all') {
      _cachedPrefixer = {
        prefix: _inlineStylePrefixer2.default.prefixAll,
        prefixedKeyframes: 'keyframes'
      };
    } else {
      _cachedPrefixer = new _inlineStylePrefixer2.default({ userAgent: actualUserAgent });
    }
    _lastUserAgent = actualUserAgent;
  }
  return _cachedPrefixer;
}

function getPrefixedKeyframes(userAgent) {
  return getPrefixer(userAgent).prefixedKeyframes;
}

// Returns a new style object with vendor prefixes added to property names
// and values.
function getPrefixedStyle(style, userAgent) {
  var styleWithFallbacks = transformValues(style);
  var prefixer = getPrefixer(userAgent);
  var prefixedStyle = prefixer.prefix(styleWithFallbacks);
  return prefixedStyle;
}
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(108)))

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
// special flexbox specifications


var _prefixAll2 = __webpack_require__(1021);

var _prefixAll3 = _interopRequireDefault(_prefixAll2);

var _getBrowserInformation = __webpack_require__(1032);

var _getBrowserInformation2 = _interopRequireDefault(_getBrowserInformation);

var _getPrefixedKeyframes = __webpack_require__(1035);

var _getPrefixedKeyframes2 = _interopRequireDefault(_getPrefixedKeyframes);

var _capitalizeString = __webpack_require__(499);

var _capitalizeString2 = _interopRequireDefault(_capitalizeString);

var _sortPrefixedStyle = __webpack_require__(631);

var _sortPrefixedStyle2 = _interopRequireDefault(_sortPrefixedStyle);

var _prefixProps = __webpack_require__(1036);

var _prefixProps2 = _interopRequireDefault(_prefixProps);

var _position = __webpack_require__(1037);

var _position2 = _interopRequireDefault(_position);

var _calc = __webpack_require__(1038);

var _calc2 = _interopRequireDefault(_calc);

var _zoomCursor = __webpack_require__(1039);

var _zoomCursor2 = _interopRequireDefault(_zoomCursor);

var _grabCursor = __webpack_require__(1040);

var _grabCursor2 = _interopRequireDefault(_grabCursor);

var _flex = __webpack_require__(1041);

var _flex2 = _interopRequireDefault(_flex);

var _sizing = __webpack_require__(1042);

var _sizing2 = _interopRequireDefault(_sizing);

var _gradient = __webpack_require__(1043);

var _gradient2 = _interopRequireDefault(_gradient);

var _transition = __webpack_require__(1044);

var _transition2 = _interopRequireDefault(_transition);

var _flexboxIE = __webpack_require__(1046);

var _flexboxIE2 = _interopRequireDefault(_flexboxIE);

var _flexboxOld = __webpack_require__(1047);

var _flexboxOld2 = _interopRequireDefault(_flexboxOld);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

var plugins = [_position2.default, _calc2.default, _zoomCursor2.default, _grabCursor2.default, _sizing2.default, _gradient2.default, _transition2.default, _flexboxIE2.default, _flexboxOld2.default,
// this must be run AFTER the flexbox specs
_flex2.default];

var Prefixer = function () {
  /**
   * Instantiante a new prefixer
   * @param {string} userAgent - userAgent to gather prefix information according to caniuse.com
   * @param {string} keepUnprefixed - keeps unprefixed properties and values
   */

  function Prefixer() {
    var _this = this;

    var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];

    _classCallCheck(this, Prefixer);

    var defaultUserAgent = typeof navigator !== 'undefined' ? navigator.userAgent : undefined;

    this._userAgent = options.userAgent || defaultUserAgent;
    this._keepUnprefixed = options.keepUnprefixed || false;

    this._browserInfo = (0, _getBrowserInformation2.default)(this._userAgent);

    // Checks if the userAgent was resolved correctly
    if (this._browserInfo && this._browserInfo.prefix) {
      // set additional prefix information
      this.cssPrefix = this._browserInfo.prefix.css;
      this.jsPrefix = this._browserInfo.prefix.inline;
      this.prefixedKeyframes = (0, _getPrefixedKeyframes2.default)(this._browserInfo);
    } else {
      this._usePrefixAllFallback = true;
      return false;
    }

    var data = this._browserInfo.browser && _prefixProps2.default[this._browserInfo.browser];
    if (data) {
      this._requiresPrefix = Object.keys(data).filter(function (key) {
        return data[key] >= _this._browserInfo.version;
      }).reduce(function (result, name) {
        result[name] = true;
        return result;
      }, {});
      this._hasPropsRequiringPrefix = Object.keys(this._requiresPrefix).length > 0;
    } else {
      this._usePrefixAllFallback = true;
    }
  }

  /**
   * Returns a prefixed version of the style object
   * @param {Object} styles - Style object that gets prefixed properties added
   * @returns {Object} - Style object with prefixed properties and values
   */


  _createClass(Prefixer, [{
    key: 'prefix',
    value: function prefix(styles) {
      var _this2 = this;

      // use prefixAll as fallback if userAgent can not be resolved
      if (this._usePrefixAllFallback) {
        return (0, _prefixAll3.default)(styles);
      }

      // only add prefixes if needed
      if (!this._hasPropsRequiringPrefix) {
        return styles;
      }

      Object.keys(styles).forEach(function (property) {
        var value = styles[property];
        if (value instanceof Object && !Array.isArray(value)) {
          // recurse through nested style objects
          styles[property] = _this2.prefix(value);
        } else {
          // add prefixes if needed
          if (_this2._requiresPrefix[property]) {
            styles[_this2.jsPrefix + (0, _capitalizeString2.default)(property)] = value;
            if (!_this2._keepUnprefixed) {
              delete styles[property];
            }
          }
        }
      });

      Object.keys(styles).forEach(function (property) {
        [].concat(styles[property]).forEach(function (value) {
          // resolve plugins
          plugins.forEach(function (plugin) {
            // generates a new plugin interface with current data
            assignStyles(styles, plugin({
              property: property,
              value: value,
              styles: styles,
              browserInfo: _this2._browserInfo,
              prefix: {
                js: _this2.jsPrefix,
                css: _this2.cssPrefix,
                keyframes: _this2.prefixedKeyframes
              },
              keepUnprefixed: _this2._keepUnprefixed,
              requiresPrefix: _this2._requiresPrefix
            }), value, _this2._keepUnprefixed);
          });
        });
      });

      return (0, _sortPrefixedStyle2.default)(styles);
    }

    /**
     * Returns a prefixed version of the style object using all vendor prefixes
     * @param {Object} styles - Style object that gets prefixed properties added
     * @returns {Object} - Style object with prefixed properties and values
     */

  }], [{
    key: 'prefixAll',
    value: function prefixAll(styles) {
      return (0, _prefixAll3.default)(styles);
    }
  }]);

  return Prefixer;
}();

exports.default = Prefixer;


function assignStyles(base) {
  var extend = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
  var value = arguments[2];
  var keepUnprefixed = arguments[3];

  Object.keys(extend).forEach(function (property) {
    var baseValue = base[property];
    if (Array.isArray(baseValue)) {
      [].concat(extend[property]).forEach(function (val) {
        if (base[property].indexOf(val) === -1) {
          base[property].splice(baseValue.indexOf(value), keepUnprefixed ? 0 : 1, val);
        }
      });
    } else {
      base[property] = extend[property];
    }
  });
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = prefixAll;

var _prefixProps = __webpack_require__(630);

var _prefixProps2 = _interopRequireDefault(_prefixProps);

var _capitalizeString = __webpack_require__(499);

var _capitalizeString2 = _interopRequireDefault(_capitalizeString);

var _sortPrefixedStyle = __webpack_require__(631);

var _sortPrefixedStyle2 = _interopRequireDefault(_sortPrefixedStyle);

var _position = __webpack_require__(1023);

var _position2 = _interopRequireDefault(_position);

var _calc = __webpack_require__(1024);

var _calc2 = _interopRequireDefault(_calc);

var _cursor = __webpack_require__(1025);

var _cursor2 = _interopRequireDefault(_cursor);

var _flex = __webpack_require__(1026);

var _flex2 = _interopRequireDefault(_flex);

var _sizing = __webpack_require__(1027);

var _sizing2 = _interopRequireDefault(_sizing);

var _gradient = __webpack_require__(1028);

var _gradient2 = _interopRequireDefault(_gradient);

var _transition = __webpack_require__(1029);

var _transition2 = _interopRequireDefault(_transition);

var _flexboxIE = __webpack_require__(1030);

var _flexboxIE2 = _interopRequireDefault(_flexboxIE);

var _flexboxOld = __webpack_require__(1031);

var _flexboxOld2 = _interopRequireDefault(_flexboxOld);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

// special flexbox specifications


var plugins = [_position2.default, _calc2.default, _cursor2.default, _sizing2.default, _gradient2.default, _transition2.default, _flexboxIE2.default, _flexboxOld2.default, _flex2.default];

/**
 * Returns a prefixed version of the style object using all vendor prefixes
 * @param {Object} styles - Style object that gets prefixed properties added
 * @returns {Object} - Style object with prefixed properties and values
 */
function prefixAll(styles) {
  Object.keys(styles).forEach(function (property) {
    var value = styles[property];
    if (value instanceof Object && !Array.isArray(value)) {
      // recurse through nested style objects
      styles[property] = prefixAll(value);
    } else {
      Object.keys(_prefixProps2.default).forEach(function (prefix) {
        var properties = _prefixProps2.default[prefix];
        // add prefixes if needed
        if (properties[property]) {
          styles[prefix + (0, _capitalizeString2.default)(property)] = value;
        }
      });
    }
  });

  Object.keys(styles).forEach(function (property) {
    [].concat(styles[property]).forEach(function (value, index) {
      // resolve every special plugins
      plugins.forEach(function (plugin) {
        return assignStyles(styles, plugin(property, value));
      });
    });
  });

  return (0, _sortPrefixedStyle2.default)(styles);
}

function assignStyles(base) {
  var extend = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];

  Object.keys(extend).forEach(function (property) {
    var baseValue = base[property];
    if (Array.isArray(baseValue)) {
      [].concat(extend[property]).forEach(function (value) {
        var valueIndex = baseValue.indexOf(value);
        if (valueIndex > -1) {
          base[property].splice(valueIndex, 1);
        }
        base[property].push(value);
      });
    } else {
      base[property] = extend[property];
    }
  });
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = { "Webkit": { "transform": true, "transformOrigin": true, "transformOriginX": true, "transformOriginY": true, "backfaceVisibility": true, "perspective": true, "perspectiveOrigin": true, "transformStyle": true, "transformOriginZ": true, "animation": true, "animationDelay": true, "animationDirection": true, "animationFillMode": true, "animationDuration": true, "animationIterationCount": true, "animationName": true, "animationPlayState": true, "animationTimingFunction": true, "appearance": true, "userSelect": true, "fontKerning": true, "textEmphasisPosition": true, "textEmphasis": true, "textEmphasisStyle": true, "textEmphasisColor": true, "boxDecorationBreak": true, "clipPath": true, "maskImage": true, "maskMode": true, "maskRepeat": true, "maskPosition": true, "maskClip": true, "maskOrigin": true, "maskSize": true, "maskComposite": true, "mask": true, "maskBorderSource": true, "maskBorderMode": true, "maskBorderSlice": true, "maskBorderWidth": true, "maskBorderOutset": true, "maskBorderRepeat": true, "maskBorder": true, "maskType": true, "textDecorationStyle": true, "textDecorationSkip": true, "textDecorationLine": true, "textDecorationColor": true, "filter": true, "fontFeatureSettings": true, "breakAfter": true, "breakBefore": true, "breakInside": true, "columnCount": true, "columnFill": true, "columnGap": true, "columnRule": true, "columnRuleColor": true, "columnRuleStyle": true, "columnRuleWidth": true, "columns": true, "columnSpan": true, "columnWidth": true, "flex": true, "flexBasis": true, "flexDirection": true, "flexGrow": true, "flexFlow": true, "flexShrink": true, "flexWrap": true, "alignContent": true, "alignItems": true, "alignSelf": true, "justifyContent": true, "order": true, "transition": true, "transitionDelay": true, "transitionDuration": true, "transitionProperty": true, "transitionTimingFunction": true, "backdropFilter": true, "scrollSnapType": true, "scrollSnapPointsX": true, "scrollSnapPointsY": true, "scrollSnapDestination": true, "scrollSnapCoordinate": true, "shapeImageThreshold": true, "shapeImageMargin": true, "shapeImageOutside": true, "hyphens": true, "flowInto": true, "flowFrom": true, "regionFragment": true, "textSizeAdjust": true }, "Moz": { "appearance": true, "userSelect": true, "boxSizing": true, "textAlignLast": true, "textDecorationStyle": true, "textDecorationSkip": true, "textDecorationLine": true, "textDecorationColor": true, "tabSize": true, "hyphens": true, "fontFeatureSettings": true, "breakAfter": true, "breakBefore": true, "breakInside": true, "columnCount": true, "columnFill": true, "columnGap": true, "columnRule": true, "columnRuleColor": true, "columnRuleStyle": true, "columnRuleWidth": true, "columns": true, "columnSpan": true, "columnWidth": true }, "ms": { "flex": true, "flexBasis": false, "flexDirection": true, "flexGrow": false, "flexFlow": true, "flexShrink": false, "flexWrap": true, "alignContent": false, "alignItems": false, "alignSelf": false, "justifyContent": false, "order": false, "transform": true, "transformOrigin": true, "transformOriginX": true, "transformOriginY": true, "userSelect": true, "wrapFlow": true, "wrapThrough": true, "wrapMargin": true, "scrollSnapType": true, "scrollSnapPointsX": true, "scrollSnapPointsY": true, "scrollSnapDestination": true, "scrollSnapCoordinate": true, "touchAction": true, "hyphens": true, "flowInto": true, "flowFrom": true, "breakBefore": true, "breakAfter": true, "breakInside": true, "regionFragment": true, "gridTemplateColumns": true, "gridTemplateRows": true, "gridTemplateAreas": true, "gridTemplate": true, "gridAutoColumns": true, "gridAutoRows": true, "gridAutoFlow": true, "grid": true, "gridRowStart": true, "gridColumnStart": true, "gridRowEnd": true, "gridRow": true, "gridColumn": true, "gridColumnEnd": true, "gridColumnGap": true, "gridRowGap": true, "gridArea": true, "gridGap": true, "textSizeAdjust": true } };
module.exports = exports["default"];

Object.defineProperty(exports, "__esModule", {
  value: true
});
// helper to capitalize strings

exports.default = function (str) {
  return str.charAt(0).toUpperCase() + str.slice(1);
};

module.exports = exports["default"];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = sortPrefixedStyle;

var _isPrefixedProperty = __webpack_require__(1022);

var _isPrefixedProperty2 = _interopRequireDefault(_isPrefixedProperty);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function sortPrefixedStyle(style) {
  return Object.keys(style).sort(function (left, right) {
    if ((0, _isPrefixedProperty2.default)(left) && !(0, _isPrefixedProperty2.default)(right)) {
      return -1;
    } else if (!(0, _isPrefixedProperty2.default)(left) && (0, _isPrefixedProperty2.default)(right)) {
      return 1;
    }
    return 0;
  }).reduce(function (sortedStyle, prop) {
    sortedStyle[prop] = style[prop];
    return sortedStyle;
  }, {});
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

exports.default = function (property) {
  return property.match(/^(Webkit|Moz|O|ms)/) !== null;
};

module.exports = exports["default"];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = position;
function position(property, value) {
  if (property === 'position' && value === 'sticky') {
    return { position: ['-webkit-sticky', 'sticky'] };
  }
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = calc;

var _joinPrefixedValue = __webpack_require__(404);

var _joinPrefixedValue2 = _interopRequireDefault(_joinPrefixedValue);

var _isPrefixedValue = __webpack_require__(500);

var _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function calc(property, value) {
  if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('calc(') > -1) {
    return (0, _joinPrefixedValue2.default)(property, value, function (prefix, value) {
      return value.replace(/calc\(/g, prefix + 'calc(');
    });
  }
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

function _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; }

// returns a style object with a single concated prefixed value string

exports.default = function (property, value) {
  var replacer = arguments.length <= 2 || arguments[2] === undefined ? function (prefix, value) {
    return prefix + value;
  } : arguments[2];
  return _defineProperty({}, property, ['-webkit-', '-moz-', ''].map(function (prefix) {
    return replacer(prefix, value);
  }));
};

module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

exports.default = function (value) {
  if (Array.isArray(value)) value = value.join(',');

  return value.match(/-webkit-|-moz-|-ms-/) !== null;
};

module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = cursor;

var _joinPrefixedValue = __webpack_require__(404);

var _joinPrefixedValue2 = _interopRequireDefault(_joinPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var values = {
  'zoom-in': true,
  'zoom-out': true,
  grab: true,
  grabbing: true
};

function cursor(property, value) {
  if (property === 'cursor' && values[value]) {
    return (0, _joinPrefixedValue2.default)(property, value);
  }
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = flex;
var values = { flex: true, 'inline-flex': true };

function flex(property, value) {
  if (property === 'display' && values[value]) {
    return {
      display: ['-webkit-box', '-moz-box', '-ms-' + value + 'box', '-webkit-' + value, value]
    };
  }
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = sizing;

var _joinPrefixedValue = __webpack_require__(404);

var _joinPrefixedValue2 = _interopRequireDefault(_joinPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var properties = {
  maxHeight: true,
  maxWidth: true,
  width: true,
  height: true,
  columnWidth: true,
  minWidth: true,
  minHeight: true
};
var values = {
  'min-content': true,
  'max-content': true,
  'fill-available': true,
  'fit-content': true,
  'contain-floats': true
};

function sizing(property, value) {
  if (properties[property] && values[value]) {
    return (0, _joinPrefixedValue2.default)(property, value);
  }
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = gradient;

var _joinPrefixedValue = __webpack_require__(404);

var _joinPrefixedValue2 = _interopRequireDefault(_joinPrefixedValue);

var _isPrefixedValue = __webpack_require__(500);

var _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/;

function gradient(property, value) {
  if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.match(values) !== null) {
    return (0, _joinPrefixedValue2.default)(property, value);
  }
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = transition;

var _hyphenateStyleName = __webpack_require__(632);

var _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);

var _capitalizeString = __webpack_require__(499);

var _capitalizeString2 = _interopRequireDefault(_capitalizeString);

var _isPrefixedValue = __webpack_require__(500);

var _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);

var _prefixProps = __webpack_require__(630);

var _prefixProps2 = _interopRequireDefault(_prefixProps);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _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; }

var properties = {
  transition: true,
  transitionProperty: true,
  WebkitTransition: true,
  WebkitTransitionProperty: true
};

function transition(property, value) {
  // also check for already prefixed transitions
  if (typeof value === 'string' && properties[property]) {
    var _ref2;

    var outputValue = prefixValue(value);
    var webkitOutput = outputValue.split(/,(?![^()]*(?:\([^()]*\))?\))/g).filter(function (value) {
      return value.match(/-moz-|-ms-/) === null;
    }).join(',');

    // if the property is already prefixed
    if (property.indexOf('Webkit') > -1) {
      return _defineProperty({}, property, webkitOutput);
    }

    return _ref2 = {}, _defineProperty(_ref2, 'Webkit' + (0, _capitalizeString2.default)(property), webkitOutput), _defineProperty(_ref2, property, outputValue), _ref2;
  }
}

function prefixValue(value) {
  if ((0, _isPrefixedValue2.default)(value)) {
    return value;
  }

  // only split multi values, not cubic beziers
  var multipleValues = value.split(/,(?![^()]*(?:\([^()]*\))?\))/g);

  // iterate each single value and check for transitioned properties
  // that need to be prefixed as well
  multipleValues.forEach(function (val, index) {
    multipleValues[index] = Object.keys(_prefixProps2.default).reduce(function (out, prefix) {
      var dashCasePrefix = '-' + prefix.toLowerCase() + '-';

      Object.keys(_prefixProps2.default[prefix]).forEach(function (prop) {
        var dashCaseProperty = (0, _hyphenateStyleName2.default)(prop);

        if (val.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== 'order') {
          // join all prefixes and create a new value
          out = val.replace(dashCaseProperty, dashCasePrefix + dashCaseProperty) + ',' + out;
        }
      });
      return out;
    }, val);
  });

  return multipleValues.join(',');
}
module.exports = exports['default'];

var uppercasePattern = /[A-Z]/g;
var msPattern = /^ms-/;
var cache = {};

function hyphenateStyleName(string) {
    return string in cache
    ? cache[string]
    : cache[string] = string
      .replace(uppercasePattern, '-$&')
      .toLowerCase()
      .replace(msPattern, '-ms-');
}

module.exports = hyphenateStyleName;


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = flexboxIE;

function _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; }

var alternativeValues = {
  'space-around': 'distribute',
  'space-between': 'justify',
  'flex-start': 'start',
  'flex-end': 'end'
};
var alternativeProps = {
  alignContent: 'msFlexLinePack',
  alignSelf: 'msFlexItemAlign',
  alignItems: 'msFlexAlign',
  justifyContent: 'msFlexPack',
  order: 'msFlexOrder',
  flexGrow: 'msFlexPositive',
  flexShrink: 'msFlexNegative',
  flexBasis: 'msPreferredSize'
};

function flexboxIE(property, value) {
  if (alternativeProps[property]) {
    return _defineProperty({}, alternativeProps[property], alternativeValues[value] || value);
  }
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = flexboxOld;

function _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; }

var alternativeValues = {
  'space-around': 'justify',
  'space-between': 'justify',
  'flex-start': 'start',
  'flex-end': 'end',
  'wrap-reverse': 'multiple',
  wrap: 'multiple'
};

var alternativeProps = {
  alignItems: 'WebkitBoxAlign',
  justifyContent: 'WebkitBoxPack',
  flexWrap: 'WebkitBoxLines'
};

function flexboxOld(property, value) {
  if (property === 'flexDirection' && typeof value === 'string') {
    return {
      WebkitBoxOrient: value.indexOf('column') > -1 ? 'vertical' : 'horizontal',
      WebkitBoxDirection: value.indexOf('reverse') > -1 ? 'reverse' : 'normal'
    };
  }
  if (alternativeProps[property]) {
    return _defineProperty({}, alternativeProps[property], alternativeValues[value] || value);
  }
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _bowser = __webpack_require__(1033);

var _bowser2 = _interopRequireDefault(_bowser);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var vendorPrefixes = {
  Webkit: ['chrome', 'safari', 'ios', 'android', 'phantom', 'opera', 'webos', 'blackberry', 'bada', 'tizen', 'chromium', 'vivaldi'],
  Moz: ['firefox', 'seamonkey', 'sailfish'],
  ms: ['msie', 'msedge']
};
var browsers = {
  chrome: [['chrome'], ['chromium']],
  safari: [['safari']],
  firefox: [['firefox']],
  edge: [['msedge']],
  opera: [['opera'], ['vivaldi']],
  ios_saf: [['ios', 'mobile'], ['ios', 'tablet']],
  ie: [['msie']],
  op_mini: [['opera', 'mobile'], ['opera', 'tablet']],
  and_uc: [['android', 'mobile'], ['android', 'tablet']],
  android: [['android', 'mobile'], ['android', 'tablet']]
};

var browserByInfo = function browserByInfo(info) {
  if (info.firefox) {
    return 'firefox';
  }
  var name = '';

  Object.keys(browsers).forEach(function (browser) {
    browsers[browser].forEach(function (condition) {
      var match = 0;
      condition.forEach(function (single) {
        if (info[single]) {
          match += 1;
        }
      });
      if (condition.length === match) {
        name = browser;
      }
    });
  });

  return name;
};

/**
 * Uses bowser to get default browser information such as version and name
 * Evaluates bowser info and adds vendorPrefix information
 * @param {string} userAgent - userAgent that gets evaluated
 */

exports.default = function (userAgent) {
  if (!userAgent) {
    return false;
  }
  var info = _bowser2.default._detect(userAgent);

  Object.keys(vendorPrefixes).forEach(function (prefix) {
    vendorPrefixes[prefix].forEach(function (browser) {
      if (info[browser]) {
        info.prefix = {
          inline: prefix,
          css: '-' + prefix.toLowerCase() + '-'
        };
      }
    });
  });

  info.browser = browserByInfo(info);

  // For cordova IOS 8 the version is missing, set truncated osversion to prevent NaN
  info.version = info.version ? parseFloat(info.version) : parseInt(parseFloat(info.osversion), 10);
  info.osversion = parseFloat(info.osversion);

  // iOS forces all browsers to use Safari under the hood
  // as the Safari version seems to match the iOS version
  // we just explicitely use the osversion instead
  // https://github.com/rofrischmann/inline-style-prefixer/issues/72
  if (info.browser === 'ios_saf' && info.version > info.osversion) {
    info.version = info.osversion;
    info.safari = true;
  }

  // seperate native android chrome
  // https://github.com/rofrischmann/inline-style-prefixer/issues/45
  if (info.browser === 'android' && info.chrome && info.version > 37) {
    info.browser = 'and_chr';
  }

  // For android < 4.4 we want to check the osversion
  // not the chrome version, see issue #26
  // https://github.com/rofrischmann/inline-style-prefixer/issues/26
  if (info.browser === 'android' && info.osversion < 5) {
    info.version = info.osversion;
  }

  return info;
};

module.exports = exports['default'];/*!
 * Bowser - a browser detector
 * https://github.com/ded/bowser
 * MIT License | (c) Dustin Diaz 2015
 */

!function (root, name, definition) {
  if ( true && module.exports) module.exports = definition()
  else if (true) __webpack_require__(1034)(name, definition)
  else {}
}(this, 'bowser', function () {
  /**
    * See useragents.js for examples of navigator.userAgent
    */

  var t = true

  function detect(ua) {

    function getFirstMatch(regex) {
      var match = ua.match(regex);
      return (match && match.length > 1 && match[1]) || '';
    }

    function getSecondMatch(regex) {
      var match = ua.match(regex);
      return (match && match.length > 1 && match[2]) || '';
    }

    var iosdevice = getFirstMatch(/(ipod|iphone|ipad)/i).toLowerCase()
      , likeAndroid = /like android/i.test(ua)
      , android = !likeAndroid && /android/i.test(ua)
      , nexusMobile = /nexus\s*[0-6]\s*/i.test(ua)
      , nexusTablet = !nexusMobile && /nexus\s*[0-9]+/i.test(ua)
      , chromeos = /CrOS/.test(ua)
      , silk = /silk/i.test(ua)
      , sailfish = /sailfish/i.test(ua)
      , tizen = /tizen/i.test(ua)
      , webos = /(web|hpw)(o|0)s/i.test(ua)
      , windowsphone = /windows phone/i.test(ua)
      , samsungBrowser = /SamsungBrowser/i.test(ua)
      , windows = !windowsphone && /windows/i.test(ua)
      , mac = !iosdevice && !silk && /macintosh/i.test(ua)
      , linux = !android && !sailfish && !tizen && !webos && /linux/i.test(ua)
      , edgeVersion = getSecondMatch(/edg([ea]|ios)\/(\d+(\.\d+)?)/i)
      , versionIdentifier = getFirstMatch(/version\/(\d+(\.\d+)?)/i)
      , tablet = /tablet/i.test(ua) && !/tablet pc/i.test(ua)
      , mobile = !tablet && /[^-]mobi/i.test(ua)
      , xbox = /xbox/i.test(ua)
      , result

    if (/opera/i.test(ua)) {
      //  an old Opera
      result = {
        name: 'Opera'
      , opera: t
      , version: versionIdentifier || getFirstMatch(/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i)
      }
    } else if (/opr\/|opios/i.test(ua)) {
      // a new Opera
      result = {
        name: 'Opera'
        , opera: t
        , version: getFirstMatch(/(?:opr|opios)[\s\/](\d+(\.\d+)?)/i) || versionIdentifier
      }
    }
    else if (/SamsungBrowser/i.test(ua)) {
      result = {
        name: 'Samsung Internet for Android'
        , samsungBrowser: t
        , version: versionIdentifier || getFirstMatch(/(?:SamsungBrowser)[\s\/](\d+(\.\d+)?)/i)
      }
    }
    else if (/Whale/i.test(ua)) {
      result = {
        name: 'NAVER Whale browser'
        , whale: t
        , version: getFirstMatch(/(?:whale)[\s\/](\d+(?:\.\d+)+)/i)
      }
    }
    else if (/MZBrowser/i.test(ua)) {
      result = {
        name: 'MZ Browser'
        , mzbrowser: t
        , version: getFirstMatch(/(?:MZBrowser)[\s\/](\d+(?:\.\d+)+)/i)
      }
    }
    else if (/coast/i.test(ua)) {
      result = {
        name: 'Opera Coast'
        , coast: t
        , version: versionIdentifier || getFirstMatch(/(?:coast)[\s\/](\d+(\.\d+)?)/i)
      }
    }
    else if (/focus/i.test(ua)) {
      result = {
        name: 'Focus'
        , focus: t
        , version: getFirstMatch(/(?:focus)[\s\/](\d+(?:\.\d+)+)/i)
      }
    }
    else if (/yabrowser/i.test(ua)) {
      result = {
        name: 'Yandex Browser'
      , yandexbrowser: t
      , version: versionIdentifier || getFirstMatch(/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i)
      }
    }
    else if (/ucbrowser/i.test(ua)) {
      result = {
          name: 'UC Browser'
        , ucbrowser: t
        , version: getFirstMatch(/(?:ucbrowser)[\s\/](\d+(?:\.\d+)+)/i)
      }
    }
    else if (/mxios/i.test(ua)) {
      result = {
        name: 'Maxthon'
        , maxthon: t
        , version: getFirstMatch(/(?:mxios)[\s\/](\d+(?:\.\d+)+)/i)
      }
    }
    else if (/epiphany/i.test(ua)) {
      result = {
        name: 'Epiphany'
        , epiphany: t
        , version: getFirstMatch(/(?:epiphany)[\s\/](\d+(?:\.\d+)+)/i)
      }
    }
    else if (/puffin/i.test(ua)) {
      result = {
        name: 'Puffin'
        , puffin: t
        , version: getFirstMatch(/(?:puffin)[\s\/](\d+(?:\.\d+)?)/i)
      }
    }
    else if (/sleipnir/i.test(ua)) {
      result = {
        name: 'Sleipnir'
        , sleipnir: t
        , version: getFirstMatch(/(?:sleipnir)[\s\/](\d+(?:\.\d+)+)/i)
      }
    }
    else if (/k-meleon/i.test(ua)) {
      result = {
        name: 'K-Meleon'
        , kMeleon: t
        , version: getFirstMatch(/(?:k-meleon)[\s\/](\d+(?:\.\d+)+)/i)
      }
    }
    else if (windowsphone) {
      result = {
        name: 'Windows Phone'
      , osname: 'Windows Phone'
      , windowsphone: t
      }
      if (edgeVersion) {
        result.msedge = t
        result.version = edgeVersion
      }
      else {
        result.msie = t
        result.version = getFirstMatch(/iemobile\/(\d+(\.\d+)?)/i)
      }
    }
    else if (/msie|trident/i.test(ua)) {
      result = {
        name: 'Internet Explorer'
      , msie: t
      , version: getFirstMatch(/(?:msie |rv:)(\d+(\.\d+)?)/i)
      }
    } else if (chromeos) {
      result = {
        name: 'Chrome'
      , osname: 'Chrome OS'
      , chromeos: t
      , chromeBook: t
      , chrome: t
      , version: getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)
      }
    } else if (/edg([ea]|ios)/i.test(ua)) {
      result = {
        name: 'Microsoft Edge'
      , msedge: t
      , version: edgeVersion
      }
    }
    else if (/vivaldi/i.test(ua)) {
      result = {
        name: 'Vivaldi'
        , vivaldi: t
        , version: getFirstMatch(/vivaldi\/(\d+(\.\d+)?)/i) || versionIdentifier
      }
    }
    else if (sailfish) {
      result = {
        name: 'Sailfish'
      , osname: 'Sailfish OS'
      , sailfish: t
      , version: getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i)
      }
    }
    else if (/seamonkey\//i.test(ua)) {
      result = {
        name: 'SeaMonkey'
      , seamonkey: t
      , version: getFirstMatch(/seamonkey\/(\d+(\.\d+)?)/i)
      }
    }
    else if (/firefox|iceweasel|fxios/i.test(ua)) {
      result = {
        name: 'Firefox'
      , firefox: t
      , version: getFirstMatch(/(?:firefox|iceweasel|fxios)[ \/](\d+(\.\d+)?)/i)
      }
      if (/\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(ua)) {
        result.firefoxos = t
        result.osname = 'Firefox OS'
      }
    }
    else if (silk) {
      result =  {
        name: 'Amazon Silk'
      , silk: t
      , version : getFirstMatch(/silk\/(\d+(\.\d+)?)/i)
      }
    }
    else if (/phantom/i.test(ua)) {
      result = {
        name: 'PhantomJS'
      , phantom: t
      , version: getFirstMatch(/phantomjs\/(\d+(\.\d+)?)/i)
      }
    }
    else if (/slimerjs/i.test(ua)) {
      result = {
        name: 'SlimerJS'
        , slimer: t
        , version: getFirstMatch(/slimerjs\/(\d+(\.\d+)?)/i)
      }
    }
    else if (/blackberry|\bbb\d+/i.test(ua) || /rim\stablet/i.test(ua)) {
      result = {
        name: 'BlackBerry'
      , osname: 'BlackBerry OS'
      , blackberry: t
      , version: versionIdentifier || getFirstMatch(/blackberry[\d]+\/(\d+(\.\d+)?)/i)
      }
    }
    else if (webos) {
      result = {
        name: 'WebOS'
      , osname: 'WebOS'
      , webos: t
      , version: versionIdentifier || getFirstMatch(/w(?:eb)?osbrowser\/(\d+(\.\d+)?)/i)
      };
      /touchpad\//i.test(ua) && (result.touchpad = t)
    }
    else if (/bada/i.test(ua)) {
      result = {
        name: 'Bada'
      , osname: 'Bada'
      , bada: t
      , version: getFirstMatch(/dolfin\/(\d+(\.\d+)?)/i)
      };
    }
    else if (tizen) {
      result = {
        name: 'Tizen'
      , osname: 'Tizen'
      , tizen: t
      , version: getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.\d+)?)/i) || versionIdentifier
      };
    }
    else if (/qupzilla/i.test(ua)) {
      result = {
        name: 'QupZilla'
        , qupzilla: t
        , version: getFirstMatch(/(?:qupzilla)[\s\/](\d+(?:\.\d+)+)/i) || versionIdentifier
      }
    }
    else if (/chromium/i.test(ua)) {
      result = {
        name: 'Chromium'
        , chromium: t
        , version: getFirstMatch(/(?:chromium)[\s\/](\d+(?:\.\d+)?)/i) || versionIdentifier
      }
    }
    else if (/chrome|crios|crmo/i.test(ua)) {
      result = {
        name: 'Chrome'
        , chrome: t
        , version: getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)
      }
    }
    else if (android) {
      result = {
        name: 'Android'
        , version: versionIdentifier
      }
    }
    else if (/safari|applewebkit/i.test(ua)) {
      result = {
        name: 'Safari'
      , safari: t
      }
      if (versionIdentifier) {
        result.version = versionIdentifier
      }
    }
    else if (iosdevice) {
      result = {
        name : iosdevice == 'iphone' ? 'iPhone' : iosdevice == 'ipad' ? 'iPad' : 'iPod'
      }
      // WTF: version is not part of user agent in web apps
      if (versionIdentifier) {
        result.version = versionIdentifier
      }
    }
    else if(/googlebot/i.test(ua)) {
      result = {
        name: 'Googlebot'
      , googlebot: t
      , version: getFirstMatch(/googlebot\/(\d+(\.\d+))/i) || versionIdentifier
      }
    }
    else {
      result = {
        name: getFirstMatch(/^(.*)\/(.*) /),
        version: getSecondMatch(/^(.*)\/(.*) /)
     };
   }

    // set webkit or gecko flag for browsers based on these engines
    if (!result.msedge && /(apple)?webkit/i.test(ua)) {
      if (/(apple)?webkit\/537\.36/i.test(ua)) {
        result.name = result.name || "Blink"
        result.blink = t
      } else {
        result.name = result.name || "Webkit"
        result.webkit = t
      }
      if (!result.version && versionIdentifier) {
        result.version = versionIdentifier
      }
    } else if (!result.opera && /gecko\//i.test(ua)) {
      result.name = result.name || "Gecko"
      result.gecko = t
      result.version = result.version || getFirstMatch(/gecko\/(\d+(\.\d+)?)/i)
    }

    // set OS flags for platforms that have multiple browsers
    if (!result.windowsphone && (android || result.silk)) {
      result.android = t
      result.osname = 'Android'
    } else if (!result.windowsphone && iosdevice) {
      result[iosdevice] = t
      result.ios = t
      result.osname = 'iOS'
    } else if (mac) {
      result.mac = t
      result.osname = 'macOS'
    } else if (xbox) {
      result.xbox = t
      result.osname = 'Xbox'
    } else if (windows) {
      result.windows = t
      result.osname = 'Windows'
    } else if (linux) {
      result.linux = t
      result.osname = 'Linux'
    }

    function getWindowsVersion (s) {
      switch (s) {
        case 'NT': return 'NT'
        case 'XP': return 'XP'
        case 'NT 5.0': return '2000'
        case 'NT 5.1': return 'XP'
        case 'NT 5.2': return '2003'
        case 'NT 6.0': return 'Vista'
        case 'NT 6.1': return '7'
        case 'NT 6.2': return '8'
        case 'NT 6.3': return '8.1'
        case 'NT 10.0': return '10'
        default: return undefined
      }
    }

    // OS version extraction
    var osVersion = '';
    if (result.windows) {
      osVersion = getWindowsVersion(getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i))
    } else if (result.windowsphone) {
      osVersion = getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i);
    } else if (result.mac) {
      osVersion = getFirstMatch(/Mac OS X (\d+([_\.\s]\d+)*)/i);
      osVersion = osVersion.replace(/[_\s]/g, '.');
    } else if (iosdevice) {
      osVersion = getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i);
      osVersion = osVersion.replace(/[_\s]/g, '.');
    } else if (android) {
      osVersion = getFirstMatch(/android[ \/-](\d+(\.\d+)*)/i);
    } else if (result.webos) {
      osVersion = getFirstMatch(/(?:web|hpw)os\/(\d+(\.\d+)*)/i);
    } else if (result.blackberry) {
      osVersion = getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i);
    } else if (result.bada) {
      osVersion = getFirstMatch(/bada\/(\d+(\.\d+)*)/i);
    } else if (result.tizen) {
      osVersion = getFirstMatch(/tizen[\/\s](\d+(\.\d+)*)/i);
    }
    if (osVersion) {
      result.osversion = osVersion;
    }

    // device type extraction
    var osMajorVersion = !result.windows && osVersion.split('.')[0];
    if (
         tablet
      || nexusTablet
      || iosdevice == 'ipad'
      || (android && (osMajorVersion == 3 || (osMajorVersion >= 4 && !mobile)))
      || result.silk
    ) {
      result.tablet = t
    } else if (
         mobile
      || iosdevice == 'iphone'
      || iosdevice == 'ipod'
      || android
      || nexusMobile
      || result.blackberry
      || result.webos
      || result.bada
    ) {
      result.mobile = t
    }

    // Graded Browser Support
    // http://developer.yahoo.com/yui/articles/gbs
    if (result.msedge ||
        (result.msie && result.version >= 10) ||
        (result.yandexbrowser && result.version >= 15) ||
		    (result.vivaldi && result.version >= 1.0) ||
        (result.chrome && result.version >= 20) ||
        (result.samsungBrowser && result.version >= 4) ||
        (result.whale && compareVersions([result.version, '1.0']) === 1) ||
        (result.mzbrowser && compareVersions([result.version, '6.0']) === 1) ||
        (result.focus && compareVersions([result.version, '1.0']) === 1) ||
        (result.firefox && result.version >= 20.0) ||
        (result.safari && result.version >= 6) ||
        (result.opera && result.version >= 10.0) ||
        (result.ios && result.osversion && result.osversion.split(".")[0] >= 6) ||
        (result.blackberry && result.version >= 10.1)
        || (result.chromium && result.version >= 20)
        ) {
      result.a = t;
    }
    else if ((result.msie && result.version < 10) ||
        (result.chrome && result.version < 20) ||
        (result.firefox && result.version < 20.0) ||
        (result.safari && result.version < 6) ||
        (result.opera && result.version < 10.0) ||
        (result.ios && result.osversion && result.osversion.split(".")[0] < 6)
        || (result.chromium && result.version < 20)
        ) {
      result.c = t
    } else result.x = t

    return result
  }

  var bowser = detect(typeof navigator !== 'undefined' ? navigator.userAgent || '' : '')

  bowser.test = function (browserList) {
    for (var i = 0; i < browserList.length; ++i) {
      var browserItem = browserList[i];
      if (typeof browserItem=== 'string') {
        if (browserItem in bowser) {
          return true;
        }
      }
    }
    return false;
  }

  /**
   * Get version precisions count
   *
   * @example
   *   getVersionPrecision("1.10.3") // 3
   *
   * @param  {string} version
   * @return {number}
   */
  function getVersionPrecision(version) {
    return version.split(".").length;
  }

  /**
   * Array::map polyfill
   *
   * @param  {Array} arr
   * @param  {Function} iterator
   * @return {Array}
   */
  function map(arr, iterator) {
    var result = [], i;
    if (Array.prototype.map) {
      return Array.prototype.map.call(arr, iterator);
    }
    for (i = 0; i < arr.length; i++) {
      result.push(iterator(arr[i]));
    }
    return result;
  }

  /**
   * Calculate browser version weight
   *
   * @example
   *   compareVersions(['1.10.2.1',  '1.8.2.1.90'])    // 1
   *   compareVersions(['1.010.2.1', '1.09.2.1.90']);  // 1
   *   compareVersions(['1.10.2.1',  '1.10.2.1']);     // 0
   *   compareVersions(['1.10.2.1',  '1.0800.2']);     // -1
   *
   * @param  {Array<String>} versions versions to compare
   * @return {Number} comparison result
   */
  function compareVersions(versions) {
    // 1) get common precision for both versions, for example for "10.0" and "9" it should be 2
    var precision = Math.max(getVersionPrecision(versions[0]), getVersionPrecision(versions[1]));
    var chunks = map(versions, function (version) {
      var delta = precision - getVersionPrecision(version);

      // 2) "9" -> "9.0" (for precision = 2)
      version = version + new Array(delta + 1).join(".0");

      // 3) "9.0" -> ["000000000"", "000000009"]
      return map(version.split("."), function (chunk) {
        return new Array(20 - chunk.length).join("0") + chunk;
      }).reverse();
    });

    // iterate in reverse order by reversed chunks array
    while (--precision >= 0) {
      // 4) compare: "000000009" > "000000010" = false (but "9" > "10" = true)
      if (chunks[0][precision] > chunks[1][precision]) {
        return 1;
      }
      else if (chunks[0][precision] === chunks[1][precision]) {
        if (precision === 0) {
          // all version chunks are same
          return 0;
        }
      }
      else {
        return -1;
      }
    }
  }

  /**
   * Check if browser is unsupported
   *
   * @example
   *   bowser.isUnsupportedBrowser({
   *     msie: "10",
   *     firefox: "23",
   *     chrome: "29",
   *     safari: "5.1",
   *     opera: "16",
   *     phantom: "534"
   *   });
   *
   * @param  {Object}  minVersions map of minimal version to browser
   * @param  {Boolean} [strictMode = false] flag to return false if browser wasn't found in map
   * @param  {String}  [ua] user agent string
   * @return {Boolean}
   */
  function isUnsupportedBrowser(minVersions, strictMode, ua) {
    var _bowser = bowser;

    // make strictMode param optional with ua param usage
    if (typeof strictMode === 'string') {
      ua = strictMode;
      strictMode = void(0);
    }

    if (strictMode === void(0)) {
      strictMode = false;
    }
    if (ua) {
      _bowser = detect(ua);
    }

    var version = "" + _bowser.version;
    for (var browser in minVersions) {
      if (minVersions.hasOwnProperty(browser)) {
        if (_bowser[browser]) {
          if (typeof minVersions[browser] !== 'string') {
            throw new Error('Browser version in the minVersion map should be a string: ' + browser + ': ' + String(minVersions));
          }

          // browser version and min supported version.
          return compareVersions([version, minVersions[browser]]) < 0;
        }
      }
    }

    return strictMode; // not found
  }

  /**
   * Check if browser is supported
   *
   * @param  {Object} minVersions map of minimal version to browser
   * @param  {Boolean} [strictMode = false] flag to return false if browser wasn't found in map
   * @param  {String}  [ua] user agent string
   * @return {Boolean}
   */
  function check(minVersions, strictMode, ua) {
    return !isUnsupportedBrowser(minVersions, strictMode, ua);
  }

  bowser.isUnsupportedBrowser = isUnsupportedBrowser;
  bowser.compareVersions = compareVersions;
  bowser.check = check;

  /*
   * Set our detect method to the main bowser object so we can
   * reuse it to test other user agents.
   * This is needed to implement future tests.
   */
  bowser._detect = detect;

  /*
   * Set our detect public method to the main bowser object
   * This is needed to implement bowser in server side
   */
  bowser.detect = detect;
  return bowser
});
module.exports = function() {
	throw new Error("define cannot be used indirect");
};


Object.defineProperty(exports, "__esModule", {
  value: true
});

exports.default = function (_ref) {
  var browser = _ref.browser;
  var version = _ref.version;
  var prefix = _ref.prefix;

  var prefixedKeyframes = 'keyframes';

  if (browser === 'chrome' && version < 43 || (browser === 'safari' || browser === 'ios_saf') && version < 9 || browser === 'opera' && version < 30 || browser === 'android' && version <= 4.4 || browser === 'and_uc') {
    prefixedKeyframes = prefix.css + prefixedKeyframes;
  }
  return prefixedKeyframes;
};

module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = { "chrome": { "transform": 35, "transformOrigin": 35, "transformOriginX": 35, "transformOriginY": 35, "backfaceVisibility": 35, "perspective": 35, "perspectiveOrigin": 35, "transformStyle": 35, "transformOriginZ": 35, "animation": 42, "animationDelay": 42, "animationDirection": 42, "animationFillMode": 42, "animationDuration": 42, "animationIterationCount": 42, "animationName": 42, "animationPlayState": 42, "animationTimingFunction": 42, "appearance": 55, "userSelect": 55, "fontKerning": 32, "textEmphasisPosition": 55, "textEmphasis": 55, "textEmphasisStyle": 55, "textEmphasisColor": 55, "boxDecorationBreak": 55, "clipPath": 55, "maskImage": 55, "maskMode": 55, "maskRepeat": 55, "maskPosition": 55, "maskClip": 55, "maskOrigin": 55, "maskSize": 55, "maskComposite": 55, "mask": 55, "maskBorderSource": 55, "maskBorderMode": 55, "maskBorderSlice": 55, "maskBorderWidth": 55, "maskBorderOutset": 55, "maskBorderRepeat": 55, "maskBorder": 55, "maskType": 55, "textDecorationStyle": 55, "textDecorationSkip": 55, "textDecorationLine": 55, "textDecorationColor": 55, "filter": 52, "fontFeatureSettings": 47, "breakAfter": 49, "breakBefore": 49, "breakInside": 49, "columnCount": 49, "columnFill": 49, "columnGap": 49, "columnRule": 49, "columnRuleColor": 49, "columnRuleStyle": 49, "columnRuleWidth": 49, "columns": 49, "columnSpan": 49, "columnWidth": 49 }, "safari": { "flex": 8, "flexBasis": 8, "flexDirection": 8, "flexGrow": 8, "flexFlow": 8, "flexShrink": 8, "flexWrap": 8, "alignContent": 8, "alignItems": 8, "alignSelf": 8, "justifyContent": 8, "order": 8, "transition": 6, "transitionDelay": 6, "transitionDuration": 6, "transitionProperty": 6, "transitionTimingFunction": 6, "transform": 8, "transformOrigin": 8, "transformOriginX": 8, "transformOriginY": 8, "backfaceVisibility": 8, "perspective": 8, "perspectiveOrigin": 8, "transformStyle": 8, "transformOriginZ": 8, "animation": 8, "animationDelay": 8, "animationDirection": 8, "animationFillMode": 8, "animationDuration": 8, "animationIterationCount": 8, "animationName": 8, "animationPlayState": 8, "animationTimingFunction": 8, "appearance": 10, "userSelect": 10, "backdropFilter": 10, "fontKerning": 9, "scrollSnapType": 10, "scrollSnapPointsX": 10, "scrollSnapPointsY": 10, "scrollSnapDestination": 10, "scrollSnapCoordinate": 10, "textEmphasisPosition": 7, "textEmphasis": 7, "textEmphasisStyle": 7, "textEmphasisColor": 7, "boxDecorationBreak": 10, "clipPath": 10, "maskImage": 10, "maskMode": 10, "maskRepeat": 10, "maskPosition": 10, "maskClip": 10, "maskOrigin": 10, "maskSize": 10, "maskComposite": 10, "mask": 10, "maskBorderSource": 10, "maskBorderMode": 10, "maskBorderSlice": 10, "maskBorderWidth": 10, "maskBorderOutset": 10, "maskBorderRepeat": 10, "maskBorder": 10, "maskType": 10, "textDecorationStyle": 10, "textDecorationSkip": 10, "textDecorationLine": 10, "textDecorationColor": 10, "shapeImageThreshold": 10, "shapeImageMargin": 10, "shapeImageOutside": 10, "filter": 9, "hyphens": 10, "flowInto": 10, "flowFrom": 10, "breakBefore": 8, "breakAfter": 8, "breakInside": 8, "regionFragment": 10, "columnCount": 8, "columnFill": 8, "columnGap": 8, "columnRule": 8, "columnRuleColor": 8, "columnRuleStyle": 8, "columnRuleWidth": 8, "columns": 8, "columnSpan": 8, "columnWidth": 8 }, "firefox": { "appearance": 51, "userSelect": 51, "boxSizing": 28, "textAlignLast": 48, "textDecorationStyle": 35, "textDecorationSkip": 35, "textDecorationLine": 35, "textDecorationColor": 35, "tabSize": 51, "hyphens": 42, "fontFeatureSettings": 33, "breakAfter": 51, "breakBefore": 51, "breakInside": 51, "columnCount": 51, "columnFill": 51, "columnGap": 51, "columnRule": 51, "columnRuleColor": 51, "columnRuleStyle": 51, "columnRuleWidth": 51, "columns": 51, "columnSpan": 51, "columnWidth": 51 }, "opera": { "flex": 16, "flexBasis": 16, "flexDirection": 16, "flexGrow": 16, "flexFlow": 16, "flexShrink": 16, "flexWrap": 16, "alignContent": 16, "alignItems": 16, "alignSelf": 16, "justifyContent": 16, "order": 16, "transform": 22, "transformOrigin": 22, "transformOriginX": 22, "transformOriginY": 22, "backfaceVisibility": 22, "perspective": 22, "perspectiveOrigin": 22, "transformStyle": 22, "transformOriginZ": 22, "animation": 29, "animationDelay": 29, "animationDirection": 29, "animationFillMode": 29, "animationDuration": 29, "animationIterationCount": 29, "animationName": 29, "animationPlayState": 29, "animationTimingFunction": 29, "appearance": 41, "userSelect": 41, "fontKerning": 19, "textEmphasisPosition": 41, "textEmphasis": 41, "textEmphasisStyle": 41, "textEmphasisColor": 41, "boxDecorationBreak": 41, "clipPath": 41, "maskImage": 41, "maskMode": 41, "maskRepeat": 41, "maskPosition": 41, "maskClip": 41, "maskOrigin": 41, "maskSize": 41, "maskComposite": 41, "mask": 41, "maskBorderSource": 41, "maskBorderMode": 41, "maskBorderSlice": 41, "maskBorderWidth": 41, "maskBorderOutset": 41, "maskBorderRepeat": 41, "maskBorder": 41, "maskType": 41, "textDecorationStyle": 41, "textDecorationSkip": 41, "textDecorationLine": 41, "textDecorationColor": 41, "filter": 39, "fontFeatureSettings": 34, "breakAfter": 36, "breakBefore": 36, "breakInside": 36, "columnCount": 36, "columnFill": 36, "columnGap": 36, "columnRule": 36, "columnRuleColor": 36, "columnRuleStyle": 36, "columnRuleWidth": 36, "columns": 36, "columnSpan": 36, "columnWidth": 36 }, "ie": { "flex": 10, "flexDirection": 10, "flexFlow": 10, "flexWrap": 10, "transform": 9, "transformOrigin": 9, "transformOriginX": 9, "transformOriginY": 9, "userSelect": 11, "wrapFlow": 11, "wrapThrough": 11, "wrapMargin": 11, "scrollSnapType": 11, "scrollSnapPointsX": 11, "scrollSnapPointsY": 11, "scrollSnapDestination": 11, "scrollSnapCoordinate": 11, "touchAction": 10, "hyphens": 11, "flowInto": 11, "flowFrom": 11, "breakBefore": 11, "breakAfter": 11, "breakInside": 11, "regionFragment": 11, "gridTemplateColumns": 11, "gridTemplateRows": 11, "gridTemplateAreas": 11, "gridTemplate": 11, "gridAutoColumns": 11, "gridAutoRows": 11, "gridAutoFlow": 11, "grid": 11, "gridRowStart": 11, "gridColumnStart": 11, "gridRowEnd": 11, "gridRow": 11, "gridColumn": 11, "gridColumnEnd": 11, "gridColumnGap": 11, "gridRowGap": 11, "gridArea": 11, "gridGap": 11, "textSizeAdjust": 11 }, "edge": { "userSelect": 14, "wrapFlow": 14, "wrapThrough": 14, "wrapMargin": 14, "scrollSnapType": 14, "scrollSnapPointsX": 14, "scrollSnapPointsY": 14, "scrollSnapDestination": 14, "scrollSnapCoordinate": 14, "hyphens": 14, "flowInto": 14, "flowFrom": 14, "breakBefore": 14, "breakAfter": 14, "breakInside": 14, "regionFragment": 14, "gridTemplateColumns": 14, "gridTemplateRows": 14, "gridTemplateAreas": 14, "gridTemplate": 14, "gridAutoColumns": 14, "gridAutoRows": 14, "gridAutoFlow": 14, "grid": 14, "gridRowStart": 14, "gridColumnStart": 14, "gridRowEnd": 14, "gridRow": 14, "gridColumn": 14, "gridColumnEnd": 14, "gridColumnGap": 14, "gridRowGap": 14, "gridArea": 14, "gridGap": 14 }, "ios_saf": { "flex": 8.1, "flexBasis": 8.1, "flexDirection": 8.1, "flexGrow": 8.1, "flexFlow": 8.1, "flexShrink": 8.1, "flexWrap": 8.1, "alignContent": 8.1, "alignItems": 8.1, "alignSelf": 8.1, "justifyContent": 8.1, "order": 8.1, "transition": 6, "transitionDelay": 6, "transitionDuration": 6, "transitionProperty": 6, "transitionTimingFunction": 6, "transform": 8.1, "transformOrigin": 8.1, "transformOriginX": 8.1, "transformOriginY": 8.1, "backfaceVisibility": 8.1, "perspective": 8.1, "perspectiveOrigin": 8.1, "transformStyle": 8.1, "transformOriginZ": 8.1, "animation": 8.1, "animationDelay": 8.1, "animationDirection": 8.1, "animationFillMode": 8.1, "animationDuration": 8.1, "animationIterationCount": 8.1, "animationName": 8.1, "animationPlayState": 8.1, "animationTimingFunction": 8.1, "appearance": 9.3, "userSelect": 9.3, "backdropFilter": 9.3, "fontKerning": 9.3, "scrollSnapType": 9.3, "scrollSnapPointsX": 9.3, "scrollSnapPointsY": 9.3, "scrollSnapDestination": 9.3, "scrollSnapCoordinate": 9.3, "boxDecorationBreak": 9.3, "clipPath": 9.3, "maskImage": 9.3, "maskMode": 9.3, "maskRepeat": 9.3, "maskPosition": 9.3, "maskClip": 9.3, "maskOrigin": 9.3, "maskSize": 9.3, "maskComposite": 9.3, "mask": 9.3, "maskBorderSource": 9.3, "maskBorderMode": 9.3, "maskBorderSlice": 9.3, "maskBorderWidth": 9.3, "maskBorderOutset": 9.3, "maskBorderRepeat": 9.3, "maskBorder": 9.3, "maskType": 9.3, "textSizeAdjust": 9.3, "textDecorationStyle": 9.3, "textDecorationSkip": 9.3, "textDecorationLine": 9.3, "textDecorationColor": 9.3, "shapeImageThreshold": 9.3, "shapeImageMargin": 9.3, "shapeImageOutside": 9.3, "filter": 9, "hyphens": 9.3, "flowInto": 9.3, "flowFrom": 9.3, "breakBefore": 8.1, "breakAfter": 8.1, "breakInside": 8.1, "regionFragment": 9.3, "columnCount": 8.1, "columnFill": 8.1, "columnGap": 8.1, "columnRule": 8.1, "columnRuleColor": 8.1, "columnRuleStyle": 8.1, "columnRuleWidth": 8.1, "columns": 8.1, "columnSpan": 8.1, "columnWidth": 8.1 }, "android": { "flex": 4.2, "flexBasis": 4.2, "flexDirection": 4.2, "flexGrow": 4.2, "flexFlow": 4.2, "flexShrink": 4.2, "flexWrap": 4.2, "alignContent": 4.2, "alignItems": 4.2, "alignSelf": 4.2, "justifyContent": 4.2, "order": 4.2, "transition": 4.2, "transitionDelay": 4.2, "transitionDuration": 4.2, "transitionProperty": 4.2, "transitionTimingFunction": 4.2, "transform": 4.4, "transformOrigin": 4.4, "transformOriginX": 4.4, "transformOriginY": 4.4, "backfaceVisibility": 4.4, "perspective": 4.4, "perspectiveOrigin": 4.4, "transformStyle": 4.4, "transformOriginZ": 4.4, "animation": 4.4, "animationDelay": 4.4, "animationDirection": 4.4, "animationFillMode": 4.4, "animationDuration": 4.4, "animationIterationCount": 4.4, "animationName": 4.4, "animationPlayState": 4.4, "animationTimingFunction": 4.4, "appearance": 51, "userSelect": 51, "fontKerning": 4.4, "textEmphasisPosition": 51, "textEmphasis": 51, "textEmphasisStyle": 51, "textEmphasisColor": 51, "boxDecorationBreak": 51, "clipPath": 51, "maskImage": 51, "maskMode": 51, "maskRepeat": 51, "maskPosition": 51, "maskClip": 51, "maskOrigin": 51, "maskSize": 51, "maskComposite": 51, "mask": 51, "maskBorderSource": 51, "maskBorderMode": 51, "maskBorderSlice": 51, "maskBorderWidth": 51, "maskBorderOutset": 51, "maskBorderRepeat": 51, "maskBorder": 51, "maskType": 51, "filter": 51, "fontFeatureSettings": 4.4, "breakAfter": 51, "breakBefore": 51, "breakInside": 51, "columnCount": 51, "columnFill": 51, "columnGap": 51, "columnRule": 51, "columnRuleColor": 51, "columnRuleStyle": 51, "columnRuleWidth": 51, "columns": 51, "columnSpan": 51, "columnWidth": 51 }, "and_chr": { "appearance": 51, "userSelect": 51, "textEmphasisPosition": 51, "textEmphasis": 51, "textEmphasisStyle": 51, "textEmphasisColor": 51, "boxDecorationBreak": 51, "clipPath": 51, "maskImage": 51, "maskMode": 51, "maskRepeat": 51, "maskPosition": 51, "maskClip": 51, "maskOrigin": 51, "maskSize": 51, "maskComposite": 51, "mask": 51, "maskBorderSource": 51, "maskBorderMode": 51, "maskBorderSlice": 51, "maskBorderWidth": 51, "maskBorderOutset": 51, "maskBorderRepeat": 51, "maskBorder": 51, "maskType": 51, "textDecorationStyle": 51, "textDecorationSkip": 51, "textDecorationLine": 51, "textDecorationColor": 51, "filter": 51 }, "and_uc": { "flex": 9.9, "flexBasis": 9.9, "flexDirection": 9.9, "flexGrow": 9.9, "flexFlow": 9.9, "flexShrink": 9.9, "flexWrap": 9.9, "alignContent": 9.9, "alignItems": 9.9, "alignSelf": 9.9, "justifyContent": 9.9, "order": 9.9, "transition": 9.9, "transitionDelay": 9.9, "transitionDuration": 9.9, "transitionProperty": 9.9, "transitionTimingFunction": 9.9, "transform": 9.9, "transformOrigin": 9.9, "transformOriginX": 9.9, "transformOriginY": 9.9, "backfaceVisibility": 9.9, "perspective": 9.9, "perspectiveOrigin": 9.9, "transformStyle": 9.9, "transformOriginZ": 9.9, "animation": 9.9, "animationDelay": 9.9, "animationDirection": 9.9, "animationFillMode": 9.9, "animationDuration": 9.9, "animationIterationCount": 9.9, "animationName": 9.9, "animationPlayState": 9.9, "animationTimingFunction": 9.9, "appearance": 9.9, "userSelect": 9.9, "fontKerning": 9.9, "textEmphasisPosition": 9.9, "textEmphasis": 9.9, "textEmphasisStyle": 9.9, "textEmphasisColor": 9.9, "maskImage": 9.9, "maskMode": 9.9, "maskRepeat": 9.9, "maskPosition": 9.9, "maskClip": 9.9, "maskOrigin": 9.9, "maskSize": 9.9, "maskComposite": 9.9, "mask": 9.9, "maskBorderSource": 9.9, "maskBorderMode": 9.9, "maskBorderSlice": 9.9, "maskBorderWidth": 9.9, "maskBorderOutset": 9.9, "maskBorderRepeat": 9.9, "maskBorder": 9.9, "maskType": 9.9, "textSizeAdjust": 9.9, "filter": 9.9, "hyphens": 9.9, "flowInto": 9.9, "flowFrom": 9.9, "breakBefore": 9.9, "breakAfter": 9.9, "breakInside": 9.9, "regionFragment": 9.9, "fontFeatureSettings": 9.9, "columnCount": 9.9, "columnFill": 9.9, "columnGap": 9.9, "columnRule": 9.9, "columnRuleColor": 9.9, "columnRuleStyle": 9.9, "columnRuleWidth": 9.9, "columns": 9.9, "columnSpan": 9.9, "columnWidth": 9.9 }, "op_mini": {} };
module.exports = exports["default"];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = position;

var _getPrefixedValue = __webpack_require__(235);

var _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _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; }

function position(_ref) {
  var property = _ref.property;
  var value = _ref.value;
  var browser = _ref.browserInfo.browser;
  var css = _ref.prefix.css;
  var keepUnprefixed = _ref.keepUnprefixed;

  if (property === 'position' && value === 'sticky' && (browser === 'safari' || browser === 'ios_saf')) {
    return _defineProperty({}, property, (0, _getPrefixedValue2.default)(css + value, value, keepUnprefixed));
  }
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

exports.default = function (prefixedValue, value, keepUnprefixed) {
  return keepUnprefixed ? [prefixedValue, value] : prefixedValue;
};

module.exports = exports["default"];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = calc;

var _getPrefixedValue = __webpack_require__(235);

var _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _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; }

function calc(_ref) {
  var property = _ref.property;
  var value = _ref.value;
  var _ref$browserInfo = _ref.browserInfo;
  var browser = _ref$browserInfo.browser;
  var version = _ref$browserInfo.version;
  var css = _ref.prefix.css;
  var keepUnprefixed = _ref.keepUnprefixed;

  if (typeof value === 'string' && value.indexOf('calc(') > -1 && (browser === 'firefox' && version < 15 || browser === 'chrome' && version < 25 || browser === 'safari' && version < 6.1 || browser === 'ios_saf' && version < 7)) {
    return _defineProperty({}, property, (0, _getPrefixedValue2.default)(value.replace(/calc\(/g, css + 'calc('), value, keepUnprefixed));
  }
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = zoomCursor;

var _getPrefixedValue = __webpack_require__(235);

var _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var values = { 'zoom-in': true, 'zoom-out': true };

function zoomCursor(_ref) {
  var property = _ref.property;
  var value = _ref.value;
  var _ref$browserInfo = _ref.browserInfo;
  var browser = _ref$browserInfo.browser;
  var version = _ref$browserInfo.version;
  var css = _ref.prefix.css;
  var keepUnprefixed = _ref.keepUnprefixed;

  if (property === 'cursor' && values[value] && (browser === 'firefox' && version < 24 || browser === 'chrome' && version < 37 || browser === 'safari' && version < 9 || browser === 'opera' && version < 24)) {
    return {
      cursor: (0, _getPrefixedValue2.default)(css + value, value, keepUnprefixed)
    };
  }
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = grabCursor;

var _getPrefixedValue = __webpack_require__(235);

var _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var values = { grab: true, grabbing: true };

function grabCursor(_ref) {
  var property = _ref.property;
  var value = _ref.value;
  var browser = _ref.browserInfo.browser;
  var css = _ref.prefix.css;
  var keepUnprefixed = _ref.keepUnprefixed;

  // adds prefixes for firefox, chrome, safari, and opera regardless of version until a reliable brwoser support info can be found (see: https://github.com/rofrischmann/inline-style-prefixer/issues/79)
  if (property === 'cursor' && values[value] && (browser === 'firefox' || browser === 'chrome' || browser === 'safari' || browser === 'opera')) {
    return {
      cursor: (0, _getPrefixedValue2.default)(css + value, value, keepUnprefixed)
    };
  }
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = flex;

var _getPrefixedValue = __webpack_require__(235);

var _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var values = { flex: true, 'inline-flex': true };

function flex(_ref) {
  var property = _ref.property;
  var value = _ref.value;
  var _ref$browserInfo = _ref.browserInfo;
  var browser = _ref$browserInfo.browser;
  var version = _ref$browserInfo.version;
  var css = _ref.prefix.css;
  var keepUnprefixed = _ref.keepUnprefixed;

  if (property === 'display' && values[value] && (browser === 'chrome' && version < 29 && version > 20 || (browser === 'safari' || browser === 'ios_saf') && version < 9 && version > 6 || browser === 'opera' && (version == 15 || version == 16))) {
    return {
      display: (0, _getPrefixedValue2.default)(css + value, value, keepUnprefixed)
    };
  }
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = sizing;

var _getPrefixedValue = __webpack_require__(235);

var _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _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; }

var properties = {
  maxHeight: true,
  maxWidth: true,
  width: true,
  height: true,
  columnWidth: true,
  minWidth: true,
  minHeight: true
};
var values = {
  'min-content': true,
  'max-content': true,
  'fill-available': true,
  'fit-content': true,
  'contain-floats': true
};

function sizing(_ref) {
  var property = _ref.property;
  var value = _ref.value;
  var css = _ref.prefix.css;
  var keepUnprefixed = _ref.keepUnprefixed;

  // This might change in the future
  // Keep an eye on it
  if (properties[property] && values[value]) {
    return _defineProperty({}, property, (0, _getPrefixedValue2.default)(css + value, value, keepUnprefixed));
  }
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = gradient;

var _getPrefixedValue = __webpack_require__(235);

var _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _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; }

var values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/;

function gradient(_ref) {
  var property = _ref.property;
  var value = _ref.value;
  var _ref$browserInfo = _ref.browserInfo;
  var browser = _ref$browserInfo.browser;
  var version = _ref$browserInfo.version;
  var css = _ref.prefix.css;
  var keepUnprefixed = _ref.keepUnprefixed;

  if (typeof value === 'string' && value.match(values) !== null && (browser === 'firefox' && version < 16 || browser === 'chrome' && version < 26 || (browser === 'safari' || browser === 'ios_saf') && version < 7 || (browser === 'opera' || browser === 'op_mini') && version < 12.1 || browser === 'android' && version < 4.4 || browser === 'and_uc')) {
    return _defineProperty({}, property, (0, _getPrefixedValue2.default)(css + value, value, keepUnprefixed));
  }
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };

exports.default = transition;

var _hyphenateStyleName = __webpack_require__(632);

var _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);

var _unprefixProperty = __webpack_require__(1045);

var _unprefixProperty2 = _interopRequireDefault(_unprefixProperty);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _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; }

var properties = { transition: true, transitionProperty: true };

function transition(_ref) {
  var property = _ref.property;
  var value = _ref.value;
  var css = _ref.prefix.css;
  var requiresPrefix = _ref.requiresPrefix;
  var keepUnprefixed = _ref.keepUnprefixed;

  // also check for already prefixed transitions
  var unprefixedProperty = (0, _unprefixProperty2.default)(property);

  if (typeof value === 'string' && properties[unprefixedProperty]) {
    var _ret = function () {
      // TODO: memoize this array
      var requiresPrefixDashCased = Object.keys(requiresPrefix).map(function (prop) {
        return (0, _hyphenateStyleName2.default)(prop);
      });

      // only split multi values, not cubic beziers
      var multipleValues = value.split(/,(?![^()]*(?:\([^()]*\))?\))/g);

      requiresPrefixDashCased.forEach(function (prop) {
        multipleValues.forEach(function (val, index) {
          if (val.indexOf(prop) > -1 && prop !== 'order') {
            multipleValues[index] = val.replace(prop, css + prop) + (keepUnprefixed ? ',' + val : '');
          }
        });
      });

      return {
        v: _defineProperty({}, property, multipleValues.join(','))
      };
    }();

    if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v;
  }
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

exports.default = function (property) {
  var unprefixed = property.replace(/^(ms|Webkit|Moz|O)/, '');
  return unprefixed.charAt(0).toLowerCase() + unprefixed.slice(1);
};

module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = flexboxIE;

var _getPrefixedValue = __webpack_require__(235);

var _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _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; }

var alternativeValues = {
  'space-around': 'distribute',
  'space-between': 'justify',
  'flex-start': 'start',
  'flex-end': 'end',
  flex: 'flexbox',
  'inline-flex': 'inline-flexbox'
};
var alternativeProps = {
  alignContent: 'msFlexLinePack',
  alignSelf: 'msFlexItemAlign',
  alignItems: 'msFlexAlign',
  justifyContent: 'msFlexPack',
  order: 'msFlexOrder',
  flexGrow: 'msFlexPositive',
  flexShrink: 'msFlexNegative',
  flexBasis: 'msPreferredSize'
};

function flexboxIE(_ref) {
  var property = _ref.property;
  var value = _ref.value;
  var styles = _ref.styles;
  var _ref$browserInfo = _ref.browserInfo;
  var browser = _ref$browserInfo.browser;
  var version = _ref$browserInfo.version;
  var css = _ref.prefix.css;
  var keepUnprefixed = _ref.keepUnprefixed;

  if ((alternativeProps[property] || property === 'display' && typeof value === 'string' && value.indexOf('flex') > -1) && (browser === 'ie_mob' || browser === 'ie') && version == 10) {
    if (!keepUnprefixed && !Array.isArray(styles[property])) {
      delete styles[property];
    }
    if (property === 'display' && alternativeValues[value]) {
      return {
        display: (0, _getPrefixedValue2.default)(css + alternativeValues[value], value, keepUnprefixed)
      };
    }
    if (alternativeProps[property]) {
      return _defineProperty({}, alternativeProps[property], alternativeValues[value] || value);
    }
  }
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = flexboxOld;

var _getPrefixedValue = __webpack_require__(235);

var _getPrefixedValue2 = _interopRequireDefault(_getPrefixedValue);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _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; }

var alternativeValues = {
  'space-around': 'justify',
  'space-between': 'justify',
  'flex-start': 'start',
  'flex-end': 'end',
  'wrap-reverse': 'multiple',
  wrap: 'multiple',
  flex: 'box',
  'inline-flex': 'inline-box'
};

var alternativeProps = {
  alignItems: 'WebkitBoxAlign',
  justifyContent: 'WebkitBoxPack',
  flexWrap: 'WebkitBoxLines'
};

var otherProps = ['alignContent', 'alignSelf', 'order', 'flexGrow', 'flexShrink', 'flexBasis', 'flexDirection'];
var properties = Object.keys(alternativeProps).concat(otherProps);

function flexboxOld(_ref) {
  var property = _ref.property;
  var value = _ref.value;
  var styles = _ref.styles;
  var _ref$browserInfo = _ref.browserInfo;
  var browser = _ref$browserInfo.browser;
  var version = _ref$browserInfo.version;
  var css = _ref.prefix.css;
  var keepUnprefixed = _ref.keepUnprefixed;

  if ((properties.indexOf(property) > -1 || property === 'display' && typeof value === 'string' && value.indexOf('flex') > -1) && (browser === 'firefox' && version < 22 || browser === 'chrome' && version < 21 || (browser === 'safari' || browser === 'ios_saf') && version <= 6.1 || browser === 'android' && version < 4.4 || browser === 'and_uc')) {
    if (!keepUnprefixed && !Array.isArray(styles[property])) {
      delete styles[property];
    }
    if (property === 'flexDirection' && typeof value === 'string') {
      return {
        WebkitBoxOrient: value.indexOf('column') > -1 ? 'vertical' : 'horizontal',
        WebkitBoxDirection: value.indexOf('reverse') > -1 ? 'reverse' : 'normal'
      };
    }
    if (property === 'display' && alternativeValues[value]) {
      return {
        display: (0, _getPrefixedValue2.default)(css + alternativeValues[value], value, keepUnprefixed)
      };
    }
    if (alternativeProps[property]) {
      return _defineProperty({}, alternativeProps[property], alternativeValues[value] || value);
    }
  }
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _getStateKey = __webpack_require__(634);

var _getStateKey2 = _interopRequireDefault(_getStateKey);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var getState = function getState(state, elementKey, value) {
  var key = (0, _getStateKey2.default)(elementKey);

  return !!state && !!state._radiumStyleState && !!state._radiumStyleState[key] && state._radiumStyleState[key][value];
};

exports.default = getState;
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
var getStateKey = function getStateKey(elementKey) {
  return elementKey === null || elementKey === undefined ? 'main' : elementKey.toString();
};

exports.default = getStateKey;
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = hash;


// a simple djb2 hash based on hash-string:
// https://github.com/MatthewBarker/hash-string/blob/master/source/hash-string.js
// returns a hex-encoded hash
function hash(text) {
  if (!text) {
    return '';
  }

  var hashValue = 5381;
  var index = text.length - 1;

  while (index) {
    hashValue = hashValue * 33 ^ text.charCodeAt(index);
    index -= 1;
  }

  return (hashValue >>> 0).toString(16);
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

exports.isNestedStyle = isNestedStyle;
exports.mergeStyles = mergeStyles;
function isNestedStyle(value) {
  // Don't merge objects overriding toString, since they should be converted
  // to string values.
  return value && value.constructor === Object && value.toString === Object.prototype.toString;
}

// Merge style objects. Deep merge plain object values.
function mergeStyles(styles) {
  var result = {};

  styles.forEach(function (style) {
    if (!style || (typeof style === 'undefined' ? 'undefined' : _typeof(style)) !== 'object') {
      return;
    }

    if (Array.isArray(style)) {
      style = mergeStyles(style);
    }

    Object.keys(style).forEach(function (key) {
      // Simple case, nothing nested
      if (!isNestedStyle(style[key]) || !isNestedStyle(result[key])) {
        result[key] = style[key];
        return;
      }

      // If nested media, don't merge the nested styles, append a space to the
      // end (benign when converted to CSS). This way we don't end up merging
      // media queries that appear later in the chain with those that appear
      // earlier.
      if (key.indexOf('@media') === 0) {
        var newKey = key;
        // eslint-disable-next-line no-constant-condition
        while (true) {
          newKey += ' ';
          if (!result[newKey]) {
            result[newKey] = style[key];
            return;
          }
        }
      }

      // Merge all other nested styles recursively
      result[key] = mergeStyles([result[key], style[key]]);
    });
  });

  return result;
}

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _checkPropsPlugin = __webpack_require__(1049);

var _checkPropsPlugin2 = _interopRequireDefault(_checkPropsPlugin);

var _keyframesPlugin = __webpack_require__(1050);

var _keyframesPlugin2 = _interopRequireDefault(_keyframesPlugin);

var _mergeStyleArrayPlugin = __webpack_require__(1051);

var _mergeStyleArrayPlugin2 = _interopRequireDefault(_mergeStyleArrayPlugin);

var _prefixPlugin = __webpack_require__(1052);

var _prefixPlugin2 = _interopRequireDefault(_prefixPlugin);

var _removeNestedStylesPlugin = __webpack_require__(1053);

var _removeNestedStylesPlugin2 = _interopRequireDefault(_removeNestedStylesPlugin);

var _resolveInteractionStylesPlugin = __webpack_require__(1054);

var _resolveInteractionStylesPlugin2 = _interopRequireDefault(_resolveInteractionStylesPlugin);

var _resolveMediaQueriesPlugin = __webpack_require__(1056);

var _resolveMediaQueriesPlugin2 = _interopRequireDefault(_resolveMediaQueriesPlugin);

var _visitedPlugin = __webpack_require__(1057);

var _visitedPlugin2 = _interopRequireDefault(_visitedPlugin);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

exports.default = {
  checkProps: _checkPropsPlugin2.default,
  keyframes: _keyframesPlugin2.default,
  mergeStyleArray: _mergeStyleArrayPlugin2.default,
  prefix: _prefixPlugin2.default,
  removeNestedStyles: _removeNestedStylesPlugin2.default,
  resolveInteractionStyles: _resolveInteractionStylesPlugin2.default,
  resolveMediaQueries: _resolveMediaQueriesPlugin2.default,
  visited: _visitedPlugin2.default
};
/* eslint-disable block-scoped-const */

module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _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; };

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

var _checkProps = function checkProps() {};

if (false) { var shorthandPropertyExpansions; }

exports.default = _checkProps;
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = keyframesPlugin;
function keyframesPlugin(_ref) {
  var addCSS = _ref.addCSS,
      config = _ref.config,
      style = _ref.style;

  var newStyle = Object.keys(style).reduce(function (newStyleInProgress, key) {
    var value = style[key];
    if (key === 'animationName' && value && value.__radiumKeyframes) {
      var keyframesValue = value;

      var _keyframesValue$__pro = keyframesValue.__process(config.userAgent),
          animationName = _keyframesValue$__pro.animationName,
          css = _keyframesValue$__pro.css;

      addCSS(css);
      value = animationName;
    }

    newStyleInProgress[key] = value;
    return newStyleInProgress;
  }, {});
  return { style: newStyle };
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});


// Convenient syntax for multiple styles: `style={[style1, style2, etc]}`
// Ignores non-objects, so you can do `this.state.isCool && styles.cool`.
var mergeStyleArrayPlugin = function mergeStyleArrayPlugin(_ref) {
  var style = _ref.style,
      mergeStyles = _ref.mergeStyles;

  // eslint-disable-line no-shadow
  var newStyle = Array.isArray(style) ? mergeStyles(style) : style;
  return { style: newStyle };
};

exports.default = mergeStyleArrayPlugin;
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = prefixPlugin;

var _prefixer = __webpack_require__(498);

function prefixPlugin(_ref) {
  var config = _ref.config,
      style = _ref.style;

  var newStyle = (0, _prefixer.getPrefixedStyle)(style, config.userAgent);
  return { style: newStyle };
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = removeNestedStyles;
function removeNestedStyles(_ref) {
  var isNestedStyle = _ref.isNestedStyle,
      style = _ref.style;

  // eslint-disable-line no-shadow
  var newStyle = Object.keys(style).reduce(function (newStyleInProgress, key) {
    var value = style[key];
    if (!isNestedStyle(value)) {
      newStyleInProgress[key] = value;
    }
    return newStyleInProgress;
  }, {});

  return {
    style: newStyle
  };
}

module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _mouseUpListener = __webpack_require__(1055);

var _mouseUpListener2 = _interopRequireDefault(_mouseUpListener);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var _isInteractiveStyleField = function _isInteractiveStyleField(styleFieldName) {
  return styleFieldName === ':hover' || styleFieldName === ':active' || styleFieldName === ':focus';
};

var resolveInteractionStyles = function resolveInteractionStyles(config) {
  var ExecutionEnvironment = config.ExecutionEnvironment,
      getComponentField = config.getComponentField,
      getState = config.getState,
      mergeStyles = config.mergeStyles,
      props = config.props,
      setState = config.setState,
      style = config.style;


  var newComponentFields = {};
  var newProps = {};

  // Only add handlers if necessary
  if (style[':hover']) {
    // Always call the existing handler if one is already defined.
    // This code, and the very similar ones below, could be abstracted a bit
    // more, but it hurts readability IMO.
    var existingOnMouseEnter = props.onMouseEnter;
    newProps.onMouseEnter = function (e) {
      existingOnMouseEnter && existingOnMouseEnter(e);
      setState(':hover', true);
    };

    var existingOnMouseLeave = props.onMouseLeave;
    newProps.onMouseLeave = function (e) {
      existingOnMouseLeave && existingOnMouseLeave(e);
      setState(':hover', false);
    };
  }

  if (style[':active']) {
    var existingOnMouseDown = props.onMouseDown;
    newProps.onMouseDown = function (e) {
      existingOnMouseDown && existingOnMouseDown(e);
      newComponentFields._lastMouseDown = Date.now();
      setState(':active', 'viamousedown');
    };

    var existingOnKeyDown = props.onKeyDown;
    newProps.onKeyDown = function (e) {
      existingOnKeyDown && existingOnKeyDown(e);
      if (e.key === ' ' || e.key === 'Enter') {
        setState(':active', 'viakeydown');
      }
    };

    var existingOnKeyUp = props.onKeyUp;
    newProps.onKeyUp = function (e) {
      existingOnKeyUp && existingOnKeyUp(e);
      if (e.key === ' ' || e.key === 'Enter') {
        setState(':active', false);
      }
    };
  }

  if (style[':focus']) {
    var existingOnFocus = props.onFocus;
    newProps.onFocus = function (e) {
      existingOnFocus && existingOnFocus(e);
      setState(':focus', true);
    };

    var existingOnBlur = props.onBlur;
    newProps.onBlur = function (e) {
      existingOnBlur && existingOnBlur(e);
      setState(':focus', false);
    };
  }

  if (style[':active'] && !getComponentField('_radiumMouseUpListener') && ExecutionEnvironment.canUseEventListeners) {
    newComponentFields._radiumMouseUpListener = _mouseUpListener2.default.subscribe(function () {
      Object.keys(getComponentField('state')._radiumStyleState).forEach(function (key) {
        if (getState(':active', key) === 'viamousedown') {
          setState(':active', false, key);
        }
      });
    });
  }

  // Merge the styles in the order they were defined
  var interactionStyles = props.disabled ? [style[':disabled']] : Object.keys(style).filter(function (name) {
    return _isInteractiveStyleField(name) && getState(name);
  }).map(function (name) {
    return style[name];
  });

  var newStyle = mergeStyles([style].concat(interactionStyles));

  // Remove interactive styles
  newStyle = Object.keys(newStyle).reduce(function (styleWithoutInteractions, name) {
    if (!_isInteractiveStyleField(name) && name !== ':disabled') {
      styleWithoutInteractions[name] = newStyle[name];
    }
    return styleWithoutInteractions;
  }, {});

  return {
    componentFields: newComponentFields,
    props: newProps,
    style: newStyle
  };
};

exports.default = resolveInteractionStyles;
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
var _callbacks = [];
var _mouseUpListenerIsActive = false;

function _handleMouseUp() {
  _callbacks.forEach(function (callback) {
    callback();
  });
}

var subscribe = function subscribe(callback) {
  if (_callbacks.indexOf(callback) === -1) {
    _callbacks.push(callback);
  }

  if (!_mouseUpListenerIsActive) {
    window.addEventListener('mouseup', _handleMouseUp);
    _mouseUpListenerIsActive = true;
  }

  return {
    remove: function remove() {
      var index = _callbacks.indexOf(callback);
      _callbacks.splice(index, 1);

      if (_callbacks.length === 0 && _mouseUpListenerIsActive) {
        window.removeEventListener('mouseup', _handleMouseUp);
        _mouseUpListenerIsActive = false;
      }
    }
  };
};

exports.default = {
  subscribe: subscribe,
  __triggerForTests: _handleMouseUp
};
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _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; };

exports.default = resolveMediaQueries;
var _windowMatchMedia = void 0;
function _getWindowMatchMedia(ExecutionEnvironment) {
  if (_windowMatchMedia === undefined) {
    _windowMatchMedia = !!ExecutionEnvironment.canUseDOM && !!window && !!window.matchMedia && function (mediaQueryString) {
      return window.matchMedia(mediaQueryString);
    } || null;
  }
  return _windowMatchMedia;
}

function _filterObject(obj, predicate) {
  return Object.keys(obj).filter(function (key) {
    return predicate(obj[key], key);
  }).reduce(function (result, key) {
    result[key] = obj[key];
    return result;
  }, {});
}

function _removeMediaQueries(style) {
  return Object.keys(style).reduce(function (styleWithoutMedia, key) {
    if (key.indexOf('@media') !== 0) {
      styleWithoutMedia[key] = style[key];
    }
    return styleWithoutMedia;
  }, {});
}

function _topLevelRulesToCSS(_ref) {
  var addCSS = _ref.addCSS,
      appendImportantToEachValue = _ref.appendImportantToEachValue,
      cssRuleSetToString = _ref.cssRuleSetToString,
      hash = _ref.hash,
      isNestedStyle = _ref.isNestedStyle,
      style = _ref.style,
      userAgent = _ref.userAgent;

  var className = '';
  Object.keys(style).filter(function (name) {
    return name.indexOf('@media') === 0;
  }).map(function (query) {
    var topLevelRules = appendImportantToEachValue(_filterObject(style[query], function (value) {
      return !isNestedStyle(value);
    }));

    if (!Object.keys(topLevelRules).length) {
      return;
    }

    var ruleCSS = cssRuleSetToString('', topLevelRules, userAgent);

    // CSS classes cannot start with a number
    var mediaQueryClassName = 'rmq-' + hash(query + ruleCSS);
    var css = query + '{ .' + mediaQueryClassName + ruleCSS + '}';

    addCSS(css);

    className += (className ? ' ' : '') + mediaQueryClassName;
  });
  return className;
}

function _subscribeToMediaQuery(_ref2) {
  var listener = _ref2.listener,
      listenersByQuery = _ref2.listenersByQuery,
      matchMedia = _ref2.matchMedia,
      mediaQueryListsByQuery = _ref2.mediaQueryListsByQuery,
      query = _ref2.query;

  query = query.replace('@media ', '');

  var mql = mediaQueryListsByQuery[query];
  if (!mql && matchMedia) {
    mediaQueryListsByQuery[query] = mql = matchMedia(query);
  }

  if (!listenersByQuery || !listenersByQuery[query]) {
    mql.addListener(listener);

    listenersByQuery[query] = {
      remove: function remove() {
        mql.removeListener(listener);
      }
    };
  }
  return mql;
}

function resolveMediaQueries(_ref3) {
  var ExecutionEnvironment = _ref3.ExecutionEnvironment,
      addCSS = _ref3.addCSS,
      appendImportantToEachValue = _ref3.appendImportantToEachValue,
      config = _ref3.config,
      cssRuleSetToString = _ref3.cssRuleSetToString,
      getComponentField = _ref3.getComponentField,
      getGlobalState = _ref3.getGlobalState,
      hash = _ref3.hash,
      isNestedStyle = _ref3.isNestedStyle,
      mergeStyles = _ref3.mergeStyles,
      props = _ref3.props,
      setState = _ref3.setState,
      style = _ref3.style;

  // eslint-disable-line no-shadow
  var newStyle = _removeMediaQueries(style);
  var mediaQueryClassNames = _topLevelRulesToCSS({
    addCSS: addCSS,
    appendImportantToEachValue: appendImportantToEachValue,
    cssRuleSetToString: cssRuleSetToString,
    hash: hash,
    isNestedStyle: isNestedStyle,
    style: style,
    userAgent: config.userAgent
  });

  var newProps = mediaQueryClassNames ? {
    className: mediaQueryClassNames + (props.className ? ' ' + props.className : '')
  } : null;

  var matchMedia = config.matchMedia || _getWindowMatchMedia(ExecutionEnvironment);

  if (!matchMedia) {
    return {
      props: newProps,
      style: newStyle
    };
  }

  var listenersByQuery = _extends({}, getComponentField('_radiumMediaQueryListenersByQuery'));
  var mediaQueryListsByQuery = getGlobalState('mediaQueryListsByQuery') || {};

  Object.keys(style).filter(function (name) {
    return name.indexOf('@media') === 0;
  }).map(function (query) {
    var nestedRules = _filterObject(style[query], isNestedStyle);

    if (!Object.keys(nestedRules).length) {
      return;
    }

    var mql = _subscribeToMediaQuery({
      listener: function listener() {
        return setState(query, mql.matches, '_all');
      },
      listenersByQuery: listenersByQuery,
      matchMedia: matchMedia,
      mediaQueryListsByQuery: mediaQueryListsByQuery,
      query: query
    });

    // Apply media query states
    if (mql.matches) {
      newStyle = mergeStyles([newStyle, nestedRules]);
    }
  });

  return {
    componentFields: {
      _radiumMediaQueryListenersByQuery: listenersByQuery
    },
    globalState: { mediaQueryListsByQuery: mediaQueryListsByQuery },
    props: newProps,
    style: newStyle
  };
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = visited;
function visited(_ref) {
  var addCSS = _ref.addCSS,
      appendImportantToEachValue = _ref.appendImportantToEachValue,
      config = _ref.config,
      cssRuleSetToString = _ref.cssRuleSetToString,
      hash = _ref.hash,
      props = _ref.props,
      style = _ref.style;

  // eslint-disable-line no-shadow
  var className = props.className;

  var newStyle = Object.keys(style).reduce(function (newStyleInProgress, key) {
    var value = style[key];
    if (key === ':visited') {
      value = appendImportantToEachValue(value);
      var ruleCSS = cssRuleSetToString('', value, config.userAgent);
      var visitedClassName = 'rad-' + hash(ruleCSS);
      var css = '.' + visitedClassName + ':visited' + ruleCSS;

      addCSS(css);
      className = (className ? className + ' ' : '') + visitedClassName;
    } else {
      newStyleInProgress[key] = value;
    }

    return newStyleInProgress;
  }, {});

  return {
    props: className === props.className ? null : { className: className },
    style: newStyle
  };
}

module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

var _class, _temp;

var _cssRuleSetToString = __webpack_require__(497);

var _cssRuleSetToString2 = _interopRequireDefault(_cssRuleSetToString);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var Style = (_temp = _class = function (_PureComponent) {
  _inherits(Style, _PureComponent);

  function Style() {
    _classCallCheck(this, Style);

    return _possibleConstructorReturn(this, _PureComponent.apply(this, arguments));
  }

  Style.prototype._buildStyles = function _buildStyles(styles) {
    var _this2 = this;

    var userAgent = this.props.radiumConfig && this.props.radiumConfig.userAgent || this.context && this.context._radiumConfig && this.context._radiumConfig.userAgent;

    var scopeSelector = this.props.scopeSelector;

    var rootRules = Object.keys(styles).reduce(function (accumulator, selector) {
      if (_typeof(styles[selector]) !== 'object') {
        accumulator[selector] = styles[selector];
      }

      return accumulator;
    }, {});
    var rootStyles = Object.keys(rootRules).length ? (0, _cssRuleSetToString2.default)(scopeSelector || '', rootRules, userAgent) : '';

    return rootStyles + Object.keys(styles).reduce(function (accumulator, selector) {
      var rules = styles[selector];

      if (selector === 'mediaQueries') {
        accumulator += _this2._buildMediaQueryString(rules);
      } else if (_typeof(styles[selector]) === 'object') {
        var completeSelector = scopeSelector ? selector.split(',').map(function (part) {
          return scopeSelector + ' ' + part.trim();
        }).join(',') : selector;

        accumulator += (0, _cssRuleSetToString2.default)(completeSelector, rules, userAgent);
      }

      return accumulator;
    }, '');
  };

  Style.prototype._buildMediaQueryString = function _buildMediaQueryString(stylesByMediaQuery) {
    var _this3 = this;

    var mediaQueryString = '';

    Object.keys(stylesByMediaQuery).forEach(function (query) {
      mediaQueryString += '@media ' + query + '{' + _this3._buildStyles(stylesByMediaQuery[query]) + '}';
    });

    return mediaQueryString;
  };

  Style.prototype.render = function render() {
    if (!this.props.rules) {
      return null;
    }

    var styles = this._buildStyles(this.props.rules);

    return _react2.default.createElement('style', { dangerouslySetInnerHTML: { __html: styles } });
  };

  return Style;
}(_react.PureComponent), _class.propTypes = {
  radiumConfig: _propTypes2.default.object,
  rules: _propTypes2.default.object,
  scopeSelector: _propTypes2.default.string
}, _class.contextTypes = {
  _radiumConfig: _propTypes2.default.object
}, _class.defaultProps = {
  scopeSelector: ''
}, _temp);
exports.default = Style;
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _enhancer = __webpack_require__(626);

var _enhancer2 = _interopRequireDefault(_enhancer);

var _styleKeeper = __webpack_require__(496);

var _styleKeeper2 = _interopRequireDefault(_styleKeeper);

var _styleSheet = __webpack_require__(1060);

var _styleSheet2 = _interopRequireDefault(_styleSheet);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

function _getStyleKeeper(instance) {
  if (!instance._radiumStyleKeeper) {
    var userAgent = instance.props.radiumConfig && instance.props.radiumConfig.userAgent || instance.context._radiumConfig && instance.context._radiumConfig.userAgent;
    instance._radiumStyleKeeper = new _styleKeeper2.default(userAgent);
  }

  return instance._radiumStyleKeeper;
}

var StyleRoot = function (_PureComponent) {
  _inherits(StyleRoot, _PureComponent);

  function StyleRoot() {
    _classCallCheck(this, StyleRoot);

    var _this = _possibleConstructorReturn(this, _PureComponent.apply(this, arguments));

    _getStyleKeeper(_this);
    return _this;
  }

  StyleRoot.prototype.getChildContext = function getChildContext() {
    return { _radiumStyleKeeper: _getStyleKeeper(this) };
  };

  StyleRoot.prototype.render = function render() {
    /* eslint-disable no-unused-vars */
    // Pass down all props except config to the rendered div.
    var _props = this.props,
        radiumConfig = _props.radiumConfig,
        otherProps = _objectWithoutProperties(_props, ['radiumConfig']);
    /* eslint-enable no-unused-vars */

    return _react2.default.createElement(
      'div',
      otherProps,
      this.props.children,
      _react2.default.createElement(_styleSheet2.default, null)
    );
  };

  return StyleRoot;
}(_react.PureComponent);

StyleRoot.contextTypes = {
  _radiumConfig: _propTypes2.default.object,
  _radiumStyleKeeper: _propTypes2.default.instanceOf(_styleKeeper2.default)
};

StyleRoot.childContextTypes = {
  _radiumStyleKeeper: _propTypes2.default.instanceOf(_styleKeeper2.default)
};

StyleRoot = (0, _enhancer2.default)(StyleRoot);

exports.default = StyleRoot;
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = undefined;

var _class, _temp;

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _styleKeeper = __webpack_require__(496);

var _styleKeeper2 = _interopRequireDefault(_styleKeeper);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var StyleSheet = (_temp = _class = function (_PureComponent) {
  _inherits(StyleSheet, _PureComponent);

  function StyleSheet() {
    _classCallCheck(this, StyleSheet);

    var _this = _possibleConstructorReturn(this, _PureComponent.apply(this, arguments));

    _this._onChange = function () {
      setTimeout(function () {
        _this._isMounted && _this.setState(_this._getCSSState());
      }, 0);
    };

    _this.state = _this._getCSSState();
    return _this;
  }

  StyleSheet.prototype.componentDidMount = function componentDidMount() {
    this._isMounted = true;
    this._subscription = this.context._radiumStyleKeeper.subscribe(this._onChange);
    this._onChange();
  };

  StyleSheet.prototype.componentWillUnmount = function componentWillUnmount() {
    this._isMounted = false;
    if (this._subscription) {
      this._subscription.remove();
    }
  };

  StyleSheet.prototype._getCSSState = function _getCSSState() {
    return { css: this.context._radiumStyleKeeper.getCSS() };
  };

  StyleSheet.prototype.render = function render() {
    return _react2.default.createElement('style', { dangerouslySetInnerHTML: { __html: this.state.css } });
  };

  return StyleSheet;
}(_react.PureComponent), _class.contextTypes = {
  _radiumStyleKeeper: _propTypes2.default.instanceOf(_styleKeeper2.default)
}, _temp);
exports.default = StyleSheet;
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = keyframes;

var _cssRuleSetToString = __webpack_require__(497);

var _cssRuleSetToString2 = _interopRequireDefault(_cssRuleSetToString);

var _hash = __webpack_require__(635);

var _hash2 = _interopRequireDefault(_hash);

var _prefixer = __webpack_require__(498);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function keyframes(keyframeRules, name) {
  return {
    __radiumKeyframes: true,
    __process: function __process(userAgent) {
      var keyframesPrefixed = (0, _prefixer.getPrefixedKeyframes)(userAgent);
      var rules = Object.keys(keyframeRules).map(function (percentage) {
        return (0, _cssRuleSetToString2.default)(percentage, keyframeRules[percentage], userAgent);
      }).join('\n');
      var animationName = (name ? name + '-' : '') + 'radium-animation-' + (0, _hash2.default)(rules);
      var css = '@' + keyframesPrefixed + ' ' + animationName + ' {\n' + rules + '\n}\n';
      return { css: css, animationName: animationName };
    }
  };
}

module.exports = exports['default'];/* WEBPACK VAR INJECTION */(function(global, module) {/**
 * Lodash (Custom Build) <https://lodash.com/>
 * Build: `lodash modularize exports="npm" -o ./`
 * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
 * Released under MIT license <https://lodash.com/license>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 */

/** Used as the size to enable large array optimizations. */
var LARGE_ARRAY_SIZE = 200;

/** Used to stand-in for `undefined` hash values. */
var HASH_UNDEFINED = '__lodash_hash_undefined__';

/** Used to detect hot functions by number of calls within a span of milliseconds. */
var HOT_COUNT = 800,
    HOT_SPAN = 16;

/** Used as references for various `Number` constants. */
var MAX_SAFE_INTEGER = 9007199254740991;

/** `Object#toString` result references. */
var argsTag = '[object Arguments]',
    arrayTag = '[object Array]',
    asyncTag = '[object AsyncFunction]',
    boolTag = '[object Boolean]',
    dateTag = '[object Date]',
    errorTag = '[object Error]',
    funcTag = '[object Function]',
    genTag = '[object GeneratorFunction]',
    mapTag = '[object Map]',
    numberTag = '[object Number]',
    nullTag = '[object Null]',
    objectTag = '[object Object]',
    proxyTag = '[object Proxy]',
    regexpTag = '[object RegExp]',
    setTag = '[object Set]',
    stringTag = '[object String]',
    undefinedTag = '[object Undefined]',
    weakMapTag = '[object WeakMap]';

var arrayBufferTag = '[object ArrayBuffer]',
    dataViewTag = '[object DataView]',
    float32Tag = '[object Float32Array]',
    float64Tag = '[object Float64Array]',
    int8Tag = '[object Int8Array]',
    int16Tag = '[object Int16Array]',
    int32Tag = '[object Int32Array]',
    uint8Tag = '[object Uint8Array]',
    uint8ClampedTag = '[object Uint8ClampedArray]',
    uint16Tag = '[object Uint16Array]',
    uint32Tag = '[object Uint32Array]';

/**
 * Used to match `RegExp`
 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
 */
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;

/** Used to detect host constructors (Safari). */
var reIsHostCtor = /^\[object .+?Constructor\]$/;

/** Used to detect unsigned integer values. */
var reIsUint = /^(?:0|[1-9]\d*)$/;

/** Used to identify `toStringTag` values of typed arrays. */
var typedArrayTags = {};
typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
typedArrayTags[uint32Tag] = true;
typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
typedArrayTags[errorTag] = typedArrayTags[funcTag] =
typedArrayTags[mapTag] = typedArrayTags[numberTag] =
typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
typedArrayTags[setTag] = typedArrayTags[stringTag] =
typedArrayTags[weakMapTag] = false;

/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;

/** Detect free variable `self`. */
var freeSelf = typeof self == 'object' && self && self.Object === Object && self;

/** Used as a reference to the global object. */
var root = freeGlobal || freeSelf || Function('return this')();

/** Detect free variable `exports`. */
var freeExports =  true && exports && !exports.nodeType && exports;

/** Detect free variable `module`. */
var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;

/** Detect the popular CommonJS extension `module.exports`. */
var moduleExports = freeModule && freeModule.exports === freeExports;

/** Detect free variable `process` from Node.js. */
var freeProcess = moduleExports && freeGlobal.process;

/** Used to access faster Node.js helpers. */
var nodeUtil = (function() {
  try {
    // Use `util.types` for Node.js 10+.
    var types = freeModule && freeModule.require && freeModule.require('util').types;

    if (types) {
      return types;
    }

    // Legacy `process.binding('util')` for Node.js < 10.
    return freeProcess && freeProcess.binding && freeProcess.binding('util');
  } catch (e) {}
}());

/* Node.js helper references. */
var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;

/**
 * A faster alternative to `Function#apply`, this function invokes `func`
 * with the `this` binding of `thisArg` and the arguments of `args`.
 *
 * @private
 * @param {Function} func The function to invoke.
 * @param {*} thisArg The `this` binding of `func`.
 * @param {Array} args The arguments to invoke `func` with.
 * @returns {*} Returns the result of `func`.
 */
function apply(func, thisArg, args) {
  switch (args.length) {
    case 0: return func.call(thisArg);
    case 1: return func.call(thisArg, args[0]);
    case 2: return func.call(thisArg, args[0], args[1]);
    case 3: return func.call(thisArg, args[0], args[1], args[2]);
  }
  return func.apply(thisArg, args);
}

/**
 * The base implementation of `_.times` without support for iteratee shorthands
 * or max array length checks.
 *
 * @private
 * @param {number} n The number of times to invoke `iteratee`.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Array} Returns the array of results.
 */
function baseTimes(n, iteratee) {
  var index = -1,
      result = Array(n);

  while (++index < n) {
    result[index] = iteratee(index);
  }
  return result;
}

/**
 * The base implementation of `_.unary` without support for storing metadata.
 *
 * @private
 * @param {Function} func The function to cap arguments for.
 * @returns {Function} Returns the new capped function.
 */
function baseUnary(func) {
  return function(value) {
    return func(value);
  };
}

/**
 * Gets the value at `key` of `object`.
 *
 * @private
 * @param {Object} [object] The object to query.
 * @param {string} key The key of the property to get.
 * @returns {*} Returns the property value.
 */
function getValue(object, key) {
  return object == null ? undefined : object[key];
}

/**
 * Creates a unary function that invokes `func` with its argument transformed.
 *
 * @private
 * @param {Function} func The function to wrap.
 * @param {Function} transform The argument transform.
 * @returns {Function} Returns the new function.
 */
function overArg(func, transform) {
  return function(arg) {
    return func(transform(arg));
  };
}

/** Used for built-in method references. */
var arrayProto = Array.prototype,
    funcProto = Function.prototype,
    objectProto = Object.prototype;

/** Used to detect overreaching core-js shims. */
var coreJsData = root['__core-js_shared__'];

/** Used to resolve the decompiled source of functions. */
var funcToString = funcProto.toString;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/** Used to detect methods masquerading as native. */
var maskSrcKey = (function() {
  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
  return uid ? ('Symbol(src)_1.' + uid) : '';
}());

/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */
var nativeObjectToString = objectProto.toString;

/** Used to infer the `Object` constructor. */
var objectCtorString = funcToString.call(Object);

/** Used to detect if a method is native. */
var reIsNative = RegExp('^' +
  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
  .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
);

/** Built-in value references. */
var Buffer = moduleExports ? root.Buffer : undefined,
    Symbol = root.Symbol,
    Uint8Array = root.Uint8Array,
    allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,
    getPrototype = overArg(Object.getPrototypeOf, Object),
    objectCreate = Object.create,
    propertyIsEnumerable = objectProto.propertyIsEnumerable,
    splice = arrayProto.splice,
    symToStringTag = Symbol ? Symbol.toStringTag : undefined;

var defineProperty = (function() {
  try {
    var func = getNative(Object, 'defineProperty');
    func({}, '', {});
    return func;
  } catch (e) {}
}());

/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,
    nativeMax = Math.max,
    nativeNow = Date.now;

/* Built-in method references that are verified to be native. */
var Map = getNative(root, 'Map'),
    nativeCreate = getNative(Object, 'create');

/**
 * The base implementation of `_.create` without support for assigning
 * properties to the created object.
 *
 * @private
 * @param {Object} proto The object to inherit from.
 * @returns {Object} Returns the new object.
 */
var baseCreate = (function() {
  function object() {}
  return function(proto) {
    if (!isObject(proto)) {
      return {};
    }
    if (objectCreate) {
      return objectCreate(proto);
    }
    object.prototype = proto;
    var result = new object;
    object.prototype = undefined;
    return result;
  };
}());

/**
 * Creates a hash object.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */
function Hash(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;

  this.clear();
  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}

/**
 * Removes all key-value entries from the hash.
 *
 * @private
 * @name clear
 * @memberOf Hash
 */
function hashClear() {
  this.__data__ = nativeCreate ? nativeCreate(null) : {};
  this.size = 0;
}

/**
 * Removes `key` and its value from the hash.
 *
 * @private
 * @name delete
 * @memberOf Hash
 * @param {Object} hash The hash to modify.
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */
function hashDelete(key) {
  var result = this.has(key) && delete this.__data__[key];
  this.size -= result ? 1 : 0;
  return result;
}

/**
 * Gets the hash value for `key`.
 *
 * @private
 * @name get
 * @memberOf Hash
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */
function hashGet(key) {
  var data = this.__data__;
  if (nativeCreate) {
    var result = data[key];
    return result === HASH_UNDEFINED ? undefined : result;
  }
  return hasOwnProperty.call(data, key) ? data[key] : undefined;
}

/**
 * Checks if a hash value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf Hash
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */
function hashHas(key) {
  var data = this.__data__;
  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);
}

/**
 * Sets the hash `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf Hash
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the hash instance.
 */
function hashSet(key, value) {
  var data = this.__data__;
  this.size += this.has(key) ? 0 : 1;
  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
  return this;
}

// Add methods to `Hash`.
Hash.prototype.clear = hashClear;
Hash.prototype['delete'] = hashDelete;
Hash.prototype.get = hashGet;
Hash.prototype.has = hashHas;
Hash.prototype.set = hashSet;

/**
 * Creates an list cache object.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */
function ListCache(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;

  this.clear();
  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}

/**
 * Removes all key-value entries from the list cache.
 *
 * @private
 * @name clear
 * @memberOf ListCache
 */
function listCacheClear() {
  this.__data__ = [];
  this.size = 0;
}

/**
 * Removes `key` and its value from the list cache.
 *
 * @private
 * @name delete
 * @memberOf ListCache
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */
function listCacheDelete(key) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  if (index < 0) {
    return false;
  }
  var lastIndex = data.length - 1;
  if (index == lastIndex) {
    data.pop();
  } else {
    splice.call(data, index, 1);
  }
  --this.size;
  return true;
}

/**
 * Gets the list cache value for `key`.
 *
 * @private
 * @name get
 * @memberOf ListCache
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */
function listCacheGet(key) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  return index < 0 ? undefined : data[index][1];
}

/**
 * Checks if a list cache value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf ListCache
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */
function listCacheHas(key) {
  return assocIndexOf(this.__data__, key) > -1;
}

/**
 * Sets the list cache `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf ListCache
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the list cache instance.
 */
function listCacheSet(key, value) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  if (index < 0) {
    ++this.size;
    data.push([key, value]);
  } else {
    data[index][1] = value;
  }
  return this;
}

// Add methods to `ListCache`.
ListCache.prototype.clear = listCacheClear;
ListCache.prototype['delete'] = listCacheDelete;
ListCache.prototype.get = listCacheGet;
ListCache.prototype.has = listCacheHas;
ListCache.prototype.set = listCacheSet;

/**
 * Creates a map cache object to store key-value pairs.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */
function MapCache(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;

  this.clear();
  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}

/**
 * Removes all key-value entries from the map.
 *
 * @private
 * @name clear
 * @memberOf MapCache
 */
function mapCacheClear() {
  this.size = 0;
  this.__data__ = {
    'hash': new Hash,
    'map': new (Map || ListCache),
    'string': new Hash
  };
}

/**
 * Removes `key` and its value from the map.
 *
 * @private
 * @name delete
 * @memberOf MapCache
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */
function mapCacheDelete(key) {
  var result = getMapData(this, key)['delete'](key);
  this.size -= result ? 1 : 0;
  return result;
}

/**
 * Gets the map value for `key`.
 *
 * @private
 * @name get
 * @memberOf MapCache
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */
function mapCacheGet(key) {
  return getMapData(this, key).get(key);
}

/**
 * Checks if a map value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf MapCache
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */
function mapCacheHas(key) {
  return getMapData(this, key).has(key);
}

/**
 * Sets the map `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf MapCache
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the map cache instance.
 */
function mapCacheSet(key, value) {
  var data = getMapData(this, key),
      size = data.size;

  data.set(key, value);
  this.size += data.size == size ? 0 : 1;
  return this;
}

// Add methods to `MapCache`.
MapCache.prototype.clear = mapCacheClear;
MapCache.prototype['delete'] = mapCacheDelete;
MapCache.prototype.get = mapCacheGet;
MapCache.prototype.has = mapCacheHas;
MapCache.prototype.set = mapCacheSet;

/**
 * Creates a stack cache object to store key-value pairs.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */
function Stack(entries) {
  var data = this.__data__ = new ListCache(entries);
  this.size = data.size;
}

/**
 * Removes all key-value entries from the stack.
 *
 * @private
 * @name clear
 * @memberOf Stack
 */
function stackClear() {
  this.__data__ = new ListCache;
  this.size = 0;
}

/**
 * Removes `key` and its value from the stack.
 *
 * @private
 * @name delete
 * @memberOf Stack
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */
function stackDelete(key) {
  var data = this.__data__,
      result = data['delete'](key);

  this.size = data.size;
  return result;
}

/**
 * Gets the stack value for `key`.
 *
 * @private
 * @name get
 * @memberOf Stack
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */
function stackGet(key) {
  return this.__data__.get(key);
}

/**
 * Checks if a stack value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf Stack
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */
function stackHas(key) {
  return this.__data__.has(key);
}

/**
 * Sets the stack `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf Stack
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the stack cache instance.
 */
function stackSet(key, value) {
  var data = this.__data__;
  if (data instanceof ListCache) {
    var pairs = data.__data__;
    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
      pairs.push([key, value]);
      this.size = ++data.size;
      return this;
    }
    data = this.__data__ = new MapCache(pairs);
  }
  data.set(key, value);
  this.size = data.size;
  return this;
}

// Add methods to `Stack`.
Stack.prototype.clear = stackClear;
Stack.prototype['delete'] = stackDelete;
Stack.prototype.get = stackGet;
Stack.prototype.has = stackHas;
Stack.prototype.set = stackSet;

/**
 * Creates an array of the enumerable property names of the array-like `value`.
 *
 * @private
 * @param {*} value The value to query.
 * @param {boolean} inherited Specify returning inherited property names.
 * @returns {Array} Returns the array of property names.
 */
function arrayLikeKeys(value, inherited) {
  var isArr = isArray(value),
      isArg = !isArr && isArguments(value),
      isBuff = !isArr && !isArg && isBuffer(value),
      isType = !isArr && !isArg && !isBuff && isTypedArray(value),
      skipIndexes = isArr || isArg || isBuff || isType,
      result = skipIndexes ? baseTimes(value.length, String) : [],
      length = result.length;

  for (var key in value) {
    if ((inherited || hasOwnProperty.call(value, key)) &&
        !(skipIndexes && (
           // Safari 9 has enumerable `arguments.length` in strict mode.
           key == 'length' ||
           // Node.js 0.10 has enumerable non-index properties on buffers.
           (isBuff && (key == 'offset' || key == 'parent')) ||
           // PhantomJS 2 has enumerable non-index properties on typed arrays.
           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
           // Skip index properties.
           isIndex(key, length)
        ))) {
      result.push(key);
    }
  }
  return result;
}

/**
 * This function is like `assignValue` except that it doesn't assign
 * `undefined` values.
 *
 * @private
 * @param {Object} object The object to modify.
 * @param {string} key The key of the property to assign.
 * @param {*} value The value to assign.
 */
function assignMergeValue(object, key, value) {
  if ((value !== undefined && !eq(object[key], value)) ||
      (value === undefined && !(key in object))) {
    baseAssignValue(object, key, value);
  }
}

/**
 * Assigns `value` to `key` of `object` if the existing value is not equivalent
 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
 * for equality comparisons.
 *
 * @private
 * @param {Object} object The object to modify.
 * @param {string} key The key of the property to assign.
 * @param {*} value The value to assign.
 */
function assignValue(object, key, value) {
  var objValue = object[key];
  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
      (value === undefined && !(key in object))) {
    baseAssignValue(object, key, value);
  }
}

/**
 * Gets the index at which the `key` is found in `array` of key-value pairs.
 *
 * @private
 * @param {Array} array The array to inspect.
 * @param {*} key The key to search for.
 * @returns {number} Returns the index of the matched value, else `-1`.
 */
function assocIndexOf(array, key) {
  var length = array.length;
  while (length--) {
    if (eq(array[length][0], key)) {
      return length;
    }
  }
  return -1;
}

/**
 * The base implementation of `assignValue` and `assignMergeValue` without
 * value checks.
 *
 * @private
 * @param {Object} object The object to modify.
 * @param {string} key The key of the property to assign.
 * @param {*} value The value to assign.
 */
function baseAssignValue(object, key, value) {
  if (key == '__proto__' && defineProperty) {
    defineProperty(object, key, {
      'configurable': true,
      'enumerable': true,
      'value': value,
      'writable': true
    });
  } else {
    object[key] = value;
  }
}

/**
 * The base implementation of `baseForOwn` which iterates over `object`
 * properties returned by `keysFunc` and invokes `iteratee` for each property.
 * Iteratee functions may exit iteration early by explicitly returning `false`.
 *
 * @private
 * @param {Object} object The object to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @param {Function} keysFunc The function to get the keys of `object`.
 * @returns {Object} Returns `object`.
 */
var baseFor = createBaseFor();

/**
 * The base implementation of `getTag` without fallbacks for buggy environments.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the `toStringTag`.
 */
function baseGetTag(value) {
  if (value == null) {
    return value === undefined ? undefinedTag : nullTag;
  }
  return (symToStringTag && symToStringTag in Object(value))
    ? getRawTag(value)
    : objectToString(value);
}

/**
 * The base implementation of `_.isArguments`.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 */
function baseIsArguments(value) {
  return isObjectLike(value) && baseGetTag(value) == argsTag;
}

/**
 * The base implementation of `_.isNative` without bad shim checks.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a native function,
 *  else `false`.
 */
function baseIsNative(value) {
  if (!isObject(value) || isMasked(value)) {
    return false;
  }
  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
  return pattern.test(toSource(value));
}

/**
 * The base implementation of `_.isTypedArray` without Node.js optimizations.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
 */
function baseIsTypedArray(value) {
  return isObjectLike(value) &&
    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
}

/**
 * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 */
function baseKeysIn(object) {
  if (!isObject(object)) {
    return nativeKeysIn(object);
  }
  var isProto = isPrototype(object),
      result = [];

  for (var key in object) {
    if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
      result.push(key);
    }
  }
  return result;
}

/**
 * The base implementation of `_.merge` without support for multiple sources.
 *
 * @private
 * @param {Object} object The destination object.
 * @param {Object} source The source object.
 * @param {number} srcIndex The index of `source`.
 * @param {Function} [customizer] The function to customize merged values.
 * @param {Object} [stack] Tracks traversed source values and their merged
 *  counterparts.
 */
function baseMerge(object, source, srcIndex, customizer, stack) {
  if (object === source) {
    return;
  }
  baseFor(source, function(srcValue, key) {
    stack || (stack = new Stack);
    if (isObject(srcValue)) {
      baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
    }
    else {
      var newValue = customizer
        ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)
        : undefined;

      if (newValue === undefined) {
        newValue = srcValue;
      }
      assignMergeValue(object, key, newValue);
    }
  }, keysIn);
}

/**
 * A specialized version of `baseMerge` for arrays and objects which performs
 * deep merges and tracks traversed objects enabling objects with circular
 * references to be merged.
 *
 * @private
 * @param {Object} object The destination object.
 * @param {Object} source The source object.
 * @param {string} key The key of the value to merge.
 * @param {number} srcIndex The index of `source`.
 * @param {Function} mergeFunc The function to merge values.
 * @param {Function} [customizer] The function to customize assigned values.
 * @param {Object} [stack] Tracks traversed source values and their merged
 *  counterparts.
 */
function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
  var objValue = safeGet(object, key),
      srcValue = safeGet(source, key),
      stacked = stack.get(srcValue);

  if (stacked) {
    assignMergeValue(object, key, stacked);
    return;
  }
  var newValue = customizer
    ? customizer(objValue, srcValue, (key + ''), object, source, stack)
    : undefined;

  var isCommon = newValue === undefined;

  if (isCommon) {
    var isArr = isArray(srcValue),
        isBuff = !isArr && isBuffer(srcValue),
        isTyped = !isArr && !isBuff && isTypedArray(srcValue);

    newValue = srcValue;
    if (isArr || isBuff || isTyped) {
      if (isArray(objValue)) {
        newValue = objValue;
      }
      else if (isArrayLikeObject(objValue)) {
        newValue = copyArray(objValue);
      }
      else if (isBuff) {
        isCommon = false;
        newValue = cloneBuffer(srcValue, true);
      }
      else if (isTyped) {
        isCommon = false;
        newValue = cloneTypedArray(srcValue, true);
      }
      else {
        newValue = [];
      }
    }
    else if (isPlainObject(srcValue) || isArguments(srcValue)) {
      newValue = objValue;
      if (isArguments(objValue)) {
        newValue = toPlainObject(objValue);
      }
      else if (!isObject(objValue) || isFunction(objValue)) {
        newValue = initCloneObject(srcValue);
      }
    }
    else {
      isCommon = false;
    }
  }
  if (isCommon) {
    // Recursively merge objects and arrays (susceptible to call stack limits).
    stack.set(srcValue, newValue);
    mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
    stack['delete'](srcValue);
  }
  assignMergeValue(object, key, newValue);
}

/**
 * The base implementation of `_.rest` which doesn't validate or coerce arguments.
 *
 * @private
 * @param {Function} func The function to apply a rest parameter to.
 * @param {number} [start=func.length-1] The start position of the rest parameter.
 * @returns {Function} Returns the new function.
 */
function baseRest(func, start) {
  return setToString(overRest(func, start, identity), func + '');
}

/**
 * The base implementation of `setToString` without support for hot loop shorting.
 *
 * @private
 * @param {Function} func The function to modify.
 * @param {Function} string The `toString` result.
 * @returns {Function} Returns `func`.
 */
var baseSetToString = !defineProperty ? identity : function(func, string) {
  return defineProperty(func, 'toString', {
    'configurable': true,
    'enumerable': false,
    'value': constant(string),
    'writable': true
  });
};

/**
 * Creates a clone of  `buffer`.
 *
 * @private
 * @param {Buffer} buffer The buffer to clone.
 * @param {boolean} [isDeep] Specify a deep clone.
 * @returns {Buffer} Returns the cloned buffer.
 */
function cloneBuffer(buffer, isDeep) {
  if (isDeep) {
    return buffer.slice();
  }
  var length = buffer.length,
      result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);

  buffer.copy(result);
  return result;
}

/**
 * Creates a clone of `arrayBuffer`.
 *
 * @private
 * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
 * @returns {ArrayBuffer} Returns the cloned array buffer.
 */
function cloneArrayBuffer(arrayBuffer) {
  var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
  new Uint8Array(result).set(new Uint8Array(arrayBuffer));
  return result;
}

/**
 * Creates a clone of `typedArray`.
 *
 * @private
 * @param {Object} typedArray The typed array to clone.
 * @param {boolean} [isDeep] Specify a deep clone.
 * @returns {Object} Returns the cloned typed array.
 */
function cloneTypedArray(typedArray, isDeep) {
  var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
  return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
}

/**
 * Copies the values of `source` to `array`.
 *
 * @private
 * @param {Array} source The array to copy values from.
 * @param {Array} [array=[]] The array to copy values to.
 * @returns {Array} Returns `array`.
 */
function copyArray(source, array) {
  var index = -1,
      length = source.length;

  array || (array = Array(length));
  while (++index < length) {
    array[index] = source[index];
  }
  return array;
}

/**
 * Copies properties of `source` to `object`.
 *
 * @private
 * @param {Object} source The object to copy properties from.
 * @param {Array} props The property identifiers to copy.
 * @param {Object} [object={}] The object to copy properties to.
 * @param {Function} [customizer] The function to customize copied values.
 * @returns {Object} Returns `object`.
 */
function copyObject(source, props, object, customizer) {
  var isNew = !object;
  object || (object = {});

  var index = -1,
      length = props.length;

  while (++index < length) {
    var key = props[index];

    var newValue = customizer
      ? customizer(object[key], source[key], key, object, source)
      : undefined;

    if (newValue === undefined) {
      newValue = source[key];
    }
    if (isNew) {
      baseAssignValue(object, key, newValue);
    } else {
      assignValue(object, key, newValue);
    }
  }
  return object;
}

/**
 * Creates a function like `_.assign`.
 *
 * @private
 * @param {Function} assigner The function to assign values.
 * @returns {Function} Returns the new assigner function.
 */
function createAssigner(assigner) {
  return baseRest(function(object, sources) {
    var index = -1,
        length = sources.length,
        customizer = length > 1 ? sources[length - 1] : undefined,
        guard = length > 2 ? sources[2] : undefined;

    customizer = (assigner.length > 3 && typeof customizer == 'function')
      ? (length--, customizer)
      : undefined;

    if (guard && isIterateeCall(sources[0], sources[1], guard)) {
      customizer = length < 3 ? undefined : customizer;
      length = 1;
    }
    object = Object(object);
    while (++index < length) {
      var source = sources[index];
      if (source) {
        assigner(object, source, index, customizer);
      }
    }
    return object;
  });
}

/**
 * Creates a base function for methods like `_.forIn` and `_.forOwn`.
 *
 * @private
 * @param {boolean} [fromRight] Specify iterating from right to left.
 * @returns {Function} Returns the new base function.
 */
function createBaseFor(fromRight) {
  return function(object, iteratee, keysFunc) {
    var index = -1,
        iterable = Object(object),
        props = keysFunc(object),
        length = props.length;

    while (length--) {
      var key = props[fromRight ? length : ++index];
      if (iteratee(iterable[key], key, iterable) === false) {
        break;
      }
    }
    return object;
  };
}

/**
 * Gets the data for `map`.
 *
 * @private
 * @param {Object} map The map to query.
 * @param {string} key The reference key.
 * @returns {*} Returns the map data.
 */
function getMapData(map, key) {
  var data = map.__data__;
  return isKeyable(key)
    ? data[typeof key == 'string' ? 'string' : 'hash']
    : data.map;
}

/**
 * Gets the native function at `key` of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @param {string} key The key of the method to get.
 * @returns {*} Returns the function if it's native, else `undefined`.
 */
function getNative(object, key) {
  var value = getValue(object, key);
  return baseIsNative(value) ? value : undefined;
}

/**
 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the raw `toStringTag`.
 */
function getRawTag(value) {
  var isOwn = hasOwnProperty.call(value, symToStringTag),
      tag = value[symToStringTag];

  try {
    value[symToStringTag] = undefined;
    var unmasked = true;
  } catch (e) {}

  var result = nativeObjectToString.call(value);
  if (unmasked) {
    if (isOwn) {
      value[symToStringTag] = tag;
    } else {
      delete value[symToStringTag];
    }
  }
  return result;
}

/**
 * Initializes an object clone.
 *
 * @private
 * @param {Object} object The object to clone.
 * @returns {Object} Returns the initialized clone.
 */
function initCloneObject(object) {
  return (typeof object.constructor == 'function' && !isPrototype(object))
    ? baseCreate(getPrototype(object))
    : {};
}

/**
 * Checks if `value` is a valid array-like index.
 *
 * @private
 * @param {*} value The value to check.
 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
 */
function isIndex(value, length) {
  var type = typeof value;
  length = length == null ? MAX_SAFE_INTEGER : length;

  return !!length &&
    (type == 'number' ||
      (type != 'symbol' && reIsUint.test(value))) &&
        (value > -1 && value % 1 == 0 && value < length);
}

/**
 * Checks if the given arguments are from an iteratee call.
 *
 * @private
 * @param {*} value The potential iteratee value argument.
 * @param {*} index The potential iteratee index or key argument.
 * @param {*} object The potential iteratee object argument.
 * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
 *  else `false`.
 */
function isIterateeCall(value, index, object) {
  if (!isObject(object)) {
    return false;
  }
  var type = typeof index;
  if (type == 'number'
        ? (isArrayLike(object) && isIndex(index, object.length))
        : (type == 'string' && index in object)
      ) {
    return eq(object[index], value);
  }
  return false;
}

/**
 * Checks if `value` is suitable for use as unique object key.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
 */
function isKeyable(value) {
  var type = typeof value;
  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
    ? (value !== '__proto__')
    : (value === null);
}

/**
 * Checks if `func` has its source masked.
 *
 * @private
 * @param {Function} func The function to check.
 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
 */
function isMasked(func) {
  return !!maskSrcKey && (maskSrcKey in func);
}

/**
 * Checks if `value` is likely a prototype object.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
 */
function isPrototype(value) {
  var Ctor = value && value.constructor,
      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;

  return value === proto;
}

/**
 * This function is like
 * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
 * except that it includes inherited enumerable properties.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 */
function nativeKeysIn(object) {
  var result = [];
  if (object != null) {
    for (var key in Object(object)) {
      result.push(key);
    }
  }
  return result;
}

/**
 * Converts `value` to a string using `Object.prototype.toString`.
 *
 * @private
 * @param {*} value The value to convert.
 * @returns {string} Returns the converted string.
 */
function objectToString(value) {
  return nativeObjectToString.call(value);
}

/**
 * A specialized version of `baseRest` which transforms the rest array.
 *
 * @private
 * @param {Function} func The function to apply a rest parameter to.
 * @param {number} [start=func.length-1] The start position of the rest parameter.
 * @param {Function} transform The rest array transform.
 * @returns {Function} Returns the new function.
 */
function overRest(func, start, transform) {
  start = nativeMax(start === undefined ? (func.length - 1) : start, 0);
  return function() {
    var args = arguments,
        index = -1,
        length = nativeMax(args.length - start, 0),
        array = Array(length);

    while (++index < length) {
      array[index] = args[start + index];
    }
    index = -1;
    var otherArgs = Array(start + 1);
    while (++index < start) {
      otherArgs[index] = args[index];
    }
    otherArgs[start] = transform(array);
    return apply(func, this, otherArgs);
  };
}

/**
 * Gets the value at `key`, unless `key` is "__proto__" or "constructor".
 *
 * @private
 * @param {Object} object The object to query.
 * @param {string} key The key of the property to get.
 * @returns {*} Returns the property value.
 */
function safeGet(object, key) {
  if (key === 'constructor' && typeof object[key] === 'function') {
    return;
  }

  if (key == '__proto__') {
    return;
  }

  return object[key];
}

/**
 * Sets the `toString` method of `func` to return `string`.
 *
 * @private
 * @param {Function} func The function to modify.
 * @param {Function} string The `toString` result.
 * @returns {Function} Returns `func`.
 */
var setToString = shortOut(baseSetToString);

/**
 * Creates a function that'll short out and invoke `identity` instead
 * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
 * milliseconds.
 *
 * @private
 * @param {Function} func The function to restrict.
 * @returns {Function} Returns the new shortable function.
 */
function shortOut(func) {
  var count = 0,
      lastCalled = 0;

  return function() {
    var stamp = nativeNow(),
        remaining = HOT_SPAN - (stamp - lastCalled);

    lastCalled = stamp;
    if (remaining > 0) {
      if (++count >= HOT_COUNT) {
        return arguments[0];
      }
    } else {
      count = 0;
    }
    return func.apply(undefined, arguments);
  };
}

/**
 * Converts `func` to its source code.
 *
 * @private
 * @param {Function} func The function to convert.
 * @returns {string} Returns the source code.
 */
function toSource(func) {
  if (func != null) {
    try {
      return funcToString.call(func);
    } catch (e) {}
    try {
      return (func + '');
    } catch (e) {}
  }
  return '';
}

/**
 * Performs a
 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
 * comparison between two values to determine if they are equivalent.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
 * @example
 *
 * var object = { 'a': 1 };
 * var other = { 'a': 1 };
 *
 * _.eq(object, object);
 * // => true
 *
 * _.eq(object, other);
 * // => false
 *
 * _.eq('a', 'a');
 * // => true
 *
 * _.eq('a', Object('a'));
 * // => false
 *
 * _.eq(NaN, NaN);
 * // => true
 */
function eq(value, other) {
  return value === other || (value !== value && other !== other);
}

/**
 * Checks if `value` is likely an `arguments` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 *  else `false`.
 * @example
 *
 * _.isArguments(function() { return arguments; }());
 * // => true
 *
 * _.isArguments([1, 2, 3]);
 * // => false
 */
var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
    !propertyIsEnumerable.call(value, 'callee');
};

/**
 * Checks if `value` is classified as an `Array` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
 * @example
 *
 * _.isArray([1, 2, 3]);
 * // => true
 *
 * _.isArray(document.body.children);
 * // => false
 *
 * _.isArray('abc');
 * // => false
 *
 * _.isArray(_.noop);
 * // => false
 */
var isArray = Array.isArray;

/**
 * Checks if `value` is array-like. A value is considered array-like if it's
 * not a function and has a `value.length` that's an integer greater than or
 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
 * @example
 *
 * _.isArrayLike([1, 2, 3]);
 * // => true
 *
 * _.isArrayLike(document.body.children);
 * // => true
 *
 * _.isArrayLike('abc');
 * // => true
 *
 * _.isArrayLike(_.noop);
 * // => false
 */
function isArrayLike(value) {
  return value != null && isLength(value.length) && !isFunction(value);
}

/**
 * This method is like `_.isArrayLike` except that it also checks if `value`
 * is an object.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array-like object,
 *  else `false`.
 * @example
 *
 * _.isArrayLikeObject([1, 2, 3]);
 * // => true
 *
 * _.isArrayLikeObject(document.body.children);
 * // => true
 *
 * _.isArrayLikeObject('abc');
 * // => false
 *
 * _.isArrayLikeObject(_.noop);
 * // => false
 */
function isArrayLikeObject(value) {
  return isObjectLike(value) && isArrayLike(value);
}

/**
 * Checks if `value` is a buffer.
 *
 * @static
 * @memberOf _
 * @since 4.3.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
 * @example
 *
 * _.isBuffer(new Buffer(2));
 * // => true
 *
 * _.isBuffer(new Uint8Array(2));
 * // => false
 */
var isBuffer = nativeIsBuffer || stubFalse;

/**
 * Checks if `value` is classified as a `Function` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
 * @example
 *
 * _.isFunction(_);
 * // => true
 *
 * _.isFunction(/abc/);
 * // => false
 */
function isFunction(value) {
  if (!isObject(value)) {
    return false;
  }
  // The use of `Object#toString` avoids issues with the `typeof` operator
  // in Safari 9 which returns 'object' for typed arrays and other constructors.
  var tag = baseGetTag(value);
  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
}

/**
 * Checks if `value` is a valid array-like length.
 *
 * **Note:** This method is loosely based on
 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
 * @example
 *
 * _.isLength(3);
 * // => true
 *
 * _.isLength(Number.MIN_VALUE);
 * // => false
 *
 * _.isLength(Infinity);
 * // => false
 *
 * _.isLength('3');
 * // => false
 */
function isLength(value) {
  return typeof value == 'number' &&
    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}

/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */
function isObject(value) {
  var type = typeof value;
  return value != null && (type == 'object' || type == 'function');
}

/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */
function isObjectLike(value) {
  return value != null && typeof value == 'object';
}

/**
 * Checks if `value` is a plain object, that is, an object created by the
 * `Object` constructor or one with a `[[Prototype]]` of `null`.
 *
 * @static
 * @memberOf _
 * @since 0.8.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
 * @example
 *
 * function Foo() {
 *   this.a = 1;
 * }
 *
 * _.isPlainObject(new Foo);
 * // => false
 *
 * _.isPlainObject([1, 2, 3]);
 * // => false
 *
 * _.isPlainObject({ 'x': 0, 'y': 0 });
 * // => true
 *
 * _.isPlainObject(Object.create(null));
 * // => true
 */
function isPlainObject(value) {
  if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
    return false;
  }
  var proto = getPrototype(value);
  if (proto === null) {
    return true;
  }
  var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
  return typeof Ctor == 'function' && Ctor instanceof Ctor &&
    funcToString.call(Ctor) == objectCtorString;
}

/**
 * Checks if `value` is classified as a typed array.
 *
 * @static
 * @memberOf _
 * @since 3.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
 * @example
 *
 * _.isTypedArray(new Uint8Array);
 * // => true
 *
 * _.isTypedArray([]);
 * // => false
 */
var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;

/**
 * Converts `value` to a plain object flattening inherited enumerable string
 * keyed properties of `value` to own properties of the plain object.
 *
 * @static
 * @memberOf _
 * @since 3.0.0
 * @category Lang
 * @param {*} value The value to convert.
 * @returns {Object} Returns the converted plain object.
 * @example
 *
 * function Foo() {
 *   this.b = 2;
 * }
 *
 * Foo.prototype.c = 3;
 *
 * _.assign({ 'a': 1 }, new Foo);
 * // => { 'a': 1, 'b': 2 }
 *
 * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));
 * // => { 'a': 1, 'b': 2, 'c': 3 }
 */
function toPlainObject(value) {
  return copyObject(value, keysIn(value));
}

/**
 * Creates an array of the own and inherited enumerable property names of `object`.
 *
 * **Note:** Non-object values are coerced to objects.
 *
 * @static
 * @memberOf _
 * @since 3.0.0
 * @category Object
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 * @example
 *
 * function Foo() {
 *   this.a = 1;
 *   this.b = 2;
 * }
 *
 * Foo.prototype.c = 3;
 *
 * _.keysIn(new Foo);
 * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
 */
function keysIn(object) {
  return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
}

/**
 * This method is like `_.assign` except that it recursively merges own and
 * inherited enumerable string keyed properties of source objects into the
 * destination object. Source properties that resolve to `undefined` are
 * skipped if a destination value exists. Array and plain object properties
 * are merged recursively. Other objects and value types are overridden by
 * assignment. Source objects are applied from left to right. Subsequent
 * sources overwrite property assignments of previous sources.
 *
 * **Note:** This method mutates `object`.
 *
 * @static
 * @memberOf _
 * @since 0.5.0
 * @category Object
 * @param {Object} object The destination object.
 * @param {...Object} [sources] The source objects.
 * @returns {Object} Returns `object`.
 * @example
 *
 * var object = {
 *   'a': [{ 'b': 2 }, { 'd': 4 }]
 * };
 *
 * var other = {
 *   'a': [{ 'c': 3 }, { 'e': 5 }]
 * };
 *
 * _.merge(object, other);
 * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
 */
var merge = createAssigner(function(object, source, srcIndex) {
  baseMerge(object, source, srcIndex);
});

/**
 * Creates a function that returns `value`.
 *
 * @static
 * @memberOf _
 * @since 2.4.0
 * @category Util
 * @param {*} value The value to return from the new function.
 * @returns {Function} Returns the new constant function.
 * @example
 *
 * var objects = _.times(2, _.constant({ 'a': 1 }));
 *
 * console.log(objects);
 * // => [{ 'a': 1 }, { 'a': 1 }]
 *
 * console.log(objects[0] === objects[1]);
 * // => true
 */
function constant(value) {
  return function() {
    return value;
  };
}

/**
 * This method returns the first argument it receives.
 *
 * @static
 * @since 0.1.0
 * @memberOf _
 * @category Util
 * @param {*} value Any value.
 * @returns {*} Returns `value`.
 * @example
 *
 * var object = { 'a': 1 };
 *
 * console.log(_.identity(object) === object);
 * // => true
 */
function identity(value) {
  return value;
}

/**
 * This method returns `false`.
 *
 * @static
 * @memberOf _
 * @since 4.13.0
 * @category Util
 * @returns {boolean} Returns `false`.
 * @example
 *
 * _.times(2, _.stubFalse);
 * // => [false, false]
 */
function stubFalse() {
  return false;
}

module.exports = merge;

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(108), __webpack_require__(250)(module)))

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _slicedToArray2 = __webpack_require__(393);

var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);

var _getPrototypeOf = __webpack_require__(246);

var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _createClass2 = __webpack_require__(34);

var _createClass3 = _interopRequireDefault(_createClass2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _d = __webpack_require__(217);

var _shared = __webpack_require__(247);

var _reactFauxDom = __webpack_require__(273);

var _reactFauxDom2 = _interopRequireDefault(_reactFauxDom);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _radium = __webpack_require__(248);

var _lodash = __webpack_require__(249);

var _lodash2 = _interopRequireDefault(_lodash);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var color = (0, _d.scaleOrdinal)(_d.schemeCategory20).domain((0, _d.range)(0, 20));
var pie = (0, _d.pie)().value(function (d) {
  return d.value;
}).sort(null);

var getSliceFill = function getSliceFill(d, i) {
  return d.data.color ? d.data.color : color(i);
};

var getLabelText = function getLabelText(d) {
  return d.data.key;
};

var PieChart = function (_PureComponent) {
  (0, _inherits3.default)(PieChart, _PureComponent);
  (0, _createClass3.default)(PieChart, null, [{
    key: 'propTypes',
    get: function get() {
      return {
        data: _propTypes2.default.array.isRequired,
        innerHoleSize: _propTypes2.default.number,
        size: _propTypes2.default.number,
        padding: _propTypes2.default.number,
        labels: _propTypes2.default.bool,
        styles: _propTypes2.default.object,
        mouseOverHandler: _propTypes2.default.func,
        mouseOutHandler: _propTypes2.default.func,
        mouseMoveHandler: _propTypes2.default.func,
        clickHandler: _propTypes2.default.func
      };
    }
  }, {
    key: 'defaultProps',
    get: function get() {
      return {
        size: 400,
        innerHoleSize: 0,
        padding: 2,
        labels: false,
        styles: {},
        mouseOverHandler: function mouseOverHandler() {},
        mouseOutHandler: function mouseOutHandler() {},
        mouseMoveHandler: function mouseMoveHandler() {},
        clickHandler: function clickHandler() {}
      };
    }
  }]);

  function PieChart(props) {
    (0, _classCallCheck3.default)(this, PieChart);

    var _this = (0, _possibleConstructorReturn3.default)(this, (PieChart.__proto__ || (0, _getPrototypeOf2.default)(PieChart)).call(this, props));

    _this.uid = (0, _shared.createUniqueID)(props);
    _this.currentSlices = [];
    _this.currentLabels = [];
    _this.tweenSlice = function (slice, index) {
      var currentSlice = _this.currentSlices[index];
      var i = (0, _d.interpolate)(currentSlice, slice);
      _this.currentSlices[index] = slice;
      return function (t) {
        return _this.getSliceArc()(i(t));
      };
    };
    return _this;
  }

  (0, _createClass3.default)(PieChart, [{
    key: 'componentDidMount',
    value: function componentDidMount() {
      this.initialise();
    }
  }, {
    key: 'componentDidUpdate',
    value: function componentDidUpdate() {
      this.transition();
    }
  }, {
    key: 'getSliceArc',
    value: function getSliceArc() {
      var padding = this.props.padding;


      var innerRadius = this.getInnerRadius();
      var outerRadius = this.getOuterRadius();

      return (0, _d.arc)().innerRadius(innerRadius - padding).outerRadius(outerRadius - padding);
    }
  }, {
    key: 'getLabelArc',
    value: function getLabelArc() {
      var padding = this.props.padding;


      var outerRadius = this.getOuterRadius();
      var radius = outerRadius - padding - 20 * outerRadius / 100;

      return (0, _d.arc)().outerRadius(radius).innerRadius(radius);
    }
  }, {
    key: 'getOuterRadius',
    value: function getOuterRadius() {
      return this.props.size * 0.5;
    }
  }, {
    key: 'getInnerRadius',
    value: function getInnerRadius() {
      return this.props.innerHoleSize * 0.5;
    }
  }, {
    key: 'getSlices',
    value: function getSlices() {
      var data = this.props.data;


      var uid = this.uid;

      return (0, _d.select)('#slices-' + uid).datum(data).selectAll('path');
    }
  }, {
    key: 'getLabels',
    value: function getLabels() {
      var data = this.props.data;


      var uid = this.uid;

      return (0, _d.select)('#labels-' + uid).datum(data).selectAll('text');
    }
  }, {
    key: 'createSvgNode',
    value: function createSvgNode(_ref) {
      var size = _ref.size;

      var node = new _reactFauxDom2.default.Element('svg');
      node.setAttribute('width', size);
      node.setAttribute('height', size);
      return node;
    }
  }, {
    key: 'createSvgRoot',
    value: function createSvgRoot(_ref2) {
      var node = _ref2.node;

      return (0, _d.select)(node);
    }
  }, {
    key: 'initialiseLabels',
    value: function initialiseLabels() {
      var _this2 = this;

      var text = this.getLabels().data(pie);

      var getLabelArcTransform = function getLabelArcTransform(d) {
        var _getLabelArc$centroid = _this2.getLabelArc().centroid(d),
            _getLabelArc$centroid2 = (0, _slicedToArray3.default)(_getLabelArc$centroid, 2),
            labelX = _getLabelArc$centroid2[0],
            labelY = _getLabelArc$centroid2[1];

        return 'translate(' + labelX + ', ' + labelY + ')';
      };

      var currentLabels = this.currentLabels;

      text.enter().append('text').attr('dy', '.35em').attr('class', 'pie-chart-label').attr('transform', getLabelArcTransform).text(getLabelText).each(function (d) {
        return currentLabels.push(d);
      });
    }
  }, {
    key: 'initialiseSlices',
    value: function initialiseSlices() {
      var _props = this.props,
          mouseOverHandler = _props.mouseOverHandler,
          mouseOutHandler = _props.mouseOutHandler,
          mouseMoveHandler = _props.mouseMoveHandler,
          clickHandler = _props.clickHandler;


      var mouseover = function mouseover(d) {
        return mouseOverHandler(d, _d.event);
      };
      var mouseout = function mouseout(d) {
        return mouseOutHandler(d, _d.event);
      };
      var mousemove = function mousemove(d) {
        return mouseMoveHandler(d, _d.event);
      };
      var click = function click(d) {
        return clickHandler(d, _d.event);
      };

      var currentSlices = this.currentSlices;

      var path = this.getSlices().data(pie);

      path.enter().append('path').attr('class', 'pie-chart-slice').attr('fill', getSliceFill).attr('d', this.getSliceArc()).on('mouseover', mouseover).on('mouseout', mouseout).on('mousemove', mousemove).on('click', click).each(function (d) {
        return currentSlices.push(d);
      });
    }
  }, {
    key: 'initialise',
    value: function initialise() {
      var labels = this.props.labels;


      this.initialiseSlices();

      if (labels) {
        this.initialiseLabels();
      }
    }
  }, {
    key: 'transitionSlices',
    value: function transitionSlices() {
      var _props2 = this.props,
          data = _props2.data,
          mouseOverHandler = _props2.mouseOverHandler,
          mouseOutHandler = _props2.mouseOutHandler,
          mouseMoveHandler = _props2.mouseMoveHandler,
          clickHandler = _props2.clickHandler;


      var mouseover = function mouseover(d) {
        return mouseOverHandler(d, _d.event);
      };
      var mouseout = function mouseout(d) {
        return mouseOutHandler(d, _d.event);
      };
      var mousemove = function mousemove(d) {
        return mouseMoveHandler(d, _d.event);
      };
      var click = function click(d) {
        return clickHandler(d, _d.event);
      };

      var n = data.length;
      var currentSlices = this.currentSlices;

      var path = this.getSlices().data(pie);

      if (n) {
        // we don't need to do this, but it's fun
        /*
         * Change current slices
         * Transition current slice dimensions
         */
        path.attr('fill', getSliceFill).on('mouseover', mouseover).on('mouseout', mouseout).on('mousemove', mousemove).on('click', click).transition().duration(750).attrTween('d', this.tweenSlice);

        /*
         * Add new slices
         */
        path.enter().append('path').attr('class', 'pie-chart-slice').attr('fill', getSliceFill).on('mouseover', mouseover).on('mouseout', mouseout).on('mousemove', mousemove).on('click', click).each(function (d, i) {
          return currentSlices.splice(i, 1, d);
        }).transition().duration(750).attrTween('d', this.tweenSlice);
      }

      /*
       * Remove old slices
       */
      path.exit().remove();

      currentSlices.length = n; // = this.currentSlices.slice(0, n)
    }
  }, {
    key: 'transitionLabels',
    value: function transitionLabels() {
      var _this3 = this;

      var data = this.props.data;


      var getLabelArcTransform = function getLabelArcTransform(d) {
        var _getLabelArc$centroid3 = _this3.getLabelArc().centroid(d),
            _getLabelArc$centroid4 = (0, _slicedToArray3.default)(_getLabelArc$centroid3, 2),
            labelX = _getLabelArc$centroid4[0],
            labelY = _getLabelArc$centroid4[1];

        return 'translate(' + labelX + ', ' + labelY + ')';
      };

      var n = data.length;
      var currentLabels = this.currentLabels;
      var text = this.getLabels().data(pie);

      if (n) {
        // we don't need to do this, but it's fun
        /*
         * Change current labels
         */
        text.transition().duration(750).attr('transform', getLabelArcTransform).text(getLabelText);

        /*
         * Add new labels
         */
        text.enter().append('text').attr('dy', '.35em').attr('class', 'pie-chart-label').attr('transform', getLabelArcTransform).text(getLabelText).each(function (d, i) {
          return currentLabels.splice(i, 1, d);
        }).transition().duration(750);
      }

      /*
       * Remove old labels
       */
      text.exit().remove();

      currentLabels.length = n;
    }
  }, {
    key: 'transition',
    value: function transition() {
      var labels = this.props.labels;


      this.transitionSlices();

      if (labels) {
        this.transitionLabels();
      }
    }
  }, {
    key: 'createSlices',
    value: function createSlices(_ref3) {
      var root = _ref3.root;

      var uid = this.uid;
      var radius = this.getOuterRadius();

      root.append('g').attr('id', 'slices-' + uid).attr('transform', 'translate(' + radius + ', ' + radius + ')');
    }
  }, {
    key: 'createLabels',
    value: function createLabels(_ref4) {
      var root = _ref4.root;

      var uid = this.uid;
      var radius = this.getOuterRadius();

      root.append('g').attr('id', 'labels-' + uid).attr('transform', 'translate(' + radius + ', ' + radius + ')');
    }
  }, {
    key: 'createStyle',
    value: function createStyle() {
      var styles = this.props.styles;


      var uid = this.uid;
      var scope = '.pie-chart-' + uid;
      var rules = (0, _lodash2.default)({}, _shared.defaultStyles, styles);

      return _react2.default.createElement(_radium.Style, {
        scopeSelector: scope,
        rules: rules
      });
    }
  }, {
    key: 'calculateChartParameters',
    value: function calculateChartParameters() {
      var size = this.props.size;


      var node = this.createSvgNode({ size: size });
      var root = this.createSvgRoot({ node: node });

      return {
        node: node,
        root: root
      };
    }
  }, {
    key: 'render',
    value: function render() {
      var labels = this.props.labels;


      var p = this.calculateChartParameters();

      this.createSlices(p);

      if (labels) {
        this.createLabels(p);
      }

      var uid = this.uid;
      var className = 'pie-chart-' + uid;
      var node = p.node;


      return _react2.default.createElement(
        'div',
        { className: className },
        this.createStyle(),
        node.toReact()
      );
    }
  }]);
  return PieChart;
}(_react.PureComponent);

exports.default = PieChart;
module.exports = exports['default'];
//# sourceMappingURL=index.js.map

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _slicedToArray2 = __webpack_require__(393);

var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);

var _getPrototypeOf = __webpack_require__(246);

var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _createClass2 = __webpack_require__(34);

var _createClass3 = _interopRequireDefault(_createClass2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _d = __webpack_require__(217);

var _shared = __webpack_require__(247);

var _reactFauxDom = __webpack_require__(273);

var _reactFauxDom2 = _interopRequireDefault(_reactFauxDom);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _radium = __webpack_require__(248);

var _lodash = __webpack_require__(249);

var _lodash2 = _interopRequireDefault(_lodash);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var color = (0, _d.scaleOrdinal)(_d.schemeCategory20).domain((0, _d.range)(0, 20));
var pie = (0, _d.pie)().value(function (d) {
  return d.value;
}).sort(null);

var getSliceFill = function getSliceFill(d, i) {
  return d.data.color ? d.data.color : color(i);
};

var getLabelText = function getLabelText(d) {
  return d.data.key;
};

var PieChart = function (_PureComponent) {
  (0, _inherits3.default)(PieChart, _PureComponent);
  (0, _createClass3.default)(PieChart, null, [{
    key: 'propTypes',
    get: function get() {
      return {
        data: _propTypes2.default.array.isRequired,
        innerHoleSize: _propTypes2.default.number,
        size: _propTypes2.default.number,
        padding: _propTypes2.default.number,
        labels: _propTypes2.default.bool,
        styles: _propTypes2.default.object,
        mouseOverHandler: _propTypes2.default.func,
        mouseOutHandler: _propTypes2.default.func,
        mouseMoveHandler: _propTypes2.default.func,
        clickHandler: _propTypes2.default.func
      };
    }
  }, {
    key: 'defaultProps',
    get: function get() {
      return {
        size: 400,
        innerHoleSize: 0,
        padding: 2,
        labels: false,
        styles: {},
        mouseOverHandler: function mouseOverHandler() {},
        mouseOutHandler: function mouseOutHandler() {},
        mouseMoveHandler: function mouseMoveHandler() {},
        clickHandler: function clickHandler() {}
      };
    }
  }]);

  function PieChart(props) {
    (0, _classCallCheck3.default)(this, PieChart);

    var _this = (0, _possibleConstructorReturn3.default)(this, (PieChart.__proto__ || (0, _getPrototypeOf2.default)(PieChart)).call(this, props));

    _this.uid = (0, _shared.createUniqueID)(props);
    return _this;
  }

  (0, _createClass3.default)(PieChart, [{
    key: 'getSliceArc',
    value: function getSliceArc() {
      var padding = this.props.padding;


      var innerRadius = this.getInnerRadius();
      var outerRadius = this.getOuterRadius();

      return (0, _d.arc)().innerRadius(innerRadius - padding).outerRadius(outerRadius - padding);
    }
  }, {
    key: 'getLabelArc',
    value: function getLabelArc() {
      var padding = this.props.padding;


      var outerRadius = this.getOuterRadius();
      var radius = outerRadius - padding - 20 * outerRadius / 100;

      return (0, _d.arc)().outerRadius(radius).innerRadius(radius);
    }
  }, {
    key: 'getOuterRadius',
    value: function getOuterRadius() {
      return this.props.size * 0.5;
    }
  }, {
    key: 'getInnerRadius',
    value: function getInnerRadius() {
      return this.props.innerHoleSize * 0.5;
    }
  }, {
    key: 'createSvgNode',
    value: function createSvgNode(_ref) {
      var size = _ref.size;

      var node = new _reactFauxDom2.default.Element('svg');
      node.setAttribute('width', size);
      node.setAttribute('height', size);
      return node;
    }
  }, {
    key: 'createSvgRoot',
    value: function createSvgRoot(_ref2) {
      var node = _ref2.node;

      return (0, _d.select)(node);
    }
  }, {
    key: 'createSlices',
    value: function createSlices(_ref3) {
      var root = _ref3.root;
      var _props = this.props,
          data = _props.data,
          mouseOverHandler = _props.mouseOverHandler,
          mouseOutHandler = _props.mouseOutHandler,
          mouseMoveHandler = _props.mouseMoveHandler,
          clickHandler = _props.clickHandler;


      var radius = this.getOuterRadius();

      var mouseover = function mouseover(d) {
        return mouseOverHandler(d, _d.event);
      };
      var mouseout = function mouseout(d) {
        return mouseOutHandler(d, _d.event);
      };
      var mousemove = function mousemove(d) {
        return mouseMoveHandler(d, _d.event);
      };
      var click = function click(d) {
        return clickHandler(d, _d.event);
      };

      var path = root.append('g').attr('transform', 'translate(' + radius + ', ' + radius + ')').datum(data).selectAll('path').data(pie);

      path.enter().append('path').attr('class', 'pie-chart-slice').attr('fill', getSliceFill).attr('d', this.getSliceArc()).on('mouseover', mouseover).on('mouseout', mouseout).on('mousemove', mousemove).on('click', click);
    }
  }, {
    key: 'createLabels',
    value: function createLabels(_ref4) {
      var _this2 = this;

      var root = _ref4.root;
      var data = this.props.data;


      var radius = this.getOuterRadius();

      var getLabelArcTransform = function getLabelArcTransform(d) {
        var _getLabelArc$centroid = _this2.getLabelArc().centroid(d),
            _getLabelArc$centroid2 = (0, _slicedToArray3.default)(_getLabelArc$centroid, 2),
            labelX = _getLabelArc$centroid2[0],
            labelY = _getLabelArc$centroid2[1];

        return 'translate(' + labelX + ', ' + labelY + ')';
      };

      var text = root.append('g').attr('transform', 'translate(' + radius + ', ' + radius + ')').datum(data).selectAll('text').data(pie);
      text.enter().append('text').attr('class', 'pie-chart-label').attr('dy', '.35em').attr('transform', getLabelArcTransform).text(getLabelText);
    }
  }, {
    key: 'createStyle',
    value: function createStyle() {
      var styles = this.props.styles;


      var uid = this.uid;
      var scope = '.pie-chart-' + uid;
      var rules = (0, _lodash2.default)({}, _shared.defaultStyles, styles);

      return _react2.default.createElement(_radium.Style, {
        scopeSelector: scope,
        rules: rules
      });
    }
  }, {
    key: 'calculateChartParameters',
    value: function calculateChartParameters() {
      var size = this.props.size;


      var node = this.createSvgNode({ size: size });
      var root = this.createSvgRoot({ node: node });

      return {
        node: node,
        root: root
      };
    }
  }, {
    key: 'render',
    value: function render() {
      var labels = this.props.labels;


      var p = this.calculateChartParameters();

      this.createSlices(p);

      if (labels) {
        this.createLabels(p);
      }

      var uid = this.uid;
      var className = 'pie-chart-' + uid;
      var node = p.node;


      return _react2.default.createElement(
        'div',
        { className: className },
        this.createStyle(),
        node.toReact()
      );
    }
  }]);
  return PieChart;
}(_react.PureComponent);

exports.default = PieChart;
module.exports = exports['default'];
//# sourceMappingURL=index.js.map

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _getPrototypeOf = __webpack_require__(246);

var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _createClass2 = __webpack_require__(34);

var _createClass3 = _interopRequireDefault(_createClass2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _reactFauxDom = __webpack_require__(273);

var _reactFauxDom2 = _interopRequireDefault(_reactFauxDom);

var _d = __webpack_require__(217);

var _shared = __webpack_require__(247);

var _interpolate = __webpack_require__(495);

var _interpolate2 = _interopRequireDefault(_interpolate);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _radium = __webpack_require__(248);

var _lodash = __webpack_require__(249);

var _lodash2 = _interopRequireDefault(_lodash);

var _d3TimeFormat = __webpack_require__(169);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var dateParser = {};

var LineChart = function (_React$Component) {
  (0, _inherits3.default)(LineChart, _React$Component);
  (0, _createClass3.default)(LineChart, null, [{
    key: 'propTypes',
    get: function get() {
      return {
        data: _propTypes2.default.array.isRequired,
        width: _propTypes2.default.number,
        height: _propTypes2.default.number,
        xType: _propTypes2.default.string,
        yType: _propTypes2.default.string,
        datePattern: _propTypes2.default.string,
        interpolate: _propTypes2.default.string,
        style: _propTypes2.default.object,
        margin: _propTypes2.default.object,
        axes: _propTypes2.default.bool,
        grid: _propTypes2.default.bool,
        verticalGrid: _propTypes2.default.bool,
        xDomainRange: _propTypes2.default.array,
        yDomainRange: _propTypes2.default.array,
        tickTimeDisplayFormat: _propTypes2.default.string,
        yTicks: _propTypes2.default.number,
        xTicks: _propTypes2.default.number,
        dataPoints: _propTypes2.default.bool,
        lineColors: _propTypes2.default.array,
        axisLabels: _propTypes2.default.shape({
          x: _propTypes2.default.string,
          y: _propTypes2.default.string
        }),
        yAxisOrientRight: _propTypes2.default.bool,
        mouseOverHandler: _propTypes2.default.func,
        mouseOutHandler: _propTypes2.default.func,
        mouseMoveHandler: _propTypes2.default.func,
        clickHandler: _propTypes2.default.func
      };
    }
  }, {
    key: 'defaultProps',
    get: function get() {
      return {
        width: 200,
        height: 150,
        datePattern: '%d-%b-%y',
        interpolate: 'linear',
        axes: false,
        xType: 'linear',
        yType: 'linear',
        lineColors: [],
        axisLabels: {
          x: '',
          y: ''
        },
        mouseOverHandler: function mouseOverHandler() {},
        mouseOutHandler: function mouseOutHandler() {},
        mouseMoveHandler: function mouseMoveHandler() {},
        clickHandler: function clickHandler() {}
      };
    }
  }]);

  function LineChart(props) {
    (0, _classCallCheck3.default)(this, LineChart);

    var _this = (0, _possibleConstructorReturn3.default)(this, (LineChart.__proto__ || (0, _getPrototypeOf2.default)(LineChart)).call(this, props));

    _this.uid = (0, _shared.createUniqueID)(props);
    return _this;
  }

  (0, _createClass3.default)(LineChart, [{
    key: 'componentDidMount',
    value: function componentDidMount() {
      var lineChart = this.refs.lineChart;
      (0, _shared.createCircularTicks)(lineChart);
    }
  }, {
    key: 'componentDidUpdate',
    value: function componentDidUpdate() {
      var lineChart = this.refs.lineChart;
      (0, _shared.createCircularTicks)(lineChart);
    }
  }, {
    key: 'createSvgNode',
    value: function createSvgNode(_ref) {
      var m = _ref.m,
          w = _ref.w,
          h = _ref.h;

      var node = new _reactFauxDom2.default.Element('svg');
      node.setAttribute('width', w + m.left + m.right);
      node.setAttribute('height', h + m.top + m.bottom);
      return node;
    }
  }, {
    key: 'createSvgRoot',
    value: function createSvgRoot(_ref2) {
      var node = _ref2.node,
          m = _ref2.m;

      return (0, _d.select)(node).append('g').attr('transform', 'translate(' + m.left + ', ' + m.top + ')');
    }
  }, {
    key: 'createXAxis',
    value: function createXAxis(_ref3) {
      var root = _ref3.root,
          m = _ref3.m,
          w = _ref3.w,
          h = _ref3.h,
          x = _ref3.x;
      var _props = this.props,
          xType = _props.xType,
          label = _props.axisLabels.x,
          xTicks = _props.xTicks,
          grid = _props.grid,
          verticalGrid = _props.verticalGrid,
          tickTimeDisplayFormat = _props.tickTimeDisplayFormat,
          yAxisOrientRight = _props.yAxisOrientRight;


      var axis = (0, _d.axisBottom)(x);

      if (xType === 'time' && tickTimeDisplayFormat) {
        axis.tickFormat((0, _d.timeFormat)(tickTimeDisplayFormat));
      }

      if (grid && verticalGrid) {
        axis.tickSize(-h, 6).tickPadding(15);
      } else {
        axis.tickSize(0).tickPadding(15);
      }

      if (xTicks) {
        axis.ticks(xTicks);
      }

      var group = root.append('g').attr('class', 'x axis').attr('transform', 'translate(0, ' + h + ')');

      group.call(axis);

      if (label) {
        group.append('text').attr('class', 'label').attr('y', m.bottom - 10).attr('x', yAxisOrientRight ? 0 : w).style('text-anchor', yAxisOrientRight ? 'start' : 'end').text(label);
      }
    }
  }, {
    key: 'createYAxis',
    value: function createYAxis(_ref4) {
      var root = _ref4.root,
          m = _ref4.m,
          w = _ref4.w,
          y = _ref4.y;
      var _props2 = this.props,
          yType = _props2.yType,
          label = _props2.axisLabels.y,
          yTicks = _props2.yTicks,
          grid = _props2.grid,
          tickTimeDisplayFormat = _props2.tickTimeDisplayFormat,
          yAxisOrientRight = _props2.yAxisOrientRight;


      var axis = yAxisOrientRight ? (0, _d.axisRight)(y) : (0, _d.axisLeft)(y);

      if (yType === 'time' && tickTimeDisplayFormat) {
        axis.tickFormat((0, _d.timeFormat)(tickTimeDisplayFormat));
      }
      if (grid) {
        axis.tickSize(-w, 6).tickPadding(12);
      } else {
        axis.tickPadding(10);
      }

      if (yTicks) {
        axis.ticks(yTicks);
      }

      var group = root.append('g').attr('class', 'y axis').attr('transform', yAxisOrientRight ? 'translate(' + w + ', 0)' : 'translate(0, 0)');

      group.call(axis);

      if (label) {
        group.append('text').attr('class', 'label').attr('transform', 'rotate(-90)').attr('x', 0).attr('y', yAxisOrientRight ? -20 + m.right : 0 - m.left).attr('dy', '.9em').style('text-anchor', 'end').text(label);
      }
    }
  }, {
    key: 'createLinePathChart',
    value: function createLinePathChart(_ref5) {
      var root = _ref5.root,
          x = _ref5.x,
          y = _ref5.y,
          xValue = _ref5.xValue,
          yValue = _ref5.yValue,
          colors = _ref5.colors;
      var _props3 = this.props,
          data = _props3.data,
          interpolate = _props3.interpolate;


      var getStroke = function getStroke(d, i) {
        return colors[i];
      };

      var linePath = (0, _d.line)().curve((0, _interpolate2.default)(interpolate)).x(function (d) {
        return x(xValue(d));
      }).y(function (d) {
        return y(yValue(d));
      });

      var group = root.append('g').attr('class', 'lineChart');

      group.selectAll('path').data(data).enter().append('path').attr('class', 'line').style('stroke', getStroke).attr('d', linePath);
    }
  }, {
    key: 'createPoints',
    value: function createPoints(_ref6) {
      var _this2 = this;

      var root = _ref6.root,
          x = _ref6.x,
          y = _ref6.y,
          colors = _ref6.colors;
      var _props4 = this.props,
          data = _props4.data,
          xType = _props4.xType,
          yType = _props4.yType,
          mouseOverHandler = _props4.mouseOverHandler,
          mouseOutHandler = _props4.mouseOutHandler,
          mouseMoveHandler = _props4.mouseMoveHandler,
          clickHandler = _props4.clickHandler;

      /*
       * We don't really need to do this, but it
       * avoids obscure "this" below
       */

      var calculateDate = function calculateDate(v) {
        return _this2.parseDate(v);
      };

      var getStroke = function getStroke(d, i) {
        return colors[i];
      };

      /*
       * Creating the calculation functions
       */
      var calculateCX = function calculateCX(d) {
        return xType === 'time' ? x(calculateDate(d.x)) : x(d.x);
      };
      var calculateCY = function calculateCY(d) {
        return yType === 'time' ? y(calculateDate(d.y)) : y(d.y);
      };

      var mouseover = function mouseover(d) {
        return mouseOverHandler(d, _d.event);
      };
      var mouseout = function mouseout(d) {
        return mouseOutHandler(d, _d.event);
      };
      var mousemove = function mousemove(d) {
        return mouseMoveHandler(d, _d.event);
      };
      var click = function click(d) {
        return clickHandler(d, _d.event);
      };

      var group = root.append('g').attr('class', 'dataPoints');

      data.forEach(function (item) {
        item.forEach(function (d) {
          /*
           * Applying the calculation functions
           */
          group.datum(d).append('circle').attr('class', 'data-point').style('strokeWidth', '2px').style('stroke', getStroke).style('fill', 'white').attr('cx', calculateCX).attr('cy', calculateCY).on('mouseover', mouseover).on('mouseout', mouseout).on('mousemove', mousemove).on('click', click);
        });
      });
    }
  }, {
    key: 'createStyle',
    value: function createStyle() {
      var _props5 = this.props,
          style = _props5.style,
          grid = _props5.grid,
          verticalGrid = _props5.verticalGrid,
          yAxisOrientRight = _props5.yAxisOrientRight;


      var uid = this.uid;
      var scope = '.line-chart-' + uid;
      var axisStyles = (0, _shared.getAxisStyles)(grid, verticalGrid, yAxisOrientRight);
      var rules = (0, _lodash2.default)({}, _shared.defaultStyles, style, axisStyles);

      return _react2.default.createElement(_radium.Style, {
        scopeSelector: scope,
        rules: rules
      });
    }
  }, {
    key: 'parseDate',
    value: function parseDate(v) {
      var datePattern = this.props.datePattern;


      var datePatternParser = dateParser[datePattern] || (dateParser[datePattern] = (0, _d3TimeFormat.timeParse)(datePattern));

      return datePatternParser(v);
    }
  }, {
    key: 'calculateChartParameters',
    value: function calculateChartParameters() {
      var _this3 = this;

      var _props6 = this.props,
          data = _props6.data,
          axes = _props6.axes,
          xType = _props6.xType,
          yType = _props6.yType,
          xDomainRange = _props6.xDomainRange,
          yDomainRange = _props6.yDomainRange,
          margin = _props6.margin,
          width = _props6.width,
          height = _props6.height,
          lineColors = _props6.lineColors,
          yAxisOrientRight = _props6.yAxisOrientRight;

      /*
       * We could "bind"!
       */

      var parseDate = function parseDate(v) {
        return _this3.parseDate(v);
      };

      /*
       * 'w' and 'h' are the width and height of the graph canvas
       * (excluding axes and other furniture)
       */
      var m = (0, _shared.calculateMargin)(axes, margin, yAxisOrientRight);
      var w = (0, _shared.reduce)(width, m.left, m.right);
      var h = (0, _shared.reduce)(height, m.top, m.bottom);

      var x = (0, _shared.createDomainRangeGenerator)('x', xDomainRange, data, xType, w, parseDate);
      var y = (0, _shared.createDomainRangeGenerator)('y', yDomainRange, data, yType, h, parseDate);

      var xValue = (0, _shared.createValueGenerator)('x', xType, parseDate);
      var yValue = (0, _shared.createValueGenerator)('y', yType, parseDate);

      var colors = lineColors.concat(_shared.defaultColors);

      var node = this.createSvgNode({ m: m, w: w, h: h });
      var root = this.createSvgRoot({ node: node, m: m });

      return {
        m: m,
        w: w,
        h: h,
        x: x,
        y: y,
        xValue: xValue,
        yValue: yValue,
        colors: colors,
        node: node,
        root: root
      };
    }
  }, {
    key: 'render',
    value: function render() {
      var _props7 = this.props,
          axes = _props7.axes,
          dataPoints = _props7.dataPoints;


      var p = this.calculateChartParameters();

      if (axes) {
        this.createXAxis(p);

        this.createYAxis(p);
      }

      this.createLinePathChart(p);

      if (dataPoints) {
        this.createPoints(p);
      }

      var uid = this.uid;
      var className = 'line-chart-' + uid;
      var node = p.node;


      return _react2.default.createElement(
        'div',
        { ref: 'lineChart', className: className },
        this.createStyle(),
        node.toReact()
      );
    }
  }]);
  return LineChart;
}(_react2.default.Component);

exports.default = LineChart;
module.exports = exports['default'];
//# sourceMappingURL=index.js.map

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _getPrototypeOf = __webpack_require__(246);

var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _createClass2 = __webpack_require__(34);

var _createClass3 = _interopRequireDefault(_createClass2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _reactFauxDom = __webpack_require__(273);

var _reactFauxDom2 = _interopRequireDefault(_reactFauxDom);

var _shared = __webpack_require__(247);

var _d = __webpack_require__(217);

var _interpolate = __webpack_require__(495);

var _interpolate2 = _interopRequireDefault(_interpolate);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _radium = __webpack_require__(248);

var _lodash = __webpack_require__(249);

var _lodash2 = _interopRequireDefault(_lodash);

var _d3TimeFormat = __webpack_require__(169);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var dateParser = {};

var AreaChart = function (_PureComponent) {
  (0, _inherits3.default)(AreaChart, _PureComponent);
  (0, _createClass3.default)(AreaChart, null, [{
    key: 'propTypes',
    get: function get() {
      return {
        data: _propTypes2.default.array.isRequired,
        width: _propTypes2.default.number,
        height: _propTypes2.default.number,
        xType: _propTypes2.default.string,
        yType: _propTypes2.default.string,
        datePattern: _propTypes2.default.string,
        interpolate: _propTypes2.default.string,
        style: _propTypes2.default.object,
        margin: _propTypes2.default.object,
        axes: _propTypes2.default.bool,
        grid: _propTypes2.default.bool,
        verticalGrid: _propTypes2.default.bool,
        xDomainRange: _propTypes2.default.array,
        yDomainRange: _propTypes2.default.array,
        areaColors: _propTypes2.default.array,
        noAreaGradient: _propTypes2.default.bool,
        tickTimeDisplayFormat: _propTypes2.default.string,
        yTicks: _propTypes2.default.number,
        xTicks: _propTypes2.default.number,
        dataPoints: _propTypes2.default.bool,
        axisLabels: _propTypes2.default.shape({
          x: _propTypes2.default.string,
          y: _propTypes2.default.string
        }),
        yAxisOrientRight: _propTypes2.default.bool,
        mouseOverHandler: _propTypes2.default.func,
        mouseOutHandler: _propTypes2.default.func,
        mouseMoveHandler: _propTypes2.default.func,
        clickHandler: _propTypes2.default.func
      };
    }
  }, {
    key: 'defaultProps',
    get: function get() {
      return {
        width: 200,
        height: 150,
        datePattern: '%d-%b-%y',
        interpolate: 'linear',
        axes: false,
        areaColors: [],
        xType: 'linear',
        yType: 'linear',
        axisLabels: {
          x: '',
          y: ''
        },
        mouseOverHandler: function mouseOverHandler() {},
        mouseOutHandler: function mouseOutHandler() {},
        mouseMoveHandler: function mouseMoveHandler() {},
        clickHandler: function clickHandler() {}
      };
    }
  }]);

  function AreaChart(props) {
    (0, _classCallCheck3.default)(this, AreaChart);

    var _this = (0, _possibleConstructorReturn3.default)(this, (AreaChart.__proto__ || (0, _getPrototypeOf2.default)(AreaChart)).call(this, props));

    _this.uid = (0, _shared.createUniqueID)(props);
    return _this;
  }

  (0, _createClass3.default)(AreaChart, [{
    key: 'componentDidMount',
    value: function componentDidMount() {
      var ref = this.refs.areaChart;
      (0, _shared.createCircularTicks)(ref);
    }
  }, {
    key: 'componentDidUpdate',
    value: function componentDidUpdate() {
      var ref = this.refs.areaChart;
      (0, _shared.createCircularTicks)(ref);
    }
  }, {
    key: 'createSvgNode',
    value: function createSvgNode(_ref) {
      var m = _ref.m,
          w = _ref.w,
          h = _ref.h;

      var node = new _reactFauxDom2.default.Element('svg');
      node.setAttribute('width', w + m.left + m.right);
      node.setAttribute('height', h + m.top + m.bottom);
      return node;
    }
  }, {
    key: 'createSvgRoot',
    value: function createSvgRoot(_ref2) {
      var node = _ref2.node,
          m = _ref2.m;

      return (0, _d.select)(node).append('g').attr('transform', 'translate(' + m.left + ', ' + m.top + ')');
    }
  }, {
    key: 'createXAxis',
    value: function createXAxis(_ref3) {
      var root = _ref3.root,
          m = _ref3.m,
          w = _ref3.w,
          h = _ref3.h,
          x = _ref3.x;
      var _props = this.props,
          xType = _props.xType,
          label = _props.axisLabels.x,
          xTicks = _props.xTicks,
          grid = _props.grid,
          verticalGrid = _props.verticalGrid,
          tickTimeDisplayFormat = _props.tickTimeDisplayFormat,
          yAxisOrientRight = _props.yAxisOrientRight;


      var axis = (0, _d.axisBottom)(x);

      if (xType === 'time' && tickTimeDisplayFormat) {
        axis.tickFormat((0, _d.timeFormat)(tickTimeDisplayFormat));
      }
      if (grid && verticalGrid) {
        axis.tickSize(-h, 6).tickPadding(15);
      } else {
        axis.tickSize(0).tickPadding(15);
      }

      if (xTicks) {
        axis.ticks(xTicks);
      }

      var group = root.append('g').attr('class', 'x axis').attr('transform', 'translate(0, ' + h + ')');

      group.call(axis);

      if (label) {
        group.append('text').attr('class', 'label').attr('x', yAxisOrientRight ? 0 : w).attr('y', m.bottom - 10).style('text-anchor', yAxisOrientRight ? 'start' : 'end').text(label);
      }
      return axis;
    }
  }, {
    key: 'createYAxis',
    value: function createYAxis(_ref4) {
      var root = _ref4.root,
          m = _ref4.m,
          w = _ref4.w,
          y = _ref4.y;
      var _props2 = this.props,
          yType = _props2.yType,
          label = _props2.axisLabels.y,
          yTicks = _props2.yTicks,
          grid = _props2.grid,
          tickTimeDisplayFormat = _props2.tickTimeDisplayFormat,
          yAxisOrientRight = _props2.yAxisOrientRight;


      var axis = yAxisOrientRight ? (0, _d.axisRight)(y) : (0, _d.axisLeft)(y);

      if (yType === 'time' && tickTimeDisplayFormat) {
        axis.tickFormat((0, _d.timeFormat)(tickTimeDisplayFormat));
      }

      if (grid) {
        axis.tickSize(-w, 6).tickPadding(12);
      } else {
        axis.tickPadding(10);
      }

      if (yTicks) {
        axis.ticks(yTicks);
      }

      var group = root.append('g').attr('class', 'y axis').attr('transform', yAxisOrientRight ? 'translate(' + w + ', 0)' : 'translate(0, 0)');

      group.call(axis);

      if (label) {
        group.append('text').attr('class', 'label').attr('transform', 'rotate(-90)').attr('x', 0).attr('y', yAxisOrientRight ? -20 + m.right : 0 - m.left).attr('dy', '.9em').style('text-anchor', 'end').text(label);
      }

      return axis;
    }
  }, {
    key: 'createFill',
    value: function createFill(_ref5) {
      var node = _ref5.node,
          colors = _ref5.colors;

      var uid = this.uid;

      colors.forEach(function (color, i) {
        var gradient = (0, _d.select)(node).append('defs').append('linearGradient').attr('id', 'gradient-' + i + '-' + uid).attr('x1', '0%').attr('x2', '0%').attr('y1', '40%').attr('y2', '100%');

        _shared.defaultStyles['.dot' + i] = { fill: color };

        gradient.append('stop').attr('offset', '0%').attr('style', 'stop-color:' + color + '; stop-opacity:0.6');

        gradient.append('stop').attr('offset', '100%').attr('style', 'stop-color:' + color + '; stop-opacity:0.4');
      });
    }
  }, {
    key: 'createAreaPathChart',
    value: function createAreaPathChart(_ref6) {
      var root = _ref6.root,
          h = _ref6.h,
          x = _ref6.x,
          y = _ref6.y,
          xValue = _ref6.xValue,
          yValue = _ref6.yValue,
          colors = _ref6.colors;
      var _props3 = this.props,
          data = _props3.data,
          interpolate = _props3.interpolate,
          noAreaGradient = _props3.noAreaGradient;


      var uid = this.uid;

      var getFill = function getFill(d, i) {
        return noAreaGradient ? colors[i] : 'url(#gradient-' + i + '-' + uid + ')';
      };

      var getStroke = function getStroke(d, i) {
        return colors[i];
      };

      var areaPath = (0, _d.area)().curve((0, _interpolate2.default)(interpolate)).x(function (d) {
        return x(xValue(d));
      }).y0(h).y1(function (d) {
        return y(yValue(d));
      });

      var linePath = (0, _d.line)().curve((0, _interpolate2.default)(interpolate)).x(function (d) {
        return x(xValue(d));
      }).y(function (d) {
        return y(yValue(d));
      });

      var group = root.append('g').attr('class', 'areaChart');

      group.selectAll('path.area').data(data).enter().append('path').attr('class', 'area').style('fill', getFill).attr('d', areaPath);

      group.selectAll('path.line').data(data).enter().append('path').attr('class', 'line').style('stroke', getStroke).attr('d', linePath);
    }
  }, {
    key: 'createPoints',
    value: function createPoints(_ref7) {
      var _this2 = this;

      var root = _ref7.root,
          x = _ref7.x,
          y = _ref7.y,
          colors = _ref7.colors;
      var _props4 = this.props,
          data = _props4.data,
          xType = _props4.xType,
          yType = _props4.yType,
          mouseOverHandler = _props4.mouseOverHandler,
          mouseOutHandler = _props4.mouseOutHandler,
          mouseMoveHandler = _props4.mouseMoveHandler,
          clickHandler = _props4.clickHandler;

      /*
       * We don't really need to do this, but it
       * avoids obscure "this" below
       */

      var calculateDate = function calculateDate(v) {
        return _this2.parseDate(v);
      };

      var getStroke = function getStroke(d, i) {
        return colors[i];
      };

      /*
       * Creating the calculation functions
       */
      var calculateCX = function calculateCX(d) {
        return xType === 'time' ? x(calculateDate(d.x)) : x(d.x);
      };

      var calculateCY = function calculateCY(d) {
        return yType === 'time' ? y(calculateDate(d.y)) : y(d.y);
      };

      var mouseover = function mouseover(d) {
        return mouseOverHandler(d, _d.event);
      };
      var mouseout = function mouseout(d) {
        return mouseOutHandler(d, _d.event);
      };
      var mousemove = function mousemove(d) {
        return mouseMoveHandler(d, _d.event);
      };
      var click = function click(d) {
        return clickHandler(d, _d.event);
      };

      var group = root.append('g').attr('class', 'dataPoints');

      data.forEach(function (item) {
        item.forEach(function (d) {
          /*
           * Applying the calculation functions
           */
          group.datum(d).append('circle').attr('class', 'data-point').style('strokeWidth', '2px').style('stroke', getStroke).style('fill', 'white').attr('cx', calculateCX).attr('cy', calculateCY).on('mouseover', mouseover).on('mouseout', mouseout).on('mousemove', mousemove).on('click', click);
        });
      });
    }
  }, {
    key: 'createStyle',
    value: function createStyle() {
      var _props5 = this.props,
          style = _props5.style,
          grid = _props5.grid,
          verticalGrid = _props5.verticalGrid,
          yAxisOrientRight = _props5.yAxisOrientRight;


      var uid = this.uid;
      var scope = '.area-chart-' + uid;
      var axisStyles = (0, _shared.getAxisStyles)(grid, verticalGrid, yAxisOrientRight);
      var rules = (0, _lodash2.default)({}, _shared.defaultStyles, style, axisStyles);

      return _react2.default.createElement(_radium.Style, {
        scopeSelector: scope,
        rules: rules
      });
    }
  }, {
    key: 'parseDate',
    value: function parseDate(v) {
      var datePattern = this.props.datePattern;


      var datePatternParser = dateParser[datePattern] || (dateParser[datePattern] = (0, _d3TimeFormat.timeParse)(datePattern));

      return datePatternParser(v);
    }
  }, {
    key: 'calculateChartParameters',
    value: function calculateChartParameters() {
      var _this3 = this;

      var _props6 = this.props,
          data = _props6.data,
          xType = _props6.xType,
          yType = _props6.yType,
          axes = _props6.axes,
          xDomainRange = _props6.xDomainRange,
          yDomainRange = _props6.yDomainRange,
          yAxisOrientRight = _props6.yAxisOrientRight,
          areaColors = _props6.areaColors,
          margin = _props6.margin,
          width = _props6.width,
          height = _props6.height;

      /*
       * We could "bind"!
       */

      var parseDate = function parseDate(v) {
        return _this3.parseDate(v);
      };

      /*
       * 'w' and 'h' are the width and height of the graph canvas
       * (excluding axes and other furniture)
       */
      var m = (0, _shared.calculateMargin)(axes, margin, yAxisOrientRight);
      var w = (0, _shared.reduce)(width, m.left, m.right);
      var h = (0, _shared.reduce)(height, m.top, m.bottom);

      var x = (0, _shared.createDomainRangeGenerator)('x', xDomainRange, data, xType, w, parseDate);
      var y = (0, _shared.createDomainRangeGenerator)('y', yDomainRange, data, yType, h, parseDate);

      var xValue = (0, _shared.createValueGenerator)('x', xType, parseDate);
      var yValue = (0, _shared.createValueGenerator)('y', yType, parseDate);

      var colors = areaColors.concat(_shared.defaultColors);

      var node = this.createSvgNode({ m: m, w: w, h: h });
      var root = this.createSvgRoot({ node: node, m: m });

      return {
        m: m,
        w: w,
        h: h,
        x: x,
        y: y,
        xValue: xValue,
        yValue: yValue,
        colors: colors,
        node: node,
        root: root
      };
    }
  }, {
    key: 'render',
    value: function render() {
      var _props7 = this.props,
          axes = _props7.axes,
          dataPoints = _props7.dataPoints,
          noAreaGradient = _props7.noAreaGradient;


      var hasFill = !noAreaGradient;
      var p = this.calculateChartParameters();

      if (axes) {
        this.createXAxis(p);

        this.createYAxis(p);
      }

      if (hasFill) {
        this.createFill(p);
      }

      this.createAreaPathChart(p);

      if (dataPoints) {
        this.createPoints(p);
      }

      var uid = this.uid;
      var className = 'area-chart-' + uid;
      var node = p.node;


      return _react2.default.createElement(
        'div',
        { ref: 'areaChart', className: className },
        this.createStyle(),
        node.toReact()
      );
    }
  }]);
  return AreaChart;
}(_react.PureComponent);

exports.default = AreaChart;
module.exports = exports['default'];
//# sourceMappingURL=index.js.map

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _getPrototypeOf = __webpack_require__(246);

var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _createClass2 = __webpack_require__(34);

var _createClass3 = _interopRequireDefault(_createClass2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _d3Scale = __webpack_require__(305);

var _d = __webpack_require__(217);

var _d3TimeFormat = __webpack_require__(169);

var _d3Array = __webpack_require__(72);

var _reactFauxDom = __webpack_require__(273);

var _reactFauxDom2 = _interopRequireDefault(_reactFauxDom);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _radium = __webpack_require__(248);

var _lodash = __webpack_require__(249);

var _lodash2 = _interopRequireDefault(_lodash);

var _shared = __webpack_require__(247);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var dateParser = {};

var color = (0, _d.scaleOrdinal)(_d.schemeCategory20).domain((0, _d.range)(0, 20));

var axisMargin = 18;

var ScatterplotChart = function (_PureComponent) {
  (0, _inherits3.default)(ScatterplotChart, _PureComponent);
  (0, _createClass3.default)(ScatterplotChart, null, [{
    key: 'propTypes',
    get: function get() {
      return {
        axes: _propTypes2.default.bool,
        axisLabels: _propTypes2.default.shape({
          x: _propTypes2.default.string,
          y: _propTypes2.default.string
        }),
        clickHandler: _propTypes2.default.func,
        config: _propTypes2.default.array,
        data: _propTypes2.default.array.isRequired,
        datePattern: _propTypes2.default.string,
        yAxisOrientRight: _propTypes2.default.bool,
        dotRadius: _propTypes2.default.number,
        verticalGrid: _propTypes2.default.bool,
        grid: _propTypes2.default.bool,
        height: _propTypes2.default.number,
        useLegend: _propTypes2.default.bool,
        margin: _propTypes2.default.object,
        mouseOverHandler: _propTypes2.default.func,
        mouseOutHandler: _propTypes2.default.func,
        mouseMoveHandler: _propTypes2.default.func,
        style: _propTypes2.default.object,
        tickTimeDisplayFormat: _propTypes2.default.string,
        width: _propTypes2.default.number,
        xDomainRange: _propTypes2.default.array,
        yDomainRange: _propTypes2.default.array,
        xTickNumber: _propTypes2.default.number,
        yTickNumber: _propTypes2.default.number,
        xTicks: _propTypes2.default.number,
        yTicks: _propTypes2.default.number,
        xType: _propTypes2.default.string,
        yType: _propTypes2.default.string
      };
    }
  }, {
    key: 'defaultProps',
    get: function get() {
      return {
        axes: false,
        axisLabels: {
          x: '',
          y: ''
        },
        clickHandler: function clickHandler() {},
        config: [],
        datePattern: '%d-%b-%y',
        dotRadius: 5,
        grid: false,
        mouseOverHandler: function mouseOverHandler() {},
        mouseOutHandler: function mouseOutHandler() {},
        mouseMoveHandler: function mouseMoveHandler() {},
        width: 320,
        height: 180,
        xType: 'linear',
        yType: 'linear'
      };
    }
  }]);

  function ScatterplotChart(props) {
    (0, _classCallCheck3.default)(this, ScatterplotChart);

    var _this = (0, _possibleConstructorReturn3.default)(this, (ScatterplotChart.__proto__ || (0, _getPrototypeOf2.default)(ScatterplotChart)).call(this, props));

    _this.uid = (0, _shared.createUniqueID)(props);
    return _this;
  }

  (0, _createClass3.default)(ScatterplotChart, [{
    key: 'componentDidMount',
    value: function componentDidMount() {
      this.initialise();
      var ref = this.refs.scatterplotChart;
      (0, _shared.createCircularTicks)(ref);
    }
  }, {
    key: 'componentDidUpdate',
    value: function componentDidUpdate() {
      this.transition();
      var ref = this.refs.scatterplotChart;
      (0, _shared.createCircularTicks)(ref);
    }
  }, {
    key: 'getScale',
    value: function getScale(type) {
      switch (type) {
        case 'time':
          return (0, _d.scaleTime)();
        case 'text':
          return (0, _d3Scale.scalePoint)();
        default:
          return (0, _d3Scale.scaleLinear)();
      }
    }
  }, {
    key: 'getDataConfig',
    value: function getDataConfig(type) {
      var config = this.props.config;


      var index = config.findIndex(function (item) {
        return item.type === type;
      });
      return config[index];
    }
  }, {
    key: 'getFill',
    value: function getFill(data) {
      var configItem = this.getDataConfig(data.type);
      return configItem ? configItem.color : color(data.type);
    }
  }, {
    key: 'getRadius',
    value: function getRadius(data, dataItem, dotRadius) {
      if (typeof data[0].z !== 'undefined') {
        var rangeRadius = (0, _d3Array.extent)(data, function (d) {
          return d.z;
        });
        var mn = rangeRadius[0];
        var mx = rangeRadius[1];
        var p = (dataItem.z - mn) / (mx - mn);
        var minRad = 5;
        var maxRad = 20;
        var rad = minRad + (maxRad - minRad) * p;
        return rad;
      }
      return dotRadius;
    }
  }, {
    key: 'getStroke',
    value: function getStroke(data) {
      var configItem = this.getDataConfig(data.type);
      return configItem ? configItem.stroke : 'none'; // typeof configItem !== 'undefined' ? configItem.stroke : 'none';
    }
  }, {
    key: 'getCircles',
    value: function getCircles() {
      var uid = this.uid;
      return (0, _d.select)('#scatterplot-chart-' + uid).selectAll('circle'); // '.dot'
    }
  }, {
    key: 'getXAxis',
    value: function getXAxis() {
      var uid = this.uid;
      return (0, _d.select)('#scatterplot-x-axis-' + uid);
    }
  }, {
    key: 'getYAxis',
    value: function getYAxis() {
      var uid = this.uid;
      return (0, _d.select)('#scatterplot-y-axis-' + uid);
    }
  }, {
    key: 'createDomainRangeGenerator',
    value: function createDomainRangeGenerator(axisType, domainRange, data, type, length, yAxisOrientRight) {
      var _this2 = this;

      var dataIndex = axisType === 'x' ? 'x' : 'y';

      var axis = void 0;
      var minAmount = void 0;
      var maxAmount = void 0;

      var parseDate = function parseDate(v) {
        return _this2.parseDate(v);
      };

      switch (type) {
        case 'text':
          axis = (0, _d3Scale.scalePoint)();
          axis.domain(data.map(function (d) {
            return d[dataIndex];
          }), 1).range([0, length]).padding(1);
          break;
        case 'linear':
          axis = (0, _d3Scale.scaleLinear)();
          minAmount = (0, _d.min)(data, function (d) {
            return d[dataIndex];
          });
          maxAmount = (0, _d.max)(data, function (d) {
            return d[dataIndex];
          });
          if (domainRange) {
            axis.domain(domainRange); // calculateDomainRange(domainRange, type, parseDate));
          } else {
            // set initial domain
            axis.domain([minAmount, maxAmount]);
            // calculate 1 tick offset
            var ticks = axis.ticks();

            minAmount = yAxisOrientRight && axisType === 'x' ? minAmount : minAmount - (ticks[1] - ticks[0]);

            maxAmount = yAxisOrientRight && axisType === 'x' ? maxAmount + (ticks[1] - ticks[0]) : maxAmount;

            axis.domain([minAmount, maxAmount]);
          }
          axis.range(axisType === 'x' ? [0, length] : [length, 0]);
          break;
        case 'time':
          axis = (0, _d.scaleTime)();
          axis.domain(domainRange ? (0, _shared.calculateDomainRange)(domainRange) : (0, _d3Array.extent)(data, function (d) {
            return parseDate(d[dataIndex]);
          })).range(axisType === 'x' ? [0, length] : [length, 0]);
          break;
        default:
          break;
      }
      return axis;
    }
  }, {
    key: 'calculateMargin',
    value: function calculateMargin(axes, spacer, yAxisOrientRight) {
      if (yAxisOrientRight) {
        return axes ? { top: 24, right: 48, bottom: 24, left: 24 } : { top: spacer, right: spacer, bottom: spacer, left: spacer };
      }
      return axes ? { top: 24, right: 24, bottom: 24, left: 48 } : { top: spacer, right: spacer, bottom: spacer, left: spacer };
    }
  }, {
    key: 'calculateInnerW',
    value: function calculateInnerW(w, m) {
      return w - (m.left + m.right);
    }
  }, {
    key: 'calculateInnerH',
    value: function calculateInnerH(h, m) {
      var dotRadius = this.props.dotRadius;


      return h - (m.top + m.bottom + dotRadius * 2);
    }
  }, {
    key: 'calculateXAxis',
    value: function calculateXAxis(_ref) {
      var h = _ref.h,
          x = _ref.x;
      var _props = this.props,
          xType = _props.xType,
          tickTimeDisplayFormat = _props.tickTimeDisplayFormat,
          xTickNumber = _props.xTickNumber,
          grid = _props.grid,
          verticalGrid = _props.verticalGrid,
          xTicks = _props.xTicks;


      var axis = (0, _d.axisBottom)(x);

      if (xType === 'time' && tickTimeDisplayFormat) {
        axis.tickFormat((0, _d.timeFormat)(tickTimeDisplayFormat));
      }

      if (xTickNumber) {
        axis.ticks(xTickNumber);
      }

      if (grid && verticalGrid) {
        axis.tickSize(-h, 6).tickPadding(15);
      } else {
        axis.tickSize(0).tickPadding(15);
      }

      if (xTicks) {
        axis.ticks(xTicks);
      }

      return axis;
    }
  }, {
    key: 'calculateYAxis',
    value: function calculateYAxis(_ref2) {
      var y = _ref2.y,
          innerW = _ref2.innerW;
      var _props2 = this.props,
          grid = _props2.grid,
          yTicks = _props2.yTicks,
          yAxisOrientRight = _props2.yAxisOrientRight;


      var axis = yAxisOrientRight ? (0, _d.axisRight)(y) : (0, _d.axisLeft)(y);

      if (grid) {
        axis.tickSize(-innerW, 6).tickPadding(12);
      } else {
        axis.tickPadding(10);
      }

      if (yTicks) {
        axis.ticks(yTicks);
      }

      return axis;
    }
  }, {
    key: 'initialise',
    value: function initialise() {
      var axes = this.props.axes;


      var p = this.calculateChartParameters();

      if (axes) {
        this.initialiseXAxis(p);

        this.initialiseYAxis(p);
      }

      this.initialiseChart(p);
    }
  }, {
    key: 'initialiseXAxis',
    value: function initialiseXAxis(_ref3) {
      var xAxis = _ref3.xAxis;

      this.getXAxis().call(xAxis);
    }
  }, {
    key: 'initialiseYAxis',
    value: function initialiseYAxis(_ref4) {
      var yAxis = _ref4.yAxis;

      this.getYAxis().call(yAxis);
    }
  }, {
    key: 'initialiseChart',
    value: function initialiseChart(_ref5) {
      var _this3 = this;

      var x = _ref5.x,
          y = _ref5.y;
      var _props3 = this.props,
          data = _props3.data,
          dotRadius = _props3.dotRadius,
          xType = _props3.xType,
          mouseOverHandler = _props3.mouseOverHandler,
          mouseOutHandler = _props3.mouseOutHandler,
          mouseMoveHandler = _props3.mouseMoveHandler,
          clickHandler = _props3.clickHandler;


      var calculateDate = function calculateDate(v) {
        return _this3.parseDate(v);
      };

      var calculateR = function calculateR(d) {
        return _this3.getRadius(data, d, dotRadius);
      };
      var calculateCX = function calculateCX(d) {
        return xType === 'time' ? x(calculateDate(d.x)) : x(d.x);
      };
      var calculateCY = function calculateCY(d) {
        return y(d.y);
      };

      var getFill = function getFill(d) {
        return _this3.getFill(d);
      };
      var getStroke = function getStroke(d) {
        return _this3.getStroke(d);
      };

      var mouseOver = function mouseOver(d) {
        return mouseOverHandler(d, _d.event);
      };
      var mouseOut = function mouseOut(d) {
        return mouseOutHandler(d, _d.event);
      };
      var mouseMove = function mouseMove(d) {
        return mouseMoveHandler(d, _d.event);
      };
      var click = function click(d) {
        return clickHandler(d, _d.event);
      };

      var circle = this.getCircles().data(data);

      circle.enter().append('circle').attr('class', 'dot').attr('r', calculateR).attr('cx', calculateCX).attr('cy', calculateCY).style('fill', getFill).style('stroke', getStroke).on('mouseover', mouseOver).on('mouseout', mouseOut).on('mousemove', mouseMove).on('click', click);
    }
  }, {
    key: 'transition',
    value: function transition() {
      var axes = this.props.axes;


      var p = this.calculateChartParameters();

      if (axes) {
        this.transitionXAxis(p);

        this.transitionYAxis(p);
      }

      this.transitionChart(p);
    }
  }, {
    key: 'transitionXAxis',
    value: function transitionXAxis(_ref6) {
      var xAxis = _ref6.xAxis;

      this.getXAxis().transition().duration(750).call(xAxis);
    }
  }, {
    key: 'transitionYAxis',
    value: function transitionYAxis(_ref7) {
      var yAxis = _ref7.yAxis;

      this.getYAxis().transition().duration(750).call(yAxis);
    }
  }, {
    key: 'transitionChart',
    value: function transitionChart(_ref8) {
      var _this4 = this;

      var x = _ref8.x,
          y = _ref8.y;
      var _props4 = this.props,
          data = _props4.data,
          dotRadius = _props4.dotRadius,
          xType = _props4.xType,
          mouseOverHandler = _props4.mouseOverHandler,
          mouseOutHandler = _props4.mouseOutHandler,
          mouseMoveHandler = _props4.mouseMoveHandler,
          clickHandler = _props4.clickHandler;


      var calculateDate = function calculateDate(v) {
        return _this4.parseDate(v);
      };

      var calculateR = function calculateR(d) {
        return _this4.getRadius(data, d, dotRadius);
      };
      var calculateCX = function calculateCX(d) {
        return xType === 'time' ? x(calculateDate(d.x)) : x(d.x);
      };
      var calculateCY = function calculateCY(d) {
        return y(d.y);
      };

      var mouseOver = function mouseOver(d) {
        return mouseOverHandler(d, _d.event);
      };
      var mouseOut = function mouseOut(d) {
        return mouseOutHandler(d, _d.event);
      };
      var mouseMove = function mouseMove(d) {
        return mouseMoveHandler(d, _d.event);
      };
      var click = function click(d) {
        return clickHandler(d, _d.event);
      };

      var getFill = function getFill(d) {
        return _this4.getFill(d);
      };
      var getStroke = function getStroke(d) {
        return _this4.getStroke(d);
      };

      var n = data.length;
      var circle = this.getCircles().data(data);

      if (n) {
        circle.transition().duration(750).attr('r', calculateR).attr('cx', calculateCX).attr('cy', calculateCY);

        circle.style('fill', getFill).style('stroke', getStroke).on('mouseover', mouseOver).on('mouseout', mouseOut).on('mousemove', mouseMove).on('click', click);

        circle.enter().append('circle').attr('class', 'dot').attr('r', calculateR).attr('cx', calculateCX).attr('cy', calculateCY).style('fill', getFill).style('stroke', getStroke).on('mouseover', mouseOver).on('mouseout', mouseOut).on('mousemove', mouseMove).on('click', click);
      }

      circle.exit().remove();
    }
  }, {
    key: 'createSvgNode',
    value: function createSvgNode(_ref9) {
      var m = _ref9.m,
          w = _ref9.w,
          h = _ref9.h;

      var node = new _reactFauxDom2.default.Element('svg');
      node.setAttribute('width', w + m.left + m.right);
      node.setAttribute('height', h + m.top + m.bottom);
      return node;
    }
  }, {
    key: 'createSvgRoot',
    value: function createSvgRoot(_ref10) {
      var node = _ref10.node,
          m = _ref10.m;

      return (0, _d.select)(node).append('g').attr('transform', 'translate(' + m.left + ', ' + m.top + ')');
    }
  }, {
    key: 'createXAxis',
    value: function createXAxis(_ref11) {
      var m = _ref11.m,
          innerW = _ref11.innerW,
          innerH = _ref11.innerH,
          root = _ref11.root;
      var _props5 = this.props,
          yAxisOrientRight = _props5.yAxisOrientRight,
          label = _props5.axisLabels.x;


      var uid = this.uid;

      var group = root.append('g').attr('class', 'x axis').attr('id', 'scatterplot-x-axis-' + uid).attr('transform', 'translate(0, ' + innerH + ')');

      if (label) {
        group.append('text').attr('class', 'label').attr('x', yAxisOrientRight ? 0 : innerW).attr('y', m.bottom + axisMargin).style('text-anchor', yAxisOrientRight ? 'start' : 'end').text(label);
      }
    }
  }, {
    key: 'createYAxis',
    value: function createYAxis(_ref12) {
      var m = _ref12.m,
          innerW = _ref12.innerW,
          root = _ref12.root;
      var _props6 = this.props,
          yAxisOrientRight = _props6.yAxisOrientRight,
          label = _props6.axisLabels.y;


      var uid = this.uid;

      var group = root.append('g').attr('class', 'y axis').attr('id', 'scatterplot-y-axis-' + uid).attr('transform', yAxisOrientRight ? 'translate(' + innerW + ', 0)' : 'translate(0, 0)');

      if (label) {
        group.append('text').attr('class', 'label').attr('transform', 'rotate(-90)').attr('y', yAxisOrientRight ? -25 + m.right : 10 - m.left).attr('dy', '.71em').style('text-anchor', 'end').text(label);
      }
    }
  }, {
    key: 'createScatterplotChart',
    value: function createScatterplotChart(_ref13) {
      var root = _ref13.root;

      var uid = this.uid;

      root.append('g').attr('id', 'scatterplot-chart-' + uid);
    }
  }, {
    key: 'createStyle',
    value: function createStyle() {
      var _props7 = this.props,
          style = _props7.style,
          grid = _props7.grid,
          verticalGrid = _props7.verticalGrid,
          yAxisOrientRight = _props7.yAxisOrientRight;


      var uid = this.uid;
      var scope = '.scatterplot-chart-' + uid;
      var axisStyles = (0, _shared.getAxisStyles)(grid, verticalGrid, yAxisOrientRight);
      var rules = (0, _lodash2.default)({}, _shared.defaultStyles, style, axisStyles);

      return _react2.default.createElement(_radium.Style, {
        scopeSelector: scope,
        rules: rules
      });
    }
  }, {
    key: 'parseDate',
    value: function parseDate(v) {
      var datePattern = this.props.datePattern;


      var datePatternParser = dateParser[datePattern] || (dateParser[datePattern] = (0, _d3TimeFormat.timeParse)(datePattern));

      return datePatternParser(v);
    }
  }, {
    key: 'calculateChartParameters',
    value: function calculateChartParameters() {
      var _this5 = this;

      var _props8 = this.props,
          axes = _props8.axes,
          data = _props8.data,
          margin = _props8.margin,
          width = _props8.width,
          height = _props8.height,
          dotRadius = _props8.dotRadius,
          xType = _props8.xType,
          yType = _props8.yType,
          xDomainRange = _props8.xDomainRange,
          yDomainRange = _props8.yDomainRange,
          yAxisOrientRight = _props8.yAxisOrientRight;

      /*
       * We could "bind"!
       */

      var parseDate = function parseDate(v) {
        return _this5.parseDate(v);
      };

      var m = margin || this.calculateMargin(axes, dotRadius * 2, yAxisOrientRight);
      var w = width;
      var h = height + dotRadius * 3;

      var innerW = this.calculateInnerW(width, m);
      var innerH = this.calculateInnerH(height, m);

      var defaultXDomainRange = (0, _shared.calculateDomainRange)(xDomainRange, xType, parseDate);
      var defaultYDomainRange = (0, _shared.calculateDomainRange)(yDomainRange, yType, parseDate);

      var x = this.createDomainRangeGenerator('x', defaultXDomainRange, data, xType, innerW, yAxisOrientRight);
      var y = this.createDomainRangeGenerator('y', defaultYDomainRange, data, yType, innerH, yAxisOrientRight);

      var xAxis = this.calculateXAxis({ m: m, h: h, x: x, innerW: innerW });
      var yAxis = this.calculateYAxis({ m: m, y: y, innerW: innerW });

      var node = this.createSvgNode({ m: m, w: w, h: h });
      var root = this.createSvgRoot({ node: node, m: m });

      return {
        m: m,
        w: w,
        h: h,
        innerW: innerW,
        innerH: innerH,
        x: x,
        y: y,
        xAxis: xAxis,
        yAxis: yAxis,
        node: node,
        root: root
      };
    }
  }, {
    key: 'render',
    value: function render() {
      var axes = this.props.axes;


      var p = this.calculateChartParameters();

      if (axes) {
        this.createXAxis(p);

        this.createYAxis(p);
      }

      this.createScatterplotChart(p);

      var uid = this.uid;
      var className = 'scatterplot-chart-' + uid;
      var node = p.node;


      return _react2.default.createElement(
        'div',
        { ref: 'scatterplotChart', className: className },
        this.createStyle(),
        node.toReact()
      );
    }
  }]);
  return ScatterplotChart;
}(_react.PureComponent);

exports.default = ScatterplotChart;
module.exports = exports['default'];
//# sourceMappingURL=index.js.map

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _getPrototypeOf = __webpack_require__(246);

var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _createClass2 = __webpack_require__(34);

var _createClass3 = _interopRequireDefault(_createClass2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _d3Scale = __webpack_require__(305);

var _d = __webpack_require__(217);

var _d3TimeFormat = __webpack_require__(169);

var _d3Array = __webpack_require__(72);

var _reactFauxDom = __webpack_require__(273);

var _reactFauxDom2 = _interopRequireDefault(_reactFauxDom);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _radium = __webpack_require__(248);

var _lodash = __webpack_require__(249);

var _lodash2 = _interopRequireDefault(_lodash);

var _shared = __webpack_require__(247);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var dateParser = {};

var color = (0, _d.scaleOrdinal)(_d.schemeCategory20).domain((0, _d.range)(0, 20));

var axisMargin = 18;

var ScatterplotChart = function (_PureComponent) {
  (0, _inherits3.default)(ScatterplotChart, _PureComponent);
  (0, _createClass3.default)(ScatterplotChart, null, [{
    key: 'propTypes',
    get: function get() {
      return {
        axes: _propTypes2.default.bool,
        axisLabels: _propTypes2.default.shape({
          x: _propTypes2.default.string,
          y: _propTypes2.default.string
        }),
        clickHandler: _propTypes2.default.func,
        config: _propTypes2.default.array,
        data: _propTypes2.default.array.isRequired,
        datePattern: _propTypes2.default.string,
        yAxisOrientRight: _propTypes2.default.bool,
        dotRadius: _propTypes2.default.number,
        verticalGrid: _propTypes2.default.bool,
        grid: _propTypes2.default.bool,
        height: _propTypes2.default.number,
        useLegend: _propTypes2.default.bool,
        margin: _propTypes2.default.object,
        mouseOverHandler: _propTypes2.default.func,
        mouseOutHandler: _propTypes2.default.func,
        mouseMoveHandler: _propTypes2.default.func,
        style: _propTypes2.default.object,
        tickTimeDisplayFormat: _propTypes2.default.string,
        width: _propTypes2.default.number,
        xDomainRange: _propTypes2.default.array,
        yDomainRange: _propTypes2.default.array,
        xTickNumber: _propTypes2.default.number,
        yTickNumber: _propTypes2.default.number,
        xTicks: _propTypes2.default.number,
        yTicks: _propTypes2.default.number,
        xType: _propTypes2.default.string,
        yType: _propTypes2.default.string
      };
    }
  }, {
    key: 'defaultProps',
    get: function get() {
      return {
        axes: false,
        axisLabels: {
          x: '',
          y: ''
        },
        clickHandler: function clickHandler() {},
        config: [],
        datePattern: '%d-%b-%y',
        dotRadius: 5,
        grid: false,
        mouseOverHandler: function mouseOverHandler() {},
        mouseOutHandler: function mouseOutHandler() {},
        mouseMoveHandler: function mouseMoveHandler() {},
        width: 320,
        height: 180,
        xType: 'linear',
        yType: 'linear'
      };
    }
  }]);

  function ScatterplotChart(props) {
    (0, _classCallCheck3.default)(this, ScatterplotChart);

    var _this = (0, _possibleConstructorReturn3.default)(this, (ScatterplotChart.__proto__ || (0, _getPrototypeOf2.default)(ScatterplotChart)).call(this, props));

    _this.uid = (0, _shared.createUniqueID)(props);
    return _this;
  }

  (0, _createClass3.default)(ScatterplotChart, [{
    key: 'componentDidMount',
    value: function componentDidMount() {
      var ref = this.refs.scatterplotChart;
      (0, _shared.createCircularTicks)(ref);
    }
  }, {
    key: 'componentDidUpdate',
    value: function componentDidUpdate() {
      var ref = this.refs.scatterplotChart;
      (0, _shared.createCircularTicks)(ref);
    }
  }, {
    key: 'getScale',
    value: function getScale(type) {
      switch (type) {
        case 'time':
          return (0, _d.scaleTime)();
        case 'text':
          return (0, _d3Scale.scalePoint)();
        default:
          return (0, _d3Scale.scaleLinear)();
      }
    }
  }, {
    key: 'getDataConfig',
    value: function getDataConfig(type) {
      var config = this.props.config;


      var index = config.findIndex(function (item) {
        return item.type === type;
      });
      return config[index];
    }
  }, {
    key: 'getFill',
    value: function getFill(data) {
      var configItem = this.getDataConfig(data.type);
      return configItem ? configItem.color : color(data.type);
    }
  }, {
    key: 'getRadius',
    value: function getRadius(data, dataItem, dotRadius) {
      if (typeof data[0].z !== 'undefined') {
        var rangeRadius = (0, _d3Array.extent)(data, function (d) {
          return d.z;
        });
        var mn = rangeRadius[0];
        var mx = rangeRadius[1];
        var p = (dataItem.z - mn) / (mx - mn);
        var minRad = 5;
        var maxRad = 20;
        var rad = minRad + (maxRad - minRad) * p;
        return rad;
      }
      return dotRadius;
    }
  }, {
    key: 'getStroke',
    value: function getStroke(data) {
      var configItem = this.getDataConfig(data.type);
      return configItem ? configItem.stroke : 'none'; // typeof configItem !== 'undefined' ? configItem.stroke : 'none';
    }
  }, {
    key: 'createDomainRangeGenerator',
    value: function createDomainRangeGenerator(axisType, domainRange, data, type, length, yAxisOrientRight) {
      var _this2 = this;

      var dataIndex = axisType === 'x' ? 'x' : 'y';

      var axis = void 0;
      var minAmount = void 0;
      var maxAmount = void 0;

      var parseDate = function parseDate(v) {
        return _this2.parseDate(v);
      };

      switch (type) {
        case 'text':
          axis = (0, _d3Scale.scalePoint)();
          axis.domain(data.map(function (d) {
            return d[dataIndex];
          })) // , 1)
          .range([0, length]).padding(1);
          break;
        case 'linear':
          axis = (0, _d3Scale.scaleLinear)();
          minAmount = (0, _d.min)(data, function (d) {
            return d[dataIndex];
          });
          maxAmount = (0, _d.max)(data, function (d) {
            return d[dataIndex];
          });
          if (domainRange) {
            axis.domain(domainRange); // calculateDomainRange(domainRange, type, parseDate));
          } else {
            // set initial domain
            axis.domain([minAmount, maxAmount]);
            // calculate 1 tick offset
            var ticks = axis.ticks();

            minAmount = yAxisOrientRight && axisType === 'x' ? minAmount : minAmount - (ticks[1] - ticks[0]);

            maxAmount = yAxisOrientRight && axisType === 'x' ? maxAmount + (ticks[1] - ticks[0]) : maxAmount;

            axis.domain([minAmount, maxAmount]);
          }
          axis.range(axisType === 'x' ? [0, length] : [length, 0]);
          break;
        case 'time':
          axis = (0, _d.scaleTime)();
          axis.domain(domainRange ? (0, _shared.calculateDomainRange)(domainRange) : (0, _d3Array.extent)(data, function (d) {
            return parseDate(d[dataIndex]);
          })).range(axisType === 'x' ? [0, length] : [length, 0]);
          break;
        default:
          break;
      }
      return axis;
    }
  }, {
    key: 'calculateMargin',
    value: function calculateMargin(axes, spacer, yAxisOrientRight) {
      if (yAxisOrientRight) {
        return axes ? { top: 24, right: 48, bottom: 24, left: 24 } : { top: spacer, right: spacer, bottom: spacer, left: spacer };
      }
      return axes ? { top: 24, right: 24, bottom: 24, left: 48 } : { top: spacer, right: spacer, bottom: spacer, left: spacer };
    }
  }, {
    key: 'calculateInnerW',
    value: function calculateInnerW(w, m) {
      return w - (m.left + m.right);
    }
  }, {
    key: 'calculateInnerH',
    value: function calculateInnerH(h, m) {
      var dotRadius = this.props.dotRadius;


      return h - (m.top + m.bottom + dotRadius * 2);
    }
  }, {
    key: 'calculateXAxis',
    value: function calculateXAxis(_ref) {
      var h = _ref.h,
          x = _ref.x;
      var _props = this.props,
          xType = _props.xType,
          tickTimeDisplayFormat = _props.tickTimeDisplayFormat,
          xTickNumber = _props.xTickNumber,
          grid = _props.grid,
          verticalGrid = _props.verticalGrid,
          xTicks = _props.xTicks;


      var axis = (0, _d.axisBottom)(x);

      if (xType === 'time' && tickTimeDisplayFormat) {
        axis.tickFormat((0, _d.timeFormat)(tickTimeDisplayFormat));
      }

      if (xTickNumber) {
        axis.ticks(xTickNumber);
      }

      if (grid && verticalGrid) {
        axis.tickSize(-h, 6).tickPadding(15);
      } else {
        axis.tickSize(0).tickPadding(15);
      }

      if (xTicks) {
        axis.ticks(xTicks);
      }

      return axis;
    }
  }, {
    key: 'calculateYAxis',
    value: function calculateYAxis(_ref2) {
      var y = _ref2.y,
          innerW = _ref2.innerW;
      var _props2 = this.props,
          grid = _props2.grid,
          yTicks = _props2.yTicks,
          yAxisOrientRight = _props2.yAxisOrientRight;


      var axis = yAxisOrientRight ? (0, _d.axisRight)(y) : (0, _d.axisLeft)(y);

      if (grid) {
        axis.tickSize(-innerW, 6).tickPadding(12);
      } else {
        axis.tickPadding(10);
      }

      if (yTicks) {
        axis.ticks(yTicks);
      }

      return axis;
    }
  }, {
    key: 'createSvgNode',
    value: function createSvgNode(_ref3) {
      var m = _ref3.m,
          w = _ref3.w,
          h = _ref3.h;

      var node = new _reactFauxDom2.default.Element('svg');
      node.setAttribute('width', w + m.left + m.right);
      node.setAttribute('height', h + m.top + m.bottom);
      return node;
    }
  }, {
    key: 'createSvgRoot',
    value: function createSvgRoot(_ref4) {
      var node = _ref4.node,
          m = _ref4.m;

      return (0, _d.select)(node).append('g').attr('transform', 'translate(' + m.left + ', ' + m.top + ')');
    }
  }, {
    key: 'createXAxis',
    value: function createXAxis(_ref5) {
      var m = _ref5.m,
          innerW = _ref5.innerW,
          innerH = _ref5.innerH,
          xAxis = _ref5.xAxis,
          root = _ref5.root;
      var _props3 = this.props,
          yAxisOrientRight = _props3.yAxisOrientRight,
          label = _props3.axisLabels.x;


      var group = root.append('g').attr('class', 'x axis').attr('transform', 'translate(0, ' + innerH + ')');

      group.call(xAxis);

      if (label) {
        group.append('text').attr('class', 'label').attr('x', yAxisOrientRight ? 0 : innerW).attr('y', m.bottom + axisMargin).style('text-anchor', yAxisOrientRight ? 'start' : 'end').text(label);
      }
    }
  }, {
    key: 'createYAxis',
    value: function createYAxis(_ref6) {
      var m = _ref6.m,
          innerW = _ref6.innerW,
          yAxis = _ref6.yAxis,
          root = _ref6.root;
      var _props4 = this.props,
          yAxisOrientRight = _props4.yAxisOrientRight,
          label = _props4.axisLabels.y;


      var group = root.append('g').attr('class', 'y axis').attr('transform', yAxisOrientRight ? 'translate(' + innerW + ', 0)' : 'translate(0, 0)');

      group.call(yAxis);

      if (label) {
        group.append('text').attr('class', 'label').attr('transform', 'rotate(-90)').attr('y', yAxisOrientRight ? -25 + m.right : 10 - m.left).attr('dy', '.71em').style('text-anchor', 'end').text(label);
      }
    }
  }, {
    key: 'createScatterplotChart',
    value: function createScatterplotChart(_ref7) {
      var _this3 = this;

      var x = _ref7.x,
          y = _ref7.y,
          root = _ref7.root;
      var _props5 = this.props,
          data = _props5.data,
          dotRadius = _props5.dotRadius,
          xType = _props5.xType,
          mouseOverHandler = _props5.mouseOverHandler,
          mouseOutHandler = _props5.mouseOutHandler,
          mouseMoveHandler = _props5.mouseMoveHandler,
          clickHandler = _props5.clickHandler;


      var calculateDate = function calculateDate(v) {
        return _this3.parseDate(v);
      };

      var calculateR = function calculateR(d) {
        return _this3.getRadius(data, d, dotRadius);
      };
      var calculateCX = function calculateCX(d) {
        return xType === 'time' ? x(calculateDate(d.x)) : x(d.x);
      };
      var calculateCY = function calculateCY(d) {
        return y(d.y);
      };

      var getFill = function getFill(d) {
        return _this3.getFill(d);
      };
      var getStroke = function getStroke(d) {
        return _this3.getStroke(d);
      };

      var mouseOver = function mouseOver(d) {
        return mouseOverHandler(d, _d.event);
      };
      var mouseOut = function mouseOut(d) {
        return mouseOutHandler(d, _d.event);
      };
      var mouseMove = function mouseMove(d) {
        return mouseMoveHandler(d, _d.event);
      };
      var click = function click(d) {
        return clickHandler(d, _d.event);
      };

      var circle = root.append('g').selectAll('circle') // '.dot'
      .data(data);

      circle.enter().append('circle').attr('class', 'dot').attr('r', calculateR).attr('cx', calculateCX).attr('cy', calculateCY).style('fill', getFill).style('stroke', getStroke).on('mouseover', mouseOver).on('mouseout', mouseOut).on('mousemove', mouseMove).on('click', click);

      circle.exit().remove();
    }
  }, {
    key: 'createStyle',
    value: function createStyle() {
      var _props6 = this.props,
          style = _props6.style,
          grid = _props6.grid,
          verticalGrid = _props6.verticalGrid,
          yAxisOrientRight = _props6.yAxisOrientRight;


      var uid = this.uid;
      var scope = '.scatterplot-chart-' + uid;
      var axisStyles = (0, _shared.getAxisStyles)(grid, verticalGrid, yAxisOrientRight);
      var rules = (0, _lodash2.default)({}, _shared.defaultStyles, style, axisStyles);

      return _react2.default.createElement(_radium.Style, {
        scopeSelector: scope,
        rules: rules
      });
    }
  }, {
    key: 'parseDate',
    value: function parseDate(v) {
      var datePattern = this.props.datePattern;


      var datePatternParser = dateParser[datePattern] || (dateParser[datePattern] = (0, _d3TimeFormat.timeParse)(datePattern));

      return datePatternParser(v);
    }
  }, {
    key: 'calculateChartParameters',
    value: function calculateChartParameters() {
      var _this4 = this;

      var _props7 = this.props,
          axes = _props7.axes,
          data = _props7.data,
          margin = _props7.margin,
          width = _props7.width,
          height = _props7.height,
          dotRadius = _props7.dotRadius,
          xType = _props7.xType,
          yType = _props7.yType,
          xDomainRange = _props7.xDomainRange,
          yDomainRange = _props7.yDomainRange,
          yAxisOrientRight = _props7.yAxisOrientRight;

      /*
       * We could "bind"!
       */

      var parseDate = function parseDate(v) {
        return _this4.parseDate(v);
      };

      var m = margin || this.calculateMargin(axes, dotRadius * 2, yAxisOrientRight);
      var w = width;
      var h = height + dotRadius * 3;

      var innerW = this.calculateInnerW(width, m);
      var innerH = this.calculateInnerH(height, m);

      var defaultXDomainRange = (0, _shared.calculateDomainRange)(xDomainRange, xType, parseDate);
      var defaultYDomainRange = (0, _shared.calculateDomainRange)(yDomainRange, yType, parseDate);

      var x = this.createDomainRangeGenerator('x', defaultXDomainRange, data, xType, innerW, yAxisOrientRight);
      var y = this.createDomainRangeGenerator('y', defaultYDomainRange, data, yType, innerH, yAxisOrientRight);

      var xAxis = this.calculateXAxis({ m: m, h: h, x: x, innerW: innerW });
      var yAxis = this.calculateYAxis({ m: m, y: y, innerW: innerW });

      var node = this.createSvgNode({ m: m, w: w, h: h });
      var root = this.createSvgRoot({ node: node, m: m });

      return {
        m: m,
        w: w,
        h: h,
        innerW: innerW,
        innerH: innerH,
        x: x,
        y: y,
        xAxis: xAxis,
        yAxis: yAxis,
        node: node,
        root: root
      };
    }
  }, {
    key: 'render',
    value: function render() {
      var axes = this.props.axes;


      var p = this.calculateChartParameters();

      if (axes) {
        this.createXAxis(p);

        this.createYAxis(p);
      }

      this.createScatterplotChart(p);

      var uid = this.uid;
      var className = 'scatterplot-chart-' + uid;
      var node = p.node;


      return _react2.default.createElement(
        'div',
        { ref: 'scatterplotChart', className: className },
        this.createStyle(),
        node.toReact()
      );
    }
  }]);
  return ScatterplotChart;
}(_react.PureComponent);

exports.default = ScatterplotChart;
module.exports = exports['default'];
//# sourceMappingURL=index.js.map

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _getPrototypeOf = __webpack_require__(246);

var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _createClass2 = __webpack_require__(34);

var _createClass3 = _interopRequireDefault(_createClass2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _radium = __webpack_require__(248);

var _d = __webpack_require__(217);

var _shared = __webpack_require__(247);

var _lodash = __webpack_require__(249);

var _lodash2 = _interopRequireDefault(_lodash);

var _defaultStyles = __webpack_require__(1069);

var _defaultStyles2 = _interopRequireDefault(_defaultStyles);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var colors = (0, _d.scaleOrdinal)(_d.schemeCategory20).domain((0, _d.range)(0, 20)).range();

var Legend = function (_PureComponent) {
  (0, _inherits3.default)(Legend, _PureComponent);
  (0, _createClass3.default)(Legend, null, [{
    key: 'propTypes',
    get: function get() {
      return {
        config: _propTypes2.default.array,
        data: _propTypes2.default.array.isRequired,
        tags: _propTypes2.default.array,
        dataId: _propTypes2.default.string.isRequired,
        horizontal: _propTypes2.default.bool,
        styles: _propTypes2.default.object
      };
    }
  }, {
    key: 'defaultProps',
    get: function get() {
      return {
        tags: []
      };
    }
  }]);

  function Legend(props) {
    (0, _classCallCheck3.default)(this, Legend);

    var _this = (0, _possibleConstructorReturn3.default)(this, (Legend.__proto__ || (0, _getPrototypeOf2.default)(Legend)).call(this, props));

    _this.uid = (0, _shared.createUniqueID)(props);
    return _this;
  }

  (0, _createClass3.default)(Legend, [{
    key: 'getBackgroundColor',
    value: function getBackgroundColor(index) {
      var config = this.props.config;


      if (typeof config !== 'undefined') {
        if (config.length > index) {
          return config[index].color;
        }
      }
      return colors[index];
    }
  }, {
    key: 'createLegend',
    value: function createLegend() {
      var _this2 = this;

      var _props = this.props,
          dataId = _props.dataId,
          data = _props.data,
          tags = _props.tags,
          horizontal = _props.horizontal;


      var className = horizontal ? 'horizontal' : '';

      data.forEach(function (item) {
        var index = tags.findIndex(function (tag) {
          return tag === item[dataId];
        });
        if (index < 0) tags.push(item[dataId]);
      });

      return _react2.default.createElement(
        'ul',
        { className: 'legend' },
        tags.map(function (item, index) {
          var key = 'legend-' + index;
          var backgroundColor = _this2.getBackgroundColor(index);
          return _react2.default.createElement(
            'li',
            { key: key, className: className },
            _react2.default.createElement('span', {
              className: 'icon',
              style: { backgroundColor: backgroundColor }
            }),
            item
          );
        })
      );
    }
  }, {
    key: 'createStyle',
    value: function createStyle() {
      var styles = this.props.styles;


      var uid = this.uid;
      var rules = (0, _lodash2.default)({}, _defaultStyles2.default, styles);
      var scope = '.legend-container-' + uid;

      return _react2.default.createElement(_radium.Style, {
        scopeSelector: scope,
        rules: rules
      });
    }
  }, {
    key: 'render',
    value: function render() {
      var uid = this.uid;
      var className = 'legend-container-' + uid;
      return _react2.default.createElement(
        'div',
        { className: className },
        this.createStyle(),
        this.createLegend()
      );
    }
  }]);
  return Legend;
}(_react.PureComponent);

exports.default = Legend;
module.exports = exports['default'];
//# sourceMappingURL=index.js.map

Object.defineProperty(exports, "__esModule", {
  value: true
});
/*
 * Move this junk out of the class
 */
exports.default = {
  '.legend': {
    'list-style': 'none',
    margin: 0,
    padding: 0
  },
  '.legend li': {
    display: 'block',
    lineHeight: '24px',
    marginRight: '24px',
    marginBottom: '6px',
    paddingLeft: '24px',
    position: 'relative'
  },
  '.legend li.horizontal': {
    display: 'inline-block'
  },
  '.legend .icon': {
    width: '12px',
    height: '12px',
    borderRadius: '6px',
    position: 'absolute',
    left: '0',
    top: '50%',
    marginTop: '-6px'
  }
};
module.exports = exports['default'];
//# sourceMappingURL=defaultStyles.js.map

__webpack_require__(1071);// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(1072);
if(typeof content === 'string') content = [[module.i, content, '']];
// Prepare cssTransformation
var transform;

var options = {"hmr":false}
options.transform = transform
// add the styles to the DOM
var update = __webpack_require__(85)(content, options);
if(content.locals) module.exports = content.locals;
exports = module.exports = __webpack_require__(84)(true);
// imports


// module
exports.push([module.i, "@font-face{font-family:Chinese Quote;src:local(\"PingFang SC\"),local(\"SimSun\");unicode-range:u+2018,u+2019,u+201c,u+201d}body,html{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:Chinese Quote,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;font-variant:tabular-nums;line-height:1.5;color:rgba(0,0,0,.65);background-color:#fff}[tabindex=\"-1\"]:focus{outline:none!important}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-top:0;margin-bottom:1em}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#1890ff;background-color:transparent;text-decoration:none;outline:none;cursor:pointer;-webkit-transition:color .3s;-o-transition:color .3s;transition:color .3s;-webkit-text-decoration-skip:objects}a:focus{text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip:ink}a:hover{color:#40a9ff}a:active{color:#096dd9}a:active,a:hover{outline:0;text-decoration:none}a[disabled]{color:rgba(0,0,0,.25);cursor:not-allowed;pointer-events:none}code,kbd,pre,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;color:rgba(0,0,0,.45);text-align:left;caption-side:bottom}th{text-align:inherit}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;color:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5em;font-size:1.5em;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}::-moz-selection{background:#1890ff;color:#fff}::selection{background:#1890ff;color:#fff}.clearfix{zoom:1}.clearfix:after,.clearfix:before{content:\"\";display:table}.clearfix:after{clear:both}@font-face{font-family:anticon;font-display:fallback;src:url(\"https://at.alicdn.com/t/font_148784_v4ggb6wrjmkotj4i.eot\");src:url(\"https://at.alicdn.com/t/font_148784_v4ggb6wrjmkotj4i.woff\") format(\"woff\"),url(\"https://at.alicdn.com/t/font_148784_v4ggb6wrjmkotj4i.ttf\") format(\"truetype\"),url(\"https://at.alicdn.com/t/font_148784_v4ggb6wrjmkotj4i.svg#iconfont\") format(\"svg\")}.anticon{display:inline-block;font-style:normal;vertical-align:baseline;text-align:center;text-transform:none;line-height:1;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.anticon:before{display:block;font-family:anticon!important}.anticon-step-forward:before{content:\"\\E600\"}.anticon-step-backward:before{content:\"\\E601\"}.anticon-forward:before{content:\"\\E602\"}.anticon-backward:before{content:\"\\E603\"}.anticon-caret-right:before{content:\"\\E604\"}.anticon-caret-left:before{content:\"\\E605\"}.anticon-caret-down:before{content:\"\\E606\"}.anticon-caret-up:before{content:\"\\E607\"}.anticon-caret-circle-right:before,.anticon-circle-right:before,.anticon-right-circle:before{content:\"\\E608\"}.anticon-caret-circle-left:before,.anticon-circle-left:before,.anticon-left-circle:before{content:\"\\E609\"}.anticon-caret-circle-up:before,.anticon-circle-up:before,.anticon-up-circle:before{content:\"\\E60A\"}.anticon-caret-circle-down:before,.anticon-circle-down:before,.anticon-down-circle:before{content:\"\\E60B\"}.anticon-right-circle-o:before{content:\"\\E60C\"}.anticon-caret-circle-o-right:before,.anticon-circle-o-right:before{content:\"\\E60C\"}.anticon-left-circle-o:before{content:\"\\E60D\"}.anticon-caret-circle-o-left:before,.anticon-circle-o-left:before{content:\"\\E60D\"}.anticon-up-circle-o:before{content:\"\\E60E\"}.anticon-caret-circle-o-up:before,.anticon-circle-o-up:before{content:\"\\E60E\"}.anticon-down-circle-o:before{content:\"\\E60F\"}.anticon-caret-circle-o-down:before,.anticon-circle-o-down:before{content:\"\\E60F\"}.anticon-verticle-left:before{content:\"\\E610\"}.anticon-verticle-right:before{content:\"\\E611\"}.anticon-rollback:before{content:\"\\E612\"}.anticon-retweet:before{content:\"\\E613\"}.anticon-shrink:before{content:\"\\E614\"}.anticon-arrow-salt:before,.anticon-arrows-alt:before{content:\"\\E615\"}.anticon-reload:before{content:\"\\E616\"}.anticon-double-right:before{content:\"\\E617\"}.anticon-double-left:before{content:\"\\E618\"}.anticon-arrow-down:before{content:\"\\E619\"}.anticon-arrow-up:before{content:\"\\E61A\"}.anticon-arrow-right:before{content:\"\\E61B\"}.anticon-arrow-left:before{content:\"\\E61C\"}.anticon-down:before{content:\"\\E61D\"}.anticon-up:before{content:\"\\E61E\"}.anticon-right:before{content:\"\\E61F\"}.anticon-left:before{content:\"\\E620\"}.anticon-minus-square-o:before{content:\"\\E621\"}.anticon-minus-circle:before{content:\"\\E622\"}.anticon-minus-circle-o:before{content:\"\\E623\"}.anticon-minus:before{content:\"\\E624\"}.anticon-plus-circle-o:before{content:\"\\E625\"}.anticon-plus-circle:before{content:\"\\E626\"}.anticon-plus:before{content:\"\\E627\"}.anticon-info-circle:before{content:\"\\E628\"}.anticon-info-circle-o:before{content:\"\\E629\"}.anticon-info:before{content:\"\\E62A\"}.anticon-exclamation:before{content:\"\\E62B\"}.anticon-exclamation-circle:before{content:\"\\E62C\"}.anticon-exclamation-circle-o:before{content:\"\\E62D\"}.anticon-close-circle:before,.anticon-cross-circle:before{content:\"\\E62E\"}.anticon-close-circle-o:before,.anticon-cross-circle-o:before{content:\"\\E62F\"}.anticon-check-circle:before{content:\"\\E630\"}.anticon-check-circle-o:before{content:\"\\E631\"}.anticon-check:before{content:\"\\E632\"}.anticon-close:before,.anticon-cross:before{content:\"\\E633\"}.anticon-customer-service:before,.anticon-customerservice:before{content:\"\\E634\"}.anticon-credit-card:before{content:\"\\E635\"}.anticon-code-o:before{content:\"\\E636\"}.anticon-book:before{content:\"\\E637\"}.anticon-bars:before{content:\"\\E639\"}.anticon-question:before{content:\"\\E63A\"}.anticon-question-circle:before{content:\"\\E63B\"}.anticon-question-circle-o:before{content:\"\\E63C\"}.anticon-pause:before{content:\"\\E63D\"}.anticon-pause-circle:before{content:\"\\E63E\"}.anticon-pause-circle-o:before{content:\"\\E63F\"}.anticon-clock-circle:before{content:\"\\E640\"}.anticon-clock-circle-o:before{content:\"\\E641\"}.anticon-swap:before{content:\"\\E642\"}.anticon-swap-left:before{content:\"\\E643\"}.anticon-swap-right:before{content:\"\\E644\"}.anticon-plus-square-o:before{content:\"\\E645\"}.anticon-frown-circle:before,.anticon-frown:before{content:\"\\E646\"}.anticon-ellipsis:before{content:\"\\E647\"}.anticon-copy:before{content:\"\\E648\"}.anticon-menu-fold:before{content:\"\\E9AC\"}.anticon-mail:before{content:\"\\E659\"}.anticon-logout:before{content:\"\\E65A\"}.anticon-link:before{content:\"\\E65B\"}.anticon-area-chart:before{content:\"\\E65C\"}.anticon-line-chart:before{content:\"\\E65D\"}.anticon-home:before{content:\"\\E65E\"}.anticon-laptop:before{content:\"\\E65F\"}.anticon-star:before{content:\"\\E660\"}.anticon-star-o:before{content:\"\\E661\"}.anticon-folder:before{content:\"\\E662\"}.anticon-filter:before{content:\"\\E663\"}.anticon-file:before{content:\"\\E664\"}.anticon-exception:before{content:\"\\E665\"}.anticon-meh-circle:before,.anticon-meh:before{content:\"\\E666\"}.anticon-meh-o:before{content:\"\\E667\"}.anticon-shopping-cart:before{content:\"\\E668\"}.anticon-save:before{content:\"\\E669\"}.anticon-user:before{content:\"\\E66A\"}.anticon-video-camera:before{content:\"\\E66B\"}.anticon-to-top:before{content:\"\\E66C\"}.anticon-team:before{content:\"\\E66D\"}.anticon-tablet:before{content:\"\\E66E\"}.anticon-solution:before{content:\"\\E66F\"}.anticon-search:before{content:\"\\E670\"}.anticon-share-alt:before{content:\"\\E671\"}.anticon-setting:before{content:\"\\E672\"}.anticon-poweroff:before{content:\"\\E6D5\"}.anticon-picture:before{content:\"\\E674\"}.anticon-phone:before{content:\"\\E675\"}.anticon-paper-clip:before{content:\"\\E676\"}.anticon-notification:before{content:\"\\E677\"}.anticon-mobile:before{content:\"\\E678\"}.anticon-menu-unfold:before{content:\"\\E9AD\"}.anticon-inbox:before{content:\"\\E67A\"}.anticon-lock:before{content:\"\\E67B\"}.anticon-qrcode:before{content:\"\\E67C\"}.anticon-play-circle:before{content:\"\\E6D0\"}.anticon-play-circle-o:before{content:\"\\E6D1\"}.anticon-tag:before{content:\"\\E6D2\"}.anticon-tag-o:before{content:\"\\E6D3\"}.anticon-tags:before{content:\"\\E67D\"}.anticon-tags-o:before{content:\"\\E67E\"}.anticon-cloud-o:before{content:\"\\E67F\"}.anticon-cloud:before{content:\"\\E680\"}.anticon-cloud-upload:before{content:\"\\E681\"}.anticon-cloud-download:before{content:\"\\E682\"}.anticon-cloud-download-o:before{content:\"\\E683\"}.anticon-cloud-upload-o:before{content:\"\\E684\"}.anticon-environment:before{content:\"\\E685\"}.anticon-environment-o:before{content:\"\\E686\"}.anticon-eye:before{content:\"\\E687\"}.anticon-eye-o:before{content:\"\\E688\"}.anticon-camera:before{content:\"\\E689\"}.anticon-camera-o:before{content:\"\\E68A\"}.anticon-windows:before{content:\"\\E68B\"}.anticon-apple:before{content:\"\\E68C\"}.anticon-apple-o:before{content:\"\\E6D4\"}.anticon-android:before{content:\"\\E938\"}.anticon-android-o:before{content:\"\\E68D\"}.anticon-aliwangwang:before{content:\"\\E68E\"}.anticon-aliwangwang-o:before{content:\"\\E68F\"}.anticon-export:before{content:\"\\E691\"}.anticon-edit:before{content:\"\\E692\"}.anticon-appstore-o:before{content:\"\\E695\"}.anticon-appstore:before{content:\"\\E696\"}.anticon-scan:before{content:\"\\E697\"}.anticon-file-text:before{content:\"\\E698\"}.anticon-folder-open:before{content:\"\\E699\"}.anticon-hdd:before{content:\"\\E69A\"}.anticon-ie:before{content:\"\\E69B\"}.anticon-file-jpg:before{content:\"\\E69C\"}.anticon-like:before{content:\"\\E64C\"}.anticon-like-o:before{content:\"\\E69D\"}.anticon-dislike:before{content:\"\\E64B\"}.anticon-dislike-o:before{content:\"\\E69E\"}.anticon-delete:before{content:\"\\E69F\"}.anticon-enter:before{content:\"\\E6A0\"}.anticon-pushpin-o:before{content:\"\\E6A1\"}.anticon-pushpin:before{content:\"\\E6A2\"}.anticon-heart:before{content:\"\\E6A3\"}.anticon-heart-o:before{content:\"\\E6A4\"}.anticon-pay-circle:before{content:\"\\E6A5\"}.anticon-pay-circle-o:before{content:\"\\E6A6\"}.anticon-smile-circle:before,.anticon-smile:before{content:\"\\E6A7\"}.anticon-smile-o:before{content:\"\\E6A8\"}.anticon-frown-o:before{content:\"\\E6A9\"}.anticon-calculator:before{content:\"\\E6AA\"}.anticon-message:before{content:\"\\E6AB\"}.anticon-chrome:before{content:\"\\E6AC\"}.anticon-github:before{content:\"\\E6AD\"}.anticon-file-unknown:before{content:\"\\E6AF\"}.anticon-file-excel:before{content:\"\\E6B0\"}.anticon-file-ppt:before{content:\"\\E6B1\"}.anticon-file-word:before{content:\"\\E6B2\"}.anticon-file-pdf:before{content:\"\\E6B3\"}.anticon-desktop:before{content:\"\\E6B4\"}.anticon-upload:before{content:\"\\E6B6\"}.anticon-download:before{content:\"\\E6B7\"}.anticon-pie-chart:before{content:\"\\E6B8\"}.anticon-unlock:before{content:\"\\E6BA\"}.anticon-calendar:before{content:\"\\E6BB\"}.anticon-windows-o:before{content:\"\\E6BC\"}.anticon-dot-chart:before{content:\"\\E6BD\"}.anticon-bar-chart:before{content:\"\\E6BE\"}.anticon-code:before{content:\"\\E6BF\"}.anticon-api:before{content:\"\\E951\"}.anticon-plus-square:before{content:\"\\E6C0\"}.anticon-minus-square:before{content:\"\\E6C1\"}.anticon-close-square:before{content:\"\\E6C2\"}.anticon-close-square-o:before{content:\"\\E6C3\"}.anticon-check-square:before{content:\"\\E6C4\"}.anticon-check-square-o:before{content:\"\\E6C5\"}.anticon-fast-backward:before{content:\"\\E6C6\"}.anticon-fast-forward:before{content:\"\\E6C7\"}.anticon-up-square:before{content:\"\\E6C8\"}.anticon-down-square:before{content:\"\\E6C9\"}.anticon-left-square:before{content:\"\\E6CA\"}.anticon-right-square:before{content:\"\\E6CB\"}.anticon-right-square-o:before{content:\"\\E6CC\"}.anticon-left-square-o:before{content:\"\\E6CD\"}.anticon-down-square-o:before{content:\"\\E6CE\"}.anticon-up-square-o:before{content:\"\\E6CF\"}.anticon-loading:before{content:\"\\E64D\"}.anticon-loading-3-quarters:before{content:\"\\E6AE\"}.anticon-bulb:before{content:\"\\E649\"}.anticon-select:before{content:\"\\E64A\"}.anticon-addfile:before,.anticon-file-add:before{content:\"\\E910\"}.anticon-addfolder:before,.anticon-folder-add:before{content:\"\\E914\"}.anticon-switcher:before{content:\"\\E913\"}.anticon-rocket:before{content:\"\\E90F\"}.anticon-dingding:before{content:\"\\E923\"}.anticon-dingding-o:before{content:\"\\E925\"}.anticon-bell:before{content:\"\\E64E\"}.anticon-disconnect:before{content:\"\\E64F\"}.anticon-database:before{content:\"\\E650\"}.anticon-compass:before{content:\"\\E6DB\"}.anticon-barcode:before{content:\"\\E652\"}.anticon-hourglass:before{content:\"\\E653\"}.anticon-key:before{content:\"\\E654\"}.anticon-flag:before{content:\"\\E655\"}.anticon-layout:before{content:\"\\E656\"}.anticon-login:before{content:\"\\E657\"}.anticon-printer:before{content:\"\\E673\"}.anticon-sound:before{content:\"\\E6E9\"}.anticon-usb:before{content:\"\\E6D7\"}.anticon-skin:before{content:\"\\E6D8\"}.anticon-tool:before{content:\"\\E6D9\"}.anticon-sync:before{content:\"\\E6DA\"}.anticon-wifi:before{content:\"\\E6D6\"}.anticon-car:before{content:\"\\E6DC\"}.anticon-copyright:before{content:\"\\E6DE\"}.anticon-schedule:before{content:\"\\E6DF\"}.anticon-user-add:before{content:\"\\E6ED\"}.anticon-user-delete:before{content:\"\\E6E0\"}.anticon-usergroup-add:before{content:\"\\E6DD\"}.anticon-usergroup-delete:before{content:\"\\E6E1\"}.anticon-man:before{content:\"\\E6E2\"}.anticon-woman:before{content:\"\\E6EC\"}.anticon-shop:before{content:\"\\E6E3\"}.anticon-gift:before{content:\"\\E6E4\"}.anticon-idcard:before{content:\"\\E6E5\"}.anticon-medicine-box:before{content:\"\\E6E6\"}.anticon-red-envelope:before{content:\"\\E6E7\"}.anticon-coffee:before{content:\"\\E6E8\"}.anticon-trademark:before{content:\"\\E651\"}.anticon-safety:before{content:\"\\E6EA\"}.anticon-wallet:before{content:\"\\E6EB\"}.anticon-bank:before{content:\"\\E6EE\"}.anticon-trophy:before{content:\"\\E6EF\"}.anticon-contacts:before{content:\"\\E6F0\"}.anticon-global:before{content:\"\\E6F1\"}.anticon-shake:before{content:\"\\E94F\"}.anticon-fork:before{content:\"\\E6F2\"}.anticon-dashboard:before{content:\"\\E99A\"}.anticon-profile:before{content:\"\\E999\"}.anticon-table:before{content:\"\\E998\"}.anticon-warning:before{content:\"\\E997\"}.anticon-form:before{content:\"\\E996\"}.anticon-spin:before{display:inline-block;-webkit-animation:loadingCircle 1s infinite linear;animation:loadingCircle 1s infinite linear}.anticon-weibo-square:before{content:\"\\E6F5\"}.anticon-weibo-circle:before{content:\"\\E6F4\"}.anticon-taobao-circle:before{content:\"\\E6F3\"}.anticon-html5:before{content:\"\\E9C7\"}.anticon-weibo:before{content:\"\\E9C6\"}.anticon-twitter:before{content:\"\\E9C5\"}.anticon-wechat:before{content:\"\\E9C4\"}.anticon-youtube:before{content:\"\\E9C3\"}.anticon-alipay-circle:before{content:\"\\E9C2\"}.anticon-taobao:before{content:\"\\E9C1\"}.anticon-skype:before{content:\"\\E9C0\"}.anticon-qq:before{content:\"\\E9BF\"}.anticon-medium-workmark:before{content:\"\\E9BE\"}.anticon-gitlab:before{content:\"\\E9BD\"}.anticon-medium:before{content:\"\\E9BC\"}.anticon-linkedin:before{content:\"\\E9BB\"}.anticon-google-plus:before{content:\"\\E9BA\"}.anticon-dropbox:before{content:\"\\E9B9\"}.anticon-facebook:before{content:\"\\E9B8\"}.anticon-codepen:before{content:\"\\E9B7\"}.anticon-amazon:before{content:\"\\E9B6\"}.anticon-google:before{content:\"\\E9B5\"}.anticon-codepen-circle:before{content:\"\\E9B4\"}.anticon-alipay:before{content:\"\\E9B3\"}.anticon-ant-design:before{content:\"\\E9B2\"}.anticon-aliyun:before{content:\"\\E9F4\"}.anticon-zhihu:before{content:\"\\E703\"}.anticon-file-markdown:before{content:\"\\E704\"}.anticon-slack:before{content:\"\\E705\"}.anticon-slack-square:before{content:\"\\E706\"}.anticon-behance:before{content:\"\\E707\"}.anticon-behance-square:before{content:\"\\E708\"}.anticon-dribbble:before{content:\"\\E709\"}.anticon-dribbble-square:before{content:\"\\E70A\"}.anticon-instagram:before{content:\"\\E70B\"}.anticon-yuque:before{content:\"\\E70C\"}.fade-appear,.fade-enter,.fade-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.fade-appear.fade-appear-active,.fade-enter.fade-enter-active{-webkit-animation-name:antFadeIn;animation-name:antFadeIn;-webkit-animation-play-state:running;animation-play-state:running}.fade-leave.fade-leave-active{-webkit-animation-name:antFadeOut;animation-name:antFadeOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.fade-appear,.fade-enter{opacity:0}.fade-appear,.fade-enter,.fade-leave{-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes antFadeOut{0%{opacity:1}to{opacity:0}}@keyframes antFadeOut{0%{opacity:1}to{opacity:0}}.move-up-appear,.move-up-enter,.move-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-up-appear.move-up-appear-active,.move-up-enter.move-up-enter-active{-webkit-animation-name:antMoveUpIn;animation-name:antMoveUpIn;-webkit-animation-play-state:running;animation-play-state:running}.move-up-leave.move-up-leave-active{-webkit-animation-name:antMoveUpOut;animation-name:antMoveUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-up-appear,.move-up-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-up-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-down-appear,.move-down-enter,.move-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-down-appear.move-down-appear-active,.move-down-enter.move-down-enter-active{-webkit-animation-name:antMoveDownIn;animation-name:antMoveDownIn;-webkit-animation-play-state:running;animation-play-state:running}.move-down-leave.move-down-leave-active{-webkit-animation-name:antMoveDownOut;animation-name:antMoveDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-down-appear,.move-down-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-down-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-left-appear,.move-left-enter,.move-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-left-appear.move-left-appear-active,.move-left-enter.move-left-enter-active{-webkit-animation-name:antMoveLeftIn;animation-name:antMoveLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.move-left-leave.move-left-leave-active{-webkit-animation-name:antMoveLeftOut;animation-name:antMoveLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-left-appear,.move-left-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-left-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-right-appear,.move-right-enter,.move-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-right-appear.move-right-appear-active,.move-right-enter.move-right-enter-active{-webkit-animation-name:antMoveRightIn;animation-name:antMoveRightIn;-webkit-animation-play-state:running;animation-play-state:running}.move-right-leave.move-right-leave-active{-webkit-animation-name:antMoveRightOut;animation-name:antMoveRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-right-appear,.move-right-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-right-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@-webkit-keyframes antMoveDownIn{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes antMoveDownIn{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@-webkit-keyframes antMoveDownOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}}@keyframes antMoveDownOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}}@-webkit-keyframes antMoveLeftIn{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}}@keyframes antMoveLeftIn{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}}@-webkit-keyframes antMoveLeftOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}@keyframes antMoveLeftOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}@-webkit-keyframes antMoveRightIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes antMoveRightIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes antMoveRightOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@keyframes antMoveRightOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@-webkit-keyframes antMoveUpIn{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(-100%);transform:translateY(-100%);opacity:0}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes antMoveUpIn{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(-100%);transform:translateY(-100%);opacity:0}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@-webkit-keyframes antMoveUpOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(-100%);transform:translateY(-100%);opacity:0}}@keyframes antMoveUpOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(-100%);transform:translateY(-100%);opacity:0}}@-webkit-keyframes loadingCircle{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loadingCircle{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}[ant-click-animating-without-extra-node],[ant-click-animating]{position:relative}.ant-click-animating-node,[ant-click-animating-without-extra-node]:after{content:\"\";position:absolute;top:-1px;left:-1px;bottom:-1px;right:-1px;border-radius:inherit;border:0 solid #1890ff;opacity:.4;-webkit-animation:waveEffect .4s cubic-bezier(.25,.8,.25,1);animation:waveEffect .4s cubic-bezier(.25,.8,.25,1);display:block}@-webkit-keyframes waveEffect{to{opacity:0;top:-6px;left:-6px;bottom:-6px;right:-6px;border-width:6px}}@keyframes waveEffect{to{opacity:0;top:-6px;left:-6px;bottom:-6px;right:-6px;border-width:6px}}.slide-up-appear,.slide-up-enter,.slide-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-up-appear.slide-up-appear-active,.slide-up-enter.slide-up-enter-active{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-up-leave.slide-up-leave-active{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-up-appear,.slide-up-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-up-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-down-appear,.slide-down-enter,.slide-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-down-appear.slide-down-appear-active,.slide-down-enter.slide-down-enter-active{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-down-leave.slide-down-leave-active{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-down-appear,.slide-down-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-down-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-left-appear,.slide-left-enter,.slide-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-left-appear.slide-left-appear-active,.slide-left-enter.slide-left-enter-active{-webkit-animation-name:antSlideLeftIn;animation-name:antSlideLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-left-leave.slide-left-leave-active{-webkit-animation-name:antSlideLeftOut;animation-name:antSlideLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-left-appear,.slide-left-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-left-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-right-appear,.slide-right-enter,.slide-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-right-appear.slide-right-appear-active,.slide-right-enter.slide-right-enter-active{-webkit-animation-name:antSlideRightIn;animation-name:antSlideRightIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-right-leave.slide-right-leave-active{-webkit-animation-name:antSlideRightOut;animation-name:antSlideRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-right-appear,.slide-right-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-right-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@-webkit-keyframes antSlideUpIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.8);transform:scaleY(.8)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes antSlideUpIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.8);transform:scaleY(.8)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes antSlideUpOut{0%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.8);transform:scaleY(.8)}}@keyframes antSlideUpOut{0%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.8);transform:scaleY(.8)}}@-webkit-keyframes antSlideDownIn{0%{opacity:0;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(.8);transform:scaleY(.8)}to{opacity:1;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes antSlideDownIn{0%{opacity:0;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(.8);transform:scaleY(.8)}to{opacity:1;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes antSlideDownOut{0%{opacity:1;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(.8);transform:scaleY(.8)}}@keyframes antSlideDownOut{0%{opacity:1;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(1);transform:scaleY(1)}to{opacity:0;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(.8);transform:scaleY(.8)}}@-webkit-keyframes antSlideLeftIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes antSlideLeftIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes antSlideLeftOut{0%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}}@keyframes antSlideLeftOut{0%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}}@-webkit-keyframes antSlideRightIn{0%{opacity:0;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}to{opacity:1;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes antSlideRightIn{0%{opacity:0;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}to{opacity:1;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes antSlideRightOut{0%{opacity:1;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}}@keyframes antSlideRightOut{0%{opacity:1;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(1);transform:scaleX(1)}to{opacity:0;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}}.swing-appear,.swing-enter{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.swing-appear.swing-appear-active,.swing-enter.swing-enter-active{-webkit-animation-name:antSwingIn;animation-name:antSwingIn;-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes antSwingIn{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}40%{-webkit-transform:translateX(10px);transform:translateX(10px)}60%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}80%{-webkit-transform:translateX(5px);transform:translateX(5px)}}@keyframes antSwingIn{0%,to{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}40%{-webkit-transform:translateX(10px);transform:translateX(10px)}60%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}80%{-webkit-transform:translateX(5px);transform:translateX(5px)}}.zoom-appear,.zoom-enter,.zoom-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-appear.zoom-appear-active,.zoom-enter.zoom-enter-active{-webkit-animation-name:antZoomIn;animation-name:antZoomIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-leave.zoom-leave-active{-webkit-animation-name:antZoomOut;animation-name:antZoomOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-appear,.zoom-enter{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-appear,.zoom-big-enter,.zoom-big-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-appear.zoom-big-appear-active,.zoom-big-enter.zoom-big-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-leave.zoom-big-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-appear,.zoom-big-enter{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-fast-appear,.zoom-big-fast-enter,.zoom-big-fast-leave{-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-fast-appear.zoom-big-fast-appear-active,.zoom-big-fast-enter.zoom-big-fast-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-fast-leave.zoom-big-fast-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-fast-appear,.zoom-big-fast-enter{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-fast-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-up-appear,.zoom-up-enter,.zoom-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-up-appear.zoom-up-appear-active,.zoom-up-enter.zoom-up-enter-active{-webkit-animation-name:antZoomUpIn;animation-name:antZoomUpIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-up-leave.zoom-up-leave-active{-webkit-animation-name:antZoomUpOut;animation-name:antZoomUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-up-appear,.zoom-up-enter{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-up-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-down-appear,.zoom-down-enter,.zoom-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-down-appear.zoom-down-appear-active,.zoom-down-enter.zoom-down-enter-active{-webkit-animation-name:antZoomDownIn;animation-name:antZoomDownIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-down-leave.zoom-down-leave-active{-webkit-animation-name:antZoomDownOut;animation-name:antZoomDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-down-appear,.zoom-down-enter{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-down-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-left-appear,.zoom-left-enter,.zoom-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-left-appear.zoom-left-appear-active,.zoom-left-enter.zoom-left-enter-active{-webkit-animation-name:antZoomLeftIn;animation-name:antZoomLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-left-leave.zoom-left-leave-active{-webkit-animation-name:antZoomLeftOut;animation-name:antZoomLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-left-appear,.zoom-left-enter{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-left-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-right-appear,.zoom-right-enter,.zoom-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-right-appear.zoom-right-appear-active,.zoom-right-enter.zoom-right-enter-active{-webkit-animation-name:antZoomRightIn;animation-name:antZoomRightIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-right-leave.zoom-right-leave-active{-webkit-animation-name:antZoomRightOut;animation-name:antZoomRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-right-appear,.zoom-right-enter{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-right-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@-webkit-keyframes antZoomIn{0%{opacity:0;-webkit-transform:scale(.2);transform:scale(.2)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes antZoomIn{0%{opacity:0;-webkit-transform:scale(.2);transform:scale(.2)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes antZoomOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.2);transform:scale(.2)}}@keyframes antZoomOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.2);transform:scale(.2)}}@-webkit-keyframes antZoomBigIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes antZoomBigIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes antZoomBigOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}}@keyframes antZoomBigOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}}@-webkit-keyframes antZoomUpIn{0%{opacity:0;-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:scale(.8);transform:scale(.8)}to{-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:scale(1);transform:scale(1)}}@keyframes antZoomUpIn{0%{opacity:0;-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:scale(.8);transform:scale(.8)}to{-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes antZoomUpOut{0%{-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:scale(.8);transform:scale(.8)}}@keyframes antZoomUpOut{0%{-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:scale(.8);transform:scale(.8)}}@-webkit-keyframes antZoomLeftIn{0%{opacity:0;-webkit-transform-origin:0 50%;transform-origin:0 50%;-webkit-transform:scale(.8);transform:scale(.8)}to{-webkit-transform-origin:0 50%;transform-origin:0 50%;-webkit-transform:scale(1);transform:scale(1)}}@keyframes antZoomLeftIn{0%{opacity:0;-webkit-transform-origin:0 50%;transform-origin:0 50%;-webkit-transform:scale(.8);transform:scale(.8)}to{-webkit-transform-origin:0 50%;transform-origin:0 50%;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes antZoomLeftOut{0%{-webkit-transform-origin:0 50%;transform-origin:0 50%;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform-origin:0 50%;transform-origin:0 50%;-webkit-transform:scale(.8);transform:scale(.8)}}@keyframes antZoomLeftOut{0%{-webkit-transform-origin:0 50%;transform-origin:0 50%;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform-origin:0 50%;transform-origin:0 50%;-webkit-transform:scale(.8);transform:scale(.8)}}@-webkit-keyframes antZoomRightIn{0%{opacity:0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-transform:scale(.8);transform:scale(.8)}to{-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-transform:scale(1);transform:scale(1)}}@keyframes antZoomRightIn{0%{opacity:0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-transform:scale(.8);transform:scale(.8)}to{-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes antZoomRightOut{0%{-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-transform:scale(.8);transform:scale(.8)}}@keyframes antZoomRightOut{0%{-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-transform:scale(.8);transform:scale(.8)}}@-webkit-keyframes antZoomDownIn{0%{opacity:0;-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transform:scale(.8);transform:scale(.8)}to{-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transform:scale(1);transform:scale(1)}}@keyframes antZoomDownIn{0%{opacity:0;-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transform:scale(.8);transform:scale(.8)}to{-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes antZoomDownOut{0%{-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transform:scale(.8);transform:scale(.8)}}@keyframes antZoomDownOut{0%{-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transform:scale(.8);transform:scale(.8)}}.ant-motion-collapse{overflow:hidden}.ant-motion-collapse-active{-webkit-transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important;-o-transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important;transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important}", "", {"version":3,"sources":["/home/vsts/work/1/s/node_modules/antd/lib/style/index.css"],"names":[],"mappings":"AAKA,WACE,0BAA6B,AAC7B,yCAA2C,AAC3C,yCAA8C,CAAE,AAElD,UAEE,WAAY,AACZ,WAAa,CAAE,AAEjB,mCAEE,YAAc,CAAE,AAElB,iBAGE,8BAA+B,AAC/B,qBAAuB,CAAE,AAE3B,KACE,uBAAwB,AACxB,iBAAkB,AAClB,8BAA+B,AAC/B,0BAA2B,AAC3B,6BAA8B,AAC9B,yCAA8C,CAAE,AAElD,cACE,kBAAoB,CAAE,AAExB,6EAWE,aAAe,CAAE,AAEnB,KACE,SAAU,AACV,2JAA4O,AAC5O,eAAgB,AAChB,0BAA2B,AAC3B,gBAAiB,AACjB,sBAA2B,AAC3B,qBAAuB,CAAE,AAE3B,sBACE,sBAAyB,CAAE,AAE7B,GACE,+BAAgC,AAChC,uBAAwB,AACxB,SAAU,AACV,gBAAkB,CAAE,AAEtB,kBAME,aAAc,AACd,mBAAoB,AACpB,sBAA2B,AAC3B,eAAiB,CAAE,AAErB,EACE,aAAc,AACd,iBAAmB,CAAE,AAEvB,sCAEE,0BAA2B,AAC3B,yCAA0C,AAC1C,iCAAkC,AAClC,YAAa,AACb,eAAiB,CAAE,AAErB,QACE,kBAAmB,AACnB,kBAAmB,AACnB,mBAAqB,CAAE,AAEzB,kEAIE,uBAAyB,CAAE,AAE7B,SAGE,aAAc,AACd,iBAAmB,CAAE,AAEvB,wBAIE,eAAiB,CAAE,AAErB,GACE,eAAiB,CAAE,AAErB,GACE,mBAAoB,AACpB,aAAe,CAAE,AAEnB,WACE,cAAgB,CAAE,AAEpB,IACE,iBAAmB,CAAE,AAEvB,SAEE,kBAAoB,CAAE,AAExB,MACE,aAAe,CAAE,AAEnB,QAEE,kBAAmB,AACnB,cAAe,AACf,cAAe,AACf,uBAAyB,CAAE,AAE7B,IACE,aAAgB,CAAE,AAEpB,IACE,SAAY,CAAE,AAEhB,EACE,cAAe,AACf,6BAA8B,AAC9B,qBAAsB,AACtB,aAAc,AACd,eAAgB,AAChB,6BAA8B,AAC9B,wBAAyB,AACzB,qBAAsB,AACtB,oCAAsC,CAAE,AAE1C,QACE,0BAA2B,AAC3B,iCAAkC,AAClC,wBAA0B,CAAE,AAE9B,QACE,aAAe,CAAE,AAEnB,SACE,aAAe,CAAE,AAEnB,iBAEE,UAAW,AACX,oBAAsB,CAAE,AAE1B,YACE,sBAA2B,AAC3B,mBAAoB,AACpB,mBAAqB,CAAE,AAEzB,kBAIE,4EAAsF,AACtF,aAAe,CAAE,AAEnB,IACE,aAAc,AACd,kBAAmB,AACnB,aAAe,CAAE,AAEnB,OACE,cAAgB,CAAE,AAEpB,IACE,sBAAuB,AACvB,iBAAmB,CAAE,AAEvB,eACE,eAAiB,CAAE,AAErB,kFASE,8BAA+B,AAC/B,yBAA2B,CAAE,AAE/B,MACE,wBAA0B,CAAE,AAE9B,QACE,kBAAmB,AACnB,oBAAqB,AACrB,sBAA2B,AAC3B,gBAAiB,AACjB,mBAAqB,CAAE,AAEzB,GACE,kBAAoB,CAAE,AAExB,sCAKE,SAAU,AACV,oBAAqB,AACrB,kBAAmB,AACnB,oBAAqB,AACrB,aAAe,CAAE,AAEnB,aAEE,gBAAkB,CAAE,AAEtB,cAEE,mBAAqB,CAAE,AAEzB,qDAIE,yBAA2B,CAAE,AAE/B,wHAIE,UAAW,AACX,iBAAmB,CAAE,AAEvB,uCAEE,8BAA+B,AAC/B,sBAAuB,AACvB,SAAW,CAAE,AAEf,+EAIE,0BAA4B,CAAE,AAEhC,SACE,cAAe,AACf,eAAiB,CAAE,AAErB,SACE,YAAa,AACb,UAAW,AACX,SAAU,AACV,QAAU,CAAE,AAEd,OACE,cAAe,AACf,WAAY,AACZ,eAAgB,AAChB,UAAW,AACX,mBAAoB,AACpB,gBAAiB,AACjB,oBAAqB,AACrB,cAAe,AACf,kBAAoB,CAAE,AAExB,SACE,uBAAyB,CAAE,AAE7B,kFAEE,WAAa,CAAE,AAEjB,cACE,oBAAqB,AACrB,uBAAyB,CAAE,AAE7B,qFAEE,uBAAyB,CAAE,AAE7B,6BACE,aAAc,AACd,yBAA2B,CAAE,AAE/B,OACE,oBAAsB,CAAE,AAE1B,QACE,iBAAmB,CAAE,AAEvB,SACE,YAAc,CAAE,AAElB,SACE,sBAAyB,CAAE,AAE7B,KACE,aAAc,AACd,wBAA0B,CAAE,AAE9B,iBACE,mBAAoB,AACpB,UAAY,CAAE,AAEhB,YACE,mBAAoB,AACpB,UAAY,CAAE,AAEhB,UACE,MAAQ,CAAE,AAEZ,iCAEE,WAAY,AACZ,aAAe,CAAE,AAEnB,gBACE,UAAY,CAAE,AAEhB,WACE,oBAAuB,AACvB,sBAAuB,AACvB,oEAAqE,AAErE,6PAAiQ,CAAE,AAErQ,SACE,qBAAsB,AACtB,kBAAmB,AACnB,wBAAyB,AACzB,kBAAmB,AACnB,oBAAqB,AACrB,cAAe,AACf,kCAAmC,AACnC,mCAAoC,AACpC,iCAAmC,CAAE,AAEvC,gBACE,cAAe,AACf,6BAAkC,CAAE,AAEtC,6BACE,eAAiB,CAAE,AAErB,8BACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,4BACE,eAAiB,CAAE,AAErB,2BACE,eAAiB,CAAE,AAErB,2BACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAQrB,6FACE,eAAiB,CAAE,AAQrB,0FACE,eAAiB,CAAE,AAQrB,oFACE,eAAiB,CAAE,AAQrB,0FACE,eAAiB,CAAE,AAErB,+BACE,eAAiB,CAAE,AAKrB,oEACE,eAAiB,CAAE,AAErB,8BACE,eAAiB,CAAE,AAKrB,kEACE,eAAiB,CAAE,AAErB,4BACE,eAAiB,CAAE,AAKrB,8DACE,eAAiB,CAAE,AAErB,8BACE,eAAiB,CAAE,AAKrB,kEACE,eAAiB,CAAE,AAErB,8BACE,eAAiB,CAAE,AAErB,+BACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAKrB,sDACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,6BACE,eAAiB,CAAE,AAErB,4BACE,eAAiB,CAAE,AAErB,2BACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,4BACE,eAAiB,CAAE,AAErB,2BACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,mBACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,+BACE,eAAiB,CAAE,AAErB,6BACE,eAAiB,CAAE,AAErB,+BACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,8BACE,eAAiB,CAAE,AAErB,4BACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,4BACE,eAAiB,CAAE,AAErB,8BACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,4BACE,eAAiB,CAAE,AAErB,mCACE,eAAiB,CAAE,AAErB,qCACE,eAAiB,CAAE,AAKrB,0DACE,eAAiB,CAAE,AAKrB,8DACE,eAAiB,CAAE,AAErB,6BACE,eAAiB,CAAE,AAErB,+BACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAKrB,4CACE,eAAiB,CAAE,AAKrB,iEACE,eAAiB,CAAE,AAErB,4BACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,gCACE,eAAiB,CAAE,AAErB,kCACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,6BACE,eAAiB,CAAE,AAErB,+BACE,eAAiB,CAAE,AAErB,6BACE,eAAiB,CAAE,AAErB,+BACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,0BACE,eAAiB,CAAE,AAErB,2BACE,eAAiB,CAAE,AAErB,8BACE,eAAiB,CAAE,AAKrB,mDACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,0BACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,2BACE,eAAiB,CAAE,AAErB,2BACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,0BACE,eAAiB,CAAE,AAKrB,+CACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,8BACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,6BACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,0BACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,2BACE,eAAiB,CAAE,AAErB,6BACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,4BACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,4BACE,eAAiB,CAAE,AAErB,8BACE,eAAiB,CAAE,AAErB,oBACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,6BACE,eAAiB,CAAE,AAErB,+BACE,eAAiB,CAAE,AAErB,iCACE,eAAiB,CAAE,AAErB,+BACE,eAAiB,CAAE,AAErB,4BACE,eAAiB,CAAE,AAErB,8BACE,eAAiB,CAAE,AAErB,oBACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,0BACE,eAAiB,CAAE,AAErB,4BACE,eAAiB,CAAE,AAErB,8BACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,2BACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,0BACE,eAAiB,CAAE,AAErB,4BACE,eAAiB,CAAE,AAErB,oBACE,eAAiB,CAAE,AAErB,mBACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,0BACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,0BACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,2BACE,eAAiB,CAAE,AAErB,6BACE,eAAiB,CAAE,AAKrB,mDACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,2BACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,6BACE,eAAiB,CAAE,AAErB,2BACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,0BACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,0BACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,0BACE,eAAiB,CAAE,AAErB,0BACE,eAAiB,CAAE,AAErB,0BACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,oBACE,eAAiB,CAAE,AAErB,4BACE,eAAiB,CAAE,AAErB,6BACE,eAAiB,CAAE,AAErB,6BACE,eAAiB,CAAE,AAErB,+BACE,eAAiB,CAAE,AAErB,6BACE,eAAiB,CAAE,AAErB,+BACE,eAAiB,CAAE,AAErB,8BACE,eAAiB,CAAE,AAErB,6BACE,eAAiB,CAAE,AAErB,0BACE,eAAiB,CAAE,AAErB,4BACE,eAAiB,CAAE,AAErB,4BACE,eAAiB,CAAE,AAErB,6BACE,eAAiB,CAAE,AAErB,+BACE,eAAiB,CAAE,AAErB,8BACE,eAAiB,CAAE,AAErB,8BACE,eAAiB,CAAE,AAErB,4BACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,mCACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,iDAEE,eAAiB,CAAE,AAErB,qDAEE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,2BACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,2BACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,0BACE,eAAiB,CAAE,AAErB,oBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,oBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,oBACE,eAAiB,CAAE,AAErB,0BACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,4BACE,eAAiB,CAAE,AAErB,8BACE,eAAiB,CAAE,AAErB,iCACE,eAAiB,CAAE,AAErB,oBACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,6BACE,eAAiB,CAAE,AAErB,6BACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,0BACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,0BACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,qBACE,eAAiB,CAAE,AAErB,qBACE,qBAAsB,AACtB,mDAAoD,AACpD,0CAA4C,CAAE,AAEhD,6BACE,eAAiB,CAAE,AAErB,6BACE,eAAiB,CAAE,AAErB,8BACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,8BACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,mBACE,eAAiB,CAAE,AAErB,gCACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,4BACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,+BACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,2BACE,eAAiB,CAAE,AAErB,uBACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,8BACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAErB,6BACE,eAAiB,CAAE,AAErB,wBACE,eAAiB,CAAE,AAErB,+BACE,eAAiB,CAAE,AAErB,yBACE,eAAiB,CAAE,AAErB,gCACE,eAAiB,CAAE,AAErB,0BACE,eAAiB,CAAE,AAErB,sBACE,eAAiB,CAAE,AAWrB,qCACE,+BAAiC,AACjC,uBAAyB,AACzB,iCAAkC,AAClC,yBAA0B,AAC1B,oCAAqC,AACrC,2BAA6B,CAAE,AAEjC,8DAEE,iCAAkC,AAClC,yBAA0B,AAC1B,qCAAsC,AACtC,4BAA8B,CAAE,AAElC,8BACE,kCAAmC,AACnC,0BAA2B,AAC3B,qCAAsC,AACtC,6BAA8B,AAC9B,mBAAqB,CAAE,AAEzB,yBAEE,SAAW,CAEyB,AAEtC,qCAHE,yCAA0C,AAC1C,gCAAkC,CAIE,AAEtC,6BACE,GACE,SAAW,CAAE,AACf,GACE,SAAW,CAAE,CAAE,AAEnB,qBACE,GACE,SAAW,CAAE,AACf,GACE,SAAW,CAAE,CAAE,AAEnB,8BACE,GACE,SAAW,CAAE,AACf,GACE,SAAW,CAAE,CAAE,AAEnB,sBACE,GACE,SAAW,CAAE,AACf,GACE,SAAW,CAAE,CAAE,AAWnB,8CACE,+BAAiC,AACjC,uBAAyB,AACzB,iCAAkC,AAClC,yBAA0B,AAC1B,oCAAqC,AACrC,2BAA6B,CAAE,AAEjC,0EAEE,mCAAoC,AACpC,2BAA4B,AAC5B,qCAAsC,AACtC,4BAA8B,CAAE,AAElC,oCACE,oCAAqC,AACrC,4BAA6B,AAC7B,qCAAsC,AACtC,6BAA8B,AAC9B,mBAAqB,CAAE,AAEzB,+BAEE,UAAW,AACX,8DAAqE,AACrE,qDAA6D,CAAE,AAEjE,eACE,+DAAuE,AACvE,sDAA+D,CAAE,AAWnE,oDACE,+BAAiC,AACjC,uBAAyB,AACzB,iCAAkC,AAClC,yBAA0B,AAC1B,oCAAqC,AACrC,2BAA6B,CAAE,AAEjC,kFAEE,qCAAsC,AACtC,6BAA8B,AAC9B,qCAAsC,AACtC,4BAA8B,CAAE,AAElC,wCACE,sCAAuC,AACvC,8BAA+B,AAC/B,qCAAsC,AACtC,6BAA8B,AAC9B,mBAAqB,CAAE,AAEzB,mCAEE,UAAW,AACX,8DAAqE,AACrE,qDAA6D,CAAE,AAEjE,iBACE,+DAAuE,AACvE,sDAA+D,CAAE,AAWnE,oDACE,+BAAiC,AACjC,uBAAyB,AACzB,iCAAkC,AAClC,yBAA0B,AAC1B,oCAAqC,AACrC,2BAA6B,CAAE,AAEjC,kFAEE,qCAAsC,AACtC,6BAA8B,AAC9B,qCAAsC,AACtC,4BAA8B,CAAE,AAElC,wCACE,sCAAuC,AACvC,8BAA+B,AAC/B,qCAAsC,AACtC,6BAA8B,AAC9B,mBAAqB,CAAE,AAEzB,mCAEE,UAAW,AACX,8DAAqE,AACrE,qDAA6D,CAAE,AAEjE,iBACE,+DAAuE,AACvE,sDAA+D,CAAE,AAWnE,uDACE,+BAAiC,AACjC,uBAAyB,AACzB,iCAAkC,AAClC,yBAA0B,AAC1B,oCAAqC,AACrC,2BAA6B,CAAE,AAEjC,sFAEE,sCAAuC,AACvC,8BAA+B,AAC/B,qCAAsC,AACtC,4BAA8B,CAAE,AAElC,0CACE,uCAAwC,AACxC,+BAAgC,AAChC,qCAAsC,AACtC,6BAA8B,AAC9B,mBAAqB,CAAE,AAEzB,qCAEE,UAAW,AACX,8DAAqE,AACrE,qDAA6D,CAAE,AAEjE,kBACE,+DAAuE,AACvE,sDAA+D,CAAE,AAEnE,iCACE,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,mCAAoC,AACpC,2BAA4B,AAC5B,SAAW,CAAE,AACf,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,gCAAkC,AAClC,wBAA0B,AAC1B,SAAW,CAAE,CAAE,AAEnB,yBACE,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,mCAAoC,AACpC,2BAA4B,AAC5B,SAAW,CAAE,AACf,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,gCAAkC,AAClC,wBAA0B,AAC1B,SAAW,CAAE,CAAE,AAEnB,kCACE,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,gCAAkC,AAClC,wBAA0B,AAC1B,SAAW,CAAE,AACf,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,mCAAoC,AACpC,2BAA4B,AAC5B,SAAW,CAAE,CAAE,AAEnB,0BACE,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,gCAAkC,AAClC,wBAA0B,AAC1B,SAAW,CAAE,AACf,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,mCAAoC,AACpC,2BAA4B,AAC5B,SAAW,CAAE,CAAE,AAEnB,iCACE,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,oCAAqC,AACrC,4BAA6B,AAC7B,SAAW,CAAE,AACf,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,gCAAkC,AAClC,wBAA0B,AAC1B,SAAW,CAAE,CAAE,AAEnB,yBACE,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,oCAAqC,AACrC,4BAA6B,AAC7B,SAAW,CAAE,AACf,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,gCAAkC,AAClC,wBAA0B,AAC1B,SAAW,CAAE,CAAE,AAEnB,kCACE,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,gCAAkC,AAClC,wBAA0B,AAC1B,SAAW,CAAE,AACf,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,oCAAqC,AACrC,4BAA6B,AAC7B,SAAW,CAAE,CAAE,AAEnB,0BACE,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,gCAAkC,AAClC,wBAA0B,AAC1B,SAAW,CAAE,AACf,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,oCAAqC,AACrC,4BAA6B,AAC7B,SAAW,CAAE,CAAE,AAEnB,kCACE,GACE,UAAW,AACX,6BAA8B,AAC9B,qBAAsB,AACtB,mCAAoC,AACpC,0BAA4B,CAAE,AAChC,GACE,UAAW,AACX,6BAA8B,AAC9B,qBAAsB,AACtB,gCAAkC,AAClC,uBAA0B,CAAE,CAAE,AAElC,0BACE,GACE,UAAW,AACX,6BAA8B,AAC9B,qBAAsB,AACtB,mCAAoC,AACpC,0BAA4B,CAAE,AAChC,GACE,UAAW,AACX,6BAA8B,AAC9B,qBAAsB,AACtB,gCAAkC,AAClC,uBAA0B,CAAE,CAAE,AAElC,mCACE,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,gCAAkC,AAClC,wBAA0B,AAC1B,SAAW,CAAE,AACf,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,mCAAoC,AACpC,2BAA4B,AAC5B,SAAW,CAAE,CAAE,AAEnB,2BACE,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,gCAAkC,AAClC,wBAA0B,AAC1B,SAAW,CAAE,AACf,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,mCAAoC,AACpC,2BAA4B,AAC5B,SAAW,CAAE,CAAE,AAEnB,+BACE,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,oCAAqC,AACrC,4BAA6B,AAC7B,SAAW,CAAE,AACf,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,gCAAkC,AAClC,wBAA0B,AAC1B,SAAW,CAAE,CAAE,AAEnB,uBACE,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,oCAAqC,AACrC,4BAA6B,AAC7B,SAAW,CAAE,AACf,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,gCAAkC,AAClC,wBAA0B,AAC1B,SAAW,CAAE,CAAE,AAEnB,gCACE,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,gCAAkC,AAClC,wBAA0B,AAC1B,SAAW,CAAE,AACf,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,oCAAqC,AACrC,4BAA6B,AAC7B,SAAW,CAAE,CAAE,AAEnB,wBACE,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,gCAAkC,AAClC,wBAA0B,AAC1B,SAAW,CAAE,AACf,GACE,6BAA8B,AAC9B,qBAAsB,AACtB,oCAAqC,AACrC,4BAA6B,AAC7B,SAAW,CAAE,CAAE,AAEnB,iCACE,GACE,gCAAkC,AAClC,uBAA0B,CAAE,CAAE,AAElC,yBACE,GACE,gCAAkC,AAClC,uBAA0B,CAAE,CAAE,AAElC,+DAEE,iBAAmB,CAAE,AAEvB,yEAEE,WAAY,AACZ,kBAAmB,AACnB,SAAU,AACV,UAAW,AACX,YAAa,AACb,WAAY,AACZ,sBAAuB,AACvB,uBAAwB,AACxB,WAAa,AACb,4DAAoE,AACpE,oDAA4D,AAC5D,aAAe,CAAE,AAEnB,8BACE,GACE,UAAW,AACX,SAAU,AACV,UAAW,AACX,YAAa,AACb,WAAY,AACZ,gBAAkB,CAAE,CAAE,AAE1B,sBACE,GACE,UAAW,AACX,SAAU,AACV,UAAW,AACX,YAAa,AACb,WAAY,AACZ,gBAAkB,CAAE,CAAE,AAW1B,iDACE,+BAAiC,AACjC,uBAAyB,AACzB,iCAAkC,AAClC,yBAA0B,AAC1B,oCAAqC,AACrC,2BAA6B,CAAE,AAEjC,8EAEE,oCAAqC,AACrC,4BAA6B,AAC7B,qCAAsC,AACtC,4BAA8B,CAAE,AAElC,sCACE,qCAAsC,AACtC,6BAA8B,AAC9B,qCAAsC,AACtC,6BAA8B,AAC9B,mBAAqB,CAAE,AAEzB,iCAEE,UAAW,AACX,4DAAkE,AAClE,mDAA0D,CAAE,AAE9D,gBACE,kEAA0E,AAC1E,yDAAkE,CAAE,AAWtE,uDACE,+BAAiC,AACjC,uBAAyB,AACzB,iCAAkC,AAClC,yBAA0B,AAC1B,oCAAqC,AACrC,2BAA6B,CAAE,AAEjC,sFAEE,sCAAuC,AACvC,8BAA+B,AAC/B,qCAAsC,AACtC,4BAA8B,CAAE,AAElC,0CACE,uCAAwC,AACxC,+BAAgC,AAChC,qCAAsC,AACtC,6BAA8B,AAC9B,mBAAqB,CAAE,AAEzB,qCAEE,UAAW,AACX,4DAAkE,AAClE,mDAA0D,CAAE,AAE9D,kBACE,kEAA0E,AAC1E,yDAAkE,CAAE,AAWtE,uDACE,+BAAiC,AACjC,uBAAyB,AACzB,iCAAkC,AAClC,yBAA0B,AAC1B,oCAAqC,AACrC,2BAA6B,CAAE,AAEjC,sFAEE,sCAAuC,AACvC,8BAA+B,AAC/B,qCAAsC,AACtC,4BAA8B,CAAE,AAElC,0CACE,uCAAwC,AACxC,+BAAgC,AAChC,qCAAsC,AACtC,6BAA8B,AAC9B,mBAAqB,CAAE,AAEzB,qCAEE,UAAW,AACX,4DAAkE,AAClE,mDAA0D,CAAE,AAE9D,kBACE,kEAA0E,AAC1E,yDAAkE,CAAE,AAWtE,0DACE,+BAAiC,AACjC,uBAAyB,AACzB,iCAAkC,AAClC,yBAA0B,AAC1B,oCAAqC,AACrC,2BAA6B,CAAE,AAEjC,0FAEE,uCAAwC,AACxC,+BAAgC,AAChC,qCAAsC,AACtC,4BAA8B,CAAE,AAElC,4CACE,wCAAyC,AACzC,gCAAiC,AACjC,qCAAsC,AACtC,6BAA8B,AAC9B,mBAAqB,CAAE,AAEzB,uCAEE,UAAW,AACX,4DAAkE,AAClE,mDAA0D,CAAE,AAE9D,mBACE,kEAA0E,AAC1E,yDAAkE,CAAE,AAEtE,gCACE,GACE,UAAW,AACX,6BAAgC,AAChC,qBAAwB,AACxB,6BAA+B,AAC/B,oBAAuB,CAAE,AAC3B,GACE,UAAW,AACX,6BAAgC,AAChC,qBAAwB,AACxB,4BAA6B,AAC7B,mBAAqB,CAAE,CAAE,AAE7B,wBACE,GACE,UAAW,AACX,6BAAgC,AAChC,qBAAwB,AACxB,6BAA+B,AAC/B,oBAAuB,CAAE,AAC3B,GACE,UAAW,AACX,6BAAgC,AAChC,qBAAwB,AACxB,4BAA6B,AAC7B,mBAAqB,CAAE,CAAE,AAE7B,iCACE,GACE,UAAW,AACX,6BAAgC,AAChC,qBAAwB,AACxB,4BAA6B,AAC7B,mBAAqB,CAAE,AACzB,GACE,UAAW,AACX,6BAAgC,AAChC,qBAAwB,AACxB,6BAA+B,AAC/B,oBAAuB,CAAE,CAAE,AAE/B,yBACE,GACE,UAAW,AACX,6BAAgC,AAChC,qBAAwB,AACxB,4BAA6B,AAC7B,mBAAqB,CAAE,AACzB,GACE,UAAW,AACX,6BAAgC,AAChC,qBAAwB,AACxB,6BAA+B,AAC/B,oBAAuB,CAAE,CAAE,AAE/B,kCACE,GACE,UAAW,AACX,mCAAoC,AACpC,2BAA4B,AAC5B,6BAA+B,AAC/B,oBAAuB,CAAE,AAC3B,GACE,UAAW,AACX,mCAAoC,AACpC,2BAA4B,AAC5B,4BAA6B,AAC7B,mBAAqB,CAAE,CAAE,AAE7B,0BACE,GACE,UAAW,AACX,mCAAoC,AACpC,2BAA4B,AAC5B,6BAA+B,AAC/B,oBAAuB,CAAE,AAC3B,GACE,UAAW,AACX,mCAAoC,AACpC,2BAA4B,AAC5B,4BAA6B,AAC7B,mBAAqB,CAAE,CAAE,AAE7B,mCACE,GACE,UAAW,AACX,mCAAoC,AACpC,2BAA4B,AAC5B,4BAA6B,AAC7B,mBAAqB,CAAE,AACzB,GACE,UAAW,AACX,mCAAoC,AACpC,2BAA4B,AAC5B,6BAA+B,AAC/B,oBAAuB,CAAE,CAAE,AAE/B,2BACE,GACE,UAAW,AACX,mCAAoC,AACpC,2BAA4B,AAC5B,4BAA6B,AAC7B,mBAAqB,CAAE,AACzB,GACE,UAAW,AACX,mCAAoC,AACpC,2BAA4B,AAC5B,6BAA+B,AAC/B,oBAAuB,CAAE,CAAE,AAE/B,kCACE,GACE,UAAW,AACX,6BAAgC,AAChC,qBAAwB,AACxB,6BAA+B,AAC/B,oBAAuB,CAAE,AAC3B,GACE,UAAW,AACX,6BAAgC,AAChC,qBAAwB,AACxB,4BAA6B,AAC7B,mBAAqB,CAAE,CAAE,AAE7B,0BACE,GACE,UAAW,AACX,6BAAgC,AAChC,qBAAwB,AACxB,6BAA+B,AAC/B,oBAAuB,CAAE,AAC3B,GACE,UAAW,AACX,6BAAgC,AAChC,qBAAwB,AACxB,4BAA6B,AAC7B,mBAAqB,CAAE,CAAE,AAE7B,mCACE,GACE,UAAW,AACX,6BAAgC,AAChC,qBAAwB,AACxB,4BAA6B,AAC7B,mBAAqB,CAAE,AACzB,GACE,UAAW,AACX,6BAAgC,AAChC,qBAAwB,AACxB,6BAA+B,AAC/B,oBAAuB,CAAE,CAAE,AAE/B,2BACE,GACE,UAAW,AACX,6BAAgC,AAChC,qBAAwB,AACxB,4BAA6B,AAC7B,mBAAqB,CAAE,AACzB,GACE,UAAW,AACX,6BAAgC,AAChC,qBAAwB,AACxB,6BAA+B,AAC/B,oBAAuB,CAAE,CAAE,AAE/B,mCACE,GACE,UAAW,AACX,gCAAkC,AAClC,wBAA0B,AAC1B,6BAA+B,AAC/B,oBAAuB,CAAE,AAC3B,GACE,UAAW,AACX,gCAAkC,AAClC,wBAA0B,AAC1B,4BAA6B,AAC7B,mBAAqB,CAAE,CAAE,AAE7B,2BACE,GACE,UAAW,AACX,gCAAkC,AAClC,wBAA0B,AAC1B,6BAA+B,AAC/B,oBAAuB,CAAE,AAC3B,GACE,UAAW,AACX,gCAAkC,AAClC,wBAA0B,AAC1B,4BAA6B,AAC7B,mBAAqB,CAAE,CAAE,AAE7B,oCACE,GACE,UAAW,AACX,gCAAkC,AAClC,wBAA0B,AAC1B,4BAA6B,AAC7B,mBAAqB,CAAE,AACzB,GACE,UAAW,AACX,gCAAkC,AAClC,wBAA0B,AAC1B,6BAA+B,AAC/B,oBAAuB,CAAE,CAAE,AAE/B,4BACE,GACE,UAAW,AACX,gCAAkC,AAClC,wBAA0B,AAC1B,4BAA6B,AAC7B,mBAAqB,CAAE,AACzB,GACE,UAAW,AACX,gCAAkC,AAClC,wBAA0B,AAC1B,6BAA+B,AAC/B,oBAAuB,CAAE,CAAE,AAE/B,2BAEE,+BAAiC,AACjC,uBAAyB,AACzB,iCAAkC,AAClC,yBAA0B,AAC1B,oCAAqC,AACrC,2BAA6B,CAAE,AAEjC,kEAEE,kCAAmC,AACnC,0BAA2B,AAC3B,qCAAsC,AACtC,4BAA8B,CAAE,AAElC,8BACE,MAEE,gCAAiC,AACjC,uBAAyB,CAAE,AAC7B,IACE,oCAAqC,AACrC,2BAA6B,CAAE,AACjC,IACE,mCAAoC,AACpC,0BAA4B,CAAE,AAChC,IACE,mCAAoC,AACpC,0BAA4B,CAAE,AAChC,IACE,kCAAmC,AACnC,yBAA2B,CAAE,CAAE,AAEnC,sBACE,MAEE,gCAAiC,AACjC,uBAAyB,CAAE,AAC7B,IACE,oCAAqC,AACrC,2BAA6B,CAAE,AACjC,IACE,mCAAoC,AACpC,0BAA4B,CAAE,AAChC,IACE,mCAAoC,AACpC,0BAA4B,CAAE,AAChC,IACE,kCAAmC,AACnC,yBAA2B,CAAE,CAAE,AAWnC,qCACE,+BAAiC,AACjC,uBAAyB,AACzB,iCAAkC,AAClC,yBAA0B,AAC1B,oCAAqC,AACrC,2BAA6B,CAAE,AAEjC,8DAEE,iCAAkC,AAClC,yBAA0B,AAC1B,qCAAsC,AACtC,4BAA8B,CAAE,AAElC,8BACE,kCAAmC,AACnC,0BAA2B,AAC3B,qCAAsC,AACtC,6BAA8B,AAC9B,mBAAqB,CAAE,AAEzB,yBAEE,2BAA4B,AAC5B,uBAAwB,AACxB,mBAAoB,AACpB,8DAAqE,AACrE,qDAA6D,CAAE,AAEjE,YACE,gEAAwE,AACxE,uDAAgE,CAAE,AAWpE,iDACE,+BAAiC,AACjC,uBAAyB,AACzB,iCAAkC,AAClC,yBAA0B,AAC1B,oCAAqC,AACrC,2BAA6B,CAAE,AAEjC,8EAEE,oCAAqC,AACrC,4BAA6B,AAC7B,qCAAsC,AACtC,4BAA8B,CAAE,AAElC,sCACE,qCAAsC,AACtC,6BAA8B,AAC9B,qCAAsC,AACtC,6BAA8B,AAC9B,mBAAqB,CAAE,AAEzB,iCAEE,2BAA4B,AAC5B,uBAAwB,AACxB,mBAAoB,AACpB,8DAAqE,AACrE,qDAA6D,CAAE,AAEjE,gBACE,gEAAwE,AACxE,uDAAgE,CAAE,AAWpE,gEACE,+BAAiC,AACjC,uBAAyB,AACzB,iCAAkC,AAClC,yBAA0B,AAC1B,oCAAqC,AACrC,2BAA6B,CAAE,AAEjC,kGAEE,oCAAqC,AACrC,4BAA6B,AAC7B,qCAAsC,AACtC,4BAA8B,CAAE,AAElC,gDACE,qCAAsC,AACtC,6BAA8B,AAC9B,qCAAsC,AACtC,6BAA8B,AAC9B,mBAAqB,CAAE,AAEzB,2CAEE,2BAA4B,AAC5B,uBAAwB,AACxB,mBAAoB,AACpB,8DAAqE,AACrE,qDAA6D,CAAE,AAEjE,qBACE,gEAAwE,AACxE,uDAAgE,CAAE,AAWpE,8CACE,+BAAiC,AACjC,uBAAyB,AACzB,iCAAkC,AAClC,yBAA0B,AAC1B,oCAAqC,AACrC,2BAA6B,CAAE,AAEjC,0EAEE,mCAAoC,AACpC,2BAA4B,AAC5B,qCAAsC,AACtC,4BAA8B,CAAE,AAElC,oCACE,oCAAqC,AACrC,4BAA6B,AAC7B,qCAAsC,AACtC,6BAA8B,AAC9B,mBAAqB,CAAE,AAEzB,+BAEE,2BAA4B,AAC5B,uBAAwB,AACxB,mBAAoB,AACpB,8DAAqE,AACrE,qDAA6D,CAAE,AAEjE,eACE,gEAAwE,AACxE,uDAAgE,CAAE,AAWpE,oDACE,+BAAiC,AACjC,uBAAyB,AACzB,iCAAkC,AAClC,yBAA0B,AAC1B,oCAAqC,AACrC,2BAA6B,CAAE,AAEjC,kFAEE,qCAAsC,AACtC,6BAA8B,AAC9B,qCAAsC,AACtC,4BAA8B,CAAE,AAElC,wCACE,sCAAuC,AACvC,8BAA+B,AAC/B,qCAAsC,AACtC,6BAA8B,AAC9B,mBAAqB,CAAE,AAEzB,mCAEE,2BAA4B,AAC5B,uBAAwB,AACxB,mBAAoB,AACpB,8DAAqE,AACrE,qDAA6D,CAAE,AAEjE,iBACE,gEAAwE,AACxE,uDAAgE,CAAE,AAWpE,oDACE,+BAAiC,AACjC,uBAAyB,AACzB,iCAAkC,AAClC,yBAA0B,AAC1B,oCAAqC,AACrC,2BAA6B,CAAE,AAEjC,kFAEE,qCAAsC,AACtC,6BAA8B,AAC9B,qCAAsC,AACtC,4BAA8B,CAAE,AAElC,wCACE,sCAAuC,AACvC,8BAA+B,AAC/B,qCAAsC,AACtC,6BAA8B,AAC9B,mBAAqB,CAAE,AAEzB,mCAEE,2BAA4B,AAC5B,uBAAwB,AACxB,mBAAoB,AACpB,8DAAqE,AACrE,qDAA6D,CAAE,AAEjE,iBACE,gEAAwE,AACxE,uDAAgE,CAAE,AAWpE,uDACE,+BAAiC,AACjC,uBAAyB,AACzB,iCAAkC,AAClC,yBAA0B,AAC1B,oCAAqC,AACrC,2BAA6B,CAAE,AAEjC,sFAEE,sCAAuC,AACvC,8BAA+B,AAC/B,qCAAsC,AACtC,4BAA8B,CAAE,AAElC,0CACE,uCAAwC,AACxC,+BAAgC,AAChC,qCAAsC,AACtC,6BAA8B,AAC9B,mBAAqB,CAAE,AAEzB,qCAEE,2BAA4B,AAC5B,uBAAwB,AACxB,mBAAoB,AACpB,8DAAqE,AACrE,qDAA6D,CAAE,AAEjE,kBACE,gEAAwE,AACxE,uDAAgE,CAAE,AAEpE,6BACE,GACE,UAAW,AACX,4BAA8B,AAC9B,mBAAsB,CAAE,AAC1B,GACE,UAAW,AACX,2BAA4B,AAC5B,kBAAoB,CAAE,CAAE,AAE5B,qBACE,GACE,UAAW,AACX,4BAA8B,AAC9B,mBAAsB,CAAE,AAC1B,GACE,UAAW,AACX,2BAA4B,AAC5B,kBAAoB,CAAE,CAAE,AAE5B,8BACE,GACE,2BAA4B,AAC5B,kBAAoB,CAAE,AACxB,GACE,UAAW,AACX,4BAA8B,AAC9B,mBAAsB,CAAE,CAAE,AAE9B,sBACE,GACE,2BAA4B,AAC5B,kBAAoB,CAAE,AACxB,GACE,UAAW,AACX,4BAA8B,AAC9B,mBAAsB,CAAE,CAAE,AAE9B,gCACE,GACE,UAAW,AACX,4BAA8B,AAC9B,mBAAsB,CAAE,AAC1B,GACE,2BAA4B,AAC5B,kBAAoB,CAAE,CAAE,AAE5B,wBACE,GACE,UAAW,AACX,4BAA8B,AAC9B,mBAAsB,CAAE,AAC1B,GACE,2BAA4B,AAC5B,kBAAoB,CAAE,CAAE,AAE5B,iCACE,GACE,2BAA4B,AAC5B,kBAAoB,CAAE,AACxB,GACE,UAAW,AACX,4BAA8B,AAC9B,mBAAsB,CAAE,CAAE,AAE9B,yBACE,GACE,2BAA4B,AAC5B,kBAAoB,CAAE,AACxB,GACE,UAAW,AACX,4BAA8B,AAC9B,mBAAsB,CAAE,CAAE,AAE9B,+BACE,GACE,UAAW,AACX,+BAAiC,AACjC,uBAAyB,AACzB,4BAA8B,AAC9B,mBAAsB,CAAE,AAC1B,GACE,+BAAiC,AACjC,uBAAyB,AACzB,2BAA4B,AAC5B,kBAAoB,CAAE,CAAE,AAE5B,uBACE,GACE,UAAW,AACX,+BAAiC,AACjC,uBAAyB,AACzB,4BAA8B,AAC9B,mBAAsB,CAAE,AAC1B,GACE,+BAAiC,AACjC,uBAAyB,AACzB,2BAA4B,AAC5B,kBAAoB,CAAE,CAAE,AAE5B,gCACE,GACE,+BAAiC,AACjC,uBAAyB,AACzB,2BAA4B,AAC5B,kBAAoB,CAAE,AACxB,GACE,UAAW,AACX,+BAAiC,AACjC,uBAAyB,AACzB,4BAA8B,AAC9B,mBAAsB,CAAE,CAAE,AAE9B,wBACE,GACE,+BAAiC,AACjC,uBAAyB,AACzB,2BAA4B,AAC5B,kBAAoB,CAAE,AACxB,GACE,UAAW,AACX,+BAAiC,AACjC,uBAAyB,AACzB,4BAA8B,AAC9B,mBAAsB,CAAE,CAAE,AAE9B,iCACE,GACE,UAAW,AACX,+BAAiC,AACjC,uBAAyB,AACzB,4BAA8B,AAC9B,mBAAsB,CAAE,AAC1B,GACE,+BAAiC,AACjC,uBAAyB,AACzB,2BAA4B,AAC5B,kBAAoB,CAAE,CAAE,AAE5B,yBACE,GACE,UAAW,AACX,+BAAiC,AACjC,uBAAyB,AACzB,4BAA8B,AAC9B,mBAAsB,CAAE,AAC1B,GACE,+BAAiC,AACjC,uBAAyB,AACzB,2BAA4B,AAC5B,kBAAoB,CAAE,CAAE,AAE5B,kCACE,GACE,+BAAiC,AACjC,uBAAyB,AACzB,2BAA4B,AAC5B,kBAAoB,CAAE,AACxB,GACE,UAAW,AACX,+BAAiC,AACjC,uBAAyB,AACzB,4BAA8B,AAC9B,mBAAsB,CAAE,CAAE,AAE9B,0BACE,GACE,+BAAiC,AACjC,uBAAyB,AACzB,2BAA4B,AAC5B,kBAAoB,CAAE,AACxB,GACE,UAAW,AACX,+BAAiC,AACjC,uBAAyB,AACzB,4BAA8B,AAC9B,mBAAsB,CAAE,CAAE,AAE9B,kCACE,GACE,UAAW,AACX,kCAAmC,AACnC,0BAA2B,AAC3B,4BAA8B,AAC9B,mBAAsB,CAAE,AAC1B,GACE,kCAAmC,AACnC,0BAA2B,AAC3B,2BAA4B,AAC5B,kBAAoB,CAAE,CAAE,AAE5B,0BACE,GACE,UAAW,AACX,kCAAmC,AACnC,0BAA2B,AAC3B,4BAA8B,AAC9B,mBAAsB,CAAE,AAC1B,GACE,kCAAmC,AACnC,0BAA2B,AAC3B,2BAA4B,AAC5B,kBAAoB,CAAE,CAAE,AAE5B,mCACE,GACE,kCAAmC,AACnC,0BAA2B,AAC3B,2BAA4B,AAC5B,kBAAoB,CAAE,AACxB,GACE,UAAW,AACX,kCAAmC,AACnC,0BAA2B,AAC3B,4BAA8B,AAC9B,mBAAsB,CAAE,CAAE,AAE9B,2BACE,GACE,kCAAmC,AACnC,0BAA2B,AAC3B,2BAA4B,AAC5B,kBAAoB,CAAE,AACxB,GACE,UAAW,AACX,kCAAmC,AACnC,0BAA2B,AAC3B,4BAA8B,AAC9B,mBAAsB,CAAE,CAAE,AAE9B,iCACE,GACE,UAAW,AACX,kCAAmC,AACnC,0BAA2B,AAC3B,4BAA8B,AAC9B,mBAAsB,CAAE,AAC1B,GACE,kCAAmC,AACnC,0BAA2B,AAC3B,2BAA4B,AAC5B,kBAAoB,CAAE,CAAE,AAE5B,yBACE,GACE,UAAW,AACX,kCAAmC,AACnC,0BAA2B,AAC3B,4BAA8B,AAC9B,mBAAsB,CAAE,AAC1B,GACE,kCAAmC,AACnC,0BAA2B,AAC3B,2BAA4B,AAC5B,kBAAoB,CAAE,CAAE,AAE5B,kCACE,GACE,kCAAmC,AACnC,0BAA2B,AAC3B,2BAA4B,AAC5B,kBAAoB,CAAE,AACxB,GACE,UAAW,AACX,kCAAmC,AACnC,0BAA2B,AAC3B,4BAA8B,AAC9B,mBAAsB,CAAE,CAAE,AAE9B,0BACE,GACE,kCAAmC,AACnC,0BAA2B,AAC3B,2BAA4B,AAC5B,kBAAoB,CAAE,AACxB,GACE,UAAW,AACX,kCAAmC,AACnC,0BAA2B,AAC3B,4BAA8B,AAC9B,mBAAsB,CAAE,CAAE,AAE9B,qBACE,eAAiB,CAAE,AAErB,4BACE,oHAAqI,AACrI,+GAAgI,AAChI,2GAA6H,CAAE","file":"index.css","sourcesContent":["/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n/* stylelint-disable at-rule-no-unknown */\n@font-face {\n  font-family: \"Chinese Quote\";\n  src: local(\"PingFang SC\"), local(\"SimSun\");\n  unicode-range: U+2018, U+2019, U+201c, U+201d; }\n\nhtml,\nbody {\n  width: 100%;\n  height: 100%; }\n\ninput::-ms-clear,\ninput::-ms-reveal {\n  display: none; }\n\n*,\n*::before,\n*::after {\n  -webkit-box-sizing: border-box;\n  box-sizing: border-box; }\n\nhtml {\n  font-family: sans-serif;\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%;\n  -ms-text-size-adjust: 100%;\n  -ms-overflow-style: scrollbar;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }\n\n@-ms-viewport {\n  width: device-width; }\n\narticle,\naside,\ndialog,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection {\n  display: block; }\n\nbody {\n  margin: 0;\n  font-family: \"Chinese Quote\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", \"Helvetica Neue\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-size: 14px;\n  font-variant: tabular-nums;\n  line-height: 1.5;\n  color: rgba(0, 0, 0, 0.65);\n  background-color: #fff; }\n\n[tabindex=\"-1\"]:focus {\n  outline: none !important; }\n\nhr {\n  -webkit-box-sizing: content-box;\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible; }\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n  margin-top: 0;\n  margin-bottom: .5em;\n  color: rgba(0, 0, 0, 0.85);\n  font-weight: 500; }\n\np {\n  margin-top: 0;\n  margin-bottom: 1em; }\n\nabbr[title],\nabbr[data-original-title] {\n  text-decoration: underline;\n  -webkit-text-decoration: underline dotted;\n  text-decoration: underline dotted;\n  cursor: help;\n  border-bottom: 0; }\n\naddress {\n  margin-bottom: 1em;\n  font-style: normal;\n  line-height: inherit; }\n\ninput[type=\"text\"],\ninput[type=\"password\"],\ninput[type=\"number\"],\ntextarea {\n  -webkit-appearance: none; }\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1em; }\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0; }\n\ndt {\n  font-weight: 500; }\n\ndd {\n  margin-bottom: .5em;\n  margin-left: 0; }\n\nblockquote {\n  margin: 0 0 1em; }\n\ndfn {\n  font-style: italic; }\n\nb,\nstrong {\n  font-weight: bolder; }\n\nsmall {\n  font-size: 80%; }\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline; }\n\nsub {\n  bottom: -0.25em; }\n\nsup {\n  top: -0.5em; }\n\na {\n  color: #1890ff;\n  background-color: transparent;\n  text-decoration: none;\n  outline: none;\n  cursor: pointer;\n  -webkit-transition: color .3s;\n  -o-transition: color .3s;\n  transition: color .3s;\n  -webkit-text-decoration-skip: objects; }\n\na:focus {\n  text-decoration: underline;\n  -webkit-text-decoration-skip: ink;\n  text-decoration-skip: ink; }\n\na:hover {\n  color: #40a9ff; }\n\na:active {\n  color: #096dd9; }\n\na:active,\na:hover {\n  outline: 0;\n  text-decoration: none; }\n\na[disabled] {\n  color: rgba(0, 0, 0, 0.25);\n  cursor: not-allowed;\n  pointer-events: none; }\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: \"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n  font-size: 1em; }\n\npre {\n  margin-top: 0;\n  margin-bottom: 1em;\n  overflow: auto; }\n\nfigure {\n  margin: 0 0 1em; }\n\nimg {\n  vertical-align: middle;\n  border-style: none; }\n\nsvg:not(:root) {\n  overflow: hidden; }\n\na,\narea,\nbutton,\n[role=\"button\"],\ninput:not([type=range]),\nlabel,\nselect,\nsummary,\ntextarea {\n  -ms-touch-action: manipulation;\n  touch-action: manipulation; }\n\ntable {\n  border-collapse: collapse; }\n\ncaption {\n  padding-top: .75em;\n  padding-bottom: .3em;\n  color: rgba(0, 0, 0, 0.45);\n  text-align: left;\n  caption-side: bottom; }\n\nth {\n  text-align: inherit; }\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0;\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n  color: inherit; }\n\nbutton,\ninput {\n  overflow: visible; }\n\nbutton,\nselect {\n  text-transform: none; }\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; }\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none; }\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  -webkit-box-sizing: border-box;\n  box-sizing: border-box;\n  padding: 0; }\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n  -webkit-appearance: listbox; }\n\ntextarea {\n  overflow: auto;\n  resize: vertical; }\n\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0; }\n\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  padding: 0;\n  margin-bottom: .5em;\n  font-size: 1.5em;\n  line-height: inherit;\n  color: inherit;\n  white-space: normal; }\n\nprogress {\n  vertical-align: baseline; }\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto; }\n\n[type=\"search\"] {\n  outline-offset: -2px;\n  -webkit-appearance: none; }\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n  font: inherit;\n  -webkit-appearance: button; }\n\noutput {\n  display: inline-block; }\n\nsummary {\n  display: list-item; }\n\ntemplate {\n  display: none; }\n\n[hidden] {\n  display: none !important; }\n\nmark {\n  padding: .2em;\n  background-color: #feffe6; }\n\n::-moz-selection {\n  background: #1890ff;\n  color: #fff; }\n\n::selection {\n  background: #1890ff;\n  color: #fff; }\n\n.clearfix {\n  zoom: 1; }\n\n.clearfix:before,\n.clearfix:after {\n  content: \"\";\n  display: table; }\n\n.clearfix:after {\n  clear: both; }\n\n@font-face {\n  font-family: 'anticon';\n  font-display: fallback;\n  src: url(\"https://at.alicdn.com/t/font_148784_v4ggb6wrjmkotj4i.eot\");\n  /* IE9*/\n  src: url(\"https://at.alicdn.com/t/font_148784_v4ggb6wrjmkotj4i.woff\") format(\"woff\"), url(\"https://at.alicdn.com/t/font_148784_v4ggb6wrjmkotj4i.ttf\") format(\"truetype\"), url(\"https://at.alicdn.com/t/font_148784_v4ggb6wrjmkotj4i.svg#iconfont\") format(\"svg\"); }\n\n.anticon {\n  display: inline-block;\n  font-style: normal;\n  vertical-align: baseline;\n  text-align: center;\n  text-transform: none;\n  line-height: 1;\n  text-rendering: optimizeLegibility;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale; }\n\n.anticon:before {\n  display: block;\n  font-family: \"anticon\" !important; }\n\n.anticon-step-forward:before {\n  content: \"\\e600\"; }\n\n.anticon-step-backward:before {\n  content: \"\\e601\"; }\n\n.anticon-forward:before {\n  content: \"\\e602\"; }\n\n.anticon-backward:before {\n  content: \"\\e603\"; }\n\n.anticon-caret-right:before {\n  content: \"\\e604\"; }\n\n.anticon-caret-left:before {\n  content: \"\\e605\"; }\n\n.anticon-caret-down:before {\n  content: \"\\e606\"; }\n\n.anticon-caret-up:before {\n  content: \"\\e607\"; }\n\n.anticon-right-circle:before {\n  content: \"\\e608\"; }\n\n.anticon-circle-right:before {\n  content: \"\\e608\"; }\n\n.anticon-caret-circle-right:before {\n  content: \"\\e608\"; }\n\n.anticon-left-circle:before {\n  content: \"\\e609\"; }\n\n.anticon-circle-left:before {\n  content: \"\\e609\"; }\n\n.anticon-caret-circle-left:before {\n  content: \"\\e609\"; }\n\n.anticon-up-circle:before {\n  content: \"\\e60a\"; }\n\n.anticon-circle-up:before {\n  content: \"\\e60a\"; }\n\n.anticon-caret-circle-up:before {\n  content: \"\\e60a\"; }\n\n.anticon-down-circle:before {\n  content: \"\\e60b\"; }\n\n.anticon-circle-down:before {\n  content: \"\\e60b\"; }\n\n.anticon-caret-circle-down:before {\n  content: \"\\e60b\"; }\n\n.anticon-right-circle-o:before {\n  content: \"\\e60c\"; }\n\n.anticon-circle-o-right:before {\n  content: \"\\e60c\"; }\n\n.anticon-caret-circle-o-right:before {\n  content: \"\\e60c\"; }\n\n.anticon-left-circle-o:before {\n  content: \"\\e60d\"; }\n\n.anticon-circle-o-left:before {\n  content: \"\\e60d\"; }\n\n.anticon-caret-circle-o-left:before {\n  content: \"\\e60d\"; }\n\n.anticon-up-circle-o:before {\n  content: \"\\e60e\"; }\n\n.anticon-circle-o-up:before {\n  content: \"\\e60e\"; }\n\n.anticon-caret-circle-o-up:before {\n  content: \"\\e60e\"; }\n\n.anticon-down-circle-o:before {\n  content: \"\\e60f\"; }\n\n.anticon-circle-o-down:before {\n  content: \"\\e60f\"; }\n\n.anticon-caret-circle-o-down:before {\n  content: \"\\e60f\"; }\n\n.anticon-verticle-left:before {\n  content: \"\\e610\"; }\n\n.anticon-verticle-right:before {\n  content: \"\\e611\"; }\n\n.anticon-rollback:before {\n  content: \"\\e612\"; }\n\n.anticon-retweet:before {\n  content: \"\\e613\"; }\n\n.anticon-shrink:before {\n  content: \"\\e614\"; }\n\n.anticon-arrows-alt:before {\n  content: \"\\e615\"; }\n\n.anticon-arrow-salt:before {\n  content: \"\\e615\"; }\n\n.anticon-reload:before {\n  content: \"\\e616\"; }\n\n.anticon-double-right:before {\n  content: \"\\e617\"; }\n\n.anticon-double-left:before {\n  content: \"\\e618\"; }\n\n.anticon-arrow-down:before {\n  content: \"\\e619\"; }\n\n.anticon-arrow-up:before {\n  content: \"\\e61a\"; }\n\n.anticon-arrow-right:before {\n  content: \"\\e61b\"; }\n\n.anticon-arrow-left:before {\n  content: \"\\e61c\"; }\n\n.anticon-down:before {\n  content: \"\\e61d\"; }\n\n.anticon-up:before {\n  content: \"\\e61e\"; }\n\n.anticon-right:before {\n  content: \"\\e61f\"; }\n\n.anticon-left:before {\n  content: \"\\e620\"; }\n\n.anticon-minus-square-o:before {\n  content: \"\\e621\"; }\n\n.anticon-minus-circle:before {\n  content: \"\\e622\"; }\n\n.anticon-minus-circle-o:before {\n  content: \"\\e623\"; }\n\n.anticon-minus:before {\n  content: \"\\e624\"; }\n\n.anticon-plus-circle-o:before {\n  content: \"\\e625\"; }\n\n.anticon-plus-circle:before {\n  content: \"\\e626\"; }\n\n.anticon-plus:before {\n  content: \"\\e627\"; }\n\n.anticon-info-circle:before {\n  content: \"\\e628\"; }\n\n.anticon-info-circle-o:before {\n  content: \"\\e629\"; }\n\n.anticon-info:before {\n  content: \"\\e62a\"; }\n\n.anticon-exclamation:before {\n  content: \"\\e62b\"; }\n\n.anticon-exclamation-circle:before {\n  content: \"\\e62c\"; }\n\n.anticon-exclamation-circle-o:before {\n  content: \"\\e62d\"; }\n\n.anticon-close-circle:before {\n  content: \"\\e62e\"; }\n\n.anticon-cross-circle:before {\n  content: \"\\e62e\"; }\n\n.anticon-close-circle-o:before {\n  content: \"\\e62f\"; }\n\n.anticon-cross-circle-o:before {\n  content: \"\\e62f\"; }\n\n.anticon-check-circle:before {\n  content: \"\\e630\"; }\n\n.anticon-check-circle-o:before {\n  content: \"\\e631\"; }\n\n.anticon-check:before {\n  content: \"\\e632\"; }\n\n.anticon-close:before {\n  content: \"\\e633\"; }\n\n.anticon-cross:before {\n  content: \"\\e633\"; }\n\n.anticon-customer-service:before {\n  content: \"\\e634\"; }\n\n.anticon-customerservice:before {\n  content: \"\\e634\"; }\n\n.anticon-credit-card:before {\n  content: \"\\e635\"; }\n\n.anticon-code-o:before {\n  content: \"\\e636\"; }\n\n.anticon-book:before {\n  content: \"\\e637\"; }\n\n.anticon-bars:before {\n  content: \"\\e639\"; }\n\n.anticon-question:before {\n  content: \"\\e63a\"; }\n\n.anticon-question-circle:before {\n  content: \"\\e63b\"; }\n\n.anticon-question-circle-o:before {\n  content: \"\\e63c\"; }\n\n.anticon-pause:before {\n  content: \"\\e63d\"; }\n\n.anticon-pause-circle:before {\n  content: \"\\e63e\"; }\n\n.anticon-pause-circle-o:before {\n  content: \"\\e63f\"; }\n\n.anticon-clock-circle:before {\n  content: \"\\e640\"; }\n\n.anticon-clock-circle-o:before {\n  content: \"\\e641\"; }\n\n.anticon-swap:before {\n  content: \"\\e642\"; }\n\n.anticon-swap-left:before {\n  content: \"\\e643\"; }\n\n.anticon-swap-right:before {\n  content: \"\\e644\"; }\n\n.anticon-plus-square-o:before {\n  content: \"\\e645\"; }\n\n.anticon-frown:before {\n  content: \"\\e646\"; }\n\n.anticon-frown-circle:before {\n  content: \"\\e646\"; }\n\n.anticon-ellipsis:before {\n  content: \"\\e647\"; }\n\n.anticon-copy:before {\n  content: \"\\e648\"; }\n\n.anticon-menu-fold:before {\n  content: \"\\e9ac\"; }\n\n.anticon-mail:before {\n  content: \"\\e659\"; }\n\n.anticon-logout:before {\n  content: \"\\e65a\"; }\n\n.anticon-link:before {\n  content: \"\\e65b\"; }\n\n.anticon-area-chart:before {\n  content: \"\\e65c\"; }\n\n.anticon-line-chart:before {\n  content: \"\\e65d\"; }\n\n.anticon-home:before {\n  content: \"\\e65e\"; }\n\n.anticon-laptop:before {\n  content: \"\\e65f\"; }\n\n.anticon-star:before {\n  content: \"\\e660\"; }\n\n.anticon-star-o:before {\n  content: \"\\e661\"; }\n\n.anticon-folder:before {\n  content: \"\\e662\"; }\n\n.anticon-filter:before {\n  content: \"\\e663\"; }\n\n.anticon-file:before {\n  content: \"\\e664\"; }\n\n.anticon-exception:before {\n  content: \"\\e665\"; }\n\n.anticon-meh:before {\n  content: \"\\e666\"; }\n\n.anticon-meh-circle:before {\n  content: \"\\e666\"; }\n\n.anticon-meh-o:before {\n  content: \"\\e667\"; }\n\n.anticon-shopping-cart:before {\n  content: \"\\e668\"; }\n\n.anticon-save:before {\n  content: \"\\e669\"; }\n\n.anticon-user:before {\n  content: \"\\e66a\"; }\n\n.anticon-video-camera:before {\n  content: \"\\e66b\"; }\n\n.anticon-to-top:before {\n  content: \"\\e66c\"; }\n\n.anticon-team:before {\n  content: \"\\e66d\"; }\n\n.anticon-tablet:before {\n  content: \"\\e66e\"; }\n\n.anticon-solution:before {\n  content: \"\\e66f\"; }\n\n.anticon-search:before {\n  content: \"\\e670\"; }\n\n.anticon-share-alt:before {\n  content: \"\\e671\"; }\n\n.anticon-setting:before {\n  content: \"\\e672\"; }\n\n.anticon-poweroff:before {\n  content: \"\\e6d5\"; }\n\n.anticon-picture:before {\n  content: \"\\e674\"; }\n\n.anticon-phone:before {\n  content: \"\\e675\"; }\n\n.anticon-paper-clip:before {\n  content: \"\\e676\"; }\n\n.anticon-notification:before {\n  content: \"\\e677\"; }\n\n.anticon-mobile:before {\n  content: \"\\e678\"; }\n\n.anticon-menu-unfold:before {\n  content: \"\\e9ad\"; }\n\n.anticon-inbox:before {\n  content: \"\\e67a\"; }\n\n.anticon-lock:before {\n  content: \"\\e67b\"; }\n\n.anticon-qrcode:before {\n  content: \"\\e67c\"; }\n\n.anticon-play-circle:before {\n  content: \"\\e6d0\"; }\n\n.anticon-play-circle-o:before {\n  content: \"\\e6d1\"; }\n\n.anticon-tag:before {\n  content: \"\\e6d2\"; }\n\n.anticon-tag-o:before {\n  content: \"\\e6d3\"; }\n\n.anticon-tags:before {\n  content: \"\\e67d\"; }\n\n.anticon-tags-o:before {\n  content: \"\\e67e\"; }\n\n.anticon-cloud-o:before {\n  content: \"\\e67f\"; }\n\n.anticon-cloud:before {\n  content: \"\\e680\"; }\n\n.anticon-cloud-upload:before {\n  content: \"\\e681\"; }\n\n.anticon-cloud-download:before {\n  content: \"\\e682\"; }\n\n.anticon-cloud-download-o:before {\n  content: \"\\e683\"; }\n\n.anticon-cloud-upload-o:before {\n  content: \"\\e684\"; }\n\n.anticon-environment:before {\n  content: \"\\e685\"; }\n\n.anticon-environment-o:before {\n  content: \"\\e686\"; }\n\n.anticon-eye:before {\n  content: \"\\e687\"; }\n\n.anticon-eye-o:before {\n  content: \"\\e688\"; }\n\n.anticon-camera:before {\n  content: \"\\e689\"; }\n\n.anticon-camera-o:before {\n  content: \"\\e68a\"; }\n\n.anticon-windows:before {\n  content: \"\\e68b\"; }\n\n.anticon-apple:before {\n  content: \"\\e68c\"; }\n\n.anticon-apple-o:before {\n  content: \"\\e6d4\"; }\n\n.anticon-android:before {\n  content: \"\\e938\"; }\n\n.anticon-android-o:before {\n  content: \"\\e68d\"; }\n\n.anticon-aliwangwang:before {\n  content: \"\\e68e\"; }\n\n.anticon-aliwangwang-o:before {\n  content: \"\\e68f\"; }\n\n.anticon-export:before {\n  content: \"\\e691\"; }\n\n.anticon-edit:before {\n  content: \"\\e692\"; }\n\n.anticon-appstore-o:before {\n  content: \"\\e695\"; }\n\n.anticon-appstore:before {\n  content: \"\\e696\"; }\n\n.anticon-scan:before {\n  content: \"\\e697\"; }\n\n.anticon-file-text:before {\n  content: \"\\e698\"; }\n\n.anticon-folder-open:before {\n  content: \"\\e699\"; }\n\n.anticon-hdd:before {\n  content: \"\\e69a\"; }\n\n.anticon-ie:before {\n  content: \"\\e69b\"; }\n\n.anticon-file-jpg:before {\n  content: \"\\e69c\"; }\n\n.anticon-like:before {\n  content: \"\\e64c\"; }\n\n.anticon-like-o:before {\n  content: \"\\e69d\"; }\n\n.anticon-dislike:before {\n  content: \"\\e64b\"; }\n\n.anticon-dislike-o:before {\n  content: \"\\e69e\"; }\n\n.anticon-delete:before {\n  content: \"\\e69f\"; }\n\n.anticon-enter:before {\n  content: \"\\e6a0\"; }\n\n.anticon-pushpin-o:before {\n  content: \"\\e6a1\"; }\n\n.anticon-pushpin:before {\n  content: \"\\e6a2\"; }\n\n.anticon-heart:before {\n  content: \"\\e6a3\"; }\n\n.anticon-heart-o:before {\n  content: \"\\e6a4\"; }\n\n.anticon-pay-circle:before {\n  content: \"\\e6a5\"; }\n\n.anticon-pay-circle-o:before {\n  content: \"\\e6a6\"; }\n\n.anticon-smile:before {\n  content: \"\\e6a7\"; }\n\n.anticon-smile-circle:before {\n  content: \"\\e6a7\"; }\n\n.anticon-smile-o:before {\n  content: \"\\e6a8\"; }\n\n.anticon-frown-o:before {\n  content: \"\\e6a9\"; }\n\n.anticon-calculator:before {\n  content: \"\\e6aa\"; }\n\n.anticon-message:before {\n  content: \"\\e6ab\"; }\n\n.anticon-chrome:before {\n  content: \"\\e6ac\"; }\n\n.anticon-github:before {\n  content: \"\\e6ad\"; }\n\n.anticon-file-unknown:before {\n  content: \"\\e6af\"; }\n\n.anticon-file-excel:before {\n  content: \"\\e6b0\"; }\n\n.anticon-file-ppt:before {\n  content: \"\\e6b1\"; }\n\n.anticon-file-word:before {\n  content: \"\\e6b2\"; }\n\n.anticon-file-pdf:before {\n  content: \"\\e6b3\"; }\n\n.anticon-desktop:before {\n  content: \"\\e6b4\"; }\n\n.anticon-upload:before {\n  content: \"\\e6b6\"; }\n\n.anticon-download:before {\n  content: \"\\e6b7\"; }\n\n.anticon-pie-chart:before {\n  content: \"\\e6b8\"; }\n\n.anticon-unlock:before {\n  content: \"\\e6ba\"; }\n\n.anticon-calendar:before {\n  content: \"\\e6bb\"; }\n\n.anticon-windows-o:before {\n  content: \"\\e6bc\"; }\n\n.anticon-dot-chart:before {\n  content: \"\\e6bd\"; }\n\n.anticon-bar-chart:before {\n  content: \"\\e6be\"; }\n\n.anticon-code:before {\n  content: \"\\e6bf\"; }\n\n.anticon-api:before {\n  content: \"\\e951\"; }\n\n.anticon-plus-square:before {\n  content: \"\\e6c0\"; }\n\n.anticon-minus-square:before {\n  content: \"\\e6c1\"; }\n\n.anticon-close-square:before {\n  content: \"\\e6c2\"; }\n\n.anticon-close-square-o:before {\n  content: \"\\e6c3\"; }\n\n.anticon-check-square:before {\n  content: \"\\e6c4\"; }\n\n.anticon-check-square-o:before {\n  content: \"\\e6c5\"; }\n\n.anticon-fast-backward:before {\n  content: \"\\e6c6\"; }\n\n.anticon-fast-forward:before {\n  content: \"\\e6c7\"; }\n\n.anticon-up-square:before {\n  content: \"\\e6c8\"; }\n\n.anticon-down-square:before {\n  content: \"\\e6c9\"; }\n\n.anticon-left-square:before {\n  content: \"\\e6ca\"; }\n\n.anticon-right-square:before {\n  content: \"\\e6cb\"; }\n\n.anticon-right-square-o:before {\n  content: \"\\e6cc\"; }\n\n.anticon-left-square-o:before {\n  content: \"\\e6cd\"; }\n\n.anticon-down-square-o:before {\n  content: \"\\e6ce\"; }\n\n.anticon-up-square-o:before {\n  content: \"\\e6cf\"; }\n\n.anticon-loading:before {\n  content: \"\\e64d\"; }\n\n.anticon-loading-3-quarters:before {\n  content: \"\\e6ae\"; }\n\n.anticon-bulb:before {\n  content: \"\\e649\"; }\n\n.anticon-select:before {\n  content: \"\\e64a\"; }\n\n.anticon-addfile:before,\n.anticon-file-add:before {\n  content: \"\\e910\"; }\n\n.anticon-addfolder:before,\n.anticon-folder-add:before {\n  content: \"\\e914\"; }\n\n.anticon-switcher:before {\n  content: \"\\e913\"; }\n\n.anticon-rocket:before {\n  content: \"\\e90f\"; }\n\n.anticon-dingding:before {\n  content: \"\\e923\"; }\n\n.anticon-dingding-o:before {\n  content: \"\\e925\"; }\n\n.anticon-bell:before {\n  content: \"\\e64e\"; }\n\n.anticon-disconnect:before {\n  content: \"\\e64f\"; }\n\n.anticon-database:before {\n  content: \"\\e650\"; }\n\n.anticon-compass:before {\n  content: \"\\e6db\"; }\n\n.anticon-barcode:before {\n  content: \"\\e652\"; }\n\n.anticon-hourglass:before {\n  content: \"\\e653\"; }\n\n.anticon-key:before {\n  content: \"\\e654\"; }\n\n.anticon-flag:before {\n  content: \"\\e655\"; }\n\n.anticon-layout:before {\n  content: \"\\e656\"; }\n\n.anticon-login:before {\n  content: \"\\e657\"; }\n\n.anticon-printer:before {\n  content: \"\\e673\"; }\n\n.anticon-sound:before {\n  content: \"\\e6e9\"; }\n\n.anticon-usb:before {\n  content: \"\\e6d7\"; }\n\n.anticon-skin:before {\n  content: \"\\e6d8\"; }\n\n.anticon-tool:before {\n  content: \"\\e6d9\"; }\n\n.anticon-sync:before {\n  content: \"\\e6da\"; }\n\n.anticon-wifi:before {\n  content: \"\\e6d6\"; }\n\n.anticon-car:before {\n  content: \"\\e6dc\"; }\n\n.anticon-copyright:before {\n  content: \"\\e6de\"; }\n\n.anticon-schedule:before {\n  content: \"\\e6df\"; }\n\n.anticon-user-add:before {\n  content: \"\\e6ed\"; }\n\n.anticon-user-delete:before {\n  content: \"\\e6e0\"; }\n\n.anticon-usergroup-add:before {\n  content: \"\\e6dd\"; }\n\n.anticon-usergroup-delete:before {\n  content: \"\\e6e1\"; }\n\n.anticon-man:before {\n  content: \"\\e6e2\"; }\n\n.anticon-woman:before {\n  content: \"\\e6ec\"; }\n\n.anticon-shop:before {\n  content: \"\\e6e3\"; }\n\n.anticon-gift:before {\n  content: \"\\e6e4\"; }\n\n.anticon-idcard:before {\n  content: \"\\e6e5\"; }\n\n.anticon-medicine-box:before {\n  content: \"\\e6e6\"; }\n\n.anticon-red-envelope:before {\n  content: \"\\e6e7\"; }\n\n.anticon-coffee:before {\n  content: \"\\e6e8\"; }\n\n.anticon-trademark:before {\n  content: \"\\e651\"; }\n\n.anticon-safety:before {\n  content: \"\\e6ea\"; }\n\n.anticon-wallet:before {\n  content: \"\\e6eb\"; }\n\n.anticon-bank:before {\n  content: \"\\e6ee\"; }\n\n.anticon-trophy:before {\n  content: \"\\e6ef\"; }\n\n.anticon-contacts:before {\n  content: \"\\e6f0\"; }\n\n.anticon-global:before {\n  content: \"\\e6f1\"; }\n\n.anticon-shake:before {\n  content: \"\\e94f\"; }\n\n.anticon-fork:before {\n  content: \"\\e6f2\"; }\n\n.anticon-dashboard:before {\n  content: \"\\e99a\"; }\n\n.anticon-profile:before {\n  content: \"\\e999\"; }\n\n.anticon-table:before {\n  content: \"\\e998\"; }\n\n.anticon-warning:before {\n  content: \"\\e997\"; }\n\n.anticon-form:before {\n  content: \"\\e996\"; }\n\n.anticon-spin:before {\n  display: inline-block;\n  -webkit-animation: loadingCircle 1s infinite linear;\n  animation: loadingCircle 1s infinite linear; }\n\n.anticon-weibo-square:before {\n  content: \"\\e6f5\"; }\n\n.anticon-weibo-circle:before {\n  content: \"\\e6f4\"; }\n\n.anticon-taobao-circle:before {\n  content: \"\\e6f3\"; }\n\n.anticon-html5:before {\n  content: \"\\e9c7\"; }\n\n.anticon-weibo:before {\n  content: \"\\e9c6\"; }\n\n.anticon-twitter:before {\n  content: \"\\e9c5\"; }\n\n.anticon-wechat:before {\n  content: \"\\e9c4\"; }\n\n.anticon-youtube:before {\n  content: \"\\e9c3\"; }\n\n.anticon-alipay-circle:before {\n  content: \"\\e9c2\"; }\n\n.anticon-taobao:before {\n  content: \"\\e9c1\"; }\n\n.anticon-skype:before {\n  content: \"\\e9c0\"; }\n\n.anticon-qq:before {\n  content: \"\\e9bf\"; }\n\n.anticon-medium-workmark:before {\n  content: \"\\e9be\"; }\n\n.anticon-gitlab:before {\n  content: \"\\e9bd\"; }\n\n.anticon-medium:before {\n  content: \"\\e9bc\"; }\n\n.anticon-linkedin:before {\n  content: \"\\e9bb\"; }\n\n.anticon-google-plus:before {\n  content: \"\\e9ba\"; }\n\n.anticon-dropbox:before {\n  content: \"\\e9b9\"; }\n\n.anticon-facebook:before {\n  content: \"\\e9b8\"; }\n\n.anticon-codepen:before {\n  content: \"\\e9b7\"; }\n\n.anticon-amazon:before {\n  content: \"\\e9b6\"; }\n\n.anticon-google:before {\n  content: \"\\e9b5\"; }\n\n.anticon-codepen-circle:before {\n  content: \"\\e9b4\"; }\n\n.anticon-alipay:before {\n  content: \"\\e9b3\"; }\n\n.anticon-ant-design:before {\n  content: \"\\e9b2\"; }\n\n.anticon-aliyun:before {\n  content: \"\\e9f4\"; }\n\n.anticon-zhihu:before {\n  content: \"\\e703\"; }\n\n.anticon-file-markdown:before {\n  content: \"\\e704\"; }\n\n.anticon-slack:before {\n  content: \"\\e705\"; }\n\n.anticon-slack-square:before {\n  content: \"\\e706\"; }\n\n.anticon-behance:before {\n  content: \"\\e707\"; }\n\n.anticon-behance-square:before {\n  content: \"\\e708\"; }\n\n.anticon-dribbble:before {\n  content: \"\\e709\"; }\n\n.anticon-dribbble-square:before {\n  content: \"\\e70a\"; }\n\n.anticon-instagram:before {\n  content: \"\\e70b\"; }\n\n.anticon-yuque:before {\n  content: \"\\e70c\"; }\n\n.fade-enter,\n.fade-appear {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.fade-leave {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.fade-enter.fade-enter-active,\n.fade-appear.fade-appear-active {\n  -webkit-animation-name: antFadeIn;\n  animation-name: antFadeIn;\n  -webkit-animation-play-state: running;\n  animation-play-state: running; }\n\n.fade-leave.fade-leave-active {\n  -webkit-animation-name: antFadeOut;\n  animation-name: antFadeOut;\n  -webkit-animation-play-state: running;\n  animation-play-state: running;\n  pointer-events: none; }\n\n.fade-enter,\n.fade-appear {\n  opacity: 0;\n  -webkit-animation-timing-function: linear;\n  animation-timing-function: linear; }\n\n.fade-leave {\n  -webkit-animation-timing-function: linear;\n  animation-timing-function: linear; }\n\n@-webkit-keyframes antFadeIn {\n  0% {\n    opacity: 0; }\n  100% {\n    opacity: 1; } }\n\n@keyframes antFadeIn {\n  0% {\n    opacity: 0; }\n  100% {\n    opacity: 1; } }\n\n@-webkit-keyframes antFadeOut {\n  0% {\n    opacity: 1; }\n  100% {\n    opacity: 0; } }\n\n@keyframes antFadeOut {\n  0% {\n    opacity: 1; }\n  100% {\n    opacity: 0; } }\n\n.move-up-enter,\n.move-up-appear {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.move-up-leave {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.move-up-enter.move-up-enter-active,\n.move-up-appear.move-up-appear-active {\n  -webkit-animation-name: antMoveUpIn;\n  animation-name: antMoveUpIn;\n  -webkit-animation-play-state: running;\n  animation-play-state: running; }\n\n.move-up-leave.move-up-leave-active {\n  -webkit-animation-name: antMoveUpOut;\n  animation-name: antMoveUpOut;\n  -webkit-animation-play-state: running;\n  animation-play-state: running;\n  pointer-events: none; }\n\n.move-up-enter,\n.move-up-appear {\n  opacity: 0;\n  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n  animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1); }\n\n.move-up-leave {\n  -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n  animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34); }\n\n.move-down-enter,\n.move-down-appear {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.move-down-leave {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.move-down-enter.move-down-enter-active,\n.move-down-appear.move-down-appear-active {\n  -webkit-animation-name: antMoveDownIn;\n  animation-name: antMoveDownIn;\n  -webkit-animation-play-state: running;\n  animation-play-state: running; }\n\n.move-down-leave.move-down-leave-active {\n  -webkit-animation-name: antMoveDownOut;\n  animation-name: antMoveDownOut;\n  -webkit-animation-play-state: running;\n  animation-play-state: running;\n  pointer-events: none; }\n\n.move-down-enter,\n.move-down-appear {\n  opacity: 0;\n  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n  animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1); }\n\n.move-down-leave {\n  -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n  animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34); }\n\n.move-left-enter,\n.move-left-appear {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.move-left-leave {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.move-left-enter.move-left-enter-active,\n.move-left-appear.move-left-appear-active {\n  -webkit-animation-name: antMoveLeftIn;\n  animation-name: antMoveLeftIn;\n  -webkit-animation-play-state: running;\n  animation-play-state: running; }\n\n.move-left-leave.move-left-leave-active {\n  -webkit-animation-name: antMoveLeftOut;\n  animation-name: antMoveLeftOut;\n  -webkit-animation-play-state: running;\n  animation-play-state: running;\n  pointer-events: none; }\n\n.move-left-enter,\n.move-left-appear {\n  opacity: 0;\n  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n  animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1); }\n\n.move-left-leave {\n  -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n  animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34); }\n\n.move-right-enter,\n.move-right-appear {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.move-right-leave {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.move-right-enter.move-right-enter-active,\n.move-right-appear.move-right-appear-active {\n  -webkit-animation-name: antMoveRightIn;\n  animation-name: antMoveRightIn;\n  -webkit-animation-play-state: running;\n  animation-play-state: running; }\n\n.move-right-leave.move-right-leave-active {\n  -webkit-animation-name: antMoveRightOut;\n  animation-name: antMoveRightOut;\n  -webkit-animation-play-state: running;\n  animation-play-state: running;\n  pointer-events: none; }\n\n.move-right-enter,\n.move-right-appear {\n  opacity: 0;\n  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n  animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1); }\n\n.move-right-leave {\n  -webkit-animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);\n  animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34); }\n\n@-webkit-keyframes antMoveDownIn {\n  0% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateY(100%);\n    transform: translateY(100%);\n    opacity: 0; }\n  100% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateY(0%);\n    transform: translateY(0%);\n    opacity: 1; } }\n\n@keyframes antMoveDownIn {\n  0% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateY(100%);\n    transform: translateY(100%);\n    opacity: 0; }\n  100% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateY(0%);\n    transform: translateY(0%);\n    opacity: 1; } }\n\n@-webkit-keyframes antMoveDownOut {\n  0% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateY(0%);\n    transform: translateY(0%);\n    opacity: 1; }\n  100% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateY(100%);\n    transform: translateY(100%);\n    opacity: 0; } }\n\n@keyframes antMoveDownOut {\n  0% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateY(0%);\n    transform: translateY(0%);\n    opacity: 1; }\n  100% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateY(100%);\n    transform: translateY(100%);\n    opacity: 0; } }\n\n@-webkit-keyframes antMoveLeftIn {\n  0% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateX(-100%);\n    transform: translateX(-100%);\n    opacity: 0; }\n  100% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateX(0%);\n    transform: translateX(0%);\n    opacity: 1; } }\n\n@keyframes antMoveLeftIn {\n  0% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateX(-100%);\n    transform: translateX(-100%);\n    opacity: 0; }\n  100% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateX(0%);\n    transform: translateX(0%);\n    opacity: 1; } }\n\n@-webkit-keyframes antMoveLeftOut {\n  0% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateX(0%);\n    transform: translateX(0%);\n    opacity: 1; }\n  100% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateX(-100%);\n    transform: translateX(-100%);\n    opacity: 0; } }\n\n@keyframes antMoveLeftOut {\n  0% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateX(0%);\n    transform: translateX(0%);\n    opacity: 1; }\n  100% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateX(-100%);\n    transform: translateX(-100%);\n    opacity: 0; } }\n\n@-webkit-keyframes antMoveRightIn {\n  0% {\n    opacity: 0;\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateX(100%);\n    transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateX(0%);\n    transform: translateX(0%); } }\n\n@keyframes antMoveRightIn {\n  0% {\n    opacity: 0;\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateX(100%);\n    transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateX(0%);\n    transform: translateX(0%); } }\n\n@-webkit-keyframes antMoveRightOut {\n  0% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateX(0%);\n    transform: translateX(0%);\n    opacity: 1; }\n  100% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateX(100%);\n    transform: translateX(100%);\n    opacity: 0; } }\n\n@keyframes antMoveRightOut {\n  0% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateX(0%);\n    transform: translateX(0%);\n    opacity: 1; }\n  100% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateX(100%);\n    transform: translateX(100%);\n    opacity: 0; } }\n\n@-webkit-keyframes antMoveUpIn {\n  0% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateY(-100%);\n    transform: translateY(-100%);\n    opacity: 0; }\n  100% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateY(0%);\n    transform: translateY(0%);\n    opacity: 1; } }\n\n@keyframes antMoveUpIn {\n  0% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateY(-100%);\n    transform: translateY(-100%);\n    opacity: 0; }\n  100% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateY(0%);\n    transform: translateY(0%);\n    opacity: 1; } }\n\n@-webkit-keyframes antMoveUpOut {\n  0% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateY(0%);\n    transform: translateY(0%);\n    opacity: 1; }\n  100% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateY(-100%);\n    transform: translateY(-100%);\n    opacity: 0; } }\n\n@keyframes antMoveUpOut {\n  0% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateY(0%);\n    transform: translateY(0%);\n    opacity: 1; }\n  100% {\n    -webkit-transform-origin: 0 0;\n    transform-origin: 0 0;\n    -webkit-transform: translateY(-100%);\n    transform: translateY(-100%);\n    opacity: 0; } }\n\n@-webkit-keyframes loadingCircle {\n  100% {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg); } }\n\n@keyframes loadingCircle {\n  100% {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg); } }\n\n[ant-click-animating],\n[ant-click-animating-without-extra-node] {\n  position: relative; }\n\n[ant-click-animating-without-extra-node]:after,\n.ant-click-animating-node {\n  content: '';\n  position: absolute;\n  top: -1px;\n  left: -1px;\n  bottom: -1px;\n  right: -1px;\n  border-radius: inherit;\n  border: 0 solid #1890ff;\n  opacity: 0.4;\n  -webkit-animation: waveEffect 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);\n  animation: waveEffect 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);\n  display: block; }\n\n@-webkit-keyframes waveEffect {\n  to {\n    opacity: 0;\n    top: -6px;\n    left: -6px;\n    bottom: -6px;\n    right: -6px;\n    border-width: 6px; } }\n\n@keyframes waveEffect {\n  to {\n    opacity: 0;\n    top: -6px;\n    left: -6px;\n    bottom: -6px;\n    right: -6px;\n    border-width: 6px; } }\n\n.slide-up-enter,\n.slide-up-appear {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.slide-up-leave {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.slide-up-enter.slide-up-enter-active,\n.slide-up-appear.slide-up-appear-active {\n  -webkit-animation-name: antSlideUpIn;\n  animation-name: antSlideUpIn;\n  -webkit-animation-play-state: running;\n  animation-play-state: running; }\n\n.slide-up-leave.slide-up-leave-active {\n  -webkit-animation-name: antSlideUpOut;\n  animation-name: antSlideUpOut;\n  -webkit-animation-play-state: running;\n  animation-play-state: running;\n  pointer-events: none; }\n\n.slide-up-enter,\n.slide-up-appear {\n  opacity: 0;\n  -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n  animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1); }\n\n.slide-up-leave {\n  -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n  animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); }\n\n.slide-down-enter,\n.slide-down-appear {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.slide-down-leave {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.slide-down-enter.slide-down-enter-active,\n.slide-down-appear.slide-down-appear-active {\n  -webkit-animation-name: antSlideDownIn;\n  animation-name: antSlideDownIn;\n  -webkit-animation-play-state: running;\n  animation-play-state: running; }\n\n.slide-down-leave.slide-down-leave-active {\n  -webkit-animation-name: antSlideDownOut;\n  animation-name: antSlideDownOut;\n  -webkit-animation-play-state: running;\n  animation-play-state: running;\n  pointer-events: none; }\n\n.slide-down-enter,\n.slide-down-appear {\n  opacity: 0;\n  -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n  animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1); }\n\n.slide-down-leave {\n  -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n  animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); }\n\n.slide-left-enter,\n.slide-left-appear {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.slide-left-leave {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.slide-left-enter.slide-left-enter-active,\n.slide-left-appear.slide-left-appear-active {\n  -webkit-animation-name: antSlideLeftIn;\n  animation-name: antSlideLeftIn;\n  -webkit-animation-play-state: running;\n  animation-play-state: running; }\n\n.slide-left-leave.slide-left-leave-active {\n  -webkit-animation-name: antSlideLeftOut;\n  animation-name: antSlideLeftOut;\n  -webkit-animation-play-state: running;\n  animation-play-state: running;\n  pointer-events: none; }\n\n.slide-left-enter,\n.slide-left-appear {\n  opacity: 0;\n  -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n  animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1); }\n\n.slide-left-leave {\n  -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n  animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); }\n\n.slide-right-enter,\n.slide-right-appear {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.slide-right-leave {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.slide-right-enter.slide-right-enter-active,\n.slide-right-appear.slide-right-appear-active {\n  -webkit-animation-name: antSlideRightIn;\n  animation-name: antSlideRightIn;\n  -webkit-animation-play-state: running;\n  animation-play-state: running; }\n\n.slide-right-leave.slide-right-leave-active {\n  -webkit-animation-name: antSlideRightOut;\n  animation-name: antSlideRightOut;\n  -webkit-animation-play-state: running;\n  animation-play-state: running;\n  pointer-events: none; }\n\n.slide-right-enter,\n.slide-right-appear {\n  opacity: 0;\n  -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\n  animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1); }\n\n.slide-right-leave {\n  -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n  animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); }\n\n@-webkit-keyframes antSlideUpIn {\n  0% {\n    opacity: 0;\n    -webkit-transform-origin: 0% 0%;\n    transform-origin: 0% 0%;\n    -webkit-transform: scaleY(0.8);\n    transform: scaleY(0.8); }\n  100% {\n    opacity: 1;\n    -webkit-transform-origin: 0% 0%;\n    transform-origin: 0% 0%;\n    -webkit-transform: scaleY(1);\n    transform: scaleY(1); } }\n\n@keyframes antSlideUpIn {\n  0% {\n    opacity: 0;\n    -webkit-transform-origin: 0% 0%;\n    transform-origin: 0% 0%;\n    -webkit-transform: scaleY(0.8);\n    transform: scaleY(0.8); }\n  100% {\n    opacity: 1;\n    -webkit-transform-origin: 0% 0%;\n    transform-origin: 0% 0%;\n    -webkit-transform: scaleY(1);\n    transform: scaleY(1); } }\n\n@-webkit-keyframes antSlideUpOut {\n  0% {\n    opacity: 1;\n    -webkit-transform-origin: 0% 0%;\n    transform-origin: 0% 0%;\n    -webkit-transform: scaleY(1);\n    transform: scaleY(1); }\n  100% {\n    opacity: 0;\n    -webkit-transform-origin: 0% 0%;\n    transform-origin: 0% 0%;\n    -webkit-transform: scaleY(0.8);\n    transform: scaleY(0.8); } }\n\n@keyframes antSlideUpOut {\n  0% {\n    opacity: 1;\n    -webkit-transform-origin: 0% 0%;\n    transform-origin: 0% 0%;\n    -webkit-transform: scaleY(1);\n    transform: scaleY(1); }\n  100% {\n    opacity: 0;\n    -webkit-transform-origin: 0% 0%;\n    transform-origin: 0% 0%;\n    -webkit-transform: scaleY(0.8);\n    transform: scaleY(0.8); } }\n\n@-webkit-keyframes antSlideDownIn {\n  0% {\n    opacity: 0;\n    -webkit-transform-origin: 100% 100%;\n    transform-origin: 100% 100%;\n    -webkit-transform: scaleY(0.8);\n    transform: scaleY(0.8); }\n  100% {\n    opacity: 1;\n    -webkit-transform-origin: 100% 100%;\n    transform-origin: 100% 100%;\n    -webkit-transform: scaleY(1);\n    transform: scaleY(1); } }\n\n@keyframes antSlideDownIn {\n  0% {\n    opacity: 0;\n    -webkit-transform-origin: 100% 100%;\n    transform-origin: 100% 100%;\n    -webkit-transform: scaleY(0.8);\n    transform: scaleY(0.8); }\n  100% {\n    opacity: 1;\n    -webkit-transform-origin: 100% 100%;\n    transform-origin: 100% 100%;\n    -webkit-transform: scaleY(1);\n    transform: scaleY(1); } }\n\n@-webkit-keyframes antSlideDownOut {\n  0% {\n    opacity: 1;\n    -webkit-transform-origin: 100% 100%;\n    transform-origin: 100% 100%;\n    -webkit-transform: scaleY(1);\n    transform: scaleY(1); }\n  100% {\n    opacity: 0;\n    -webkit-transform-origin: 100% 100%;\n    transform-origin: 100% 100%;\n    -webkit-transform: scaleY(0.8);\n    transform: scaleY(0.8); } }\n\n@keyframes antSlideDownOut {\n  0% {\n    opacity: 1;\n    -webkit-transform-origin: 100% 100%;\n    transform-origin: 100% 100%;\n    -webkit-transform: scaleY(1);\n    transform: scaleY(1); }\n  100% {\n    opacity: 0;\n    -webkit-transform-origin: 100% 100%;\n    transform-origin: 100% 100%;\n    -webkit-transform: scaleY(0.8);\n    transform: scaleY(0.8); } }\n\n@-webkit-keyframes antSlideLeftIn {\n  0% {\n    opacity: 0;\n    -webkit-transform-origin: 0% 0%;\n    transform-origin: 0% 0%;\n    -webkit-transform: scaleX(0.8);\n    transform: scaleX(0.8); }\n  100% {\n    opacity: 1;\n    -webkit-transform-origin: 0% 0%;\n    transform-origin: 0% 0%;\n    -webkit-transform: scaleX(1);\n    transform: scaleX(1); } }\n\n@keyframes antSlideLeftIn {\n  0% {\n    opacity: 0;\n    -webkit-transform-origin: 0% 0%;\n    transform-origin: 0% 0%;\n    -webkit-transform: scaleX(0.8);\n    transform: scaleX(0.8); }\n  100% {\n    opacity: 1;\n    -webkit-transform-origin: 0% 0%;\n    transform-origin: 0% 0%;\n    -webkit-transform: scaleX(1);\n    transform: scaleX(1); } }\n\n@-webkit-keyframes antSlideLeftOut {\n  0% {\n    opacity: 1;\n    -webkit-transform-origin: 0% 0%;\n    transform-origin: 0% 0%;\n    -webkit-transform: scaleX(1);\n    transform: scaleX(1); }\n  100% {\n    opacity: 0;\n    -webkit-transform-origin: 0% 0%;\n    transform-origin: 0% 0%;\n    -webkit-transform: scaleX(0.8);\n    transform: scaleX(0.8); } }\n\n@keyframes antSlideLeftOut {\n  0% {\n    opacity: 1;\n    -webkit-transform-origin: 0% 0%;\n    transform-origin: 0% 0%;\n    -webkit-transform: scaleX(1);\n    transform: scaleX(1); }\n  100% {\n    opacity: 0;\n    -webkit-transform-origin: 0% 0%;\n    transform-origin: 0% 0%;\n    -webkit-transform: scaleX(0.8);\n    transform: scaleX(0.8); } }\n\n@-webkit-keyframes antSlideRightIn {\n  0% {\n    opacity: 0;\n    -webkit-transform-origin: 100% 0%;\n    transform-origin: 100% 0%;\n    -webkit-transform: scaleX(0.8);\n    transform: scaleX(0.8); }\n  100% {\n    opacity: 1;\n    -webkit-transform-origin: 100% 0%;\n    transform-origin: 100% 0%;\n    -webkit-transform: scaleX(1);\n    transform: scaleX(1); } }\n\n@keyframes antSlideRightIn {\n  0% {\n    opacity: 0;\n    -webkit-transform-origin: 100% 0%;\n    transform-origin: 100% 0%;\n    -webkit-transform: scaleX(0.8);\n    transform: scaleX(0.8); }\n  100% {\n    opacity: 1;\n    -webkit-transform-origin: 100% 0%;\n    transform-origin: 100% 0%;\n    -webkit-transform: scaleX(1);\n    transform: scaleX(1); } }\n\n@-webkit-keyframes antSlideRightOut {\n  0% {\n    opacity: 1;\n    -webkit-transform-origin: 100% 0%;\n    transform-origin: 100% 0%;\n    -webkit-transform: scaleX(1);\n    transform: scaleX(1); }\n  100% {\n    opacity: 0;\n    -webkit-transform-origin: 100% 0%;\n    transform-origin: 100% 0%;\n    -webkit-transform: scaleX(0.8);\n    transform: scaleX(0.8); } }\n\n@keyframes antSlideRightOut {\n  0% {\n    opacity: 1;\n    -webkit-transform-origin: 100% 0%;\n    transform-origin: 100% 0%;\n    -webkit-transform: scaleX(1);\n    transform: scaleX(1); }\n  100% {\n    opacity: 0;\n    -webkit-transform-origin: 100% 0%;\n    transform-origin: 100% 0%;\n    -webkit-transform: scaleX(0.8);\n    transform: scaleX(0.8); } }\n\n.swing-enter,\n.swing-appear {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.swing-enter.swing-enter-active,\n.swing-appear.swing-appear-active {\n  -webkit-animation-name: antSwingIn;\n  animation-name: antSwingIn;\n  -webkit-animation-play-state: running;\n  animation-play-state: running; }\n\n@-webkit-keyframes antSwingIn {\n  0%,\n  100% {\n    -webkit-transform: translateX(0);\n    transform: translateX(0); }\n  20% {\n    -webkit-transform: translateX(-10px);\n    transform: translateX(-10px); }\n  40% {\n    -webkit-transform: translateX(10px);\n    transform: translateX(10px); }\n  60% {\n    -webkit-transform: translateX(-5px);\n    transform: translateX(-5px); }\n  80% {\n    -webkit-transform: translateX(5px);\n    transform: translateX(5px); } }\n\n@keyframes antSwingIn {\n  0%,\n  100% {\n    -webkit-transform: translateX(0);\n    transform: translateX(0); }\n  20% {\n    -webkit-transform: translateX(-10px);\n    transform: translateX(-10px); }\n  40% {\n    -webkit-transform: translateX(10px);\n    transform: translateX(10px); }\n  60% {\n    -webkit-transform: translateX(-5px);\n    transform: translateX(-5px); }\n  80% {\n    -webkit-transform: translateX(5px);\n    transform: translateX(5px); } }\n\n.zoom-enter,\n.zoom-appear {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.zoom-leave {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.zoom-enter.zoom-enter-active,\n.zoom-appear.zoom-appear-active {\n  -webkit-animation-name: antZoomIn;\n  animation-name: antZoomIn;\n  -webkit-animation-play-state: running;\n  animation-play-state: running; }\n\n.zoom-leave.zoom-leave-active {\n  -webkit-animation-name: antZoomOut;\n  animation-name: antZoomOut;\n  -webkit-animation-play-state: running;\n  animation-play-state: running;\n  pointer-events: none; }\n\n.zoom-enter,\n.zoom-appear {\n  -webkit-transform: scale(0);\n  -ms-transform: scale(0);\n  transform: scale(0);\n  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n  animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1); }\n\n.zoom-leave {\n  -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n  animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86); }\n\n.zoom-big-enter,\n.zoom-big-appear {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.zoom-big-leave {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.zoom-big-enter.zoom-big-enter-active,\n.zoom-big-appear.zoom-big-appear-active {\n  -webkit-animation-name: antZoomBigIn;\n  animation-name: antZoomBigIn;\n  -webkit-animation-play-state: running;\n  animation-play-state: running; }\n\n.zoom-big-leave.zoom-big-leave-active {\n  -webkit-animation-name: antZoomBigOut;\n  animation-name: antZoomBigOut;\n  -webkit-animation-play-state: running;\n  animation-play-state: running;\n  pointer-events: none; }\n\n.zoom-big-enter,\n.zoom-big-appear {\n  -webkit-transform: scale(0);\n  -ms-transform: scale(0);\n  transform: scale(0);\n  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n  animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1); }\n\n.zoom-big-leave {\n  -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n  animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86); }\n\n.zoom-big-fast-enter,\n.zoom-big-fast-appear {\n  -webkit-animation-duration: 0.1s;\n  animation-duration: 0.1s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.zoom-big-fast-leave {\n  -webkit-animation-duration: 0.1s;\n  animation-duration: 0.1s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.zoom-big-fast-enter.zoom-big-fast-enter-active,\n.zoom-big-fast-appear.zoom-big-fast-appear-active {\n  -webkit-animation-name: antZoomBigIn;\n  animation-name: antZoomBigIn;\n  -webkit-animation-play-state: running;\n  animation-play-state: running; }\n\n.zoom-big-fast-leave.zoom-big-fast-leave-active {\n  -webkit-animation-name: antZoomBigOut;\n  animation-name: antZoomBigOut;\n  -webkit-animation-play-state: running;\n  animation-play-state: running;\n  pointer-events: none; }\n\n.zoom-big-fast-enter,\n.zoom-big-fast-appear {\n  -webkit-transform: scale(0);\n  -ms-transform: scale(0);\n  transform: scale(0);\n  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n  animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1); }\n\n.zoom-big-fast-leave {\n  -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n  animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86); }\n\n.zoom-up-enter,\n.zoom-up-appear {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.zoom-up-leave {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.zoom-up-enter.zoom-up-enter-active,\n.zoom-up-appear.zoom-up-appear-active {\n  -webkit-animation-name: antZoomUpIn;\n  animation-name: antZoomUpIn;\n  -webkit-animation-play-state: running;\n  animation-play-state: running; }\n\n.zoom-up-leave.zoom-up-leave-active {\n  -webkit-animation-name: antZoomUpOut;\n  animation-name: antZoomUpOut;\n  -webkit-animation-play-state: running;\n  animation-play-state: running;\n  pointer-events: none; }\n\n.zoom-up-enter,\n.zoom-up-appear {\n  -webkit-transform: scale(0);\n  -ms-transform: scale(0);\n  transform: scale(0);\n  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n  animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1); }\n\n.zoom-up-leave {\n  -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n  animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86); }\n\n.zoom-down-enter,\n.zoom-down-appear {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.zoom-down-leave {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.zoom-down-enter.zoom-down-enter-active,\n.zoom-down-appear.zoom-down-appear-active {\n  -webkit-animation-name: antZoomDownIn;\n  animation-name: antZoomDownIn;\n  -webkit-animation-play-state: running;\n  animation-play-state: running; }\n\n.zoom-down-leave.zoom-down-leave-active {\n  -webkit-animation-name: antZoomDownOut;\n  animation-name: antZoomDownOut;\n  -webkit-animation-play-state: running;\n  animation-play-state: running;\n  pointer-events: none; }\n\n.zoom-down-enter,\n.zoom-down-appear {\n  -webkit-transform: scale(0);\n  -ms-transform: scale(0);\n  transform: scale(0);\n  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n  animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1); }\n\n.zoom-down-leave {\n  -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n  animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86); }\n\n.zoom-left-enter,\n.zoom-left-appear {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.zoom-left-leave {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.zoom-left-enter.zoom-left-enter-active,\n.zoom-left-appear.zoom-left-appear-active {\n  -webkit-animation-name: antZoomLeftIn;\n  animation-name: antZoomLeftIn;\n  -webkit-animation-play-state: running;\n  animation-play-state: running; }\n\n.zoom-left-leave.zoom-left-leave-active {\n  -webkit-animation-name: antZoomLeftOut;\n  animation-name: antZoomLeftOut;\n  -webkit-animation-play-state: running;\n  animation-play-state: running;\n  pointer-events: none; }\n\n.zoom-left-enter,\n.zoom-left-appear {\n  -webkit-transform: scale(0);\n  -ms-transform: scale(0);\n  transform: scale(0);\n  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n  animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1); }\n\n.zoom-left-leave {\n  -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n  animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86); }\n\n.zoom-right-enter,\n.zoom-right-appear {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.zoom-right-leave {\n  -webkit-animation-duration: 0.2s;\n  animation-duration: 0.2s;\n  -webkit-animation-fill-mode: both;\n  animation-fill-mode: both;\n  -webkit-animation-play-state: paused;\n  animation-play-state: paused; }\n\n.zoom-right-enter.zoom-right-enter-active,\n.zoom-right-appear.zoom-right-appear-active {\n  -webkit-animation-name: antZoomRightIn;\n  animation-name: antZoomRightIn;\n  -webkit-animation-play-state: running;\n  animation-play-state: running; }\n\n.zoom-right-leave.zoom-right-leave-active {\n  -webkit-animation-name: antZoomRightOut;\n  animation-name: antZoomRightOut;\n  -webkit-animation-play-state: running;\n  animation-play-state: running;\n  pointer-events: none; }\n\n.zoom-right-enter,\n.zoom-right-appear {\n  -webkit-transform: scale(0);\n  -ms-transform: scale(0);\n  transform: scale(0);\n  -webkit-animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);\n  animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1); }\n\n.zoom-right-leave {\n  -webkit-animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n  animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86); }\n\n@-webkit-keyframes antZoomIn {\n  0% {\n    opacity: 0;\n    -webkit-transform: scale(0.2);\n    transform: scale(0.2); }\n  100% {\n    opacity: 1;\n    -webkit-transform: scale(1);\n    transform: scale(1); } }\n\n@keyframes antZoomIn {\n  0% {\n    opacity: 0;\n    -webkit-transform: scale(0.2);\n    transform: scale(0.2); }\n  100% {\n    opacity: 1;\n    -webkit-transform: scale(1);\n    transform: scale(1); } }\n\n@-webkit-keyframes antZoomOut {\n  0% {\n    -webkit-transform: scale(1);\n    transform: scale(1); }\n  100% {\n    opacity: 0;\n    -webkit-transform: scale(0.2);\n    transform: scale(0.2); } }\n\n@keyframes antZoomOut {\n  0% {\n    -webkit-transform: scale(1);\n    transform: scale(1); }\n  100% {\n    opacity: 0;\n    -webkit-transform: scale(0.2);\n    transform: scale(0.2); } }\n\n@-webkit-keyframes antZoomBigIn {\n  0% {\n    opacity: 0;\n    -webkit-transform: scale(0.8);\n    transform: scale(0.8); }\n  100% {\n    -webkit-transform: scale(1);\n    transform: scale(1); } }\n\n@keyframes antZoomBigIn {\n  0% {\n    opacity: 0;\n    -webkit-transform: scale(0.8);\n    transform: scale(0.8); }\n  100% {\n    -webkit-transform: scale(1);\n    transform: scale(1); } }\n\n@-webkit-keyframes antZoomBigOut {\n  0% {\n    -webkit-transform: scale(1);\n    transform: scale(1); }\n  100% {\n    opacity: 0;\n    -webkit-transform: scale(0.8);\n    transform: scale(0.8); } }\n\n@keyframes antZoomBigOut {\n  0% {\n    -webkit-transform: scale(1);\n    transform: scale(1); }\n  100% {\n    opacity: 0;\n    -webkit-transform: scale(0.8);\n    transform: scale(0.8); } }\n\n@-webkit-keyframes antZoomUpIn {\n  0% {\n    opacity: 0;\n    -webkit-transform-origin: 50% 0%;\n    transform-origin: 50% 0%;\n    -webkit-transform: scale(0.8);\n    transform: scale(0.8); }\n  100% {\n    -webkit-transform-origin: 50% 0%;\n    transform-origin: 50% 0%;\n    -webkit-transform: scale(1);\n    transform: scale(1); } }\n\n@keyframes antZoomUpIn {\n  0% {\n    opacity: 0;\n    -webkit-transform-origin: 50% 0%;\n    transform-origin: 50% 0%;\n    -webkit-transform: scale(0.8);\n    transform: scale(0.8); }\n  100% {\n    -webkit-transform-origin: 50% 0%;\n    transform-origin: 50% 0%;\n    -webkit-transform: scale(1);\n    transform: scale(1); } }\n\n@-webkit-keyframes antZoomUpOut {\n  0% {\n    -webkit-transform-origin: 50% 0%;\n    transform-origin: 50% 0%;\n    -webkit-transform: scale(1);\n    transform: scale(1); }\n  100% {\n    opacity: 0;\n    -webkit-transform-origin: 50% 0%;\n    transform-origin: 50% 0%;\n    -webkit-transform: scale(0.8);\n    transform: scale(0.8); } }\n\n@keyframes antZoomUpOut {\n  0% {\n    -webkit-transform-origin: 50% 0%;\n    transform-origin: 50% 0%;\n    -webkit-transform: scale(1);\n    transform: scale(1); }\n  100% {\n    opacity: 0;\n    -webkit-transform-origin: 50% 0%;\n    transform-origin: 50% 0%;\n    -webkit-transform: scale(0.8);\n    transform: scale(0.8); } }\n\n@-webkit-keyframes antZoomLeftIn {\n  0% {\n    opacity: 0;\n    -webkit-transform-origin: 0% 50%;\n    transform-origin: 0% 50%;\n    -webkit-transform: scale(0.8);\n    transform: scale(0.8); }\n  100% {\n    -webkit-transform-origin: 0% 50%;\n    transform-origin: 0% 50%;\n    -webkit-transform: scale(1);\n    transform: scale(1); } }\n\n@keyframes antZoomLeftIn {\n  0% {\n    opacity: 0;\n    -webkit-transform-origin: 0% 50%;\n    transform-origin: 0% 50%;\n    -webkit-transform: scale(0.8);\n    transform: scale(0.8); }\n  100% {\n    -webkit-transform-origin: 0% 50%;\n    transform-origin: 0% 50%;\n    -webkit-transform: scale(1);\n    transform: scale(1); } }\n\n@-webkit-keyframes antZoomLeftOut {\n  0% {\n    -webkit-transform-origin: 0% 50%;\n    transform-origin: 0% 50%;\n    -webkit-transform: scale(1);\n    transform: scale(1); }\n  100% {\n    opacity: 0;\n    -webkit-transform-origin: 0% 50%;\n    transform-origin: 0% 50%;\n    -webkit-transform: scale(0.8);\n    transform: scale(0.8); } }\n\n@keyframes antZoomLeftOut {\n  0% {\n    -webkit-transform-origin: 0% 50%;\n    transform-origin: 0% 50%;\n    -webkit-transform: scale(1);\n    transform: scale(1); }\n  100% {\n    opacity: 0;\n    -webkit-transform-origin: 0% 50%;\n    transform-origin: 0% 50%;\n    -webkit-transform: scale(0.8);\n    transform: scale(0.8); } }\n\n@-webkit-keyframes antZoomRightIn {\n  0% {\n    opacity: 0;\n    -webkit-transform-origin: 100% 50%;\n    transform-origin: 100% 50%;\n    -webkit-transform: scale(0.8);\n    transform: scale(0.8); }\n  100% {\n    -webkit-transform-origin: 100% 50%;\n    transform-origin: 100% 50%;\n    -webkit-transform: scale(1);\n    transform: scale(1); } }\n\n@keyframes antZoomRightIn {\n  0% {\n    opacity: 0;\n    -webkit-transform-origin: 100% 50%;\n    transform-origin: 100% 50%;\n    -webkit-transform: scale(0.8);\n    transform: scale(0.8); }\n  100% {\n    -webkit-transform-origin: 100% 50%;\n    transform-origin: 100% 50%;\n    -webkit-transform: scale(1);\n    transform: scale(1); } }\n\n@-webkit-keyframes antZoomRightOut {\n  0% {\n    -webkit-transform-origin: 100% 50%;\n    transform-origin: 100% 50%;\n    -webkit-transform: scale(1);\n    transform: scale(1); }\n  100% {\n    opacity: 0;\n    -webkit-transform-origin: 100% 50%;\n    transform-origin: 100% 50%;\n    -webkit-transform: scale(0.8);\n    transform: scale(0.8); } }\n\n@keyframes antZoomRightOut {\n  0% {\n    -webkit-transform-origin: 100% 50%;\n    transform-origin: 100% 50%;\n    -webkit-transform: scale(1);\n    transform: scale(1); }\n  100% {\n    opacity: 0;\n    -webkit-transform-origin: 100% 50%;\n    transform-origin: 100% 50%;\n    -webkit-transform: scale(0.8);\n    transform: scale(0.8); } }\n\n@-webkit-keyframes antZoomDownIn {\n  0% {\n    opacity: 0;\n    -webkit-transform-origin: 50% 100%;\n    transform-origin: 50% 100%;\n    -webkit-transform: scale(0.8);\n    transform: scale(0.8); }\n  100% {\n    -webkit-transform-origin: 50% 100%;\n    transform-origin: 50% 100%;\n    -webkit-transform: scale(1);\n    transform: scale(1); } }\n\n@keyframes antZoomDownIn {\n  0% {\n    opacity: 0;\n    -webkit-transform-origin: 50% 100%;\n    transform-origin: 50% 100%;\n    -webkit-transform: scale(0.8);\n    transform: scale(0.8); }\n  100% {\n    -webkit-transform-origin: 50% 100%;\n    transform-origin: 50% 100%;\n    -webkit-transform: scale(1);\n    transform: scale(1); } }\n\n@-webkit-keyframes antZoomDownOut {\n  0% {\n    -webkit-transform-origin: 50% 100%;\n    transform-origin: 50% 100%;\n    -webkit-transform: scale(1);\n    transform: scale(1); }\n  100% {\n    opacity: 0;\n    -webkit-transform-origin: 50% 100%;\n    transform-origin: 50% 100%;\n    -webkit-transform: scale(0.8);\n    transform: scale(0.8); } }\n\n@keyframes antZoomDownOut {\n  0% {\n    -webkit-transform-origin: 50% 100%;\n    transform-origin: 50% 100%;\n    -webkit-transform: scale(1);\n    transform: scale(1); }\n  100% {\n    opacity: 0;\n    -webkit-transform-origin: 50% 100%;\n    transform-origin: 50% 100%;\n    -webkit-transform: scale(0.8);\n    transform: scale(0.8); } }\n\n.ant-motion-collapse {\n  overflow: hidden; }\n\n.ant-motion-collapse-active {\n  -webkit-transition: height 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n  -o-transition: height 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n  transition: height 0.15s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.15s cubic-bezier(0.645, 0.045, 0.355, 1) !important; }\n"],"sourceRoot":""}]);

// exports
/* harmony import */ var _home_vsts_work_1_s_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
/* harmony import */ var _home_vsts_work_1_s_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
/* harmony import */ var _home_vsts_work_1_s_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
/* harmony import */ var _home_vsts_work_1_s_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
/* harmony import */ var _home_vsts_work_1_s_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13);
/* harmony import */ var _emotion_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(0);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(7);
/* harmony import */ var _Dropdown__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(47);
/* harmony import */ var _Multiselect__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(174);
var _class;var height='32px';var width='176px';var sHeight='22px';var Option=_Dropdown__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].Option;var MultiOption=_Multiselect__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].Option;var SelectAccountsPanel=Object(mobx_react__WEBPACK_IMPORTED_MODULE_7__[/* observer */ "c"])(_class=/*#__PURE__*/function(_Component){Object(_home_vsts_work_1_s_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(SelectAccountsPanel,_Component);function SelectAccountsPanel(){Object(_home_vsts_work_1_s_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this,SelectAccountsPanel);return Object(_home_vsts_work_1_s_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this,Object(_home_vsts_work_1_s_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(SelectAccountsPanel).apply(this,arguments));}Object(_home_vsts_work_1_s_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(SelectAccountsPanel,[{key:"render",value:function render(){var _this$props=this.props,_this$props$accountsP=_this$props.accountsProps,setSelectedDestinationMarketplace=_this$props$accountsP.setSelectedDestinationMarketplace,selectedDestinationMarketplace=_this$props$accountsP.selectedDestinationMarketplace,destinations=_this$props$accountsP.destinations,selectedSellerAccounts=_this$props$accountsP.selectedSellerAccounts,_toggleSellectAllAccounts=_this$props$accountsP.toggleSellectAllAccounts,sellerAccounts=_this$props$accountsP.sellerAccounts,selectAccount=_this$props$accountsP.selectAccount,selectedAccountsObj=_this$props$accountsP.selectedAccountsObj,_this$props$small=_this$props.small,small=_this$props$small===void 0?false:_this$props$small;return Object(_emotion_core__WEBPACK_IMPORTED_MODULE_5__[/* jsx */ "c"])(react__WEBPACK_IMPORTED_MODULE_6__["Fragment"],null,Object(_emotion_core__WEBPACK_IMPORTED_MODULE_5__[/* jsx */ "c"])(_Dropdown__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"],{fontSize:"14px",value:selectedDestinationMarketplace.name,height:small?sHeight:height,width:width,marginRight:"15px",onChange:function onChange(e){return setSelectedDestinationMarketplace(e);}},destinations.map(function(d){return Object(_emotion_core__WEBPACK_IMPORTED_MODULE_5__[/* jsx */ "c"])(Option,{key:d.id,value:d.name},d.name);})),Object(_emotion_core__WEBPACK_IMPORTED_MODULE_5__[/* jsx */ "c"])(_Multiselect__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"],{values:selectedSellerAccounts,toggleSellectAllAccounts:function toggleSellectAllAccounts(){return _toggleSellectAllAccounts(sellerAccounts.length);},height:small?sHeight:height,width:"220px",fontSize:"14px"// zIndex="1000000"
},sellerAccounts.map(function(item){return Object(_emotion_core__WEBPACK_IMPORTED_MODULE_5__[/* jsx */ "c"])(MultiOption,{key:item.id,onClick:function onClick(){return selectAccount(item);},checked:selectedAccountsObj[item.id]!==undefined},item.name);})));}}]);return SelectAccountsPanel;}(react__WEBPACK_IMPORTED_MODULE_6__["Component"]))||_class;/* harmony default export */ __webpack_exports__["a"] = (SelectAccountsPanel);/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return Container; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return List; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return Tag; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return TagIcon; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ClearFiltersBtn; });
/* harmony import */ var antd_lib_tag_style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(218);
/* harmony import */ var antd_lib_tag_style__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(antd_lib_tag_style__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd_lib_tag__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(130);
/* harmony import */ var antd_lib_tag__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(antd_lib_tag__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _emotion_styled_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);
var Container=Object(_emotion_styled_base__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])("div",{target:"e4vaas60",label:"Container"})( true?{name:"1q60kxk",styles:"margin-left:30px;display:flex;align-items:center;width:100%;"}:undefined);var List=Object(_emotion_styled_base__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])("ul",{target:"e4vaas61",label:"List"})( true?{name:"kic1kn",styles:"list-style:none;display:flex;flex-wrap:wrap;align-content:space-around;margin-bottom:0;li{display:inline-block;}"}:undefined);var Tag=/*#__PURE__*/Object(_emotion_styled_base__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(antd_lib_tag__WEBPACK_IMPORTED_MODULE_1___default.a,{target:"e4vaas62",label:"Tag"})("&&{border-color:",function(_ref){var theme=_ref.theme;return theme.colors.greyLight;},";display:flex;align-items:center;}"+( true?"":undefined));var TagIcon=Object(_emotion_styled_base__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])("span",{target:"e4vaas63",label:"TagIcon"})( true?{name:"1k2uhnz",styles:"&&&&{margin-left:-7px;margin-right:5px;background-color:#e4edf7;border-radius:9px 0 0 9px;padding:1px 1px 1px 2px;color:#9da9bd;font-size:19px;font-weight:100;}"}:undefined);var ClearFiltersBtn=Object(_emotion_styled_base__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])("button",{target:"e4vaas64",label:"ClearFiltersBtn"})("border:none;flex-shrink:0;line-height:2.33;font-size:",function(_ref2){var theme=_ref2.theme;return theme.fontSize.small;},";color:",function(_ref3){var theme=_ref3.theme;return theme.colors.blueMed;},";text-decoration:underline;margin-left:auto;background:transparent;cursor:pointer;"+( true?"":undefined));var baseGetTag = __webpack_require__(233),
    getPrototype = __webpack_require__(1073),
    isObjectLike = __webpack_require__(234);

/** `Object#toString` result references. */
var objectTag = '[object Object]';

/** Used for built-in method references. */
var funcProto = Function.prototype,
    objectProto = Object.prototype;

/** Used to resolve the decompiled source of functions. */
var funcToString = funcProto.toString;

/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;

/** Used to infer the `Object` constructor. */
var objectCtorString = funcToString.call(Object);

/**
 * Checks if `value` is a plain object, that is, an object created by the
 * `Object` constructor or one with a `[[Prototype]]` of `null`.
 *
 * @static
 * @memberOf _
 * @since 0.8.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
 * @example
 *
 * function Foo() {
 *   this.a = 1;
 * }
 *
 * _.isPlainObject(new Foo);
 * // => false
 *
 * _.isPlainObject([1, 2, 3]);
 * // => false
 *
 * _.isPlainObject({ 'x': 0, 'y': 0 });
 * // => true
 *
 * _.isPlainObject(Object.create(null));
 * // => true
 */
function isPlainObject(value) {
  if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
    return false;
  }
  var proto = getPrototype(value);
  if (proto === null) {
    return true;
  }
  var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
  return typeof Ctor == 'function' && Ctor instanceof Ctor &&
    funcToString.call(Ctor) == objectCtorString;
}

module.exports = isPlainObject;
var overArg = __webpack_require__(593);

/** Built-in value references. */
var getPrototype = overArg(Object.getPrototypeOf, Object);

module.exports = getPrototype;
var baseExtremum = __webpack_require__(401),
    baseIteratee = __webpack_require__(216),
    baseLt = __webpack_require__(613);

/**
 * This method is like `_.min` except that it accepts `iteratee` which is
 * invoked for each element in `array` to generate the criterion by which
 * the value is ranked. The iteratee is invoked with one argument: (value).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Math
 * @param {Array} array The array to iterate over.
 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
 * @returns {*} Returns the minimum value.
 * @example
 *
 * var objects = [{ 'n': 1 }, { 'n': 2 }];
 *
 * _.minBy(objects, function(o) { return o.n; });
 * // => { 'n': 1 }
 *
 * // The `_.property` iteratee shorthand.
 * _.minBy(objects, 'n');
 * // => { 'n': 1 }
 */
function minBy(array, iteratee) {
  return (array && array.length)
    ? baseExtremum(array, baseIteratee(iteratee, 2), baseLt)
    : undefined;
}

module.exports = minBy;
var baseExtremum = __webpack_require__(401),
    baseGt = __webpack_require__(612),
    baseIteratee = __webpack_require__(216);

/**
 * This method is like `_.max` except that it accepts `iteratee` which is
 * invoked for each element in `array` to generate the criterion by which
 * the value is ranked. The iteratee is invoked with one argument: (value).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Math
 * @param {Array} array The array to iterate over.
 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
 * @returns {*} Returns the maximum value.
 * @example
 *
 * var objects = [{ 'n': 1 }, { 'n': 2 }];
 *
 * _.maxBy(objects, function(o) { return o.n; });
 * // => { 'n': 2 }
 *
 * // The `_.property` iteratee shorthand.
 * _.maxBy(objects, 'n');
 * // => { 'n': 2 }
 */
function maxBy(array, iteratee) {
  return (array && array.length)
    ? baseExtremum(array, baseIteratee(iteratee, 2), baseGt)
    : undefined;
}

module.exports = maxBy;
var baseClone = __webpack_require__(510);

/** Used to compose bitmasks for cloning. */
var CLONE_DEEP_FLAG = 1,
    CLONE_SYMBOLS_FLAG = 4;

/**
 * This method is like `_.clone` except that it recursively clones `value`.
 *
 * @static
 * @memberOf _
 * @since 1.0.0
 * @category Lang
 * @param {*} value The value to recursively clone.
 * @returns {*} Returns the deep cloned value.
 * @see _.clone
 * @example
 *
 * var objects = [{ 'a': 1 }, { 'b': 2 }];
 *
 * var deep = _.cloneDeep(objects);
 * console.log(deep[0] === objects[0]);
 * // => false
 */
function cloneDeep(value) {
  return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
}

module.exports = cloneDeep;
!function(e,t){ true?module.exports=t(__webpack_require__(2)):undefined}(this,function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=10)}([function(e,t,n){e.exports=n(4)()},function(t,n){t.exports=e},function(e,t,n){var r;r=function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}return n.m=e,n.c=t,n.p="",n(0)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=function(e,t,n){for(var r=!0;r;){var o=e,a=t,i=n;r=!1,null===o&&(o=Function.prototype);var l=Object.getOwnPropertyDescriptor(o,a);if(void 0!==l){if("value"in l)return l.value;var s=l.get;if(void 0===s)return;return s.call(i)}var c=Object.getPrototypeOf(o);if(null===c)return;e=c,t=a,n=i,r=!0,l=c=void 0}};function i(e){return e&&e.__esModule?e:{default:e}}var l=n(8),s=i(l),c=i(n(6)),u=i(n(2)),d=n(1),h=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a(Object.getPrototypeOf(t.prototype),"constructor",this).call(this),this.state={showLoader:!1,lastScrollTop:0,actionTriggered:!1,pullToRefreshThresholdBreached:!1},this.startY=0,this.currentY=0,this.dragging=!1,this.maxPullDownDistance=0,this.onScrollListener=this.onScrollListener.bind(this),this.throttledOnScrollListener=(0,u.default)(this.onScrollListener,150).bind(this),this.onStart=this.onStart.bind(this),this.onMove=this.onMove.bind(this),this.onEnd=this.onEnd.bind(this),this.getScrollableTarget=this.getScrollableTarget.bind(this)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,l.Component),o(t,[{key:"componentDidMount",value:function(){if(this._scrollableNode=this.getScrollableTarget(),this.el=this.props.height?this._infScroll:this._scrollableNode||window,this.el.addEventListener("scroll",this.throttledOnScrollListener),"number"==typeof this.props.initialScrollY&&this.el.scrollHeight>this.props.initialScrollY&&this.el.scrollTo(0,this.props.initialScrollY),this.props.pullDownToRefresh&&(this.el.addEventListener("touchstart",this.onStart),this.el.addEventListener("touchmove",this.onMove),this.el.addEventListener("touchend",this.onEnd),this.el.addEventListener("mousedown",this.onStart),this.el.addEventListener("mousemove",this.onMove),this.el.addEventListener("mouseup",this.onEnd),this.maxPullDownDistance=this._pullDown.firstChild.getBoundingClientRect().height,this.forceUpdate(),"function"!=typeof this.props.refreshFunction))throw new Error('Mandatory prop "refreshFunction" missing.\n          Pull Down To Refresh functionality will not work\n          as expected. Check README.md for usage\'')}},{key:"componentWillUnmount",value:function(){this.el.removeEventListener("scroll",this.throttledOnScrollListener),this.props.pullDownToRefresh&&(this.el.removeEventListener("touchstart",this.onStart),this.el.removeEventListener("touchmove",this.onMove),this.el.removeEventListener("touchend",this.onEnd),this.el.removeEventListener("mousedown",this.onStart),this.el.removeEventListener("mousemove",this.onMove),this.el.removeEventListener("mouseup",this.onEnd))}},{key:"componentWillReceiveProps",value:function(e){this.props.key===e.key&&this.props.dataLength===e.dataLength||this.setState({showLoader:!1,actionTriggered:!1,pullToRefreshThresholdBreached:!1})}},{key:"getScrollableTarget",value:function(){return this.props.scrollableTarget instanceof HTMLElement?this.props.scrollableTarget:"string"==typeof this.props.scrollableTarget?document.getElementById(this.props.scrollableTarget):(null===this.props.scrollableTarget&&console.warn("You are trying to pass scrollableTarget but it is null. This might\n        happen because the element may not have been added to DOM yet.\n        See https://github.com/ankeetmaini/react-infinite-scroll-component/issues/59 for more info.\n      "),null)}},{key:"onStart",value:function(e){this.state.lastScrollTop||(this.dragging=!0,this.startY=e.pageY||e.touches[0].pageY,this.currentY=this.startY,this._infScroll.style.willChange="transform",this._infScroll.style.transition="transform 0.2s cubic-bezier(0,0,0.31,1)")}},{key:"onMove",value:function(e){this.dragging&&(this.currentY=e.pageY||e.touches[0].pageY,this.currentY<this.startY||(this.currentY-this.startY>=this.props.pullDownToRefreshThreshold&&this.setState({pullToRefreshThresholdBreached:!0}),this.currentY-this.startY>1.5*this.maxPullDownDistance||(this._infScroll.style.overflow="visible",this._infScroll.style.transform="translate3d(0px, "+(this.currentY-this.startY)+"px, 0px)")))}},{key:"onEnd",value:function(e){var t=this;this.startY=0,this.currentY=0,this.dragging=!1,this.state.pullToRefreshThresholdBreached&&this.props.refreshFunction&&this.props.refreshFunction(),requestAnimationFrame(function(){t._infScroll&&(t._infScroll.style.overflow="auto",t._infScroll.style.transform="none",t._infScroll.style.willChange="none")})}},{key:"isElementAtBottom",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?.8:arguments[1],n=e===document.body||e===document.documentElement?window.screen.availHeight:e.clientHeight,r=(0,d.parseThreshold)(t);return r.unit===d.ThresholdUnits.Pixel?e.scrollTop+n>=e.scrollHeight-r.value:e.scrollTop+n>=r.value/100*e.scrollHeight}},{key:"onScrollListener",value:function(e){var t=this;"function"==typeof this.props.onScroll&&setTimeout(function(){return t.props.onScroll(e)},0);var n=this.props.height||this._scrollableNode?e.target:document.documentElement.scrollTop?document.documentElement:document.body;this.state.actionTriggered||(this.isElementAtBottom(n,this.props.scrollThreshold)&&this.props.hasMore&&(this.setState({actionTriggered:!0,showLoader:!0}),this.props.next()),this.setState({lastScrollTop:n.scrollTop}))}},{key:"render",value:function(){var e=this,t=r({height:this.props.height||"auto",overflow:"auto",WebkitOverflowScrolling:"touch"},this.props.style),n=this.props.hasChildren||!(!this.props.children||!this.props.children.length),o=this.props.pullDownToRefresh&&this.props.height?{overflow:"auto"}:{};return s.default.createElement("div",{style:o},s.default.createElement("div",{className:"infinite-scroll-component "+(this.props.className||""),ref:function(t){return e._infScroll=t},style:t},this.props.pullDownToRefresh&&s.default.createElement("div",{style:{position:"relative"},ref:function(t){return e._pullDown=t}},s.default.createElement("div",{style:{position:"absolute",left:0,right:0,top:-1*this.maxPullDownDistance}},!this.state.pullToRefreshThresholdBreached&&this.props.pullDownToRefreshContent,this.state.pullToRefreshThresholdBreached&&this.props.releaseToRefreshContent)),this.props.children,!this.state.showLoader&&!n&&this.props.hasMore&&this.props.loader,this.state.showLoader&&this.props.hasMore&&this.props.loader,!this.props.hasMore&&this.props.endMessage))}}]),t}();t.default=h,h.defaultProps={pullDownToRefreshContent:s.default.createElement("h3",null,"Pull down to refresh"),releaseToRefreshContent:s.default.createElement("h3",null,"Release to refresh"),pullDownToRefreshThreshold:100,disableBrowserPullToRefresh:!0},h.propTypes={next:c.default.func,hasMore:c.default.bool,children:c.default.node,loader:c.default.node.isRequired,scrollThreshold:c.default.oneOfType([c.default.number,c.default.string]),endMessage:c.default.node,style:c.default.object,height:c.default.number,scrollableTarget:c.default.node,hasChildren:c.default.bool,pullDownToRefresh:c.default.bool,pullDownToRefreshContent:c.default.node,releaseToRefreshContent:c.default.node,pullDownToRefreshThreshold:c.default.number,refreshFunction:c.default.func,onScroll:c.default.func,dataLength:c.default.number.isRequired,key:c.default.string},e.exports=t.default},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseThreshold=function(e){if("number"==typeof e)return{unit:n.Percent,value:100*e};if("string"==typeof e)return e.match(/^(\d*(\.\d+)?)px$/)?{unit:n.Pixel,value:parseFloat(e)}:e.match(/^(\d*(\.\d+)?)%$/)?{unit:n.Percent,value:parseFloat(e)}:(console.warn('scrollThreshold format is invalid. Valid formats: "120px", "50%"...'),r);return console.warn("scrollThreshold should be string or number"),r};var n={Pixel:"Pixel",Percent:"Percent"};t.ThresholdUnits=n;var r={unit:n.Percent,value:.8}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){var r,o;return t||(t=250),function(){var a=n||this,i=+new Date,l=arguments;r&&i<r+t?(clearTimeout(o),o=setTimeout(function(){r=i,e.apply(a,l)},t)):(r=i,e.apply(a,l))}},e.exports=t.default},function(e,t){"use strict";function n(e){return function(){return e}}var r=function(){};r.thatReturns=n,r.thatReturnsFalse=n(!1),r.thatReturnsTrue=n(!0),r.thatReturnsNull=n(null),r.thatReturnsThis=function(){return this},r.thatReturnsArgument=function(e){return e},e.exports=r},function(e,t,n){"use strict";var r=function(e){};e.exports=function(e,t,n,o,a,i,l,s){if(r(t),!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,o,a,i,l,s],d=0;(c=new Error(t.replace(/%s/g,function(){return u[d++]}))).name="Invariant Violation"}throw c.framesToPop=1,c}}},function(e,t,n){"use strict";var r=n(3),o=n(4),a=n(7);e.exports=function(){function e(e,t,n,r,i,l){l!==a&&o(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t};return n.checkPropTypes=r,n.PropTypes=n,n}},function(e,t,n){e.exports=n(5)()},function(e,t){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(t,n){t.exports=e}])},e.exports=r(n(1))},function(e,t,n){"use strict";e.exports=function(e,t){var n=e.filter(t);return 0!==n.length&&n.length!==e.length}},function(e,t,n){"use strict";var r=n(5);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";n.r(t);var r,o,a,i=n(0),l=n.n(i),s=n(1),c=n.n(s),u=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(e).reduce(function(t,n){var r;return t["data-"+(r=n,r.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase())]=e[n],t},{})},d=(function(){}(),function(e){return!e||Array.isArray(e)&&!e.length}),h=function(e,t){return e instanceof Event&&!function(e){if(e.path)return e.path;for(var t=e.target,n=[t];t.parentElement;)t=t.parentElement,n.unshift(t);return n}(e).some(function(e){return e===t})},p=function(e,t){var n=void 0;return function(){for(var r=arguments.length,o=Array(r),a=0;a<r;a++)o[a]=arguments[a];var i=!n;clearTimeout(n),n=setTimeout(function(){n=null,e.apply(void 0,o)},t),i&&e.apply(void 0,o)}},f=(r="rdts",o=1,a=new WeakMap,{get:function(e){return a.has(e)||a.set(e,o++),""+r+a.get(e)},reset:function(){a=new WeakMap,o=1}});var y=function(e,t,n){if(Array.prototype.findIndex)return e.findIndex(t,n);if(!e)throw new TypeError("findIndex called on null or undefined");if("function"!=typeof t)throw new TypeError("findIndex predicate must be a function");for(var r=0;r<e.length;r++){var o=e[r];if(t.call(n,o,r,e))return r}return-1};function g(e,t){var n=function(e){if(!e)return{};if("#"===e[0])return{"aria-labelledby":e.substring(1).replace(/ #/g," ")};return{"aria-label":e}}(e);return t&&(n["aria-labelledby"]=((n["aria-labelledby"]||"")+" "+t).trim()),n}var b=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},v=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();var m=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleInputChange=function(e){e.persist(),n.delayedCallback(e)},n.delayedCallback=p(function(e){return n.props.onInputChange(e.target.value)},300),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,s["PureComponent"]),v(t,[{key:"render",value:function(){var e=this.props,t=e.inputRef,n=e.texts,r=void 0===n?{}:n,o=e.onFocus,a=e.onBlur,i=e.disabled,l=e.readOnly,s=e.onKeyDown,u=e.activeDescendant,d=e.inlineSearchInput;return c.a.createElement("input",b({type:"text",disabled:i,ref:t,className:"search",placeholder:d?r.inlineSearchPlaceholder||"Search...":r.placeholder||"Choose...",onKeyDown:s,onChange:this.handleInputChange,onFocus:o,onBlur:a,readOnly:l,"aria-activedescendant":u,"aria-autocomplete":s?"list":void 0},g(r.label)))}}]),t}();m.propTypes={tags:l.a.array,texts:l.a.object,onInputChange:l.a.func,onFocus:l.a.func,onBlur:l.a.func,onTagRemove:l.a.func,onKeyDown:l.a.func,inputRef:l.a.func,disabled:l.a.bool,readOnly:l.a.bool,activeDescendant:l.a.string,inlineSearchInput:l.a.bool};var w=m,O=(n(6),function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}());function k(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var _=function(e){return e+"_tag"},T=function(e){function t(){var e,n,r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var o=arguments.length,a=Array(o),i=0;i<o;i++)a[i]=arguments[i];return n=r=k(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(a))),r.handleClick=function(e){var t=r.props,n=t.id,o=t.onDelete;e.stopPropagation(),e.nativeEvent.stopImmediatePropagation(),o(n,void 0!==(e.key||e.keyCode))},r.onKeyDown=function(e){"Backspace"===e.key&&(r.handleClick(e),e.preventDefault())},r.onKeyUp=function(e){(32===e.keyCode||["Delete","Enter"].indexOf(e.key)>-1)&&(r.handleClick(e),e.preventDefault())},k(r,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,s["PureComponent"]),O(t,[{key:"render",value:function(){var e=this.props,t=e.id,n=e.label,r=e.labelRemove,o=void 0===r?"Remove":r,a=e.readOnly,i=e.disabled,l=_(t),s=t+"_button",u=["tag-remove",a&&"readOnly",i&&"disabled"].filter(Boolean).join(" "),d=a||i;return c.a.createElement("span",{className:"tag",id:l,"aria-label":n},n,c.a.createElement("button",{id:s,onClick:d?void 0:this.handleClick,onKeyDown:d?void 0:this.onKeyDown,onKeyUp:d?void 0:this.onKeyUp,className:u,type:"button","aria-label":o,"aria-labelledby":s+" "+l,"aria-disabled":d},"x"))}}]),t}();T.propTypes={id:l.a.string.isRequired,label:l.a.string.isRequired,onDelete:l.a.func,readOnly:l.a.bool,disabled:l.a.bool,labelRemove:l.a.string};var P=T,S=(n(7),function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}()),C=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};var E=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,s["PureComponent"]),S(t,[{key:"render",value:function(){var e=this.props,t=e.tags,n=e.onTagRemove,r=e.texts,o=void 0===r?{}:r,a=e.disabled,i=e.readOnly,l=e.children||c.a.createElement("span",{className:"placeholder"},o.placeholder||"Choose...");return c.a.createElement("ul",{className:"tag-list"},function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1],n=arguments[2],r=arguments[3],o=arguments[4];return e.map(function(e){var a=e._id,i=e.label,l=e.tagClassName,s=e.dataset,d=e.tagLabel;return c.a.createElement("li",C({className:["tag-item",l].filter(Boolean).join(" "),key:"tag-item-"+a},u(s)),c.a.createElement(P,{label:d||i,id:a,onDelete:t,readOnly:n,disabled:r||e.disabled,labelRemove:o}))})}(t,n,i,a,o.labelRemove),c.a.createElement("li",{className:"tag-item"},l))}}]),t}();E.propTypes={tags:l.a.array,onTagRemove:l.a.func,readOnly:l.a.bool,disabled:l.a.bool,texts:l.a.object,children:l.a.node};var x=E,j=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},N=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function D(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var I=function(e){function t(){var e,n,r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var o=arguments.length,a=Array(o),i=0;i<o;i++)a[i]=arguments[i];return n=r=D(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(a))),r.getAriaAttributes=function(){var e=r.props,t=e.mode,n=e.texts,o=void 0===n?{}:n,a=e.showDropdown,i=e.clientId,l=e.tags,s=i+"_trigger",c=[],u=g(o.label);return l&&l.length&&(u["aria-label"]&&c.push(s),l.forEach(function(e){c.push(_(e._id))}),u=g(o.label,c.join(" "))),j({id:s,role:"button",tabIndex:0,"aria-haspopup":"simpleSelect"===t?"listbox":"tree","aria-expanded":a?"true":"false"},u)},r.handleTrigger=function(e){e.key&&13!==e.keyCode&&32!==e.keyCode&&40!==e.keyCode||e.key&&r.triggerNode&&r.triggerNode!==document.activeElement||(r.props.showDropdown||32!==e.keyCode||e.preventDefault(),r.props.onTrigger(e))},D(r,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,s["PureComponent"]),N(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.disabled,r=t.readOnly,o=t.showDropdown,a=["dropdown-trigger","arrow",n&&"disabled",r&&"readOnly",o&&"top",!o&&"bottom"].filter(Boolean).join(" ");return c.a.createElement("a",j({ref:function(t){e.triggerNode=t},className:a,onClick:n?void 0:this.handleTrigger,onKeyDown:n?void 0:this.handleTrigger},this.getAriaAttributes()),this.props.children)}}]),t}();I.propTypes={onTrigger:l.a.func,disabled:l.a.bool,readOnly:l.a.bool,showDropdown:l.a.bool,mode:l.a.oneOf(["multiSelect","simpleSelect","radioSelect","hierarchical"]),texts:l.a.object,clientId:l.a.string,tags:l.a.array};var M=I,R=n(2),F=n.n(R),A=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function B(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var L=function(e){function t(){var e,n,r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var o=arguments.length,a=Array(o),i=0;i<o;i++)a[i]=arguments[i];return n=r=B(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(a))),r.handleClick=function(){var e=r.props,t=e.onAction,n=e.actionData;t&&t(n.nodeId,n.action)},B(r,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,s["PureComponent"]),A(t,[{key:"render",value:function(){var e=this.props,t=e.title,n=e.className,r=e.text,o=e.readOnly;return c.a.createElement("i",{title:t,className:n,onClick:o?void 0:this.handleClick},r)}}]),t}();L.propTypes={title:l.a.string,text:l.a.string,className:l.a.string,actionData:l.a.object,onAction:l.a.func,readOnly:l.a.bool},L.defaultProps={onAction:function(){}};var V=L,Y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},K=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();var q=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,s["PureComponent"]),K(t,[{key:"render",value:function(){var e=this.props,t=e.actions,n=e.id,r=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["actions","id"]);return d(t)?null:t.map(function(e,t){var o=e.id||"action-"+t;return c.a.createElement(V,Y({key:o},r,e,{actionData:{action:Y({},e,{id:o}),nodeId:n}}))})}}]),t}();q.propTypes={id:l.a.string.isRequired,actions:l.a.array};var H=q,U=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},W=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();var z=function(e){var t=e.checked,n=e.indeterminate;return function(e){e&&(e.checked=t,e.indeterminate=n)}},$=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,s["PureComponent"]),W(t,[{key:"render",value:function(){var e=this.props,t=e.checked,n=e.indeterminate,r=void 0!==n&&n,o=e.onChange,a=e.disabled,i=e.readOnly,l=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["checked","indeterminate","onChange","disabled","readOnly"]),s=a||i;return c.a.createElement("input",U({type:"checkbox",ref:z({checked:t,indeterminate:r}),onChange:o,disabled:s},l))}}]),t}();$.propTypes={checked:l.a.bool,indeterminate:l.a.bool,onChange:l.a.func,disabled:l.a.bool,readOnly:l.a.bool};var J=$,Z=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},G=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();var Q=function(e){var t=e.checked;return function(e){e&&(e.checked=t)}},X=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,s["PureComponent"]),G(t,[{key:"render",value:function(){var e=this.props,t=e.name,n=e.checked,r=e.onChange,o=e.disabled,a=e.readOnly,i=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["name","checked","onChange","disabled","readOnly"]),l=o||a;return c.a.createElement("input",Z({type:"radio",name:t,ref:Q({checked:n}),onChange:r,disabled:l},i))}}]),t}();X.propTypes={name:l.a.string.isRequired,checked:l.a.bool,onChange:l.a.func,disabled:l.a.bool,readOnly:l.a.bool};var ee=X,te=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ne=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function re(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var oe=function(e){function t(){var e,n,r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var o=arguments.length,a=Array(o),i=0;i<o;i++)a[i]=arguments[i];return n=r=re(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(a))),r.handleCheckboxChange=function(e){var t=r.props,n=t.mode,o=t.id,a=t.onCheckboxChange;"simpleSelect"===n||"radioSelect"===n?a(o,!0):a(o,e.target.checked);e.stopPropagation(),e.nativeEvent.stopImmediatePropagation()},re(r,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,s["PureComponent"]),ne(t,[{key:"render",value:function(){var e=this.props,t=e.mode,n=e.title,r=e.label,o=e.id,a=e.partial,i=e.checked,l=this.props,s=l.value,u=l.disabled,d=l.showPartiallySelected,h=l.readOnly,p=l.clientId,f={className:"node-label"};"simpleSelect"===t&&!h&&!u&&(f.onClick=this.handleCheckboxChange);var y={id:o,value:s,checked:i,disabled:u,readOnly:h,tabIndex:-1},g=["checkbox-item","simpleSelect"===t&&"simple-select"].filter(Boolean).join(" ");return c.a.createElement("label",{title:n||r,htmlFor:o},"radioSelect"===t?c.a.createElement(ee,te({name:p,className:"radio-item",onChange:this.handleCheckboxChange},y)):c.a.createElement(J,te({name:o,className:g,indeterminate:d&&a,onChange:this.handleCheckboxChange},y)),c.a.createElement("span",f,r))}}]),t}();oe.propTypes={id:l.a.string.isRequired,actions:l.a.array,title:l.a.string,label:l.a.string.isRequired,value:l.a.string.isRequired,checked:l.a.bool,partial:l.a.bool,disabled:l.a.bool,dataset:l.a.object,mode:l.a.oneOf(["multiSelect","simpleSelect","radioSelect","hierarchical"]),showPartiallySelected:l.a.bool,onCheckboxChange:l.a.func,readOnly:l.a.bool,clientId:l.a.string};var ae=oe,ie=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function le(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var se=function(e){function t(){var e,n,r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var o=arguments.length,a=Array(o),i=0;i<o;i++)a[i]=arguments[i];return n=r=le(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(a))),r.onToggle=function(e){e.stopPropagation(),e.nativeEvent.stopImmediatePropagation(),r.props.onNodeToggle(r.props.id)},r.onKeyDown=function(e){"Enter"!==e.key&&32!==e.keyCode||(r.props.onNodeToggle(r.props.id),e.preventDefault())},le(r,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,s["PureComponent"]),ie(t,[{key:"render",value:function(){var e=this.props,t=e.expanded,n=e.isLeaf,r=["toggle",t&&"expanded",!t&&"collapsed"].filter(Boolean).join(" ");return n?c.a.createElement("i",{role:"button",tabIndex:-1,className:r,style:{visibility:"hidden"},"aria-hidden":!0}):c.a.createElement("i",{role:"button",tabIndex:-1,className:r,onClick:this.onToggle,onKeyDown:this.onKeyDown,"aria-hidden":!0})}}]),t}();se.propTypes={expanded:l.a.bool,isLeaf:l.a.bool,onNodeToggle:l.a.func,id:l.a.string};var ce=se,ue=(n(8),Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}),de=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function he(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var pe=function(e){return d(e)},fe=function(e){function t(){var e,n,r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var o=arguments.length,a=Array(o),i=0;i<o;i++)a[i]=arguments[i];return n=r=he(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(a))),r.getAriaAttributes=function(){var e=r.props,t=e._children,n=e._depth,o=e.checked,a=e.disabled,i=e.expanded,l=e.readOnly,s=e.mode,c=e.partial,u={};return u.role="simpleSelect"===s?"option":"treeitem",u["aria-disabled"]=a||l,u["aria-selected"]=o,"simpleSelect"!==s&&(u["aria-checked"]=c?"mixed":o,u["aria-level"]=(n||0)+1,u["aria-expanded"]=t&&(i?"true":"false")),u},he(r,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,s["PureComponent"]),de(t,[{key:"render",value:function(){var e=this.props,t=e.mode,n=e.keepTreeOnSearch,r=e._id,o=e._children,a=e.dataset,i=e._depth,l=e.expanded,s=e.title,d=e.label,h=e.partial,p=e.checked,f=e.value,y=e.disabled,g=e.actions,b=e.onAction,v=e.searchModeOn,m=e.onNodeToggle,w=e.onCheckboxChange,O=e.showPartiallySelected,k=e.readOnly,_=e.clientId,T=function(e){var t=e.keepTreeOnSearch,n=e.keepChildrenOnSearch,r=e._children,o=e.matchInChildren,a=e.matchInParent,i=e.disabled,l=e.partial,s=e.hide,c=e.className,u=e.showPartiallySelected,d=e.readOnly,h=e.checked,p=e._focused;return["node",pe(r)&&"leaf",!pe(r)&&"tree",i&&"disabled",s&&"hide",t&&o&&"match-in-children",t&&n&&a&&"match-in-parent",u&&l&&"partial",d&&"readOnly",h&&"checked",p&&"focused",c].filter(Boolean).join(" ")}(this.props),P=n||!v?{paddingLeft:20*(i||0)+"px"}:{},S=r+"_li";return c.a.createElement("li",ue({className:T,style:P,id:S},u(a),this.getAriaAttributes()),c.a.createElement(ce,{isLeaf:pe(o),expanded:l,id:r,onNodeToggle:m}),c.a.createElement(ae,{title:s,label:d,id:r,partial:h,checked:p,value:f,disabled:y,mode:t,onCheckboxChange:w,showPartiallySelected:O,readOnly:k,clientId:_}),c.a.createElement(H,{actions:g,onAction:b,id:r,readOnly:k}))}}]),t}();fe.propTypes={_id:l.a.string.isRequired,_depth:l.a.number,_children:l.a.array,actions:l.a.array,className:l.a.string,title:l.a.string,label:l.a.string.isRequired,value:l.a.string.isRequired,checked:l.a.bool,expanded:l.a.bool,disabled:l.a.bool,partial:l.a.bool,dataset:l.a.object,keepTreeOnSearch:l.a.bool,keepChildrenOnSearch:l.a.bool,searchModeOn:l.a.bool,onNodeToggle:l.a.func,onAction:l.a.func,onCheckboxChange:l.a.func,mode:l.a.oneOf(["multiSelect","simpleSelect","radioSelect","hierarchical"]),showPartiallySelected:l.a.bool,readOnly:l.a.bool,clientId:l.a.string};var ye=fe,ge=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},be=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();var ve=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return me.call(n),n.currentPage=1,n.computeInstanceProps(e,!0),n.state={items:n.allVisibleNodes.slice(0,n.props.pageSize)},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,s["Component"]),be(t,[{key:"render",value:function(){var e=this.props.searchModeOn;return c.a.createElement("ul",ge({className:"root "+(e?"searchModeOn":""),ref:this.setNodeRef},this.getAriaAttributes()),this.state.scrollableTarget&&c.a.createElement(F.a,{dataLength:this.state.items.length,next:this.loadMore,hasMore:this.hasMore(),loader:c.a.createElement("span",{className:"searchLoader"},"Loading..."),scrollableTarget:this.state.scrollableTarget},this.state.items))}}]),t}();ve.propTypes={data:l.a.object,keepTreeOnSearch:l.a.bool,keepChildrenOnSearch:l.a.bool,searchModeOn:l.a.bool,onChange:l.a.func,onNodeToggle:l.a.func,onAction:l.a.func,onCheckboxChange:l.a.func,mode:l.a.oneOf(["multiSelect","simpleSelect","radioSelect","hierarchical"]),showPartiallySelected:l.a.bool,pageSize:l.a.number,readOnly:l.a.bool,clientId:l.a.string,activeDescendant:l.a.string},ve.defaultProps={pageSize:100};var me=function(){var e=this;this.componentWillReceiveProps=function(t){var n=t.activeDescendant===e.props.activeDescendant;e.computeInstanceProps(t,!n),e.setState({items:e.allVisibleNodes.slice(0,e.currentPage*e.props.pageSize)})},this.componentDidMount=function(){e.setState({scrollableTarget:e.node.parentNode})},this.computeInstanceProps=function(t,n){if(e.allVisibleNodes=e.getNodes(t),e.totalPages=Math.ceil(e.allVisibleNodes.length/e.props.pageSize),n&&t.activeDescendant){var r=t.activeDescendant.replace(/_li$/,""),o=y(e.allVisibleNodes,function(e){return e.key===r})+1;e.currentPage=o>0?Math.ceil(o/e.props.pageSize):1}},this.getNodes=function(e){var t=e.data,n=e.keepTreeOnSearch,r=e.keepChildrenOnSearch,o=e.searchModeOn,a=e.mode,i=e.showPartiallySelected,l=e.readOnly,s=e.onAction,u=e.onChange,d=e.onCheckboxChange,h=e.onNodeToggle,p=e.activeDescendant,f=e.clientId,y=[];return t.forEach(function(e){(function(e,t,n){if(t||e.expanded)return!0;var r=e._parent&&n.get(e._parent);return!r||r.expanded})(e,o,t)&&y.push(c.a.createElement(ye,ge({keepTreeOnSearch:n,keepChildrenOnSearch:r,key:e._id},e,{searchModeOn:o,onChange:u,onCheckboxChange:d,onNodeToggle:h,onAction:s,mode:a,showPartiallySelected:i,readOnly:l,clientId:f,activeDescendant:p})))}),y},this.hasMore=function(){return e.currentPage<e.totalPages},this.loadMore=function(){e.currentPage=e.currentPage+1;var t=e.allVisibleNodes.slice(0,e.currentPage*e.props.pageSize);e.setState({items:t})},this.setNodeRef=function(t){e.node=t},this.getAriaAttributes=function(){var t=e.props.mode;return{role:"simpleSelect"===t?"listbox":"tree","aria-multiselectable":/multiSelect|hierarchical/.test(t)}}},we=ve,Oe=n(3),ke=n.n(Oe),_e=function(e){return e},Te=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"children",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:_e;return ke()(e[t],function(e){return n(e).checked})||e[t].some(function(e){return n(e).partial})};var Pe=function(e){var t=e.tree,n=e.simple,r=e.radio,o=e.showPartialState,a=e.hierarchical,i=e.rootPrefixId;return function e(t){var n=t.nodes,r=t.parent,o=t.depth,a=void 0===o?0:o,i=t.simple,l=t.radio,s=t.showPartialState,c=t.hierarchical,u=t.rootPrefixId,h=t._rv,p=void 0===h?{list:new Map,defaultValues:[],singleSelectedNode:null}:h,f=i||l;return n.forEach(function(t,n){t._depth=a,r?(t._id=t.id||r._id+"-"+n,t._parent=r._id,r._children.push(t._id)):t._id=t.id||""+(u?u+"-"+n:n),f&&t.checked&&(p.singleSelectedNode?t.checked=!1:p.singleSelectedNode=t),f&&t.isDefaultValue&&p.singleSelectedNode&&!p.singleSelectedNode.isDefaultValue&&(p.singleSelectedNode.checked=!1,p.singleSelectedNode=null),!t.isDefaultValue||f&&0!==p.defaultValues.length||(p.defaultValues.push(t._id),t.checked=!0,f&&(p.singleSelectedNode=t)),c&&!l||function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]&&!arguments[2]?["disabled"]:["checked","disabled"],r=0;r<n.length;r++){var o=n[r];void 0===e[o]&&void 0!==t[o]&&(e[o]=t[o])}}(t,r,!l),p.list.set(t._id,t),!i&&t.children&&(t._children=[],e({nodes:t.children,parent:t,depth:a+1,radio:l,showPartialState:s,hierarchical:c,_rv:p}),s&&!t.checked&&(t.partial=Te(t),f||d(t.children)||!t.children.every(function(e){return e.checked})||(t.checked=!0)),t.children=void 0)}),p}({nodes:Array.isArray(t)?t:[t],simple:n,radio:r,showPartialState:o,hierarchical:a,rootPrefixId:i})},Se=function e(t,n,r){n[t._id]=!0,d(t._children)||t._children.forEach(function(t){return e(r(t),n,r)})},Ce=function(e,t){var n=[],r={};return e.forEach(function(e,o){r[o]||(t(e,o,r)&&n.push(e),r[o]=!0)}),n},Ee={getNodesMatching:Ce,getVisibleNodes:function(e,t,n){return Ce(e,function(e,r,o){return n&&e._children&&e._children.length&&!0!==e.expanded&&Se(e,o,t),!e.hide})},markSubTreeVisited:Se},xe=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,a=void 0;try{for(var i,l=e[Symbol.iterator]();!(r=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,a=e}finally{try{!r&&l.return&&l.return()}finally{if(o)throw a}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),je="ArrowUp",Ne="ArrowDown",De="ArrowLeft",Ie="ArrowRight",Me="Enter",Re="Home",Fe="PageUp",Ae="End",Be="PageDown",Le={None:"None",FocusPrevious:"FocusPrevious",FocusNext:"FocusNext",FocusParent:"FocusParent",FocusFirst:"FocusFirst",FocusLast:"FocusLast",ToggleExpanded:"ToggleExpanded",ToggleChecked:"ToggleChecked"},Ve=new Set([Le.FocusPrevious,Le.FocusNext,Le.FocusParent,Le.FocusFirst,Le.FocusLast]),Ye=[je,Ne,Re,Fe,Ae,Be],Ke=Ye.concat([De,Ie,Me]),qe=function(e,t,n,r){return t.indexOf(e)>-1||!n&&e===r},He=function(e,t,n){if(!e||0===e.length)return t;var r=t;(function(e){return qe(e,[Le.FocusFirst,Le.FocusLast],!0)})(n)?r=xe(e,1)[0]:[Le.FocusPrevious,Le.FocusNext].indexOf(n)>-1&&(r=function(e,t){var n=e.indexOf(t)+1;return n%e.length==0?e[0]:e[n]}(e,t));return r},Ue={isValidKey:function(e,t){return(t?Ke:Ye).indexOf(e)>-1},getAction:function(e,t){return t===De?function(e,t){return e&&t===De?!0===e.expanded?Le.ToggleExpanded:e._parent?Le.FocusParent:Le.None:Le.None}(e,t):t===Ie?function(e,t){return e&&e._children&&t===Ie?!0!==e.expanded?Le.ToggleExpanded:Le.FocusNext:Le.None}(e,t):function(e,t){return qe(e,[Re,Fe],t,Ne)}(t,e)?Le.FocusFirst:function(e,t){return qe(e,[Ae,Be],t,je)}(t,e)?Le.FocusLast:function(e,t){if(!e)return Le.None;switch(t){case je:return Le.FocusPrevious;case Ne:return Le.FocusNext;case Me:return Le.ToggleChecked;default:return Le.None}}(e,t)},getNextFocus:function(e,t,n,r,o){if(n===Le.FocusParent)return function(e,t){return e&&e._parent?t(e._parent):e}(t,r);if(!Ve.has(n))return t;var a=Ee.getVisibleNodes(e,r,o);return function(e){return qe(e,[Le.FocusPrevious,Le.FocusLast],!0)}(n)&&(a=a.reverse()),He(a,t,n)},getNextFocusAfterTagDelete:function(e,t,n,r){var o=t?y(t,function(t){return t._id===e}):-1;if(o<0||!n.length)return r;var a=n[o=n.length>o?o:n.length-1]._id,i=document.getElementById(_(a));return i&&i.firstElementChild||r},handleFocusNavigationkey:function(e,t,n,r,o){var a=Ue.getNextFocus(e,n,t,r,o);return Ue.adjustFocusedProps(n,a),a?a._id:n&&n._id},handleToggleNavigationkey:function(e,t,n,r,o){return e!==Le.ToggleChecked||n||t.readOnly||t.disabled?e===Le.ToggleExpanded&&o(t._id):r(t._id,!0!==t.checked),t&&t._id},adjustFocusedProps:function(e,t){e&&t&&e._id!==t._id&&(e._focused=!1),t&&(t._focused=!0)}},We=Ue,ze=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();var $e=function(){function e(t){var n=t.data,r=t.mode,o=t.showPartiallySelected,a=t.rootPrefixId,i=t.searchPredicate;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._src=n,this.simpleSelect="simpleSelect"===r,this.radioSelect="radioSelect"===r,this.hierarchical="hierarchical"===r,this.searchPredicate=i;var l=Pe({tree:JSON.parse(JSON.stringify(n)),simple:this.simpleSelect,radio:this.radioSelect,showPartialState:o,hierarchical:this.hierarchical,rootPrefixId:a}),s=l.list,c=l.defaultValues,u=l.singleSelectedNode;this.tree=s,this.defaultValues=c,this.showPartialState=!this.hierarchical&&o,this.searchMaps=new Map,(this.simpleSelect||this.radioSelect)&&u&&(this.currentChecked=u._id)}return ze(e,[{key:"getNodeById",value:function(e){return this.tree.get(e)}},{key:"getMatches",value:function(e){var t=this;if(this.searchMaps.has(e))return this.searchMaps.get(e);var n=-1,r=e;this.searchMaps.forEach(function(t,o){e.startsWith(o)&&o.length>n&&(n=o.length,r=o)});var o=[],a=this._getAddOnMatch(o,e);r!==e?this.searchMaps.get(r).forEach(function(e){return a(t.getNodeById(e))}):this.tree.forEach(a);return this.searchMaps.set(e,o),o}},{key:"addParentsToTree",value:function(e,t){if(void 0!==e){var n=this.getNodeById(e);this.addParentsToTree(n._parent,t),n.hide=!n._isMatch||n.hide,n.matchInChildren=!0,t.set(e,n)}}},{key:"addChildrenToTree",value:function(e,t,n){var r=this;void 0!==e&&e.forEach(function(e){if(!n||!n.includes(e)){var o=r.getNodeById(e);o.matchInParent=!0,t.set(e,o),r.addChildrenToTree(o._children,t)}})}},{key:"filterTree",value:function(e,t,n){var r=this,o=this.getMatches(e.toLowerCase()),a=new Map;o.forEach(function(e){var i=r.getNodeById(e);i.hide=!1,i._isMatch=!0,t&&r.addParentsToTree(i._parent,a),a.set(e,i),t&&n&&r.addChildrenToTree(i._children,a,o)});var i=0===o.length;return this.matchTree=a,{allNodesHidden:i,tree:a}}},{key:"restoreNodes",value:function(){return this.tree.forEach(function(e){e.hide=!1}),this.tree}},{key:"restoreDefaultValues",value:function(){var e=this;return this.defaultValues.forEach(function(t){e.setNodeCheckedState(t,!0)}),this.tree}},{key:"togglePreviousChecked",value:function(e,t){var n=this.currentChecked;if(n&&n!==e){var r=this.getNodeById(n);r.checked=!1,this.radioSelect&&this.showPartialState&&this.partialCheckParents(r)}this.currentChecked=t?e:null}},{key:"setNodeCheckedState",value:function(e,t){this.radioSelect&&this.togglePreviousChecked(e,t);var n=this.getNodeById(e);n.checked=t,this.showPartialState&&(n.partial=!1),this.simpleSelect?this.togglePreviousChecked(e,t):this.radioSelect?(this.showPartialState&&this.partialCheckParents(n),t||this.unCheckParents(n)):(this.hierarchical||this.toggleChildren(e,t),this.showPartialState&&this.partialCheckParents(n),this.hierarchical||t||this.unCheckParents(n))}},{key:"unCheckParents",value:function(e){for(var t=e._parent;t;){var n=this.getNodeById(t);n.checked=!1,n.partial=Te(n,"_children",this.getNodeById.bind(this)),t=n._parent}}},{key:"partialCheckParents",value:function(e){for(var t=this,n=e._parent;n;){var r=this.getNodeById(n);r.checked=r._children.every(function(e){return t.getNodeById(e).checked}),r.partial=Te(r,"_children",this.getNodeById.bind(this)),n=r._parent}}},{key:"toggleChildren",value:function(e,t){var n=this,r=this.getNodeById(e);r.checked=t,this.showPartialState&&(r.partial=!1),d(r._children)||r._children.forEach(function(e){return n.toggleChildren(e,t)})}},{key:"toggleNodeExpandState",value:function(e){var t=this.getNodeById(e);return t.expanded=!t.expanded,t.expanded||this.collapseChildren(t),this.tree}},{key:"collapseChildren",value:function(e){var t=this;e.expanded=!1,d(e._children)||e._children.forEach(function(e){return t.collapseChildren(t.getNodeById(e))})}},{key:"getTreeAndTags",value:function(){return{tree:this.tree,tags:this.tags}}},{key:"handleNavigationKey",value:function(e,t,n,r,o,a,i){var l=this,s=e&&this.getNodeById(e),c=We.getAction(s,n);return Ve.has(c)?We.handleFocusNavigationkey(t,c,s,function(e){return l.getNodeById(e)},o):s&&t.has(s._id)?We.handleToggleNavigationkey(c,s,r,a,i):e}},{key:"_getAddOnMatch",value:function(e,t){var n=function(e,t){return e.label.toLowerCase().indexOf(t)>=0};return"function"==typeof this.searchPredicate&&(n=this.searchPredicate),function(r){n(r,t)&&e.push(r._id)}}},{key:"tags",get:function(){var e=this;return this.radioSelect||this.simpleSelect?this.currentChecked?[this.getNodeById(this.currentChecked)]:[]:Ee.getNodesMatching(this.tree,function(t,n,r){return t.checked&&!e.hierarchical&&Ee.markSubTreeVisited(t,r,function(t){return e.getNodeById(t)}),t.checked})}}]),e}(),Je=(n(9),Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}),Ze=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();
/*!
 * React Dropdown Tree Select
 * A lightweight, fast and highly customizable tree select component.
 * Hrusikesh Panda <hrusikesh.panda@dowjones.com>
 * Copyright (c) 2017 Dow Jones, Inc. <support@dowjones.com> (http://dowjones.com)
 * license MIT
 * see https://github.com/dowjones/react-dropdown-tree-select
 */
var Ge=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.initNewProps=function(e){var t=e.data,r=e.mode,o=e.showDropdown,a=e.showPartiallySelected,i=e.searchPredicate;n.treeManager=new $e({data:t,mode:r,showPartiallySelected:a,rootPrefixId:n.clientId,searchPredicate:i}),n.setState(function(e){var t=e.currentFocus&&n.treeManager.getNodeById(e.currentFocus);return t&&(t._focused=!0),Je({showDropdown:/initial|always/.test(o)||!0===e.showDropdown},n.treeManager.getTreeAndTags())})},n.resetSearchState=function(){return n.searchInput&&(n.searchInput.value=""),{tree:n.treeManager.restoreNodes(),searchModeOn:!1,allNodesHidden:!1}},n.handleClick=function(e,t){n.setState(function(e){var t="always"===n.props.showDropdown||n.keepDropdownActive||!e.showDropdown;return t!==e.showDropdown&&(t?document.addEventListener("click",n.handleOutsideClick,!1):document.removeEventListener("click",n.handleOutsideClick,!1)),t?n.props.onFocus():n.props.onBlur(),t?{showDropdown:t}:Je({showDropdown:t},n.resetSearchState())},t)},n.handleOutsideClick=function(e){"always"!==n.props.showDropdown&&h(e,n.node)&&n.handleClick()},n.onInputChange=function(e){var t=n.treeManager.filterTree(e,n.props.keepTreeOnSearch,n.props.keepChildrenOnSearch),r=t.allNodesHidden,o=t.tree,a=e.length>0;n.setState({tree:o,searchModeOn:a,allNodesHidden:r})},n.onTagRemove=function(e,t){var r=n.state.tags;n.onCheckboxChange(e,!1,function(o){t&&We.getNextFocusAfterTagDelete(e,r,o,n.searchInput).focus()})},n.onNodeToggle=function(e){n.treeManager.toggleNodeExpandState(e);var t=n.state.searchModeOn?n.treeManager.matchTree:n.treeManager.tree;n.setState({tree:t}),"function"==typeof n.props.onNodeToggle&&n.props.onNodeToggle(n.treeManager.getNodeById(e))},n.onCheckboxChange=function(e,t,r){var o=n.props,a=o.mode,i=o.keepOpenOnSelect,l=o.clearSearchOnChange,s=n.state,c=s.currentFocus,u=s.searchModeOn;n.treeManager.setNodeCheckedState(e,t);var d=n.treeManager.tags,h=["simpleSelect","radioSelect"].indexOf(a)>-1,p=!(h&&!i)&&n.state.showDropdown,f=c&&n.treeManager.getNodeById(c),y=n.treeManager.getNodeById(e);d.length||(n.treeManager.restoreDefaultValues(),d=n.treeManager.tags);var g={tree:u?n.treeManager.matchTree:n.treeManager.tree,tags:d,showDropdown:p,currentFocus:e};(h&&!p||l)&&Object.assign(g,n.resetSearchState()),h&&!p&&document.removeEventListener("click",n.handleOutsideClick,!1),We.adjustFocusedProps(f,y),n.setState(g,function(){r&&r(d)}),n.props.onChange(y,d)},n.onAction=function(e,t){n.props.onAction(n.treeManager.getNodeById(e),t)},n.onInputFocus=function(){n.keepDropdownActive=!0},n.onInputBlur=function(){n.keepDropdownActive=!1},n.onTrigger=function(e){n.handleClick(e,function(){n.state.showDropdown&&n.searchInput.focus()})},n.onKeyboardKeyDown=function(e){var t=n.props,r=t.readOnly,o=t.mode,a=n.state,i=a.showDropdown,l=a.tags,s=a.searchModeOn,c=a.currentFocus,u=n.treeManager,d=s?u.matchTree:u.tree;if(i||!We.isValidKey(e.key,!1)&&!/^\w$/i.test(e.key))if(i&&We.isValidKey(e.key,!0)){var h=u.handleNavigationKey(c,d,e.key,r,!s,n.onCheckboxChange,n.onNodeToggle);h!==c&&n.setState({currentFocus:h},function(){var e=document&&document.getElementById(h+"_li");e&&e.scrollIntoView()})}else{if(i&&["Escape","Tab"].indexOf(e.key)>-1)return void("simpleSelect"===o&&d.has(c)?n.onCheckboxChange(c,!0):(n.keepDropdownActive=!1,n.handleClick()));if("Backspace"!==e.key||!l.length||0!==n.searchInput.value.length)return;var p=l.pop();n.onCheckboxChange(p._id,!1)}else if(e.persist(),n.handleClick(null,function(){return n.onKeyboardKeyDown(e)}),/\w/i.test(e.key))return;e.preventDefault()},n.getAriaAttributes=function(){var e=n.props,t=e.mode,r=e.texts;return"radioSelect"!==t?{}:Je({role:"radiogroup"},g(r.label))},n.state={searchModeOn:!1,currentFocus:void 0},n.clientId=e.id||f.get(n),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,s["Component"]),Ze(t,[{key:"componentWillMount",value:function(){this.initNewProps(this.props)}},{key:"componentWillUnmount",value:function(){document.removeEventListener("click",this.handleOutsideClick,!1)}},{key:"componentWillReceiveProps",value:function(e){this.initNewProps(e)}},{key:"render",value:function(){var e=this,t=this.props,n=t.disabled,r=t.readOnly,o=t.mode,a=t.texts,i=t.inlineSearchInput,l=this.state,s=l.showDropdown,u=l.currentFocus,d=l.tags,h={disabled:n,readOnly:r,activeDescendant:u?u+"_li":void 0,texts:a,mode:o,clientId:this.clientId},p=c.a.createElement(w,Je({inputRef:function(t){e.searchInput=t},onInputChange:this.onInputChange,onFocus:this.onInputFocus,onBlur:this.onInputBlur,onKeyDown:this.onKeyboardKeyDown},h,{inlineSearchInput:i}));return c.a.createElement("div",{id:this.clientId,className:[this.props.className&&this.props.className,"react-dropdown-tree-select"].filter(Boolean).join(" "),ref:function(t){e.node=t}},c.a.createElement("div",{className:["dropdown","simpleSelect"===o&&"simple-select","radioSelect"===o&&"radio-select"].filter(Boolean).join(" ")},c.a.createElement(M,Je({onTrigger:this.onTrigger,showDropdown:s},h,{tags:d}),c.a.createElement(x,Je({tags:d,onTagRemove:this.onTagRemove},h),!i&&p)),s&&c.a.createElement("div",Je({className:"dropdown-content"},this.getAriaAttributes()),i&&p,this.state.allNodesHidden?c.a.createElement("span",{className:"no-matches"},a.noMatches||"No matches found"):c.a.createElement(we,Je({data:this.state.tree,keepTreeOnSearch:this.props.keepTreeOnSearch,keepChildrenOnSearch:this.props.keepChildrenOnSearch,searchModeOn:this.state.searchModeOn,onAction:this.onAction,onCheckboxChange:this.onCheckboxChange,onNodeToggle:this.onNodeToggle,mode:o,showPartiallySelected:this.props.showPartiallySelected},h)))))}}]),t}();Ge.propTypes={data:l.a.oneOfType([l.a.object,l.a.array]).isRequired,clearSearchOnChange:l.a.bool,keepTreeOnSearch:l.a.bool,keepChildrenOnSearch:l.a.bool,keepOpenOnSelect:l.a.bool,texts:l.a.shape({placeholder:l.a.string,inlineSearchPlaceholder:l.a.string,noMatches:l.a.string,label:l.a.string,labelRemove:l.a.string}),showDropdown:l.a.oneOf(["default","initial","always"]),className:l.a.string,onChange:l.a.func,onAction:l.a.func,onNodeToggle:l.a.func,onFocus:l.a.func,onBlur:l.a.func,mode:l.a.oneOf(["multiSelect","simpleSelect","radioSelect","hierarchical"]),showPartiallySelected:l.a.bool,disabled:l.a.bool,readOnly:l.a.bool,id:l.a.string,searchPredicate:l.a.func,inlineSearchInput:l.a.bool},Ge.defaultProps={onAction:function(){},onFocus:function(){},onBlur:function(){},onChange:function(){},texts:{},showDropdown:"default",inlineSearchInput:!1};t.default=Ge}])});
//# sourceMappingURL=react-dropdown-tree-select.js.mapmodule.exports = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyOS42MzkiIGhlaWdodD0iMjguNTgyIiB2aWV3Qm94PSIwIDAgMjkuNjM5IDI4LjU4MiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5jbHMtMXtmaWxsOiNmZmI1MDN9LmNscy0ye2ZpbGw6I2ZmZWI4ZH0uY2xzLTMsLmNscy00e2ZpbGw6IzAyYWZmOTtzdHJva2U6IzIzM2I2OTtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTB9LmNscy00e2ZpbGw6I2ZmZn0uY2xzLTV7ZmlsbDpub25lfQogICAgICAgIDwvc3R5bGU+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0iU3BhY2VzaGlwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTExNSAtMzQ3LjcpIj4KICAgICAgICA8ZyBpZD0iR3JvdXBfODY4IiBkYXRhLW5hbWU9Ikdyb3VwIDg2OCIgdHJhbnNmb3JtPSJyb3RhdGUoMjQgLTI0OC42NjMgMjgyOS4yNikiPgogICAgICAgICAgICA8cGF0aCBpZD0iUGF0aF8yOTQiIGQ9Ik05LjM1OS45MzFMNy42ODMgMy4xNjZsLjc0NSAyLjc5My0yLjIzNS0xLjY3Ni0yLjc5My43NDUgMS42NzYtMi4yMzVMNC4zMzEgMGwyLjIzNSAxLjY3NnoiIGNsYXNzPSJjbHMtMSIgZGF0YS1uYW1lPSJQYXRoIDI5NCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMi45MzEpIi8+CiAgICAgICAgICAgIDxwYXRoIGlkPSJQYXRoXzI5NSIgZD0iTTYuOSA1LjEzNGwyLjIzNC0uMzcyTDEwLjI1MiAyLjlsLjM3MiAyLjIzNCAxLjg2MiAxLjExNy0yLjIzNC4xODZMOS4xMzQgOC4zbC0uMzcyLTIuMDQ4eiIgY2xhc3M9ImNscy0xIiBkYXRhLW5hbWU9IlBhdGggMjk1IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1Ljk0OCAyLjUpIi8+CiAgICAgICAgICAgIDxwYXRoIGlkPSJQYXRoXzI5NiIgZD0iTS43NDUgMWwxLjExNy45MzEgMS40OS0uMTg2LS45MzEgMS4xMTd2MS40OUwxLjQ5IDMuMjM0IDAgMy40MjFsLjkzMS0uOTMxeiIgY2xhc3M9ImNscy0xIiBkYXRhLW5hbWU9IlBhdGggMjk2IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIC44NjIpIi8+CiAgICAgICAgPC9nPgogICAgICAgIDxjaXJjbGUgaWQ9IkVsbGlwc2VfMTE2IiBjeD0iMTEiIGN5PSIxMSIgcj0iMTEiIGNsYXNzPSJjbHMtMiIgZGF0YS1uYW1lPSJFbGxpcHNlIDExNiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTExNSAzNTQuMjgyKSIvPgogICAgICAgIDxwYXRoIGlkPSJQYXRoXzMyMiIgZD0iTTkuOTMzIDUuNzVTNSAzLjIgNC4zIDUuNGE0NS4xMzQgNDUuMTM0IDAgMCAwLTEuMiA2aDMuNDE3eiIgY2xhc3M9ImNscy0zIiBkYXRhLW5hbWU9IlBhdGggMzIyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMTE0LjkgMzU0LjI4MikiLz4KICAgICAgICA8cGF0aCBpZD0iUGF0aF8zMjMiIGQ9Ik0xNS45MzMgMTIuMzMzUzE5IDE2LjYgMTYuNyAxNy40cy02IDEuNi02IDEuNmwtLjQzMy00LjI1eiIgY2xhc3M9ImNscy0zIiBkYXRhLW5hbWU9IlBhdGggMzIzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMTE0LjkgMzU0LjI4MikiLz4KICAgICAgICA8cGF0aCBpZD0iUGF0aF8zMjQiIGQ9Ik0xOS42IDIuM1MxMC4xLS41IDYuMSAxMS45bDIuMSAyIDIuMSAyQzIzLjQgMTEgMTkuNiAyLjMgMTkuNiAyLjN6IiBjbGFzcz0iY2xzLTQiIGRhdGEtbmFtZT0iUGF0aCAzMjQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDExMTQuOSAzNTQuMjgyKSIvPgogICAgICAgIDxnIGlkPSJHcm91cF8xMDAzIiBkYXRhLW5hbWU9Ikdyb3VwIDEwMDMiIHRyYW5zZm9ybT0icm90YXRlKC0xMzUgMTExOS41NjYgMzcxLjg4NikiPgogICAgICAgICAgICA8cGF0aCBpZD0iUGF0aF8zMzgiIGQ9Ik01LjMzOC0uNDY5cy0zLjY5NC0uOTItNS43NzggNC4wNmwuOTY0Ljk1Ljk0OC45NjFDNi42IDMuMDA2IDUuMzM4LS40NjkgNS4zMzgtLjQ2OXoiIGNsYXNzPSJjbHMtNCIgZGF0YS1uYW1lPSJQYXRoIDMzOCIgdHJhbnNmb3JtPSJyb3RhdGUoLTQ1IDEwMDguMDU3IC0xMTYwLjc0MykiLz4KICAgICAgICAgICAgPHBhdGggaWQ9IlBhdGhfMzM5IiBkPSJNNC4yNzgtMS4zMTNTMi0xLjYxLjI3OCAxLjI4MWwuNzUuNzY2LjY4OC42NDFDNC44NC42MjUgNC4yNzgtMS4zMTMgNC4yNzgtMS4zMTN6IiBjbGFzcz0iY2xzLTEiIGRhdGEtbmFtZT0iUGF0aCAzMzkiIHRyYW5zZm9ybT0icm90YXRlKC00NSAxMDEwLjc5IC0xMTYxLjY4OCkiLz4KICAgICAgICA8L2c+CiAgICAgICAgPGNpcmNsZSBpZD0iRWxsaXBzZV8xMTciIGN4PSIxLjUiIGN5PSIxLjUiIHI9IjEuNSIgY2xhc3M9ImNscy00IiBkYXRhLW5hbWU9IkVsbGlwc2UgMTE3IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMTI5LjUgMzU4LjY4MikiLz4KICAgICAgICA8cGF0aCBpZD0iTGluZV8xODEiIGQ9Ik02LjMgMEwwIDYuNSIgY2xhc3M9ImNscy00IiBkYXRhLW5hbWU9IkxpbmUgMTgxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMTIyLjEwMSAzNjMuMDgyKSIvPgogICAgICAgIDxwYXRoIGlkPSJSZWN0YW5nbGVfNDE5IiBkPSJNMCAwaDIydjIySDB6IiBjbGFzcz0iY2xzLTUiIGRhdGEtbmFtZT0iUmVjdGFuZ2xlIDQxOSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTExNSAzNTQuMjgyKSIvPgogICAgPC9nPgo8L3N2Zz4K"

__webpack_require__(81);

__webpack_require__(1075);

__webpack_require__(102);

__webpack_require__(1077);

__webpack_require__(218);// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(1076);
if(typeof content === 'string') content = [[module.i, content, '']];
// Prepare cssTransformation
var transform;

var options = {"hmr":true}
options.transform = transform
// add the styles to the DOM
var update = __webpack_require__(85)(content, options);
if(content.locals) module.exports = content.locals;
// Hot Module Replacement
if(false) {}exports = module.exports = __webpack_require__(84)(undefined);
// imports


// module
exports.push([module.i, "/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-calendar-picker-container {\n  font-size: 12px;\n  font-variant: tabular-nums;\n  line-height: 1.5;\n  color: #586784;\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  font-family: 'Stolzl', sans-serif;\n  position: absolute;\n  z-index: 1050;\n}\n.ant-calendar-picker-container.slide-up-enter.slide-up-enter-active.ant-calendar-picker-container-placement-topLeft,\n.ant-calendar-picker-container.slide-up-enter.slide-up-enter-active.ant-calendar-picker-container-placement-topRight,\n.ant-calendar-picker-container.slide-up-appear.slide-up-appear-active.ant-calendar-picker-container-placement-topLeft,\n.ant-calendar-picker-container.slide-up-appear.slide-up-appear-active.ant-calendar-picker-container-placement-topRight {\n  animation-name: antSlideDownIn;\n}\n.ant-calendar-picker-container.slide-up-enter.slide-up-enter-active.ant-calendar-picker-container-placement-bottomLeft,\n.ant-calendar-picker-container.slide-up-enter.slide-up-enter-active.ant-calendar-picker-container-placement-bottomRight,\n.ant-calendar-picker-container.slide-up-appear.slide-up-appear-active.ant-calendar-picker-container-placement-bottomLeft,\n.ant-calendar-picker-container.slide-up-appear.slide-up-appear-active.ant-calendar-picker-container-placement-bottomRight {\n  animation-name: antSlideUpIn;\n}\n.ant-calendar-picker-container.slide-up-leave.slide-up-leave-active.ant-calendar-picker-container-placement-topLeft,\n.ant-calendar-picker-container.slide-up-leave.slide-up-leave-active.ant-calendar-picker-container-placement-topRight {\n  animation-name: antSlideDownOut;\n}\n.ant-calendar-picker-container.slide-up-leave.slide-up-leave-active.ant-calendar-picker-container-placement-bottomLeft,\n.ant-calendar-picker-container.slide-up-leave.slide-up-leave-active.ant-calendar-picker-container-placement-bottomRight {\n  animation-name: antSlideUpOut;\n}\n.ant-calendar-picker {\n  font-family: 'Stolzl', sans-serif;\n  font-size: 12px;\n  font-variant: tabular-nums;\n  line-height: 1.5;\n  color: #586784;\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  position: relative;\n  display: inline-block;\n  outline: none;\n  transition: opacity 0.3s;\n}\n.ant-calendar-picker-input {\n  outline: none;\n}\n.ant-calendar-picker:hover .ant-calendar-picker-input:not(.ant-input-disabled) {\n  border-color: #1890ff;\n}\n.ant-calendar-picker:focus .ant-calendar-picker-input:not(.ant-input-disabled) {\n  border-color: #40a9ff;\n  outline: 0;\n  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n  border-right-width: 1px !important;\n}\n.ant-calendar-picker-clear,\n.ant-calendar-picker-icon {\n  position: absolute;\n  width: 14px;\n  height: 14px;\n  right: 12px;\n  top: 50%;\n  margin-top: -7px;\n  line-height: 14px;\n  font-size: 12px;\n  transition: all .3s;\n  user-select: none;\n}\n.ant-calendar-picker-clear {\n  opacity: 0;\n  z-index: 1;\n  color: #a2adc4;\n  background: #fff;\n  pointer-events: none;\n  cursor: pointer;\n}\n.ant-calendar-picker-clear:hover {\n  color: rgba(0, 0, 0, 0.45);\n}\n.ant-calendar-picker:hover .ant-calendar-picker-clear {\n  opacity: 1;\n  pointer-events: auto;\n}\n.ant-calendar-picker-icon {\n  color: #a2adc4;\n}\n.ant-calendar-picker-icon:after {\n  content: \"\\E6BB\";\n  font-family: \"anticon\";\n  font-size: 12px;\n  color: #a2adc4;\n  display: inline-block;\n  line-height: 1;\n}\n.ant-calendar-picker-small .ant-calendar-picker-clear,\n.ant-calendar-picker-small .ant-calendar-picker-icon {\n  right: 8px;\n}\n.ant-calendar {\n  position: relative;\n  outline: none;\n  width: 280px;\n  border: 1px solid #fff;\n  list-style: none;\n  font-size: 12px;\n  text-align: left;\n  background-color: #fff;\n  border-radius: 10px;\n  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n  background-clip: padding-box;\n  line-height: 1.5;\n}\n.ant-calendar-input-wrap {\n  height: 34px;\n  padding: 6px 10px;\n  border-bottom: 1px solid #e8e8e8;\n}\n.ant-calendar-input {\n  border: 0;\n  width: 100%;\n  cursor: auto;\n  outline: 0;\n  height: 22px;\n  color: #586784;\n  background: #fff;\n}\n.ant-calendar-input::-moz-placeholder {\n  color: #bfbfbf;\n  opacity: 1;\n}\n.ant-calendar-input:-ms-input-placeholder {\n  color: #bfbfbf;\n}\n.ant-calendar-input::-webkit-input-placeholder {\n  color: #bfbfbf;\n}\n.ant-calendar-week-number {\n  width: 286px;\n}\n.ant-calendar-week-number-cell {\n  text-align: center;\n}\n.ant-calendar-header {\n  height: 40px;\n  line-height: 40px;\n  text-align: center;\n  user-select: none;\n  border-bottom: 1px solid #e8e8e8;\n}\n.ant-calendar-header a:hover {\n  color: #40a9ff;\n}\n.ant-calendar-header .ant-calendar-century-select,\n.ant-calendar-header .ant-calendar-decade-select,\n.ant-calendar-header .ant-calendar-year-select,\n.ant-calendar-header .ant-calendar-month-select {\n  padding: 0 2px;\n  font-weight: 500;\n  display: inline-block;\n  color: #3f435c;\n  line-height: 40px;\n}\n.ant-calendar-header .ant-calendar-century-select-arrow,\n.ant-calendar-header .ant-calendar-decade-select-arrow,\n.ant-calendar-header .ant-calendar-year-select-arrow,\n.ant-calendar-header .ant-calendar-month-select-arrow {\n  display: none;\n}\n.ant-calendar-header .ant-calendar-prev-century-btn,\n.ant-calendar-header .ant-calendar-next-century-btn,\n.ant-calendar-header .ant-calendar-prev-decade-btn,\n.ant-calendar-header .ant-calendar-next-decade-btn,\n.ant-calendar-header .ant-calendar-prev-month-btn,\n.ant-calendar-header .ant-calendar-next-month-btn,\n.ant-calendar-header .ant-calendar-prev-year-btn,\n.ant-calendar-header .ant-calendar-next-year-btn {\n  position: absolute;\n  top: 0;\n  color: rgba(0, 0, 0, 0.45);\n  font-family: Arial, \"Hiragino Sans GB\", \"Microsoft Yahei\", \"Microsoft Sans Serif\", sans-serif;\n  padding: 0 5px;\n  font-size: 16px;\n  display: inline-block;\n  line-height: 40px;\n}\n.ant-calendar-header .ant-calendar-prev-century-btn,\n.ant-calendar-header .ant-calendar-prev-decade-btn,\n.ant-calendar-header .ant-calendar-prev-year-btn {\n  left: 7px;\n}\n.ant-calendar-header .ant-calendar-prev-century-btn:after,\n.ant-calendar-header .ant-calendar-prev-decade-btn:after,\n.ant-calendar-header .ant-calendar-prev-year-btn:after {\n  content: '\\AB';\n}\n.ant-calendar-header .ant-calendar-next-century-btn,\n.ant-calendar-header .ant-calendar-next-decade-btn,\n.ant-calendar-header .ant-calendar-next-year-btn {\n  right: 7px;\n}\n.ant-calendar-header .ant-calendar-next-century-btn:after,\n.ant-calendar-header .ant-calendar-next-decade-btn:after,\n.ant-calendar-header .ant-calendar-next-year-btn:after {\n  content: '\\BB';\n}\n.ant-calendar-header .ant-calendar-prev-month-btn {\n  left: 29px;\n}\n.ant-calendar-header .ant-calendar-prev-month-btn:after {\n  content: '\\2039';\n}\n.ant-calendar-header .ant-calendar-next-month-btn {\n  right: 29px;\n}\n.ant-calendar-header .ant-calendar-next-month-btn:after {\n  content: '\\203A';\n}\n.ant-calendar-body {\n  padding: 8px 12px;\n}\n.ant-calendar table {\n  border-collapse: collapse;\n  max-width: 100%;\n  background-color: transparent;\n  width: 100%;\n}\n.ant-calendar table,\n.ant-calendar th,\n.ant-calendar td {\n  border: 0;\n  text-align: center;\n}\n.ant-calendar-calendar-table {\n  border-spacing: 0;\n  margin-bottom: 0;\n}\n.ant-calendar-column-header {\n  line-height: 18px;\n  width: 33px;\n  padding: 6px 0;\n  text-align: center;\n}\n.ant-calendar-column-header .ant-calendar-column-header-inner {\n  display: block;\n  font-weight: normal;\n}\n.ant-calendar-week-number-header .ant-calendar-column-header-inner {\n  display: none;\n}\n.ant-calendar-cell {\n  padding: 3px 0;\n  height: 30px;\n}\n.ant-calendar-date {\n  display: block;\n  margin: 0 auto;\n  color: #586784;\n  border-radius: 2px;\n  width: 24px;\n  height: 24px;\n  line-height: 22px;\n  border: 1px solid transparent;\n  padding: 0;\n  background: transparent;\n  text-align: center;\n  transition: background 0.3s ease;\n}\n.ant-calendar-date-panel {\n  position: relative;\n}\n.ant-calendar-date:hover {\n  background: #e6f7ff;\n  cursor: pointer;\n}\n.ant-calendar-date:active {\n  color: #fff;\n  background: #40a9ff;\n}\n.ant-calendar-today .ant-calendar-date {\n  border-color: #1890ff;\n  font-weight: bold;\n  color: #1890ff;\n}\n.ant-calendar-last-month-cell .ant-calendar-date,\n.ant-calendar-next-month-btn-day .ant-calendar-date {\n  color: #a2adc4;\n}\n.ant-calendar-selected-day .ant-calendar-date {\n  background: #d1e9ff;\n}\n.ant-calendar-selected-date .ant-calendar-date,\n.ant-calendar-selected-start-date .ant-calendar-date,\n.ant-calendar-selected-end-date .ant-calendar-date {\n  background: #1890ff;\n  color: #fff;\n  border: 1px solid transparent;\n}\n.ant-calendar-selected-date .ant-calendar-date:hover,\n.ant-calendar-selected-start-date .ant-calendar-date:hover,\n.ant-calendar-selected-end-date .ant-calendar-date:hover {\n  background: #1890ff;\n}\n.ant-calendar-disabled-cell .ant-calendar-date {\n  cursor: not-allowed;\n  color: #bcbcbc;\n  background: #ebebeb;\n  border-radius: 0;\n  width: auto;\n  border: 1px solid transparent;\n}\n.ant-calendar-disabled-cell .ant-calendar-date:hover {\n  background: #ebebeb;\n}\n.ant-calendar-disabled-cell.ant-calendar-today .ant-calendar-date {\n  position: relative;\n  margin-right: 5px;\n  padding-left: 5px;\n}\n.ant-calendar-disabled-cell.ant-calendar-today .ant-calendar-date:before {\n  content: \" \";\n  position: absolute;\n  top: -1px;\n  left: 5px;\n  width: 24px;\n  height: 24px;\n  border: 1px solid #bcbcbc;\n  border-radius: 2px;\n}\n.ant-calendar-disabled-cell-first-of-row .ant-calendar-date {\n  border-top-left-radius: 4px;\n  border-bottom-left-radius: 4px;\n}\n.ant-calendar-disabled-cell-last-of-row .ant-calendar-date {\n  border-top-right-radius: 4px;\n  border-bottom-right-radius: 4px;\n}\n.ant-calendar-footer {\n  border-top: 1px solid #e8e8e8;\n  line-height: 38px;\n  padding: 0 12px;\n}\n.ant-calendar-footer:empty {\n  border-top: 0;\n}\n.ant-calendar-footer-btn {\n  text-align: center;\n  display: block;\n}\n.ant-calendar-footer-extra + .ant-calendar-footer-btn {\n  border-top: 1px solid #e8e8e8;\n  margin: 0 -12px;\n  padding: 0 12px;\n}\n.ant-calendar .ant-calendar-today-btn,\n.ant-calendar .ant-calendar-clear-btn {\n  display: inline-block;\n  text-align: center;\n  margin: 0 0 0 8px;\n}\n.ant-calendar .ant-calendar-today-btn-disabled,\n.ant-calendar .ant-calendar-clear-btn-disabled {\n  color: #a2adc4;\n  cursor: not-allowed;\n}\n.ant-calendar .ant-calendar-today-btn:only-child,\n.ant-calendar .ant-calendar-clear-btn:only-child {\n  margin: 0;\n}\n.ant-calendar .ant-calendar-clear-btn {\n  display: none;\n  position: absolute;\n  right: 5px;\n  text-indent: -76px;\n  overflow: hidden;\n  width: 20px;\n  height: 20px;\n  text-align: center;\n  line-height: 20px;\n  top: 7px;\n  margin: 0;\n}\n.ant-calendar .ant-calendar-clear-btn:after {\n  font-family: 'anticon';\n  text-rendering: optimizeLegibility;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  content: \"\\E62E\";\n  font-size: 12px;\n  color: #a2adc4;\n  display: inline-block;\n  line-height: 1;\n  width: 20px;\n  text-indent: 43px;\n  transition: color 0.3s ease;\n}\n.ant-calendar .ant-calendar-clear-btn:hover:after {\n  color: rgba(0, 0, 0, 0.45);\n}\n.ant-calendar .ant-calendar-ok-btn {\n  display: inline-block;\n  font-weight: 400;\n  text-align: center;\n  touch-action: manipulation;\n  cursor: pointer;\n  background-image: none;\n  border: 1px solid transparent;\n  white-space: nowrap;\n  padding: 0 15px;\n  border-radius: 16px;\n  height: 30px;\n  user-select: none;\n  transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n  position: relative;\n  color: #fefefe;\n  background-color: #233b69;\n  border-color: #233b69;\n  padding: 0 7px;\n  font-size: 12px;\n  border-radius: 10px;\n  height: 25px;\n  line-height: 23px;\n}\n.ant-calendar .ant-calendar-ok-btn > .anticon {\n  line-height: 1;\n}\n.ant-calendar .ant-calendar-ok-btn,\n.ant-calendar .ant-calendar-ok-btn:active,\n.ant-calendar .ant-calendar-ok-btn:focus {\n  outline: 0;\n}\n.ant-calendar .ant-calendar-ok-btn:not([disabled]):hover {\n  text-decoration: none;\n}\n.ant-calendar .ant-calendar-ok-btn:not([disabled]):active {\n  outline: 0;\n  transition: none;\n}\n.ant-calendar .ant-calendar-ok-btn.disabled,\n.ant-calendar .ant-calendar-ok-btn[disabled] {\n  cursor: not-allowed;\n}\n.ant-calendar .ant-calendar-ok-btn.disabled > *,\n.ant-calendar .ant-calendar-ok-btn[disabled] > * {\n  pointer-events: none;\n}\n.ant-calendar .ant-calendar-ok-btn-lg {\n  padding: 0 15px;\n  font-size: 14px;\n  border-radius: 16px;\n  height: 40px;\n}\n.ant-calendar .ant-calendar-ok-btn-sm {\n  padding: 0 7px;\n  font-size: 12px;\n  border-radius: 16px;\n  height: 25px;\n}\n.ant-calendar .ant-calendar-ok-btn > a:only-child {\n  color: currentColor;\n}\n.ant-calendar .ant-calendar-ok-btn > a:only-child:after {\n  content: '';\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  background: transparent;\n}\n.ant-calendar .ant-calendar-ok-btn:hover,\n.ant-calendar .ant-calendar-ok-btn:focus {\n  color: #fefefe;\n  background-color: #395075;\n  border-color: #395075;\n}\n.ant-calendar .ant-calendar-ok-btn:hover > a:only-child,\n.ant-calendar .ant-calendar-ok-btn:focus > a:only-child {\n  color: currentColor;\n}\n.ant-calendar .ant-calendar-ok-btn:hover > a:only-child:after,\n.ant-calendar .ant-calendar-ok-btn:focus > a:only-child:after {\n  content: '';\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  background: transparent;\n}\n.ant-calendar .ant-calendar-ok-btn:active,\n.ant-calendar .ant-calendar-ok-btn.active {\n  color: #fefefe;\n  background-color: #132242;\n  border-color: #132242;\n}\n.ant-calendar .ant-calendar-ok-btn:active > a:only-child,\n.ant-calendar .ant-calendar-ok-btn.active > a:only-child {\n  color: currentColor;\n}\n.ant-calendar .ant-calendar-ok-btn:active > a:only-child:after,\n.ant-calendar .ant-calendar-ok-btn.active > a:only-child:after {\n  content: '';\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  background: transparent;\n}\n.ant-calendar .ant-calendar-ok-btn.disabled,\n.ant-calendar .ant-calendar-ok-btn[disabled],\n.ant-calendar .ant-calendar-ok-btn.disabled:hover,\n.ant-calendar .ant-calendar-ok-btn[disabled]:hover,\n.ant-calendar .ant-calendar-ok-btn.disabled:focus,\n.ant-calendar .ant-calendar-ok-btn[disabled]:focus,\n.ant-calendar .ant-calendar-ok-btn.disabled:active,\n.ant-calendar .ant-calendar-ok-btn[disabled]:active,\n.ant-calendar .ant-calendar-ok-btn.disabled.active,\n.ant-calendar .ant-calendar-ok-btn[disabled].active {\n  color: #a2adc4;\n  background-color: #ebebeb;\n  border-color: #d9d9d9;\n}\n.ant-calendar .ant-calendar-ok-btn.disabled > a:only-child,\n.ant-calendar .ant-calendar-ok-btn[disabled] > a:only-child,\n.ant-calendar .ant-calendar-ok-btn.disabled:hover > a:only-child,\n.ant-calendar .ant-calendar-ok-btn[disabled]:hover > a:only-child,\n.ant-calendar .ant-calendar-ok-btn.disabled:focus > a:only-child,\n.ant-calendar .ant-calendar-ok-btn[disabled]:focus > a:only-child,\n.ant-calendar .ant-calendar-ok-btn.disabled:active > a:only-child,\n.ant-calendar .ant-calendar-ok-btn[disabled]:active > a:only-child,\n.ant-calendar .ant-calendar-ok-btn.disabled.active > a:only-child,\n.ant-calendar .ant-calendar-ok-btn[disabled].active > a:only-child {\n  color: currentColor;\n}\n.ant-calendar .ant-calendar-ok-btn.disabled > a:only-child:after,\n.ant-calendar .ant-calendar-ok-btn[disabled] > a:only-child:after,\n.ant-calendar .ant-calendar-ok-btn.disabled:hover > a:only-child:after,\n.ant-calendar .ant-calendar-ok-btn[disabled]:hover > a:only-child:after,\n.ant-calendar .ant-calendar-ok-btn.disabled:focus > a:only-child:after,\n.ant-calendar .ant-calendar-ok-btn[disabled]:focus > a:only-child:after,\n.ant-calendar .ant-calendar-ok-btn.disabled:active > a:only-child:after,\n.ant-calendar .ant-calendar-ok-btn[disabled]:active > a:only-child:after,\n.ant-calendar .ant-calendar-ok-btn.disabled.active > a:only-child:after,\n.ant-calendar .ant-calendar-ok-btn[disabled].active > a:only-child:after {\n  content: '';\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  background: transparent;\n}\n.ant-calendar .ant-calendar-ok-btn-disabled {\n  color: #a2adc4;\n  background-color: #ebebeb;\n  border-color: #d9d9d9;\n  cursor: not-allowed;\n}\n.ant-calendar .ant-calendar-ok-btn-disabled > a:only-child {\n  color: currentColor;\n}\n.ant-calendar .ant-calendar-ok-btn-disabled > a:only-child:after {\n  content: '';\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  background: transparent;\n}\n.ant-calendar .ant-calendar-ok-btn-disabled:hover {\n  color: #a2adc4;\n  background-color: #ebebeb;\n  border-color: #d9d9d9;\n}\n.ant-calendar .ant-calendar-ok-btn-disabled:hover > a:only-child {\n  color: currentColor;\n}\n.ant-calendar .ant-calendar-ok-btn-disabled:hover > a:only-child:after {\n  content: '';\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  background: transparent;\n}\n.ant-calendar-range-picker-input {\n  background-color: transparent;\n  border: 0;\n  height: 99%;\n  outline: 0;\n  width: 44%;\n  text-align: center;\n}\n.ant-calendar-range-picker-input::-moz-placeholder {\n  color: #bfbfbf;\n  opacity: 1;\n}\n.ant-calendar-range-picker-input:-ms-input-placeholder {\n  color: #bfbfbf;\n}\n.ant-calendar-range-picker-input::-webkit-input-placeholder {\n  color: #bfbfbf;\n}\n.ant-calendar-range-picker-input[disabled] {\n  cursor: not-allowed;\n}\n.ant-calendar-range-picker-separator {\n  color: rgba(0, 0, 0, 0.45);\n  width: 10px;\n  display: inline-block;\n  height: 100%;\n  vertical-align: top;\n}\n.ant-calendar-range {\n  width: 552px;\n  overflow: hidden;\n}\n.ant-calendar-range .ant-calendar-date-panel::after {\n  content: \".\";\n  display: block;\n  height: 0;\n  clear: both;\n  visibility: hidden;\n}\n.ant-calendar-range-part {\n  width: 50%;\n  position: relative;\n}\n.ant-calendar-range-left {\n  float: left;\n}\n.ant-calendar-range-left .ant-calendar-time-picker-inner {\n  border-right: 1px solid #e8e8e8;\n}\n.ant-calendar-range-right {\n  float: right;\n}\n.ant-calendar-range-right .ant-calendar-time-picker-inner {\n  border-left: 1px solid #e8e8e8;\n}\n.ant-calendar-range-middle {\n  position: absolute;\n  left: 50%;\n  width: 20px;\n  margin-left: -132px;\n  text-align: center;\n  height: 34px;\n  line-height: 34px;\n  color: rgba(0, 0, 0, 0.45);\n}\n.ant-calendar-range-right .ant-calendar-date-input-wrap {\n  margin-left: -118px;\n}\n.ant-calendar-range.ant-calendar-time .ant-calendar-range-middle {\n  margin-left: -12px;\n}\n.ant-calendar-range.ant-calendar-time .ant-calendar-range-right .ant-calendar-date-input-wrap {\n  margin-left: 0;\n}\n.ant-calendar-range .ant-calendar-input-wrap {\n  position: relative;\n  height: 34px;\n}\n.ant-calendar-range .ant-calendar-input,\n.ant-calendar-range .ant-calendar-time-picker-input {\n  position: relative;\n  display: inline-block;\n  padding: 4px 11px;\n  width: 100%;\n  height: 22px;\n  font-size: 12px;\n  line-height: 1.5;\n  color: #586784;\n  background-color: #fff;\n  background-image: none;\n  border: 1px solid #d9d9d9;\n  border-radius: 10px;\n  transition: all .3s;\n  height: 24px;\n  border: 0;\n  box-shadow: none;\n  padding-left: 0;\n  padding-right: 0;\n}\n.ant-calendar-range .ant-calendar-input::-moz-placeholder,\n.ant-calendar-range .ant-calendar-time-picker-input::-moz-placeholder {\n  color: #bfbfbf;\n  opacity: 1;\n}\n.ant-calendar-range .ant-calendar-input:-ms-input-placeholder,\n.ant-calendar-range .ant-calendar-time-picker-input:-ms-input-placeholder {\n  color: #bfbfbf;\n}\n.ant-calendar-range .ant-calendar-input::-webkit-input-placeholder,\n.ant-calendar-range .ant-calendar-time-picker-input::-webkit-input-placeholder {\n  color: #bfbfbf;\n}\n.ant-calendar-range .ant-calendar-input:hover,\n.ant-calendar-range .ant-calendar-time-picker-input:hover {\n  border-color: #40a9ff;\n  border-right-width: 1px !important;\n}\n.ant-calendar-range .ant-calendar-input:focus,\n.ant-calendar-range .ant-calendar-time-picker-input:focus {\n  border-color: #40a9ff;\n  outline: 0;\n  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n  border-right-width: 1px !important;\n}\n.ant-calendar-range .ant-calendar-input-disabled,\n.ant-calendar-range .ant-calendar-time-picker-input-disabled {\n  background-color: #ebebeb;\n  opacity: 1;\n  cursor: not-allowed;\n  color: #a2adc4;\n}\n.ant-calendar-range .ant-calendar-input-disabled:hover,\n.ant-calendar-range .ant-calendar-time-picker-input-disabled:hover {\n  border-color: #e6d8d8;\n  border-right-width: 1px !important;\n}\ntextarea.ant-calendar-range .ant-calendar-input,\ntextarea.ant-calendar-range .ant-calendar-time-picker-input {\n  max-width: 100%;\n  height: auto;\n  vertical-align: bottom;\n  transition: all .3s, height 0s;\n  min-height: 22px;\n}\n.ant-calendar-range .ant-calendar-input-lg,\n.ant-calendar-range .ant-calendar-time-picker-input-lg {\n  padding: 6px 11px;\n  height: 40px;\n  font-size: 14px;\n}\n.ant-calendar-range .ant-calendar-input-sm,\n.ant-calendar-range .ant-calendar-time-picker-input-sm {\n  padding: 1px 7px;\n  height: 24px;\n}\n.ant-calendar-range .ant-calendar-input:focus,\n.ant-calendar-range .ant-calendar-time-picker-input:focus {\n  box-shadow: none;\n}\n.ant-calendar-range .ant-calendar-time-picker-icon {\n  display: none;\n}\n.ant-calendar-range.ant-calendar-week-number {\n  width: 574px;\n}\n.ant-calendar-range.ant-calendar-week-number .ant-calendar-range-part {\n  width: 286px;\n}\n.ant-calendar-range .ant-calendar-year-panel,\n.ant-calendar-range .ant-calendar-month-panel,\n.ant-calendar-range .ant-calendar-decade-panel {\n  top: 34px;\n}\n.ant-calendar-range .ant-calendar-month-panel .ant-calendar-year-panel {\n  top: 0;\n}\n.ant-calendar-range .ant-calendar-decade-panel-table,\n.ant-calendar-range .ant-calendar-year-panel-table,\n.ant-calendar-range .ant-calendar-month-panel-table {\n  height: 208px;\n}\n.ant-calendar-range .ant-calendar-in-range-cell {\n  border-radius: 0;\n  position: relative;\n}\n.ant-calendar-range .ant-calendar-in-range-cell > div {\n  position: relative;\n  z-index: 1;\n}\n.ant-calendar-range .ant-calendar-in-range-cell:before {\n  content: '';\n  display: block;\n  background: #e6f7ff;\n  border-radius: 0;\n  border: 0;\n  position: absolute;\n  top: 4px;\n  bottom: 4px;\n  left: 0;\n  right: 0;\n}\ndiv.ant-calendar-range-quick-selector {\n  text-align: left;\n}\ndiv.ant-calendar-range-quick-selector > a {\n  margin-right: 8px;\n}\n.ant-calendar-range .ant-calendar-header,\n.ant-calendar-range .ant-calendar-month-panel-header,\n.ant-calendar-range .ant-calendar-year-panel-header {\n  border-bottom: 0;\n}\n.ant-calendar-range .ant-calendar-body,\n.ant-calendar-range .ant-calendar-month-panel-body,\n.ant-calendar-range .ant-calendar-year-panel-body {\n  border-top: 1px solid #e8e8e8;\n}\n.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker {\n  height: 207px;\n  width: 100%;\n  top: 68px;\n  z-index: 2;\n}\n.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-panel {\n  height: 267px;\n  margin-top: -34px;\n}\n.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-inner {\n  padding-top: 40px;\n  height: 100%;\n  background: none;\n}\n.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-combobox {\n  display: inline-block;\n  height: 100%;\n  background-color: #fff;\n  border-top: 1px solid #e8e8e8;\n}\n.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-select {\n  height: 100%;\n}\n.ant-calendar-range.ant-calendar-time .ant-calendar-time-picker-select ul {\n  max-height: 100%;\n}\n.ant-calendar-range.ant-calendar-time .ant-calendar-footer .ant-calendar-time-picker-btn {\n  margin-right: 8px;\n}\n.ant-calendar-range.ant-calendar-time .ant-calendar-today-btn {\n  margin: 8px 12px;\n  height: 22px;\n  line-height: 22px;\n}\n.ant-calendar-range-with-ranges.ant-calendar-time .ant-calendar-time-picker {\n  height: 233px;\n}\n.ant-calendar-range.ant-calendar-show-time-picker .ant-calendar-body {\n  border-top-color: transparent;\n}\n.ant-calendar-time-picker {\n  position: absolute;\n  width: 100%;\n  top: 40px;\n  background-color: #fff;\n}\n.ant-calendar-time-picker-panel {\n  z-index: 1050;\n  position: absolute;\n  width: 100%;\n}\n.ant-calendar-time-picker-inner {\n  display: inline-block;\n  position: relative;\n  outline: none;\n  list-style: none;\n  font-size: 12px;\n  text-align: left;\n  background-color: #fff;\n  background-clip: padding-box;\n  line-height: 1.5;\n  overflow: hidden;\n  width: 100%;\n}\n.ant-calendar-time-picker-combobox {\n  width: 100%;\n}\n.ant-calendar-time-picker-column-1,\n.ant-calendar-time-picker-column-1 .ant-calendar-time-picker-select {\n  width: 100%;\n}\n.ant-calendar-time-picker-column-2 .ant-calendar-time-picker-select {\n  width: 50%;\n}\n.ant-calendar-time-picker-column-3 .ant-calendar-time-picker-select {\n  width: 33.33%;\n}\n.ant-calendar-time-picker-column-4 .ant-calendar-time-picker-select {\n  width: 25%;\n}\n.ant-calendar-time-picker-input-wrap {\n  display: none;\n}\n.ant-calendar-time-picker-select {\n  float: left;\n  font-size: 12px;\n  border-right: 1px solid #e8e8e8;\n  box-sizing: border-box;\n  overflow: hidden;\n  position: relative;\n  height: 226px;\n}\n.ant-calendar-time-picker-select:hover {\n  overflow-y: auto;\n}\n.ant-calendar-time-picker-select:first-child {\n  border-left: 0;\n  margin-left: 0;\n}\n.ant-calendar-time-picker-select:last-child {\n  border-right: 0;\n}\n.ant-calendar-time-picker-select ul {\n  list-style: none;\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n  width: 100%;\n  max-height: 206px;\n}\n.ant-calendar-time-picker-select li {\n  padding-left: 32px;\n  list-style: none;\n  box-sizing: content-box;\n  margin: 0;\n  width: 100%;\n  height: 24px;\n  line-height: 24px;\n  cursor: pointer;\n  user-select: none;\n  transition: background 0.3s ease;\n}\n.ant-calendar-time-picker-select li:last-child:after {\n  content: '';\n  height: 202px;\n  display: block;\n}\n.ant-calendar-time-picker-select li:hover {\n  background: #e6f7ff;\n}\nli.ant-calendar-time-picker-select-option-selected {\n  background: #f5f5f5;\n  font-weight: bold;\n}\nli.ant-calendar-time-picker-select-option-disabled {\n  color: #a2adc4;\n}\nli.ant-calendar-time-picker-select-option-disabled:hover {\n  background: transparent;\n  cursor: not-allowed;\n}\n.ant-calendar-time .ant-calendar-day-select {\n  padding: 0 2px;\n  font-weight: 500;\n  display: inline-block;\n  color: #3f435c;\n  line-height: 34px;\n}\n.ant-calendar-time .ant-calendar-footer {\n  position: relative;\n  height: auto;\n}\n.ant-calendar-time .ant-calendar-footer-btn {\n  text-align: right;\n}\n.ant-calendar-time .ant-calendar-footer .ant-calendar-today-btn {\n  float: left;\n  margin: 0;\n}\n.ant-calendar-time .ant-calendar-footer .ant-calendar-time-picker-btn {\n  display: inline-block;\n  margin-right: 8px;\n}\n.ant-calendar-time .ant-calendar-footer .ant-calendar-time-picker-btn-disabled {\n  color: #a2adc4;\n}\n.ant-calendar-month-panel {\n  position: absolute;\n  top: 1px;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 10;\n  border-radius: 10px;\n  background: #fff;\n  outline: none;\n}\n.ant-calendar-month-panel > div {\n  height: 100%;\n}\n.ant-calendar-month-panel-hidden {\n  display: none;\n}\n.ant-calendar-month-panel-header {\n  height: 40px;\n  line-height: 40px;\n  text-align: center;\n  user-select: none;\n  border-bottom: 1px solid #e8e8e8;\n}\n.ant-calendar-month-panel-header a:hover {\n  color: #40a9ff;\n}\n.ant-calendar-month-panel-header .ant-calendar-month-panel-century-select,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-decade-select,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-year-select,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-month-select {\n  padding: 0 2px;\n  font-weight: 500;\n  display: inline-block;\n  color: #3f435c;\n  line-height: 40px;\n}\n.ant-calendar-month-panel-header .ant-calendar-month-panel-century-select-arrow,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-decade-select-arrow,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-year-select-arrow,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-month-select-arrow {\n  display: none;\n}\n.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn {\n  position: absolute;\n  top: 0;\n  color: rgba(0, 0, 0, 0.45);\n  font-family: Arial, \"Hiragino Sans GB\", \"Microsoft Yahei\", \"Microsoft Sans Serif\", sans-serif;\n  padding: 0 5px;\n  font-size: 16px;\n  display: inline-block;\n  line-height: 40px;\n}\n.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn {\n  left: 7px;\n}\n.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-century-btn:after,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-decade-btn:after,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-year-btn:after {\n  content: '\\AB';\n}\n.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn {\n  right: 7px;\n}\n.ant-calendar-month-panel-header .ant-calendar-month-panel-next-century-btn:after,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-next-decade-btn:after,\n.ant-calendar-month-panel-header .ant-calendar-month-panel-next-year-btn:after {\n  content: '\\BB';\n}\n.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn {\n  left: 29px;\n}\n.ant-calendar-month-panel-header .ant-calendar-month-panel-prev-month-btn:after {\n  content: '\\2039';\n}\n.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn {\n  right: 29px;\n}\n.ant-calendar-month-panel-header .ant-calendar-month-panel-next-month-btn:after {\n  content: '\\203A';\n}\n.ant-calendar-month-panel-body {\n  height: calc(100% - 40px);\n}\n.ant-calendar-month-panel-table {\n  table-layout: fixed;\n  width: 100%;\n  height: 100%;\n  border-collapse: separate;\n}\n.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month {\n  background: #1890ff;\n  color: #fff;\n}\n.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month:hover {\n  background: #1890ff;\n  color: #fff;\n}\n.ant-calendar-month-panel-cell {\n  text-align: center;\n}\n.ant-calendar-month-panel-cell-disabled .ant-calendar-month-panel-month,\n.ant-calendar-month-panel-cell-disabled .ant-calendar-month-panel-month:hover {\n  cursor: not-allowed;\n  color: #bcbcbc;\n  background: #ebebeb;\n}\n.ant-calendar-month-panel-month {\n  display: inline-block;\n  margin: 0 auto;\n  color: #586784;\n  background: transparent;\n  text-align: center;\n  height: 24px;\n  line-height: 24px;\n  padding: 0 8px;\n  border-radius: 2px;\n  transition: background 0.3s ease;\n}\n.ant-calendar-month-panel-month:hover {\n  background: #e6f7ff;\n  cursor: pointer;\n}\n.ant-calendar-year-panel {\n  position: absolute;\n  top: 1px;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 10;\n  border-radius: 10px;\n  background: #fff;\n  outline: none;\n}\n.ant-calendar-year-panel > div {\n  height: 100%;\n}\n.ant-calendar-year-panel-hidden {\n  display: none;\n}\n.ant-calendar-year-panel-header {\n  height: 40px;\n  line-height: 40px;\n  text-align: center;\n  user-select: none;\n  border-bottom: 1px solid #e8e8e8;\n}\n.ant-calendar-year-panel-header a:hover {\n  color: #40a9ff;\n}\n.ant-calendar-year-panel-header .ant-calendar-year-panel-century-select,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-decade-select,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-year-select,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-month-select {\n  padding: 0 2px;\n  font-weight: 500;\n  display: inline-block;\n  color: #3f435c;\n  line-height: 40px;\n}\n.ant-calendar-year-panel-header .ant-calendar-year-panel-century-select-arrow,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-decade-select-arrow,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-year-select-arrow,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-month-select-arrow {\n  display: none;\n}\n.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn {\n  position: absolute;\n  top: 0;\n  color: rgba(0, 0, 0, 0.45);\n  font-family: Arial, \"Hiragino Sans GB\", \"Microsoft Yahei\", \"Microsoft Sans Serif\", sans-serif;\n  padding: 0 5px;\n  font-size: 16px;\n  display: inline-block;\n  line-height: 40px;\n}\n.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn {\n  left: 7px;\n}\n.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-century-btn:after,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-decade-btn:after,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-year-btn:after {\n  content: '\\AB';\n}\n.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn {\n  right: 7px;\n}\n.ant-calendar-year-panel-header .ant-calendar-year-panel-next-century-btn:after,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-next-decade-btn:after,\n.ant-calendar-year-panel-header .ant-calendar-year-panel-next-year-btn:after {\n  content: '\\BB';\n}\n.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn {\n  left: 29px;\n}\n.ant-calendar-year-panel-header .ant-calendar-year-panel-prev-month-btn:after {\n  content: '\\2039';\n}\n.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn {\n  right: 29px;\n}\n.ant-calendar-year-panel-header .ant-calendar-year-panel-next-month-btn:after {\n  content: '\\203A';\n}\n.ant-calendar-year-panel-body {\n  height: calc(100% - 40px);\n}\n.ant-calendar-year-panel-table {\n  table-layout: fixed;\n  width: 100%;\n  height: 100%;\n  border-collapse: separate;\n}\n.ant-calendar-year-panel-cell {\n  text-align: center;\n}\n.ant-calendar-year-panel-year {\n  display: inline-block;\n  margin: 0 auto;\n  color: #586784;\n  background: transparent;\n  text-align: center;\n  height: 24px;\n  line-height: 24px;\n  padding: 0 8px;\n  border-radius: 2px;\n  transition: background 0.3s ease;\n}\n.ant-calendar-year-panel-year:hover {\n  background: #e6f7ff;\n  cursor: pointer;\n}\n.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year {\n  background: #1890ff;\n  color: #fff;\n}\n.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year:hover {\n  background: #1890ff;\n  color: #fff;\n}\n.ant-calendar-year-panel-last-decade-cell .ant-calendar-year-panel-year,\n.ant-calendar-year-panel-next-decade-cell .ant-calendar-year-panel-year {\n  user-select: none;\n  color: #a2adc4;\n}\n.ant-calendar-decade-panel {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 10;\n  background: #fff;\n  border-radius: 10px;\n  outline: none;\n}\n.ant-calendar-decade-panel-hidden {\n  display: none;\n}\n.ant-calendar-decade-panel-header {\n  height: 40px;\n  line-height: 40px;\n  text-align: center;\n  user-select: none;\n  border-bottom: 1px solid #e8e8e8;\n}\n.ant-calendar-decade-panel-header a:hover {\n  color: #40a9ff;\n}\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-century-select,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-decade-select,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-year-select,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-month-select {\n  padding: 0 2px;\n  font-weight: 500;\n  display: inline-block;\n  color: #3f435c;\n  line-height: 40px;\n}\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-century-select-arrow,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-decade-select-arrow,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-year-select-arrow,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-month-select-arrow {\n  display: none;\n}\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn {\n  position: absolute;\n  top: 0;\n  color: rgba(0, 0, 0, 0.45);\n  font-family: Arial, \"Hiragino Sans GB\", \"Microsoft Yahei\", \"Microsoft Sans Serif\", sans-serif;\n  padding: 0 5px;\n  font-size: 16px;\n  display: inline-block;\n  line-height: 40px;\n}\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn {\n  left: 7px;\n}\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-century-btn:after,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-decade-btn:after,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-year-btn:after {\n  content: '\\AB';\n}\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn {\n  right: 7px;\n}\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-century-btn:after,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-decade-btn:after,\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-year-btn:after {\n  content: '\\BB';\n}\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn {\n  left: 29px;\n}\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-prev-month-btn:after {\n  content: '\\2039';\n}\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn {\n  right: 29px;\n}\n.ant-calendar-decade-panel-header .ant-calendar-decade-panel-next-month-btn:after {\n  content: '\\203A';\n}\n.ant-calendar-decade-panel-body {\n  height: calc(100% - 40px);\n}\n.ant-calendar-decade-panel-table {\n  table-layout: fixed;\n  width: 100%;\n  height: 100%;\n  border-collapse: separate;\n}\n.ant-calendar-decade-panel-cell {\n  text-align: center;\n  white-space: nowrap;\n}\n.ant-calendar-decade-panel-decade {\n  display: inline-block;\n  margin: 0 auto;\n  color: #586784;\n  background: transparent;\n  text-align: center;\n  height: 24px;\n  line-height: 24px;\n  padding: 0 6px;\n  border-radius: 2px;\n  transition: background 0.3s ease;\n}\n.ant-calendar-decade-panel-decade:hover {\n  background: #e6f7ff;\n  cursor: pointer;\n}\n.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade {\n  background: #1890ff;\n  color: #fff;\n}\n.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade:hover {\n  background: #1890ff;\n  color: #fff;\n}\n.ant-calendar-decade-panel-last-century-cell .ant-calendar-decade-panel-decade,\n.ant-calendar-decade-panel-next-century-cell .ant-calendar-decade-panel-decade {\n  user-select: none;\n  color: #a2adc4;\n}\n.ant-calendar-month .ant-calendar-month-header-wrap {\n  position: relative;\n  height: 288px;\n}\n.ant-calendar-month .ant-calendar-month-panel,\n.ant-calendar-month .ant-calendar-year-panel {\n  top: 0;\n  height: 100%;\n}\n.ant-calendar-week-number-cell {\n  opacity: 0.5;\n}\n.ant-calendar-week-number .ant-calendar-body tr {\n  transition: all .3s;\n  cursor: pointer;\n}\n.ant-calendar-week-number .ant-calendar-body tr:hover {\n  background: #e6f7ff;\n}\n.ant-calendar-week-number .ant-calendar-body tr.ant-calendar-active-week {\n  background: #bae7ff;\n  font-weight: bold;\n}\n.ant-calendar-week-number .ant-calendar-body tr .ant-calendar-selected-day .ant-calendar-date,\n.ant-calendar-week-number .ant-calendar-body tr .ant-calendar-selected-day:hover .ant-calendar-date {\n  background: transparent;\n  color: #586784;\n}\n", ""]);

// exports


__webpack_require__(81);

__webpack_require__(1078);

__webpack_require__(102);// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(1079);
if(typeof content === 'string') content = [[module.i, content, '']];
// Prepare cssTransformation
var transform;

var options = {"hmr":true}
options.transform = transform
// add the styles to the DOM
var update = __webpack_require__(85)(content, options);
if(content.locals) module.exports = content.locals;
// Hot Module Replacement
if(false) {}exports = module.exports = __webpack_require__(84)(undefined);
// imports


// module
exports.push([module.i, "/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-time-picker-panel {\n  font-size: 12px;\n  font-variant: tabular-nums;\n  line-height: 1.5;\n  color: #586784;\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  font-family: 'Stolzl', sans-serif;\n  z-index: 1050;\n  position: absolute;\n}\n.ant-time-picker-panel-inner {\n  position: relative;\n  outline: none;\n  list-style: none;\n  font-size: 12px;\n  text-align: left;\n  background-color: #fff;\n  border-radius: 10px;\n  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n  background-clip: padding-box;\n  overflow: hidden;\n  left: -2px;\n}\n.ant-time-picker-panel-input {\n  margin: 0;\n  padding: 0;\n  border: 0;\n  max-width: 154px;\n  cursor: auto;\n  outline: 0;\n}\n.ant-time-picker-panel-input::-moz-placeholder {\n  color: #bfbfbf;\n  opacity: 1;\n}\n.ant-time-picker-panel-input:-ms-input-placeholder {\n  color: #bfbfbf;\n}\n.ant-time-picker-panel-input::-webkit-input-placeholder {\n  color: #bfbfbf;\n}\n.ant-time-picker-panel-input-wrap {\n  box-sizing: border-box;\n  position: relative;\n  padding: 7px 2px 7px 12px;\n  border-bottom: 1px solid #e8e8e8;\n}\n.ant-time-picker-panel-input-invalid {\n  border-color: red;\n}\n.ant-time-picker-panel-clear-btn {\n  position: absolute;\n  right: 8px;\n  cursor: pointer;\n  overflow: hidden;\n  width: 20px;\n  height: 20px;\n  text-align: center;\n  line-height: 20px;\n  top: 7px;\n  margin: 0;\n}\n.ant-time-picker-panel-clear-btn:after {\n  font-size: 10px;\n  color: #a2adc4;\n  display: inline-block;\n  line-height: 1;\n  width: 20px;\n  transition: color 0.3s ease;\n  font-family: 'anticon';\n  text-rendering: optimizeLegibility;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  content: \"\\E62E\";\n}\n.ant-time-picker-panel-clear-btn:hover:after {\n  color: rgba(0, 0, 0, 0.45);\n}\n.ant-time-picker-panel-narrow .ant-time-picker-panel-input-wrap {\n  max-width: 112px;\n}\n.ant-time-picker-panel-select {\n  float: left;\n  font-size: 12px;\n  border-left: 1px solid #e8e8e8;\n  box-sizing: border-box;\n  width: 56px;\n  overflow: hidden;\n  position: relative;\n  max-height: 192px;\n}\n.ant-time-picker-panel-select:hover {\n  overflow-y: auto;\n}\n.ant-time-picker-panel-select:first-child {\n  border-left: 0;\n  margin-left: 0;\n}\n.ant-time-picker-panel-select:last-child {\n  border-right: 0;\n}\n.ant-time-picker-panel-select:only-child {\n  width: 100%;\n}\n.ant-time-picker-panel-select ul {\n  list-style: none;\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0 0 160px;\n  width: 100%;\n}\n.ant-time-picker-panel-select li {\n  list-style: none;\n  box-sizing: content-box;\n  margin: 0;\n  padding: 0 0 0 12px;\n  width: 100%;\n  height: 32px;\n  line-height: 32px;\n  text-align: left;\n  cursor: pointer;\n  user-select: none;\n  transition: background 0.3s;\n}\n.ant-time-picker-panel-select li:hover {\n  background: #e6f7ff;\n}\nli.ant-time-picker-panel-select-option-selected {\n  background: #f5f5f5;\n  font-weight: bold;\n}\nli.ant-time-picker-panel-select-option-selected:hover {\n  background: #f5f5f5;\n}\nli.ant-time-picker-panel-select-option-disabled {\n  color: #a2adc4;\n}\nli.ant-time-picker-panel-select-option-disabled:hover {\n  background: transparent;\n  cursor: not-allowed;\n}\n.ant-time-picker-panel-combobox {\n  zoom: 1;\n}\n.ant-time-picker-panel-combobox:before,\n.ant-time-picker-panel-combobox:after {\n  content: \"\";\n  display: table;\n}\n.ant-time-picker-panel-combobox:after {\n  clear: both;\n}\n.ant-time-picker-panel-addon {\n  padding: 8px;\n  border-top: 1px solid #e8e8e8;\n}\n.ant-time-picker-panel.slide-up-enter.slide-up-enter-active.ant-time-picker-panel-placement-topLeft,\n.ant-time-picker-panel.slide-up-enter.slide-up-enter-active.ant-time-picker-panel-placement-topRight,\n.ant-time-picker-panel.slide-up-appear.slide-up-appear-active.ant-time-picker-panel-placement-topLeft,\n.ant-time-picker-panel.slide-up-appear.slide-up-appear-active.ant-time-picker-panel-placement-topRight {\n  animation-name: antSlideDownIn;\n}\n.ant-time-picker-panel.slide-up-enter.slide-up-enter-active.ant-time-picker-panel-placement-bottomLeft,\n.ant-time-picker-panel.slide-up-enter.slide-up-enter-active.ant-time-picker-panel-placement-bottomRight,\n.ant-time-picker-panel.slide-up-appear.slide-up-appear-active.ant-time-picker-panel-placement-bottomLeft,\n.ant-time-picker-panel.slide-up-appear.slide-up-appear-active.ant-time-picker-panel-placement-bottomRight {\n  animation-name: antSlideUpIn;\n}\n.ant-time-picker-panel.slide-up-leave.slide-up-leave-active.ant-time-picker-panel-placement-topLeft,\n.ant-time-picker-panel.slide-up-leave.slide-up-leave-active.ant-time-picker-panel-placement-topRight {\n  animation-name: antSlideDownOut;\n}\n.ant-time-picker-panel.slide-up-leave.slide-up-leave-active.ant-time-picker-panel-placement-bottomLeft,\n.ant-time-picker-panel.slide-up-leave.slide-up-leave-active.ant-time-picker-panel-placement-bottomRight {\n  animation-name: antSlideUpOut;\n}\n.ant-time-picker {\n  font-family: 'Stolzl', sans-serif;\n  font-size: 12px;\n  font-variant: tabular-nums;\n  line-height: 1.5;\n  color: #586784;\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  position: relative;\n  display: inline-block;\n  outline: none;\n  transition: opacity .3s;\n  width: 128px;\n}\n.ant-time-picker-input {\n  position: relative;\n  display: inline-block;\n  padding: 4px 11px;\n  width: 100%;\n  height: 22px;\n  font-size: 12px;\n  line-height: 1.5;\n  color: #586784;\n  background-color: #fff;\n  background-image: none;\n  border: 1px solid #d9d9d9;\n  border-radius: 10px;\n  transition: all .3s;\n}\n.ant-time-picker-input::-moz-placeholder {\n  color: #bfbfbf;\n  opacity: 1;\n}\n.ant-time-picker-input:-ms-input-placeholder {\n  color: #bfbfbf;\n}\n.ant-time-picker-input::-webkit-input-placeholder {\n  color: #bfbfbf;\n}\n.ant-time-picker-input:hover {\n  border-color: #40a9ff;\n  border-right-width: 1px !important;\n}\n.ant-time-picker-input:focus {\n  border-color: #40a9ff;\n  outline: 0;\n  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n  border-right-width: 1px !important;\n}\n.ant-time-picker-input-disabled {\n  background-color: #ebebeb;\n  opacity: 1;\n  cursor: not-allowed;\n  color: #a2adc4;\n}\n.ant-time-picker-input-disabled:hover {\n  border-color: #e6d8d8;\n  border-right-width: 1px !important;\n}\ntextarea.ant-time-picker-input {\n  max-width: 100%;\n  height: auto;\n  vertical-align: bottom;\n  transition: all .3s, height 0s;\n  min-height: 22px;\n}\n.ant-time-picker-input-lg {\n  padding: 6px 11px;\n  height: 40px;\n  font-size: 14px;\n}\n.ant-time-picker-input-sm {\n  padding: 1px 7px;\n  height: 24px;\n}\n.ant-time-picker-input[disabled] {\n  background-color: #ebebeb;\n  opacity: 1;\n  cursor: not-allowed;\n  color: #a2adc4;\n}\n.ant-time-picker-input[disabled]:hover {\n  border-color: #e6d8d8;\n  border-right-width: 1px !important;\n}\n.ant-time-picker-open {\n  opacity: 0;\n}\n.ant-time-picker-icon {\n  position: absolute;\n  user-select: none;\n  transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n  width: 14px;\n  height: 14px;\n  line-height: 14px;\n  right: 11px;\n  color: #a2adc4;\n  top: 50%;\n  margin-top: -7px;\n}\n.ant-time-picker-icon:after {\n  content: \"\\E641\";\n  font-family: \"anticon\";\n  color: #a2adc4;\n  display: block;\n  line-height: 1;\n}\n.ant-time-picker-large .ant-time-picker-input {\n  padding: 6px 11px;\n  height: 40px;\n  font-size: 14px;\n}\n.ant-time-picker-small .ant-time-picker-input {\n  padding: 1px 7px;\n  height: 24px;\n}\n.ant-time-picker-small .ant-time-picker-icon {\n  right: 7px;\n}\n", ""]);

// exports


Object.defineProperty(exports, "__esModule", {
    value: true
});

var _extends2 = __webpack_require__(19);

var _extends3 = _interopRequireDefault(_extends2);

var _rcCalendar = __webpack_require__(646);

var _rcCalendar2 = _interopRequireDefault(_rcCalendar);

var _MonthCalendar = __webpack_require__(637);

var _MonthCalendar2 = _interopRequireDefault(_MonthCalendar);

var _createPicker = __webpack_require__(1088);

var _createPicker2 = _interopRequireDefault(_createPicker);

var _wrapPicker = __webpack_require__(1092);

var _wrapPicker2 = _interopRequireDefault(_wrapPicker);

var _RangePicker = __webpack_require__(1099);

var _RangePicker2 = _interopRequireDefault(_RangePicker);

var _WeekPicker = __webpack_require__(1107);

var _WeekPicker2 = _interopRequireDefault(_WeekPicker);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var DatePicker = (0, _wrapPicker2['default'])((0, _createPicker2['default'])(_rcCalendar2['default']));
var MonthPicker = (0, _wrapPicker2['default'])((0, _createPicker2['default'])(_MonthCalendar2['default']), 'YYYY-MM');
(0, _extends3['default'])(DatePicker, {
    RangePicker: (0, _wrapPicker2['default'])(_RangePicker2['default']),
    MonthPicker: MonthPicker,
    WeekPicker: (0, _wrapPicker2['default'])(_WeekPicker2['default'], 'gggg-wo')
});
exports['default'] = DatePicker;
module.exports = exports['default'];/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

if (false) { var throwOnDirectAccess, isValidElement, REACT_ELEMENT_TYPE; } else {
  // By explicitly using `prop-types` you are opting into new production behavior.
  // http://fb.me/prop-types-in-prod
  module.exports = __webpack_require__(1080)();
}
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var emptyFunction = __webpack_require__(200);
var invariant = __webpack_require__(201);
var ReactPropTypesSecret = __webpack_require__(1081);

module.exports = function() {
  function shim(props, propName, componentName, location, propFullName, secret) {
    if (secret === ReactPropTypesSecret) {
      // It is still safe when called from React.
      return;
    }
    invariant(
      false,
      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
      'Use PropTypes.checkPropTypes() to call them. ' +
      'Read more at http://fb.me/use-check-prop-types'
    );
  };
  shim.isRequired = shim;
  function getShim() {
    return shim;
  };
  // Important!
  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
  var ReactPropTypes = {
    array: shim,
    bool: shim,
    func: shim,
    number: shim,
    object: shim,
    string: shim,
    symbol: shim,

    any: shim,
    arrayOf: getShim,
    element: shim,
    instanceOf: getShim,
    node: shim,
    objectOf: getShim,
    oneOf: getShim,
    oneOfType: getShim,
    shape: getShim,
    exact: getShim
  };

  ReactPropTypes.checkPropTypes = emptyFunction;
  ReactPropTypes.PropTypes = ReactPropTypes;

  return ReactPropTypes;
};
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';

module.exports = ReactPropTypesSecret;


exports.__esModule = true;

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _createReactClass = __webpack_require__(75);

var _createReactClass2 = _interopRequireDefault(_createReactClass);

var _propTypes = __webpack_require__(37);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _KeyCode = __webpack_require__(392);

var _KeyCode2 = _interopRequireDefault(_KeyCode);

var _CalendarHeader = __webpack_require__(638);

var _CalendarHeader2 = _interopRequireDefault(_CalendarHeader);

var _CalendarFooter = __webpack_require__(1086);

var _CalendarFooter2 = _interopRequireDefault(_CalendarFooter);

var _CalendarMixin = __webpack_require__(1087);

var _CalendarMixin2 = _interopRequireDefault(_CalendarMixin);

var _CommonMixin = __webpack_require__(643);

var _CommonMixin2 = _interopRequireDefault(_CommonMixin);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var MonthCalendar = (0, _createReactClass2['default'])({
  displayName: 'MonthCalendar',

  propTypes: {
    monthCellRender: _propTypes2['default'].func,
    dateCellRender: _propTypes2['default'].func
  },
  mixins: [_CommonMixin2['default'], _CalendarMixin2['default']],

  getInitialState: function getInitialState() {
    return { mode: 'month' };
  },
  onKeyDown: function onKeyDown(event) {
    var keyCode = event.keyCode;
    var ctrlKey = event.ctrlKey || event.metaKey;
    var stateValue = this.state.value;
    var disabledDate = this.props.disabledDate;

    var value = stateValue;
    switch (keyCode) {
      case _KeyCode2['default'].DOWN:
        value = stateValue.clone();
        value.add(3, 'months');
        break;
      case _KeyCode2['default'].UP:
        value = stateValue.clone();
        value.add(-3, 'months');
        break;
      case _KeyCode2['default'].LEFT:
        value = stateValue.clone();
        if (ctrlKey) {
          value.add(-1, 'years');
        } else {
          value.add(-1, 'months');
        }
        break;
      case _KeyCode2['default'].RIGHT:
        value = stateValue.clone();
        if (ctrlKey) {
          value.add(1, 'years');
        } else {
          value.add(1, 'months');
        }
        break;
      case _KeyCode2['default'].ENTER:
        if (!disabledDate || !disabledDate(stateValue)) {
          this.onSelect(stateValue);
        }
        event.preventDefault();
        return 1;
      default:
        return undefined;
    }
    if (value !== stateValue) {
      this.setValue(value);
      event.preventDefault();
      return 1;
    }
  },
  handlePanelChange: function handlePanelChange(_, mode) {
    if (mode !== 'date') {
      this.setState({ mode: mode });
    }
  },
  render: function render() {
    var props = this.props,
        state = this.state;
    var mode = state.mode,
        value = state.value;

    var children = _react2['default'].createElement(
      'div',
      { className: props.prefixCls + '-month-calendar-content' },
      _react2['default'].createElement(
        'div',
        { className: props.prefixCls + '-month-header-wrap' },
        _react2['default'].createElement(_CalendarHeader2['default'], {
          prefixCls: props.prefixCls,
          mode: mode,
          value: value,
          locale: props.locale,
          disabledMonth: props.disabledDate,
          monthCellRender: props.monthCellRender,
          monthCellContentRender: props.monthCellContentRender,
          onMonthSelect: this.onSelect,
          onValueChange: this.setValue,
          onPanelChange: this.handlePanelChange
        })
      ),
      _react2['default'].createElement(_CalendarFooter2['default'], {
        prefixCls: props.prefixCls,
        renderFooter: props.renderFooter
      })
    );
    return this.renderRoot({
      className: props.prefixCls + '-month-calendar',
      children: children
    });
  }
});

exports['default'] = MonthCalendar;
module.exports = exports['default'];

exports.__esModule = true;

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _createReactClass = __webpack_require__(75);

var _createReactClass2 = _interopRequireDefault(_createReactClass);

var _propTypes = __webpack_require__(37);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _mapSelf = __webpack_require__(639);

var _mapSelf2 = _interopRequireDefault(_mapSelf);

var _MonthPanel = __webpack_require__(1082);

var _MonthPanel2 = _interopRequireDefault(_MonthPanel);

var _YearPanel = __webpack_require__(1084);

var _YearPanel2 = _interopRequireDefault(_YearPanel);

var _DecadePanel = __webpack_require__(1085);

var _DecadePanel2 = _interopRequireDefault(_DecadePanel);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function goMonth(direction) {
  var next = this.props.value.clone();
  next.add(direction, 'months');
  this.props.onValueChange(next);
}

function goYear(direction) {
  var next = this.props.value.clone();
  next.add(direction, 'years');
  this.props.onValueChange(next);
}

function showIf(condition, el) {
  return condition ? el : null;
}

var CalendarHeader = (0, _createReactClass2['default'])({
  displayName: 'CalendarHeader',

  propTypes: {
    prefixCls: _propTypes2['default'].string,
    value: _propTypes2['default'].object,
    onValueChange: _propTypes2['default'].func,
    showTimePicker: _propTypes2['default'].bool,
    onPanelChange: _propTypes2['default'].func,
    locale: _propTypes2['default'].object,
    enablePrev: _propTypes2['default'].any,
    enableNext: _propTypes2['default'].any,
    disabledMonth: _propTypes2['default'].func
  },

  getDefaultProps: function getDefaultProps() {
    return {
      enableNext: 1,
      enablePrev: 1,
      onPanelChange: function onPanelChange() {},
      onValueChange: function onValueChange() {}
    };
  },
  getInitialState: function getInitialState() {
    this.nextMonth = goMonth.bind(this, 1);
    this.previousMonth = goMonth.bind(this, -1);
    this.nextYear = goYear.bind(this, 1);
    this.previousYear = goYear.bind(this, -1);
    return { yearPanelReferer: null };
  },
  onMonthSelect: function onMonthSelect(value) {
    this.props.onPanelChange(value, 'date');
    if (this.props.onMonthSelect) {
      this.props.onMonthSelect(value);
    } else {
      this.props.onValueChange(value);
    }
  },
  onYearSelect: function onYearSelect(value) {
    var referer = this.state.yearPanelReferer;
    this.setState({ yearPanelReferer: null });
    this.props.onPanelChange(value, referer);
    this.props.onValueChange(value);
  },
  onDecadeSelect: function onDecadeSelect(value) {
    this.props.onPanelChange(value, 'year');
    this.props.onValueChange(value);
  },
  monthYearElement: function monthYearElement(showTimePicker) {
    var _this = this;

    var props = this.props;
    var prefixCls = props.prefixCls;
    var locale = props.locale;
    var value = props.value;
    var localeData = value.localeData();
    var monthBeforeYear = locale.monthBeforeYear;
    var selectClassName = prefixCls + '-' + (monthBeforeYear ? 'my-select' : 'ym-select');
    var year = _react2['default'].createElement(
      'a',
      {
        className: prefixCls + '-year-select',
        role: 'button',
        onClick: showTimePicker ? null : function () {
          return _this.showYearPanel('date');
        },
        title: locale.yearSelect
      },
      value.format(locale.yearFormat)
    );
    var month = _react2['default'].createElement(
      'a',
      {
        className: prefixCls + '-month-select',
        role: 'button',
        onClick: showTimePicker ? null : this.showMonthPanel,
        title: locale.monthSelect
      },
      locale.monthFormat ? value.format(locale.monthFormat) : localeData.monthsShort(value)
    );
    var day = void 0;
    if (showTimePicker) {
      day = _react2['default'].createElement(
        'a',
        {
          className: prefixCls + '-day-select',
          role: 'button'
        },
        value.format(locale.dayFormat)
      );
    }
    var my = [];
    if (monthBeforeYear) {
      my = [month, day, year];
    } else {
      my = [year, month, day];
    }
    return _react2['default'].createElement(
      'span',
      { className: selectClassName },
      (0, _mapSelf2['default'])(my)
    );
  },
  showMonthPanel: function showMonthPanel() {
    // null means that users' interaction doesn't change value
    this.props.onPanelChange(null, 'month');
  },
  showYearPanel: function showYearPanel(referer) {
    this.setState({ yearPanelReferer: referer });
    this.props.onPanelChange(null, 'year');
  },
  showDecadePanel: function showDecadePanel() {
    this.props.onPanelChange(null, 'decade');
  },
  render: function render() {
    var _this2 = this;

    var props = this.props;
    var prefixCls = props.prefixCls,
        locale = props.locale,
        mode = props.mode,
        value = props.value,
        showTimePicker = props.showTimePicker,
        enableNext = props.enableNext,
        enablePrev = props.enablePrev,
        disabledMonth = props.disabledMonth;


    var panel = null;
    if (mode === 'month') {
      panel = _react2['default'].createElement(_MonthPanel2['default'], {
        locale: locale,
        defaultValue: value,
        rootPrefixCls: prefixCls,
        onSelect: this.onMonthSelect,
        onYearPanelShow: function onYearPanelShow() {
          return _this2.showYearPanel('month');
        },
        disabledDate: disabledMonth,
        cellRender: props.monthCellRender,
        contentRender: props.monthCellContentRender
      });
    }
    if (mode === 'year') {
      panel = _react2['default'].createElement(_YearPanel2['default'], {
        locale: locale,
        defaultValue: value,
        rootPrefixCls: prefixCls,
        onSelect: this.onYearSelect,
        onDecadePanelShow: this.showDecadePanel
      });
    }
    if (mode === 'decade') {
      panel = _react2['default'].createElement(_DecadePanel2['default'], {
        locale: locale,
        defaultValue: value,
        rootPrefixCls: prefixCls,
        onSelect: this.onDecadeSelect
      });
    }

    return _react2['default'].createElement(
      'div',
      { className: prefixCls + '-header' },
      _react2['default'].createElement(
        'div',
        { style: { position: 'relative' } },
        showIf(enablePrev && !showTimePicker, _react2['default'].createElement('a', {
          className: prefixCls + '-prev-year-btn',
          role: 'button',
          onClick: this.previousYear,
          title: locale.previousYear
        })),
        showIf(enablePrev && !showTimePicker, _react2['default'].createElement('a', {
          className: prefixCls + '-prev-month-btn',
          role: 'button',
          onClick: this.previousMonth,
          title: locale.previousMonth
        })),
        this.monthYearElement(showTimePicker),
        showIf(enableNext && !showTimePicker, _react2['default'].createElement('a', {
          className: prefixCls + '-next-month-btn',
          onClick: this.nextMonth,
          title: locale.nextMonth
        })),
        showIf(enableNext && !showTimePicker, _react2['default'].createElement('a', {
          className: prefixCls + '-next-year-btn',
          onClick: this.nextYear,
          title: locale.nextYear
        }))
      ),
      panel
    );
  }
});

exports['default'] = CalendarHeader;
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports['default'] = mapSelf;

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function mirror(o) {
  return o;
}

function mapSelf(children) {
  // return ReactFragment
  return _react2['default'].Children.map(children, mirror);
}
module.exports = exports['default'];

exports.__esModule = true;

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _createReactClass = __webpack_require__(75);

var _createReactClass2 = _interopRequireDefault(_createReactClass);

var _propTypes = __webpack_require__(37);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _MonthTable = __webpack_require__(1083);

var _MonthTable2 = _interopRequireDefault(_MonthTable);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function goYear(direction) {
  var next = this.state.value.clone();
  next.add(direction, 'year');
  this.setAndChangeValue(next);
}

function noop() {}

var MonthPanel = (0, _createReactClass2['default'])({
  displayName: 'MonthPanel',

  propTypes: {
    onChange: _propTypes2['default'].func,
    disabledDate: _propTypes2['default'].func,
    onSelect: _propTypes2['default'].func
  },

  getDefaultProps: function getDefaultProps() {
    return {
      onChange: noop,
      onSelect: noop
    };
  },
  getInitialState: function getInitialState() {
    var props = this.props;
    // bind methods
    this.nextYear = goYear.bind(this, 1);
    this.previousYear = goYear.bind(this, -1);
    this.prefixCls = props.rootPrefixCls + '-month-panel';
    return {
      value: props.value || props.defaultValue
    };
  },
  componentWillReceiveProps: function componentWillReceiveProps(nextProps) {
    if ('value' in nextProps) {
      this.setState({
        value: nextProps.value
      });
    }
  },
  setAndChangeValue: function setAndChangeValue(value) {
    this.setValue(value);
    this.props.onChange(value);
  },
  setAndSelectValue: function setAndSelectValue(value) {
    this.setValue(value);
    this.props.onSelect(value);
  },
  setValue: function setValue(value) {
    if (!('value' in this.props)) {
      this.setState({
        value: value
      });
    }
  },
  render: function render() {
    var props = this.props;
    var value = this.state.value;
    var cellRender = props.cellRender;
    var contentRender = props.contentRender;
    var locale = props.locale;
    var year = value.year();
    var prefixCls = this.prefixCls;
    return _react2['default'].createElement(
      'div',
      { className: prefixCls, style: props.style },
      _react2['default'].createElement(
        'div',
        null,
        _react2['default'].createElement(
          'div',
          { className: prefixCls + '-header' },
          _react2['default'].createElement('a', {
            className: prefixCls + '-prev-year-btn',
            role: 'button',
            onClick: this.previousYear,
            title: locale.previousYear
          }),
          _react2['default'].createElement(
            'a',
            {
              className: prefixCls + '-year-select',
              role: 'button',
              onClick: props.onYearPanelShow,
              title: locale.yearSelect
            },
            _react2['default'].createElement(
              'span',
              { className: prefixCls + '-year-select-content' },
              year
            ),
            _react2['default'].createElement(
              'span',
              { className: prefixCls + '-year-select-arrow' },
              'x'
            )
          ),
          _react2['default'].createElement('a', {
            className: prefixCls + '-next-year-btn',
            role: 'button',
            onClick: this.nextYear,
            title: locale.nextYear
          })
        ),
        _react2['default'].createElement(
          'div',
          { className: prefixCls + '-body' },
          _react2['default'].createElement(_MonthTable2['default'], {
            disabledDate: props.disabledDate,
            onSelect: this.setAndSelectValue,
            locale: locale,
            value: value,
            cellRender: cellRender,
            contentRender: contentRender,
            prefixCls: prefixCls
          })
        )
      )
    );
  }
});

exports['default'] = MonthPanel;
module.exports = exports['default'];

exports.__esModule = true;

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(37);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _classnames = __webpack_require__(25);

var _classnames2 = _interopRequireDefault(_classnames);

var _index = __webpack_require__(304);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var ROW = 4;
var COL = 3;

function chooseMonth(month) {
  var next = this.state.value.clone();
  next.month(month);
  this.setAndSelectValue(next);
}

function noop() {}

var MonthTable = function (_Component) {
  (0, _inherits3['default'])(MonthTable, _Component);

  function MonthTable(props) {
    (0, _classCallCheck3['default'])(this, MonthTable);

    var _this = (0, _possibleConstructorReturn3['default'])(this, _Component.call(this, props));

    _this.state = {
      value: props.value
    };
    return _this;
  }

  MonthTable.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
    if ('value' in nextProps) {
      this.setState({
        value: nextProps.value
      });
    }
  };

  MonthTable.prototype.setAndSelectValue = function setAndSelectValue(value) {
    this.setState({
      value: value
    });
    this.props.onSelect(value);
  };

  MonthTable.prototype.months = function months() {
    var value = this.state.value;
    var current = value.clone();
    var months = [];
    var index = 0;
    for (var rowIndex = 0; rowIndex < ROW; rowIndex++) {
      months[rowIndex] = [];
      for (var colIndex = 0; colIndex < COL; colIndex++) {
        current.month(index);
        var content = (0, _index.getMonthName)(current);
        months[rowIndex][colIndex] = {
          value: index,
          content: content,
          title: content
        };
        index++;
      }
    }
    return months;
  };

  MonthTable.prototype.render = function render() {
    var _this2 = this;

    var props = this.props;
    var value = this.state.value;
    var today = (0, _index.getTodayTime)(value);
    var months = this.months();
    var currentMonth = value.month();
    var prefixCls = props.prefixCls,
        locale = props.locale,
        contentRender = props.contentRender,
        cellRender = props.cellRender;

    var monthsEls = months.map(function (month, index) {
      var tds = month.map(function (monthData) {
        var _classNameMap;

        var disabled = false;
        if (props.disabledDate) {
          var testValue = value.clone();
          testValue.month(monthData.value);
          disabled = props.disabledDate(testValue);
        }
        var classNameMap = (_classNameMap = {}, _classNameMap[prefixCls + '-cell'] = 1, _classNameMap[prefixCls + '-cell-disabled'] = disabled, _classNameMap[prefixCls + '-selected-cell'] = monthData.value === currentMonth, _classNameMap[prefixCls + '-current-cell'] = today.year() === value.year() && monthData.value === today.month(), _classNameMap);
        var cellEl = void 0;
        if (cellRender) {
          var currentValue = value.clone();
          currentValue.month(monthData.value);
          cellEl = cellRender(currentValue, locale);
        } else {
          var content = void 0;
          if (contentRender) {
            var _currentValue = value.clone();
            _currentValue.month(monthData.value);
            content = contentRender(_currentValue, locale);
          } else {
            content = monthData.content;
          }
          cellEl = _react2['default'].createElement(
            'a',
            { className: prefixCls + '-month' },
            content
          );
        }
        return _react2['default'].createElement(
          'td',
          {
            role: 'gridcell',
            key: monthData.value,
            onClick: disabled ? null : chooseMonth.bind(_this2, monthData.value),
            title: monthData.title,
            className: (0, _classnames2['default'])(classNameMap)
          },
          cellEl
        );
      });
      return _react2['default'].createElement(
        'tr',
        { key: index, role: 'row' },
        tds
      );
    });

    return _react2['default'].createElement(
      'table',
      { className: prefixCls + '-table', cellSpacing: '0', role: 'grid' },
      _react2['default'].createElement(
        'tbody',
        { className: prefixCls + '-tbody' },
        monthsEls
      )
    );
  };

  return MonthTable;
}(_react.Component);

MonthTable.defaultProps = {
  onSelect: noop
};
MonthTable.propTypes = {
  onSelect: _propTypes2['default'].func,
  cellRender: _propTypes2['default'].func,
  prefixCls: _propTypes2['default'].string,
  value: _propTypes2['default'].object
};
exports['default'] = MonthTable;
module.exports = exports['default'];

exports.__esModule = true;

var _extends2 = __webpack_require__(19);

var _extends3 = _interopRequireDefault(_extends2);

exports.getTodayTime = getTodayTime;
exports.getTitleString = getTitleString;
exports.getTodayTimeStr = getTodayTimeStr;
exports.getMonthName = getMonthName;
exports.syncTime = syncTime;
exports.getTimeConfig = getTimeConfig;
exports.isTimeValidByConfig = isTimeValidByConfig;
exports.isTimeValid = isTimeValid;
exports.isAllowedDate = isAllowedDate;

var _moment = __webpack_require__(23);

var _moment2 = _interopRequireDefault(_moment);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var defaultDisabledTime = {
  disabledHours: function disabledHours() {
    return [];
  },
  disabledMinutes: function disabledMinutes() {
    return [];
  },
  disabledSeconds: function disabledSeconds() {
    return [];
  }
};

function getTodayTime(value) {
  var today = (0, _moment2['default'])();
  today.locale(value.locale()).utcOffset(value.utcOffset());
  return today;
}

function getTitleString(value) {
  return value.format('LL');
}

function getTodayTimeStr(value) {
  var today = getTodayTime(value);
  return getTitleString(today);
}

function getMonthName(month) {
  var locale = month.locale();
  var localeData = month.localeData();
  return localeData[locale === 'zh-cn' ? 'months' : 'monthsShort'](month);
}

function syncTime(from, to) {
  if (!_moment2['default'].isMoment(from) || !_moment2['default'].isMoment(to)) return;
  to.hour(from.hour());
  to.minute(from.minute());
  to.second(from.second());
}

function getTimeConfig(value, disabledTime) {
  var disabledTimeConfig = disabledTime ? disabledTime(value) : {};
  disabledTimeConfig = (0, _extends3['default'])({}, defaultDisabledTime, disabledTimeConfig);
  return disabledTimeConfig;
}

function isTimeValidByConfig(value, disabledTimeConfig) {
  var invalidTime = false;
  if (value) {
    var hour = value.hour();
    var minutes = value.minute();
    var seconds = value.second();
    var disabledHours = disabledTimeConfig.disabledHours();
    if (disabledHours.indexOf(hour) === -1) {
      var disabledMinutes = disabledTimeConfig.disabledMinutes(hour);
      if (disabledMinutes.indexOf(minutes) === -1) {
        var disabledSeconds = disabledTimeConfig.disabledSeconds(hour, minutes);
        invalidTime = disabledSeconds.indexOf(seconds) !== -1;
      } else {
        invalidTime = true;
      }
    } else {
      invalidTime = true;
    }
  }
  return !invalidTime;
}

function isTimeValid(value, disabledTime) {
  var disabledTimeConfig = getTimeConfig(value, disabledTime);
  return isTimeValidByConfig(value, disabledTimeConfig);
}

function isAllowedDate(value, disabledDate, disabledTime) {
  if (disabledDate) {
    if (disabledDate(value)) {
      return false;
    }
  }
  if (disabledTime) {
    if (!isTimeValid(value, disabledTime)) {
      return false;
    }
  }
  return true;
}

exports.__esModule = true;

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(37);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _classnames = __webpack_require__(25);

var _classnames2 = _interopRequireDefault(_classnames);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var ROW = 4;
var COL = 3;

function goYear(direction) {
  var value = this.state.value.clone();
  value.add(direction, 'year');
  this.setState({
    value: value
  });
}

function chooseYear(year) {
  var value = this.state.value.clone();
  value.year(year);
  value.month(this.state.value.month());
  this.props.onSelect(value);
}

var YearPanel = function (_React$Component) {
  (0, _inherits3['default'])(YearPanel, _React$Component);

  function YearPanel(props) {
    (0, _classCallCheck3['default'])(this, YearPanel);

    var _this = (0, _possibleConstructorReturn3['default'])(this, _React$Component.call(this, props));

    _this.prefixCls = props.rootPrefixCls + '-year-panel';
    _this.state = {
      value: props.value || props.defaultValue
    };
    _this.nextDecade = goYear.bind(_this, 10);
    _this.previousDecade = goYear.bind(_this, -10);
    return _this;
  }

  YearPanel.prototype.years = function years() {
    var value = this.state.value;
    var currentYear = value.year();
    var startYear = parseInt(currentYear / 10, 10) * 10;
    var previousYear = startYear - 1;
    var years = [];
    var index = 0;
    for (var rowIndex = 0; rowIndex < ROW; rowIndex++) {
      years[rowIndex] = [];
      for (var colIndex = 0; colIndex < COL; colIndex++) {
        var year = previousYear + index;
        var content = String(year);
        years[rowIndex][colIndex] = {
          content: content,
          year: year,
          title: content
        };
        index++;
      }
    }
    return years;
  };

  YearPanel.prototype.render = function render() {
    var _this2 = this;

    var props = this.props;
    var value = this.state.value;
    var locale = props.locale;
    var years = this.years();
    var currentYear = value.year();
    var startYear = parseInt(currentYear / 10, 10) * 10;
    var endYear = startYear + 9;
    var prefixCls = this.prefixCls;

    var yeasEls = years.map(function (row, index) {
      var tds = row.map(function (yearData) {
        var _classNameMap;

        var classNameMap = (_classNameMap = {}, _classNameMap[prefixCls + '-cell'] = 1, _classNameMap[prefixCls + '-selected-cell'] = yearData.year === currentYear, _classNameMap[prefixCls + '-last-decade-cell'] = yearData.year < startYear, _classNameMap[prefixCls + '-next-decade-cell'] = yearData.year > endYear, _classNameMap);
        var clickHandler = void 0;
        if (yearData.year < startYear) {
          clickHandler = _this2.previousDecade;
        } else if (yearData.year > endYear) {
          clickHandler = _this2.nextDecade;
        } else {
          clickHandler = chooseYear.bind(_this2, yearData.year);
        }
        return _react2['default'].createElement(
          'td',
          {
            role: 'gridcell',
            title: yearData.title,
            key: yearData.content,
            onClick: clickHandler,
            className: (0, _classnames2['default'])(classNameMap)
          },
          _react2['default'].createElement(
            'a',
            {
              className: prefixCls + '-year'
            },
            yearData.content
          )
        );
      });
      return _react2['default'].createElement(
        'tr',
        { key: index, role: 'row' },
        tds
      );
    });

    return _react2['default'].createElement(
      'div',
      { className: this.prefixCls },
      _react2['default'].createElement(
        'div',
        null,
        _react2['default'].createElement(
          'div',
          { className: prefixCls + '-header' },
          _react2['default'].createElement('a', {
            className: prefixCls + '-prev-decade-btn',
            role: 'button',
            onClick: this.previousDecade,
            title: locale.previousDecade
          }),
          _react2['default'].createElement(
            'a',
            {
              className: prefixCls + '-decade-select',
              role: 'button',
              onClick: props.onDecadePanelShow,
              title: locale.decadeSelect
            },
            _react2['default'].createElement(
              'span',
              { className: prefixCls + '-decade-select-content' },
              startYear,
              '-',
              endYear
            ),
            _react2['default'].createElement(
              'span',
              { className: prefixCls + '-decade-select-arrow' },
              'x'
            )
          ),
          _react2['default'].createElement('a', {
            className: prefixCls + '-next-decade-btn',
            role: 'button',
            onClick: this.nextDecade,
            title: locale.nextDecade
          })
        ),
        _react2['default'].createElement(
          'div',
          { className: prefixCls + '-body' },
          _react2['default'].createElement(
            'table',
            { className: prefixCls + '-table', cellSpacing: '0', role: 'grid' },
            _react2['default'].createElement(
              'tbody',
              { className: prefixCls + '-tbody' },
              yeasEls
            )
          )
        )
      )
    );
  };

  return YearPanel;
}(_react2['default'].Component);

exports['default'] = YearPanel;


YearPanel.propTypes = {
  rootPrefixCls: _propTypes2['default'].string,
  value: _propTypes2['default'].object,
  defaultValue: _propTypes2['default'].object
};

YearPanel.defaultProps = {
  onSelect: function onSelect() {}
};
module.exports = exports['default'];

exports.__esModule = true;

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(37);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _classnames = __webpack_require__(25);

var _classnames2 = _interopRequireDefault(_classnames);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var ROW = 4;
var COL = 3;


function goYear(direction) {
  var next = this.state.value.clone();
  next.add(direction, 'years');
  this.setState({
    value: next
  });
}

function chooseDecade(year, event) {
  var next = this.state.value.clone();
  next.year(year);
  next.month(this.state.value.month());
  this.props.onSelect(next);
  event.preventDefault();
}

var DecadePanel = function (_React$Component) {
  (0, _inherits3['default'])(DecadePanel, _React$Component);

  function DecadePanel(props) {
    (0, _classCallCheck3['default'])(this, DecadePanel);

    var _this = (0, _possibleConstructorReturn3['default'])(this, _React$Component.call(this, props));

    _this.state = {
      value: props.value || props.defaultValue
    };

    // bind methods
    _this.prefixCls = props.rootPrefixCls + '-decade-panel';
    _this.nextCentury = goYear.bind(_this, 100);
    _this.previousCentury = goYear.bind(_this, -100);
    return _this;
  }

  DecadePanel.prototype.render = function render() {
    var _this2 = this;

    var value = this.state.value;
    var locale = this.props.locale;
    var currentYear = value.year();
    var startYear = parseInt(currentYear / 100, 10) * 100;
    var preYear = startYear - 10;
    var endYear = startYear + 99;
    var decades = [];
    var index = 0;
    var prefixCls = this.prefixCls;

    for (var rowIndex = 0; rowIndex < ROW; rowIndex++) {
      decades[rowIndex] = [];
      for (var colIndex = 0; colIndex < COL; colIndex++) {
        var startDecade = preYear + index * 10;
        var endDecade = preYear + index * 10 + 9;
        decades[rowIndex][colIndex] = {
          startDecade: startDecade,
          endDecade: endDecade
        };
        index++;
      }
    }

    var decadesEls = decades.map(function (row, decadeIndex) {
      var tds = row.map(function (decadeData) {
        var _classNameMap;

        var dStartDecade = decadeData.startDecade;
        var dEndDecade = decadeData.endDecade;
        var isLast = dStartDecade < startYear;
        var isNext = dEndDecade > endYear;
        var classNameMap = (_classNameMap = {}, _classNameMap[prefixCls + '-cell'] = 1, _classNameMap[prefixCls + '-selected-cell'] = dStartDecade <= currentYear && currentYear <= dEndDecade, _classNameMap[prefixCls + '-last-century-cell'] = isLast, _classNameMap[prefixCls + '-next-century-cell'] = isNext, _classNameMap);
        var content = dStartDecade + '-' + dEndDecade;
        var clickHandler = void 0;
        if (isLast) {
          clickHandler = _this2.previousCentury;
        } else if (isNext) {
          clickHandler = _this2.nextCentury;
        } else {
          clickHandler = chooseDecade.bind(_this2, dStartDecade);
        }
        return _react2['default'].createElement(
          'td',
          {
            key: dStartDecade,
            onClick: clickHandler,
            role: 'gridcell',
            className: (0, _classnames2['default'])(classNameMap)
          },
          _react2['default'].createElement(
            'a',
            {
              className: prefixCls + '-decade'
            },
            content
          )
        );
      });
      return _react2['default'].createElement(
        'tr',
        { key: decadeIndex, role: 'row' },
        tds
      );
    });

    return _react2['default'].createElement(
      'div',
      { className: this.prefixCls },
      _react2['default'].createElement(
        'div',
        { className: prefixCls + '-header' },
        _react2['default'].createElement('a', {
          className: prefixCls + '-prev-century-btn',
          role: 'button',
          onClick: this.previousCentury,
          title: locale.previousCentury
        }),
        _react2['default'].createElement(
          'div',
          { className: prefixCls + '-century' },
          startYear,
          '-',
          endYear
        ),
        _react2['default'].createElement('a', {
          className: prefixCls + '-next-century-btn',
          role: 'button',
          onClick: this.nextCentury,
          title: locale.nextCentury
        })
      ),
      _react2['default'].createElement(
        'div',
        { className: prefixCls + '-body' },
        _react2['default'].createElement(
          'table',
          { className: prefixCls + '-table', cellSpacing: '0', role: 'grid' },
          _react2['default'].createElement(
            'tbody',
            { className: prefixCls + '-tbody' },
            decadesEls
          )
        )
      )
    );
  };

  return DecadePanel;
}(_react2['default'].Component);

exports['default'] = DecadePanel;


DecadePanel.propTypes = {
  locale: _propTypes2['default'].object,
  value: _propTypes2['default'].object,
  defaultValue: _propTypes2['default'].object,
  rootPrefixCls: _propTypes2['default'].string
};

DecadePanel.defaultProps = {
  onSelect: function onSelect() {}
};
module.exports = exports['default'];

exports.__esModule = true;

var _extends2 = __webpack_require__(19);

var _extends3 = _interopRequireDefault(_extends2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _reactDom = __webpack_require__(40);

var _reactDom2 = _interopRequireDefault(_reactDom);

var _createReactClass = __webpack_require__(75);

var _createReactClass2 = _interopRequireDefault(_createReactClass);

var _propTypes = __webpack_require__(37);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _mapSelf = __webpack_require__(639);

var _mapSelf2 = _interopRequireDefault(_mapSelf);

var _classnames = __webpack_require__(25);

var _classnames2 = _interopRequireDefault(_classnames);

var _TodayButton = __webpack_require__(640);

var _TodayButton2 = _interopRequireDefault(_TodayButton);

var _OkButton = __webpack_require__(641);

var _OkButton2 = _interopRequireDefault(_OkButton);

var _TimePickerButton = __webpack_require__(642);

var _TimePickerButton2 = _interopRequireDefault(_TimePickerButton);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var CalendarFooter = (0, _createReactClass2['default'])({
  displayName: 'CalendarFooter',

  propTypes: {
    prefixCls: _propTypes2['default'].string,
    showDateInput: _propTypes2['default'].bool,
    disabledTime: _propTypes2['default'].any,
    timePicker: _propTypes2['default'].element,
    selectedValue: _propTypes2['default'].any,
    showOk: _propTypes2['default'].bool,
    onSelect: _propTypes2['default'].func,
    value: _propTypes2['default'].object,
    renderFooter: _propTypes2['default'].func,
    defaultValue: _propTypes2['default'].object
  },

  onSelect: function onSelect(value) {
    this.props.onSelect(value);
  },
  getRootDOMNode: function getRootDOMNode() {
    return _reactDom2['default'].findDOMNode(this);
  },
  render: function render() {
    var props = this.props;
    var value = props.value,
        prefixCls = props.prefixCls,
        showOk = props.showOk,
        timePicker = props.timePicker,
        renderFooter = props.renderFooter;

    var footerEl = null;
    var extraFooter = renderFooter();
    if (props.showToday || timePicker || extraFooter) {
      var _cx;

      var nowEl = void 0;
      if (props.showToday) {
        nowEl = _react2['default'].createElement(_TodayButton2['default'], (0, _extends3['default'])({}, props, { value: value }));
      }
      var okBtn = void 0;
      if (showOk === true || showOk !== false && !!props.timePicker) {
        okBtn = _react2['default'].createElement(_OkButton2['default'], props);
      }
      var timePickerBtn = void 0;
      if (!!props.timePicker) {
        timePickerBtn = _react2['default'].createElement(_TimePickerButton2['default'], props);
      }

      var footerBtn = void 0;
      if (nowEl || timePickerBtn || okBtn) {
        footerBtn = _react2['default'].createElement(
          'span',
          { className: prefixCls + '-footer-btn' },
          (0, _mapSelf2['default'])([nowEl, timePickerBtn, okBtn])
        );
      }
      var cls = (0, _classnames2['default'])((_cx = {}, _cx[prefixCls + '-footer'] = true, _cx[prefixCls + '-footer-show-ok'] = okBtn, _cx));
      footerEl = _react2['default'].createElement(
        'div',
        { className: cls },
        extraFooter,
        footerBtn
      );
    }
    return footerEl;
  }
});

exports['default'] = CalendarFooter;
module.exports = exports['default'];

exports.__esModule = true;
exports['default'] = TodayButton;

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _util = __webpack_require__(304);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function TodayButton(_ref) {
  var prefixCls = _ref.prefixCls,
      locale = _ref.locale,
      value = _ref.value,
      timePicker = _ref.timePicker,
      disabled = _ref.disabled,
      disabledDate = _ref.disabledDate,
      onToday = _ref.onToday,
      text = _ref.text;

  var localeNow = (!text && timePicker ? locale.now : text) || locale.today;
  var disabledToday = disabledDate && !(0, _util.isAllowedDate)((0, _util.getTodayTime)(value), disabledDate);
  var isDisabled = disabledToday || disabled;
  var disabledTodayClass = isDisabled ? prefixCls + '-today-btn-disabled' : '';
  return _react2['default'].createElement(
    'a',
    {
      className: prefixCls + '-today-btn ' + disabledTodayClass,
      role: 'button',
      onClick: isDisabled ? null : onToday,
      title: (0, _util.getTodayTimeStr)(value)
    },
    localeNow
  );
}
module.exports = exports['default'];

exports.__esModule = true;
exports["default"] = OkButton;

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

function OkButton(_ref) {
  var prefixCls = _ref.prefixCls,
      locale = _ref.locale,
      okDisabled = _ref.okDisabled,
      onOk = _ref.onOk;

  var className = prefixCls + "-ok-btn";
  if (okDisabled) {
    className += " " + prefixCls + "-ok-btn-disabled";
  }
  return _react2["default"].createElement(
    "a",
    {
      className: className,
      role: "button",
      onClick: okDisabled ? null : onOk
    },
    locale.ok
  );
}
module.exports = exports['default'];

exports.__esModule = true;
exports['default'] = TimePickerButton;

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _classnames2 = __webpack_require__(25);

var _classnames3 = _interopRequireDefault(_classnames2);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function TimePickerButton(_ref) {
  var _classnames;

  var prefixCls = _ref.prefixCls,
      locale = _ref.locale,
      showTimePicker = _ref.showTimePicker,
      onOpenTimePicker = _ref.onOpenTimePicker,
      onCloseTimePicker = _ref.onCloseTimePicker,
      timePickerDisabled = _ref.timePickerDisabled;

  var className = (0, _classnames3['default'])((_classnames = {}, _classnames[prefixCls + '-time-picker-btn'] = true, _classnames[prefixCls + '-time-picker-btn-disabled'] = timePickerDisabled, _classnames));
  var onClick = null;
  if (!timePickerDisabled) {
    onClick = showTimePicker ? onCloseTimePicker : onOpenTimePicker;
  }
  return _react2['default'].createElement(
    'a',
    {
      className: className,
      role: 'button',
      onClick: onClick
    },
    showTimePicker ? locale.dateSelect : locale.timeSelect
  );
}
module.exports = exports['default'];

exports.__esModule = true;

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(37);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _classnames = __webpack_require__(25);

var _classnames2 = _interopRequireDefault(_classnames);

var _moment = __webpack_require__(23);

var _moment2 = _interopRequireDefault(_moment);

var _index = __webpack_require__(304);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function noop() {}

function getNow() {
  return (0, _moment2['default'])();
}

function getNowByCurrentStateValue(value) {
  var ret = void 0;
  if (value) {
    ret = (0, _index.getTodayTime)(value);
  } else {
    ret = getNow();
  }
  return ret;
}

var CalendarMixin = {
  propTypes: {
    value: _propTypes2['default'].object,
    defaultValue: _propTypes2['default'].object,
    onKeyDown: _propTypes2['default'].func
  },

  getDefaultProps: function getDefaultProps() {
    return {
      onKeyDown: noop
    };
  },
  getInitialState: function getInitialState() {
    var props = this.props;
    var value = props.value || props.defaultValue || getNow();
    return {
      value: value,
      selectedValue: props.selectedValue || props.defaultSelectedValue
    };
  },
  componentWillReceiveProps: function componentWillReceiveProps(nextProps) {
    var value = nextProps.value;
    var selectedValue = nextProps.selectedValue;

    if ('value' in nextProps) {
      value = value || nextProps.defaultValue || getNowByCurrentStateValue(this.state.value);
      this.setState({
        value: value
      });
    }
    if ('selectedValue' in nextProps) {
      this.setState({
        selectedValue: selectedValue
      });
    }
  },
  onSelect: function onSelect(value, cause) {
    if (value) {
      this.setValue(value);
    }
    this.setSelectedValue(value, cause);
  },
  renderRoot: function renderRoot(newProps) {
    var _className;

    var props = this.props;
    var prefixCls = props.prefixCls;

    var className = (_className = {}, _className[prefixCls] = 1, _className[prefixCls + '-hidden'] = !props.visible, _className[props.className] = !!props.className, _className[newProps.className] = !!newProps.className, _className);

    return _react2['default'].createElement(
      'div',
      {
        ref: this.saveRoot,
        className: '' + (0, _classnames2['default'])(className),
        style: this.props.style,
        tabIndex: '0',
        onKeyDown: this.onKeyDown
      },
      newProps.children
    );
  },
  setSelectedValue: function setSelectedValue(selectedValue, cause) {
    // if (this.isAllowedDate(selectedValue)) {
    if (!('selectedValue' in this.props)) {
      this.setState({
        selectedValue: selectedValue
      });
    }
    this.props.onSelect(selectedValue, cause);
    // }
  },
  setValue: function setValue(value) {
    var originalValue = this.state.value;
    if (!('value' in this.props)) {
      this.setState({
        value: value
      });
    }
    if (originalValue && value && !originalValue.isSame(value) || !originalValue && value || originalValue && !value) {
      this.props.onChange(value);
    }
  },
  isAllowedDate: function isAllowedDate(value) {
    var disabledDate = this.props.disabledDate;
    var disabledTime = this.props.disabledTime;
    return (0, _index.isAllowedDate)(value, disabledDate, disabledTime);
  }
};

exports['default'] = CalendarMixin;
module.exports = exports['default'];

exports.__esModule = true;

var _propTypes = __webpack_require__(37);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _en_US = __webpack_require__(651);

var _en_US2 = _interopRequireDefault(_en_US);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function noop() {}

exports['default'] = {
  propTypes: {
    className: _propTypes2['default'].string,
    locale: _propTypes2['default'].object,
    style: _propTypes2['default'].object,
    visible: _propTypes2['default'].bool,
    onSelect: _propTypes2['default'].func,
    prefixCls: _propTypes2['default'].string,
    onChange: _propTypes2['default'].func,
    onOk: _propTypes2['default'].func
  },

  getDefaultProps: function getDefaultProps() {
    return {
      locale: _en_US2['default'],
      style: {},
      visible: true,
      prefixCls: 'rc-calendar',
      className: '',
      onSelect: noop,
      onChange: noop,
      onClear: noop,
      renderFooter: function renderFooter() {
        return null;
      },
      renderSidebar: function renderSidebar() {
        return null;
      }
    };
  },
  shouldComponentUpdate: function shouldComponentUpdate(nextProps) {
    return this.props.visible || nextProps.visible;
  },
  getFormat: function getFormat() {
    var format = this.props.format;
    var _props = this.props,
        locale = _props.locale,
        timePicker = _props.timePicker;

    if (!format) {
      if (timePicker) {
        format = locale.dateTimeFormat;
      } else {
        format = locale.dateFormat;
      }
    }
    return format;
  },
  focus: function focus() {
    if (this.rootInstance) {
      this.rootInstance.focus();
    }
  },
  saveRoot: function saveRoot(root) {
    this.rootInstance = root;
  }
};
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
    value: true
});

var _extends2 = __webpack_require__(19);

var _extends3 = _interopRequireDefault(_extends2);

var _defineProperty2 = __webpack_require__(41);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _createClass2 = __webpack_require__(34);

var _createClass3 = _interopRequireDefault(_createClass2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

exports['default'] = createPicker;

var _react = __webpack_require__(2);

var React = _interopRequireWildcard(_react);

var _moment = __webpack_require__(23);

var moment = _interopRequireWildcard(_moment);

var _reactLifecyclesCompat = __webpack_require__(118);

var _MonthCalendar = __webpack_require__(637);

var _MonthCalendar2 = _interopRequireDefault(_MonthCalendar);

var _Picker = __webpack_require__(501);

var _Picker2 = _interopRequireDefault(_Picker);

var _classnames = __webpack_require__(25);

var _classnames2 = _interopRequireDefault(_classnames);

var _omit = __webpack_require__(182);

var _omit2 = _interopRequireDefault(_omit);

var _icon = __webpack_require__(104);

var _icon2 = _interopRequireDefault(_icon);

var _warning = __webpack_require__(220);

var _warning2 = _interopRequireDefault(_warning);

var _interopDefault = __webpack_require__(405);

var _interopDefault2 = _interopRequireDefault(_interopDefault);

var _getDataOrAriaProps = __webpack_require__(1091);

var _getDataOrAriaProps2 = _interopRequireDefault(_getDataOrAriaProps);

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function createPicker(TheCalendar) {
    var CalenderWrapper = function (_React$Component) {
        (0, _inherits3['default'])(CalenderWrapper, _React$Component);

        function CalenderWrapper(props) {
            (0, _classCallCheck3['default'])(this, CalenderWrapper);

            var _this = (0, _possibleConstructorReturn3['default'])(this, (CalenderWrapper.__proto__ || Object.getPrototypeOf(CalenderWrapper)).call(this, props));

            _this.renderFooter = function () {
                var _this$props = _this.props,
                    prefixCls = _this$props.prefixCls,
                    renderExtraFooter = _this$props.renderExtraFooter;

                return renderExtraFooter ? React.createElement(
                    'div',
                    { className: prefixCls + '-footer-extra' },
                    renderExtraFooter.apply(undefined, arguments)
                ) : null;
            };
            _this.clearSelection = function (e) {
                e.preventDefault();
                e.stopPropagation();
                _this.handleChange(null);
            };
            _this.handleChange = function (value) {
                var props = _this.props;
                if (!('value' in props)) {
                    _this.setState({
                        value: value,
                        showDate: value
                    });
                }
                props.onChange(value, value && value.format(props.format) || '');
            };
            _this.handleCalendarChange = function (value) {
                _this.setState({ showDate: value });
            };
            _this.saveInput = function (node) {
                _this.input = node;
            };
            var value = props.value || props.defaultValue;
            if (value && !(0, _interopDefault2['default'])(moment).isMoment(value)) {
                throw new Error('The value/defaultValue of DatePicker or MonthPicker must be ' + 'a moment object after `antd@2.0`, see: https://u.ant.design/date-picker-value');
            }
            _this.state = {
                value: value,
                showDate: value
            };
            return _this;
        }

        (0, _createClass3['default'])(CalenderWrapper, [{
            key: 'focus',
            value: function focus() {
                this.input.focus();
            }
        }, {
            key: 'blur',
            value: function blur() {
                this.input.blur();
            }
        }, {
            key: 'render',
            value: function render() {
                var _classNames,
                    _this2 = this;

                var _state = this.state,
                    value = _state.value,
                    showDate = _state.showDate;

                var props = (0, _omit2['default'])(this.props, ['onChange']);
                var prefixCls = props.prefixCls,
                    locale = props.locale,
                    localeCode = props.localeCode;

                var placeholder = 'placeholder' in props ? props.placeholder : locale.lang.placeholder;
                var disabledTime = props.showTime ? props.disabledTime : null;
                var calendarClassName = (0, _classnames2['default'])((_classNames = {}, (0, _defineProperty3['default'])(_classNames, prefixCls + '-time', props.showTime), (0, _defineProperty3['default'])(_classNames, prefixCls + '-month', _MonthCalendar2['default'] === TheCalendar), _classNames));
                if (value && localeCode) {
                    value.locale(localeCode);
                }
                var pickerProps = {};
                var calendarProps = {};
                if (props.showTime) {
                    calendarProps = {
                        // fix https://github.com/ant-design/ant-design/issues/1902
                        onSelect: this.handleChange
                    };
                } else {
                    pickerProps = {
                        onChange: this.handleChange
                    };
                }
                if ('mode' in props) {
                    calendarProps.mode = props.mode;
                }
                (0, _warning2['default'])(!('onOK' in props), 'It should be `DatePicker[onOk]` or `MonthPicker[onOk]`, instead of `onOK`!');
                var calendar = React.createElement(TheCalendar, (0, _extends3['default'])({}, calendarProps, { disabledDate: props.disabledDate, disabledTime: disabledTime, locale: locale.lang, timePicker: props.timePicker, defaultValue: props.defaultPickerValue || (0, _interopDefault2['default'])(moment)(), dateInputPlaceholder: placeholder, prefixCls: prefixCls, className: calendarClassName, onOk: props.onOk, dateRender: props.dateRender, format: props.format, showToday: props.showToday, monthCellContentRender: props.monthCellContentRender, renderFooter: this.renderFooter, onPanelChange: props.onPanelChange, onChange: this.handleCalendarChange, value: showDate }));
                var clearIcon = !props.disabled && props.allowClear && value ? React.createElement(_icon2['default'], { type: 'cross-circle', className: prefixCls + '-picker-clear', onClick: this.clearSelection }) : null;
                var dataOrAriaProps = (0, _getDataOrAriaProps2['default'])(props);
                var input = function input(_ref) {
                    var inputValue = _ref.value;
                    return React.createElement(
                        'div',
                        null,
                        React.createElement('input', (0, _extends3['default'])({ ref: _this2.saveInput, disabled: props.disabled, readOnly: true, value: inputValue && inputValue.format(props.format) || '', placeholder: placeholder, className: props.pickerInputClass }, dataOrAriaProps)),
                        clearIcon,
                        React.createElement('span', { className: prefixCls + '-picker-icon' })
                    );
                };
                return React.createElement(
                    'span',
                    { id: props.id, className: (0, _classnames2['default'])(props.className, props.pickerClass), style: props.style, onFocus: props.onFocus, onBlur: props.onBlur, onMouseEnter: props.onMouseEnter, onMouseLeave: props.onMouseLeave },
                    React.createElement(
                        _Picker2['default'],
                        (0, _extends3['default'])({}, props, pickerProps, { calendar: calendar, value: value, prefixCls: prefixCls + '-picker-container', style: props.popupStyle }),
                        input
                    )
                );
            }
        }], [{
            key: 'getDerivedStateFromProps',
            value: function getDerivedStateFromProps(nextProps, prevState) {
                var state = null;
                if ('value' in nextProps) {
                    state = {
                        value: nextProps.value
                    };
                    if (nextProps.value !== prevState.value) {
                        state = (0, _extends3['default'])({}, state, { showDate: nextProps.value });
                    }
                }
                return state;
            }
        }]);
        return CalenderWrapper;
    }(React.Component);

    CalenderWrapper.defaultProps = {
        prefixCls: 'ant-calendar',
        allowClear: true,
        showToday: true
    };
    (0, _reactLifecyclesCompat.polyfill)(CalenderWrapper);
    return CalenderWrapper;
}
module.exports = exports['default'];

exports.__esModule = true;

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _reactDom = __webpack_require__(40);

var _reactDom2 = _interopRequireDefault(_reactDom);

var _createReactClass = __webpack_require__(75);

var _createReactClass2 = _interopRequireDefault(_createReactClass);

var _propTypes = __webpack_require__(37);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _createChainedFunction = __webpack_require__(1089);

var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);

var _KeyCode = __webpack_require__(392);

var _KeyCode2 = _interopRequireDefault(_KeyCode);

var _placements = __webpack_require__(1090);

var _placements2 = _interopRequireDefault(_placements);

var _rcTrigger = __webpack_require__(205);

var _rcTrigger2 = _interopRequireDefault(_rcTrigger);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function noop() {}

function refFn(field, component) {
  this[field] = component;
}

var Picker = (0, _createReactClass2['default'])({
  displayName: 'Picker',

  propTypes: {
    animation: _propTypes2['default'].oneOfType([_propTypes2['default'].func, _propTypes2['default'].string]),
    disabled: _propTypes2['default'].bool,
    transitionName: _propTypes2['default'].string,
    onChange: _propTypes2['default'].func,
    onOpenChange: _propTypes2['default'].func,
    children: _propTypes2['default'].func,
    getCalendarContainer: _propTypes2['default'].func,
    calendar: _propTypes2['default'].element,
    style: _propTypes2['default'].object,
    open: _propTypes2['default'].bool,
    defaultOpen: _propTypes2['default'].bool,
    prefixCls: _propTypes2['default'].string,
    placement: _propTypes2['default'].any,
    value: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].array]),
    defaultValue: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].array]),
    align: _propTypes2['default'].object
  },

  getDefaultProps: function getDefaultProps() {
    return {
      prefixCls: 'rc-calendar-picker',
      style: {},
      align: {},
      placement: 'bottomLeft',
      defaultOpen: false,
      onChange: noop,
      onOpenChange: noop
    };
  },
  getInitialState: function getInitialState() {
    var props = this.props;
    var open = void 0;
    if ('open' in props) {
      open = props.open;
    } else {
      open = props.defaultOpen;
    }
    var value = props.value || props.defaultValue;
    this.saveCalendarRef = refFn.bind(this, 'calendarInstance');
    return {
      open: open,
      value: value
    };
  },
  componentWillReceiveProps: function componentWillReceiveProps(nextProps) {
    var value = nextProps.value,
        open = nextProps.open;

    if ('value' in nextProps) {
      this.setState({
        value: value
      });
    }
    if (open !== undefined) {
      this.setState({
        open: open
      });
    }
  },
  componentDidUpdate: function componentDidUpdate(_, prevState) {
    if (!prevState.open && this.state.open) {
      // setTimeout is for making sure saveCalendarRef happen before focusCalendar
      this.focusTimeout = setTimeout(this.focusCalendar, 0, this);
    }
  },
  componentWillUnmount: function componentWillUnmount() {
    clearTimeout(this.focusTimeout);
  },
  onCalendarKeyDown: function onCalendarKeyDown(event) {
    if (event.keyCode === _KeyCode2['default'].ESC) {
      event.stopPropagation();
      this.close(this.focus);
    }
  },
  onCalendarSelect: function onCalendarSelect(value) {
    var cause = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

    var props = this.props;
    if (!('value' in props)) {
      this.setState({
        value: value
      });
    }
    if (cause.source === 'keyboard' || !props.calendar.props.timePicker && cause.source !== 'dateInput' || cause.source === 'todayButton') {
      this.close(this.focus);
    }
    props.onChange(value);
  },
  onKeyDown: function onKeyDown(event) {
    if (event.keyCode === _KeyCode2['default'].DOWN && !this.state.open) {
      this.open();
      event.preventDefault();
    }
  },
  onCalendarOk: function onCalendarOk() {
    this.close(this.focus);
  },
  onCalendarClear: function onCalendarClear() {
    this.close(this.focus);
  },
  onVisibleChange: function onVisibleChange(open) {
    this.setOpen(open);
  },
  getCalendarElement: function getCalendarElement() {
    var props = this.props;
    var state = this.state;
    var calendarProps = props.calendar.props;
    var value = state.value;

    var defaultValue = value;
    var extraProps = {
      ref: this.saveCalendarRef,
      defaultValue: defaultValue || calendarProps.defaultValue,
      selectedValue: value,
      onKeyDown: this.onCalendarKeyDown,
      onOk: (0, _createChainedFunction2['default'])(calendarProps.onOk, this.onCalendarOk),
      onSelect: (0, _createChainedFunction2['default'])(calendarProps.onSelect, this.onCalendarSelect),
      onClear: (0, _createChainedFunction2['default'])(calendarProps.onClear, this.onCalendarClear)
    };

    return _react2['default'].cloneElement(props.calendar, extraProps);
  },
  setOpen: function setOpen(open, callback) {
    var onOpenChange = this.props.onOpenChange;

    if (this.state.open !== open) {
      if (!('open' in this.props)) {
        this.setState({
          open: open
        }, callback);
      }
      onOpenChange(open);
    }
  },
  open: function open(callback) {
    this.setOpen(true, callback);
  },
  close: function close(callback) {
    this.setOpen(false, callback);
  },
  focus: function focus() {
    if (!this.state.open) {
      _reactDom2['default'].findDOMNode(this).focus();
    }
  },
  focusCalendar: function focusCalendar() {
    if (this.state.open && !!this.calendarInstance) {
      this.calendarInstance.focus();
    }
  },
  render: function render() {
    var props = this.props;
    var prefixCls = props.prefixCls,
        placement = props.placement,
        style = props.style,
        getCalendarContainer = props.getCalendarContainer,
        align = props.align,
        animation = props.animation,
        disabled = props.disabled,
        dropdownClassName = props.dropdownClassName,
        transitionName = props.transitionName,
        children = props.children;

    var state = this.state;
    return _react2['default'].createElement(
      _rcTrigger2['default'],
      {
        popup: this.getCalendarElement(),
        popupAlign: align,
        builtinPlacements: _placements2['default'],
        popupPlacement: placement,
        action: disabled && !state.open ? [] : ['click'],
        destroyPopupOnHide: true,
        getPopupContainer: getCalendarContainer,
        popupStyle: style,
        popupAnimation: animation,
        popupTransitionName: transitionName,
        popupVisible: state.open,
        onPopupVisibleChange: this.onVisibleChange,
        prefixCls: prefixCls,
        popupClassName: dropdownClassName
      },
      _react2['default'].cloneElement(children(state, props), { onKeyDown: this.onKeyDown })
    );
  }
});

exports['default'] = Picker;
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = createChainedFunction;
/**
 * Safe chained function
 *
 * Will only create a new function if needed,
 * otherwise will pass back existing functions or null.
 *
 * @returns {function|null}
 */
function createChainedFunction() {
  var args = [].slice.call(arguments, 0);
  if (args.length === 1) {
    return args[0];
  }

  return function chainedFunction() {
    for (var i = 0; i < args.length; i++) {
      if (args[i] && args[i].apply) {
        args[i].apply(this, arguments);
      }
    }
  };
}
module.exports = exports['default'];

exports.__esModule = true;
var autoAdjustOverflow = {
  adjustX: 1,
  adjustY: 1
};

var targetOffset = [0, 0];

var placements = {
  bottomLeft: {
    points: ['tl', 'tl'],
    overflow: autoAdjustOverflow,
    offset: [0, -3],
    targetOffset: targetOffset
  },
  bottomRight: {
    points: ['tr', 'tr'],
    overflow: autoAdjustOverflow,
    offset: [0, -3],
    targetOffset: targetOffset
  },
  topRight: {
    points: ['br', 'br'],
    overflow: autoAdjustOverflow,
    offset: [0, 3],
    targetOffset: targetOffset
  },
  topLeft: {
    points: ['bl', 'bl'],
    overflow: autoAdjustOverflow,
    offset: [0, 3],
    targetOffset: targetOffset
  }
};

exports['default'] = placements;
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
    value: true
});
exports["default"] = interopDefault;
// https://github.com/moment/moment/issues/3650
function interopDefault(m) {
    return m["default"] || m;
}
module.exports = exports["default"];

Object.defineProperty(exports, "__esModule", {
    value: true
});
exports['default'] = getDataOrAriaProps;
function getDataOrAriaProps(props) {
    return Object.keys(props).reduce(function (prev, key) {
        if ((key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') && key.substr(0, 7) !== 'data-__') {
            prev[key] = props[key];
        }
        return prev;
    }, {});
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(41);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _extends2 = __webpack_require__(19);

var _extends3 = _interopRequireDefault(_extends2);

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _createClass2 = __webpack_require__(34);

var _createClass3 = _interopRequireDefault(_createClass2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

exports['default'] = wrapPicker;

var _react = __webpack_require__(2);

var React = _interopRequireWildcard(_react);

var _Panel = __webpack_require__(644);

var _Panel2 = _interopRequireDefault(_Panel);

var _classnames = __webpack_require__(25);

var _classnames2 = _interopRequireDefault(_classnames);

var _LocaleReceiver = __webpack_require__(237);

var _LocaleReceiver2 = _interopRequireDefault(_LocaleReceiver);

var _timePicker = __webpack_require__(1096);

var _en_US = __webpack_require__(507);

var _en_US2 = _interopRequireDefault(_en_US);

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function getColumns(_ref) {
    var showHour = _ref.showHour,
        showMinute = _ref.showMinute,
        showSecond = _ref.showSecond,
        use12Hours = _ref.use12Hours;

    var column = 0;
    if (showHour) {
        column += 1;
    }
    if (showMinute) {
        column += 1;
    }
    if (showSecond) {
        column += 1;
    }
    if (use12Hours) {
        column += 1;
    }
    return column;
}
function wrapPicker(Picker, defaultFormat) {
    var _a;
    return _a = function (_React$Component) {
        (0, _inherits3['default'])(PickerWrapper, _React$Component);

        function PickerWrapper() {
            (0, _classCallCheck3['default'])(this, PickerWrapper);

            var _this = (0, _possibleConstructorReturn3['default'])(this, (PickerWrapper.__proto__ || Object.getPrototypeOf(PickerWrapper)).apply(this, arguments));

            _this.handleOpenChange = function (open) {
                var onOpenChange = _this.props.onOpenChange;

                onOpenChange(open);
            };
            _this.handleFocus = function (e) {
                var onFocus = _this.props.onFocus;

                if (onFocus) {
                    onFocus(e);
                }
            };
            _this.handleBlur = function (e) {
                var onBlur = _this.props.onBlur;

                if (onBlur) {
                    onBlur(e);
                }
            };
            _this.handleMouseEnter = function (e) {
                var onMouseEnter = _this.props.onMouseEnter;

                if (onMouseEnter) {
                    onMouseEnter(e);
                }
            };
            _this.handleMouseLeave = function (e) {
                var onMouseLeave = _this.props.onMouseLeave;

                if (onMouseLeave) {
                    onMouseLeave(e);
                }
            };
            _this.savePicker = function (node) {
                _this.picker = node;
            };
            _this.getDefaultLocale = function () {
                var result = (0, _extends3['default'])({}, _en_US2['default'], _this.props.locale);
                result.lang = (0, _extends3['default'])({}, result.lang, (_this.props.locale || {}).lang);
                return result;
            };
            _this.renderPicker = function (locale, localeCode) {
                var _classNames2;

                var props = _this.props;
                var prefixCls = props.prefixCls,
                    inputPrefixCls = props.inputPrefixCls;

                var pickerClass = (0, _classnames2['default'])(prefixCls + '-picker', (0, _defineProperty3['default'])({}, prefixCls + '-picker-' + props.size, !!props.size));
                var pickerInputClass = (0, _classnames2['default'])(prefixCls + '-picker-input', inputPrefixCls, (_classNames2 = {}, (0, _defineProperty3['default'])(_classNames2, inputPrefixCls + '-lg', props.size === 'large'), (0, _defineProperty3['default'])(_classNames2, inputPrefixCls + '-sm', props.size === 'small'), (0, _defineProperty3['default'])(_classNames2, inputPrefixCls + '-disabled', props.disabled), _classNames2));
                var timeFormat = props.showTime && props.showTime.format || 'HH:mm:ss';
                var rcTimePickerProps = (0, _extends3['default'])({}, (0, _timePicker.generateShowHourMinuteSecond)(timeFormat), { format: timeFormat, use12Hours: props.showTime && props.showTime.use12Hours });
                var columns = getColumns(rcTimePickerProps);
                var timePickerCls = prefixCls + '-time-picker-column-' + columns;
                var timePicker = props.showTime ? React.createElement(_Panel2['default'], (0, _extends3['default'])({}, rcTimePickerProps, props.showTime, { prefixCls: prefixCls + '-time-picker', className: timePickerCls, placeholder: locale.timePickerLocale.placeholder, transitionName: 'slide-up' })) : null;
                return React.createElement(Picker, (0, _extends3['default'])({}, props, { ref: _this.savePicker, pickerClass: pickerClass, pickerInputClass: pickerInputClass, locale: locale, localeCode: localeCode, timePicker: timePicker, onOpenChange: _this.handleOpenChange, onFocus: _this.handleFocus, onBlur: _this.handleBlur, onMouseEnter: _this.handleMouseEnter, onMouseLeave: _this.handleMouseLeave }));
            };
            return _this;
        }

        (0, _createClass3['default'])(PickerWrapper, [{
            key: 'componentDidMount',
            value: function componentDidMount() {
                var _props = this.props,
                    autoFocus = _props.autoFocus,
                    disabled = _props.disabled;

                if (autoFocus && !disabled) {
                    this.focus();
                }
            }
        }, {
            key: 'focus',
            value: function focus() {
                this.picker.focus();
            }
        }, {
            key: 'blur',
            value: function blur() {
                this.picker.blur();
            }
        }, {
            key: 'render',
            value: function render() {
                return React.createElement(
                    _LocaleReceiver2['default'],
                    { componentName: 'DatePicker', defaultLocale: this.getDefaultLocale },
                    this.renderPicker
                );
            }
        }]);
        return PickerWrapper;
    }(React.Component), _a.defaultProps = {
        format: defaultFormat || 'YYYY-MM-DD',
        transitionName: 'slide-up',
        popupStyle: {},
        onChange: function onChange() {},
        onOk: function onOk() {},
        onOpenChange: function onOpenChange() {},

        locale: {},
        prefixCls: 'ant-calendar',
        inputPrefixCls: 'ant-input'
    }, _a;
}
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _defineProperty2 = __webpack_require__(41);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _createClass2 = __webpack_require__(34);

var _createClass3 = _interopRequireDefault(_createClass2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _Header = __webpack_require__(1093);

var _Header2 = _interopRequireDefault(_Header);

var _Combobox = __webpack_require__(1094);

var _Combobox2 = _interopRequireDefault(_Combobox);

var _moment = __webpack_require__(23);

var _moment2 = _interopRequireDefault(_moment);

var _classnames = __webpack_require__(25);

var _classnames2 = _interopRequireDefault(_classnames);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function noop() {}

function generateOptions(length, disabledOptions, hideDisabledOptions) {
  var step = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;

  var arr = [];
  for (var value = 0; value < length; value += step) {
    if (!disabledOptions || disabledOptions.indexOf(value) < 0 || !hideDisabledOptions) {
      arr.push(value);
    }
  }
  return arr;
}

var Panel = function (_Component) {
  (0, _inherits3['default'])(Panel, _Component);

  function Panel(props) {
    (0, _classCallCheck3['default'])(this, Panel);

    var _this = (0, _possibleConstructorReturn3['default'])(this, (Panel.__proto__ || Object.getPrototypeOf(Panel)).call(this, props));

    _this.onChange = function (newValue) {
      _this.setState({ value: newValue });
      _this.props.onChange(newValue);
    };

    _this.onCurrentSelectPanelChange = function (currentSelectPanel) {
      _this.setState({ currentSelectPanel: currentSelectPanel });
    };

    _this.disabledHours = function () {
      var _this$props = _this.props,
          use12Hours = _this$props.use12Hours,
          disabledHours = _this$props.disabledHours;

      var disabledOptions = disabledHours();
      if (use12Hours && Array.isArray(disabledOptions)) {
        if (_this.isAM()) {
          disabledOptions = disabledOptions.filter(function (h) {
            return h < 12;
          }).map(function (h) {
            return h === 0 ? 12 : h;
          });
        } else {
          disabledOptions = disabledOptions.map(function (h) {
            return h === 12 ? 12 : h - 12;
          });
        }
      }
      return disabledOptions;
    };

    _this.state = {
      value: props.value,
      selectionRange: []
    };
    return _this;
  }

  (0, _createClass3['default'])(Panel, [{
    key: 'componentWillReceiveProps',
    value: function componentWillReceiveProps(nextProps) {
      var value = nextProps.value;
      if (value) {
        this.setState({
          value: value
        });
      }
    }
  }, {
    key: 'close',


    // https://github.com/ant-design/ant-design/issues/5829
    value: function close() {
      this.props.onEsc();
    }
  }, {
    key: 'isAM',
    value: function isAM() {
      var value = this.state.value || this.props.defaultOpenValue;
      return value.hour() >= 0 && value.hour() < 12;
    }
  }, {
    key: 'render',
    value: function render() {
      var _classNames;

      var _props = this.props,
          prefixCls = _props.prefixCls,
          className = _props.className,
          placeholder = _props.placeholder,
          disabledMinutes = _props.disabledMinutes,
          disabledSeconds = _props.disabledSeconds,
          hideDisabledOptions = _props.hideDisabledOptions,
          allowEmpty = _props.allowEmpty,
          showHour = _props.showHour,
          showMinute = _props.showMinute,
          showSecond = _props.showSecond,
          format = _props.format,
          defaultOpenValue = _props.defaultOpenValue,
          clearText = _props.clearText,
          onEsc = _props.onEsc,
          addon = _props.addon,
          use12Hours = _props.use12Hours,
          onClear = _props.onClear,
          focusOnOpen = _props.focusOnOpen,
          onKeyDown = _props.onKeyDown,
          hourStep = _props.hourStep,
          minuteStep = _props.minuteStep,
          secondStep = _props.secondStep,
          inputReadOnly = _props.inputReadOnly;
      var _state = this.state,
          value = _state.value,
          currentSelectPanel = _state.currentSelectPanel;

      var disabledHourOptions = this.disabledHours();
      var disabledMinuteOptions = disabledMinutes(value ? value.hour() : null);
      var disabledSecondOptions = disabledSeconds(value ? value.hour() : null, value ? value.minute() : null);
      var hourOptions = generateOptions(24, disabledHourOptions, hideDisabledOptions, hourStep);
      var minuteOptions = generateOptions(60, disabledMinuteOptions, hideDisabledOptions, minuteStep);
      var secondOptions = generateOptions(60, disabledSecondOptions, hideDisabledOptions, secondStep);

      return _react2['default'].createElement(
        'div',
        { className: (0, _classnames2['default'])((_classNames = {}, (0, _defineProperty3['default'])(_classNames, prefixCls + '-inner', true), (0, _defineProperty3['default'])(_classNames, className, !!className), _classNames)) },
        _react2['default'].createElement(_Header2['default'], {
          clearText: clearText,
          prefixCls: prefixCls,
          defaultOpenValue: defaultOpenValue,
          value: value,
          currentSelectPanel: currentSelectPanel,
          onEsc: onEsc,
          format: format,
          placeholder: placeholder,
          hourOptions: hourOptions,
          minuteOptions: minuteOptions,
          secondOptions: secondOptions,
          disabledHours: this.disabledHours,
          disabledMinutes: disabledMinutes,
          disabledSeconds: disabledSeconds,
          onChange: this.onChange,
          onClear: onClear,
          allowEmpty: allowEmpty,
          focusOnOpen: focusOnOpen,
          onKeyDown: onKeyDown,
          inputReadOnly: inputReadOnly
        }),
        _react2['default'].createElement(_Combobox2['default'], {
          prefixCls: prefixCls,
          value: value,
          defaultOpenValue: defaultOpenValue,
          format: format,
          onChange: this.onChange,
          showHour: showHour,
          showMinute: showMinute,
          showSecond: showSecond,
          hourOptions: hourOptions,
          minuteOptions: minuteOptions,
          secondOptions: secondOptions,
          disabledHours: this.disabledHours,
          disabledMinutes: disabledMinutes,
          disabledSeconds: disabledSeconds,
          onCurrentSelectPanelChange: this.onCurrentSelectPanelChange,
          use12Hours: use12Hours,
          isAM: this.isAM()
        }),
        addon(this)
      );
    }
  }]);
  return Panel;
}(_react.Component);

Panel.propTypes = {
  clearText: _propTypes2['default'].string,
  prefixCls: _propTypes2['default'].string,
  className: _propTypes2['default'].string,
  defaultOpenValue: _propTypes2['default'].object,
  value: _propTypes2['default'].object,
  placeholder: _propTypes2['default'].string,
  format: _propTypes2['default'].string,
  inputReadOnly: _propTypes2['default'].bool,
  disabledHours: _propTypes2['default'].func,
  disabledMinutes: _propTypes2['default'].func,
  disabledSeconds: _propTypes2['default'].func,
  hideDisabledOptions: _propTypes2['default'].bool,
  onChange: _propTypes2['default'].func,
  onEsc: _propTypes2['default'].func,
  allowEmpty: _propTypes2['default'].bool,
  showHour: _propTypes2['default'].bool,
  showMinute: _propTypes2['default'].bool,
  showSecond: _propTypes2['default'].bool,
  onClear: _propTypes2['default'].func,
  use12Hours: _propTypes2['default'].bool,
  hourStep: _propTypes2['default'].number,
  minuteStep: _propTypes2['default'].number,
  secondStep: _propTypes2['default'].number,
  addon: _propTypes2['default'].func,
  focusOnOpen: _propTypes2['default'].bool,
  onKeyDown: _propTypes2['default'].func
};
Panel.defaultProps = {
  prefixCls: 'rc-time-picker-panel',
  onChange: noop,
  onClear: noop,
  disabledHours: noop,
  disabledMinutes: noop,
  disabledSeconds: noop,
  defaultOpenValue: (0, _moment2['default'])(),
  use12Hours: false,
  addon: noop,
  onKeyDown: noop,
  inputReadOnly: false
};
exports['default'] = Panel;
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _createClass2 = __webpack_require__(34);

var _createClass3 = _interopRequireDefault(_createClass2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _moment = __webpack_require__(23);

var _moment2 = _interopRequireDefault(_moment);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var Header = function (_Component) {
  (0, _inherits3['default'])(Header, _Component);

  function Header(props) {
    (0, _classCallCheck3['default'])(this, Header);

    var _this = (0, _possibleConstructorReturn3['default'])(this, (Header.__proto__ || Object.getPrototypeOf(Header)).call(this, props));

    _initialiseProps.call(_this);

    var value = props.value,
        format = props.format;

    _this.state = {
      str: value && value.format(format) || '',
      invalid: false
    };
    return _this;
  }

  (0, _createClass3['default'])(Header, [{
    key: 'componentDidMount',
    value: function componentDidMount() {
      var _this2 = this;

      if (this.props.focusOnOpen) {
        // Wait one frame for the panel to be positioned before focusing
        var requestAnimationFrame = window.requestAnimationFrame || window.setTimeout;
        requestAnimationFrame(function () {
          _this2.refs.input.focus();
          _this2.refs.input.select();
        });
      }
    }
  }, {
    key: 'componentWillReceiveProps',
    value: function componentWillReceiveProps(nextProps) {
      var value = nextProps.value,
          format = nextProps.format;

      this.setState({
        str: value && value.format(format) || '',
        invalid: false
      });
    }
  }, {
    key: 'getClearButton',
    value: function getClearButton() {
      var _props = this.props,
          prefixCls = _props.prefixCls,
          allowEmpty = _props.allowEmpty;

      if (!allowEmpty) {
        return null;
      }
      return _react2['default'].createElement('a', {
        className: prefixCls + '-clear-btn',
        role: 'button',
        title: this.props.clearText,
        onMouseDown: this.onClear
      });
    }
  }, {
    key: 'getProtoValue',
    value: function getProtoValue() {
      return this.props.value || this.props.defaultOpenValue;
    }
  }, {
    key: 'getInput',
    value: function getInput() {
      var _props2 = this.props,
          prefixCls = _props2.prefixCls,
          placeholder = _props2.placeholder,
          inputReadOnly = _props2.inputReadOnly;
      var _state = this.state,
          invalid = _state.invalid,
          str = _state.str;

      var invalidClass = invalid ? prefixCls + '-input-invalid' : '';
      return _react2['default'].createElement('input', {
        className: prefixCls + '-input  ' + invalidClass,
        ref: 'input',
        onKeyDown: this.onKeyDown,
        value: str,
        placeholder: placeholder,
        onChange: this.onInputChange,
        readOnly: !!inputReadOnly
      });
    }
  }, {
    key: 'render',
    value: function render() {
      var prefixCls = this.props.prefixCls;

      return _react2['default'].createElement(
        'div',
        { className: prefixCls + '-input-wrap' },
        this.getInput(),
        this.getClearButton()
      );
    }
  }]);
  return Header;
}(_react.Component);

Header.propTypes = {
  format: _propTypes2['default'].string,
  prefixCls: _propTypes2['default'].string,
  disabledDate: _propTypes2['default'].func,
  placeholder: _propTypes2['default'].string,
  clearText: _propTypes2['default'].string,
  value: _propTypes2['default'].object,
  inputReadOnly: _propTypes2['default'].bool,
  hourOptions: _propTypes2['default'].array,
  minuteOptions: _propTypes2['default'].array,
  secondOptions: _propTypes2['default'].array,
  disabledHours: _propTypes2['default'].func,
  disabledMinutes: _propTypes2['default'].func,
  disabledSeconds: _propTypes2['default'].func,
  onChange: _propTypes2['default'].func,
  onClear: _propTypes2['default'].func,
  onEsc: _propTypes2['default'].func,
  allowEmpty: _propTypes2['default'].bool,
  defaultOpenValue: _propTypes2['default'].object,
  currentSelectPanel: _propTypes2['default'].string,
  focusOnOpen: _propTypes2['default'].bool,
  onKeyDown: _propTypes2['default'].func
};
Header.defaultProps = {
  inputReadOnly: false
};

var _initialiseProps = function _initialiseProps() {
  var _this3 = this;

  this.onInputChange = function (event) {
    var str = event.target.value;
    _this3.setState({
      str: str
    });
    var _props3 = _this3.props,
        format = _props3.format,
        hourOptions = _props3.hourOptions,
        minuteOptions = _props3.minuteOptions,
        secondOptions = _props3.secondOptions,
        disabledHours = _props3.disabledHours,
        disabledMinutes = _props3.disabledMinutes,
        disabledSeconds = _props3.disabledSeconds,
        onChange = _props3.onChange,
        allowEmpty = _props3.allowEmpty;


    if (str) {
      var originalValue = _this3.props.value;
      var value = _this3.getProtoValue().clone();
      var parsed = (0, _moment2['default'])(str, format, true);
      if (!parsed.isValid()) {
        _this3.setState({
          invalid: true
        });
        return;
      }
      value.hour(parsed.hour()).minute(parsed.minute()).second(parsed.second());

      // if time value not allowed, response warning.
      if (hourOptions.indexOf(value.hour()) < 0 || minuteOptions.indexOf(value.minute()) < 0 || secondOptions.indexOf(value.second()) < 0) {
        _this3.setState({
          invalid: true
        });
        return;
      }

      // if time value is disabled, response warning.
      var disabledHourOptions = disabledHours();
      var disabledMinuteOptions = disabledMinutes(value.hour());
      var disabledSecondOptions = disabledSeconds(value.hour(), value.minute());
      if (disabledHourOptions && disabledHourOptions.indexOf(value.hour()) >= 0 || disabledMinuteOptions && disabledMinuteOptions.indexOf(value.minute()) >= 0 || disabledSecondOptions && disabledSecondOptions.indexOf(value.second()) >= 0) {
        _this3.setState({
          invalid: true
        });
        return;
      }

      if (originalValue) {
        if (originalValue.hour() !== value.hour() || originalValue.minute() !== value.minute() || originalValue.second() !== value.second()) {
          // keep other fields for rc-calendar
          var changedValue = originalValue.clone();
          changedValue.hour(value.hour());
          changedValue.minute(value.minute());
          changedValue.second(value.second());
          onChange(changedValue);
        }
      } else if (originalValue !== value) {
        onChange(value);
      }
    } else if (allowEmpty) {
      onChange(null);
    } else {
      _this3.setState({
        invalid: true
      });
      return;
    }

    _this3.setState({
      invalid: false
    });
  };

  this.onKeyDown = function (e) {
    var _props4 = _this3.props,
        onEsc = _props4.onEsc,
        onKeyDown = _props4.onKeyDown;

    if (e.keyCode === 27) {
      onEsc();
    }

    onKeyDown(e);
  };

  this.onClear = function () {
    _this3.setState({ str: '' });
    _this3.props.onClear();
  };
};

exports['default'] = Header;
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _createClass2 = __webpack_require__(34);

var _createClass3 = _interopRequireDefault(_createClass2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _Select = __webpack_require__(1095);

var _Select2 = _interopRequireDefault(_Select);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var formatOption = function formatOption(option, disabledOptions) {
  var value = '' + option;
  if (option < 10) {
    value = '0' + option;
  }

  var disabled = false;
  if (disabledOptions && disabledOptions.indexOf(option) >= 0) {
    disabled = true;
  }

  return {
    value: value,
    disabled: disabled
  };
};

var Combobox = function (_Component) {
  (0, _inherits3['default'])(Combobox, _Component);

  function Combobox() {
    var _ref;

    var _temp, _this, _ret;

    (0, _classCallCheck3['default'])(this, Combobox);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = (0, _possibleConstructorReturn3['default'])(this, (_ref = Combobox.__proto__ || Object.getPrototypeOf(Combobox)).call.apply(_ref, [this].concat(args))), _this), _this.onItemChange = function (type, itemValue) {
      var _this$props = _this.props,
          onChange = _this$props.onChange,
          defaultOpenValue = _this$props.defaultOpenValue,
          use12Hours = _this$props.use12Hours;

      var value = (_this.props.value || defaultOpenValue).clone();

      if (type === 'hour') {
        if (use12Hours) {
          if (_this.props.isAM) {
            value.hour(+itemValue % 12);
          } else {
            value.hour(+itemValue % 12 + 12);
          }
        } else {
          value.hour(+itemValue);
        }
      } else if (type === 'minute') {
        value.minute(+itemValue);
      } else if (type === 'ampm') {
        var ampm = itemValue.toUpperCase();
        if (use12Hours) {
          if (ampm === 'PM' && value.hour() < 12) {
            value.hour(value.hour() % 12 + 12);
          }

          if (ampm === 'AM') {
            if (value.hour() >= 12) {
              value.hour(value.hour() - 12);
            }
          }
        }
      } else {
        value.second(+itemValue);
      }
      onChange(value);
    }, _this.onEnterSelectPanel = function (range) {
      _this.props.onCurrentSelectPanelChange(range);
    }, _temp), (0, _possibleConstructorReturn3['default'])(_this, _ret);
  }

  (0, _createClass3['default'])(Combobox, [{
    key: 'getHourSelect',
    value: function getHourSelect(hour) {
      var _props = this.props,
          prefixCls = _props.prefixCls,
          hourOptions = _props.hourOptions,
          disabledHours = _props.disabledHours,
          showHour = _props.showHour,
          use12Hours = _props.use12Hours;

      if (!showHour) {
        return null;
      }
      var disabledOptions = disabledHours();
      var hourOptionsAdj = void 0;
      var hourAdj = void 0;
      if (use12Hours) {
        hourOptionsAdj = [12].concat(hourOptions.filter(function (h) {
          return h < 12 && h > 0;
        }));
        hourAdj = hour % 12 || 12;
      } else {
        hourOptionsAdj = hourOptions;
        hourAdj = hour;
      }

      return _react2['default'].createElement(_Select2['default'], {
        prefixCls: prefixCls,
        options: hourOptionsAdj.map(function (option) {
          return formatOption(option, disabledOptions);
        }),
        selectedIndex: hourOptionsAdj.indexOf(hourAdj),
        type: 'hour',
        onSelect: this.onItemChange,
        onMouseEnter: this.onEnterSelectPanel.bind(this, 'hour')
      });
    }
  }, {
    key: 'getMinuteSelect',
    value: function getMinuteSelect(minute) {
      var _props2 = this.props,
          prefixCls = _props2.prefixCls,
          minuteOptions = _props2.minuteOptions,
          disabledMinutes = _props2.disabledMinutes,
          defaultOpenValue = _props2.defaultOpenValue,
          showMinute = _props2.showMinute;

      if (!showMinute) {
        return null;
      }
      var value = this.props.value || defaultOpenValue;
      var disabledOptions = disabledMinutes(value.hour());

      return _react2['default'].createElement(_Select2['default'], {
        prefixCls: prefixCls,
        options: minuteOptions.map(function (option) {
          return formatOption(option, disabledOptions);
        }),
        selectedIndex: minuteOptions.indexOf(minute),
        type: 'minute',
        onSelect: this.onItemChange,
        onMouseEnter: this.onEnterSelectPanel.bind(this, 'minute')
      });
    }
  }, {
    key: 'getSecondSelect',
    value: function getSecondSelect(second) {
      var _props3 = this.props,
          prefixCls = _props3.prefixCls,
          secondOptions = _props3.secondOptions,
          disabledSeconds = _props3.disabledSeconds,
          showSecond = _props3.showSecond,
          defaultOpenValue = _props3.defaultOpenValue;

      if (!showSecond) {
        return null;
      }
      var value = this.props.value || defaultOpenValue;
      var disabledOptions = disabledSeconds(value.hour(), value.minute());

      return _react2['default'].createElement(_Select2['default'], {
        prefixCls: prefixCls,
        options: secondOptions.map(function (option) {
          return formatOption(option, disabledOptions);
        }),
        selectedIndex: secondOptions.indexOf(second),
        type: 'second',
        onSelect: this.onItemChange,
        onMouseEnter: this.onEnterSelectPanel.bind(this, 'second')
      });
    }
  }, {
    key: 'getAMPMSelect',
    value: function getAMPMSelect() {
      var _props4 = this.props,
          prefixCls = _props4.prefixCls,
          use12Hours = _props4.use12Hours,
          format = _props4.format;

      if (!use12Hours) {
        return null;
      }

      var AMPMOptions = ['am', 'pm'] // If format has A char, then we should uppercase AM/PM
      .map(function (c) {
        return format.match(/\sA/) ? c.toUpperCase() : c;
      }).map(function (c) {
        return { value: c };
      });

      var selected = this.props.isAM ? 0 : 1;

      return _react2['default'].createElement(_Select2['default'], {
        prefixCls: prefixCls,
        options: AMPMOptions,
        selectedIndex: selected,
        type: 'ampm',
        onSelect: this.onItemChange,
        onMouseEnter: this.onEnterSelectPanel.bind(this, 'ampm')
      });
    }
  }, {
    key: 'render',
    value: function render() {
      var _props5 = this.props,
          prefixCls = _props5.prefixCls,
          defaultOpenValue = _props5.defaultOpenValue;

      var value = this.props.value || defaultOpenValue;
      return _react2['default'].createElement(
        'div',
        { className: prefixCls + '-combobox' },
        this.getHourSelect(value.hour()),
        this.getMinuteSelect(value.minute()),
        this.getSecondSelect(value.second()),
        this.getAMPMSelect(value.hour())
      );
    }
  }]);
  return Combobox;
}(_react.Component);

Combobox.propTypes = {
  format: _propTypes2['default'].string,
  defaultOpenValue: _propTypes2['default'].object,
  prefixCls: _propTypes2['default'].string,
  value: _propTypes2['default'].object,
  onChange: _propTypes2['default'].func,
  showHour: _propTypes2['default'].bool,
  showMinute: _propTypes2['default'].bool,
  showSecond: _propTypes2['default'].bool,
  hourOptions: _propTypes2['default'].array,
  minuteOptions: _propTypes2['default'].array,
  secondOptions: _propTypes2['default'].array,
  disabledHours: _propTypes2['default'].func,
  disabledMinutes: _propTypes2['default'].func,
  disabledSeconds: _propTypes2['default'].func,
  onCurrentSelectPanelChange: _propTypes2['default'].func,
  use12Hours: _propTypes2['default'].bool,
  isAM: _propTypes2['default'].bool
};
exports['default'] = Combobox;
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _defineProperty2 = __webpack_require__(41);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _createClass2 = __webpack_require__(34);

var _createClass3 = _interopRequireDefault(_createClass2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _reactDom = __webpack_require__(40);

var _reactDom2 = _interopRequireDefault(_reactDom);

var _classnames3 = __webpack_require__(25);

var _classnames4 = _interopRequireDefault(_classnames3);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var scrollTo = function scrollTo(element, to, duration) {
  var requestAnimationFrame = window.requestAnimationFrame || function requestAnimationFrameTimeout() {
    return setTimeout(arguments[0], 10);
  };
  // jump to target if duration zero
  if (duration <= 0) {
    element.scrollTop = to;
    return;
  }
  var difference = to - element.scrollTop;
  var perTick = difference / duration * 10;

  requestAnimationFrame(function () {
    element.scrollTop = element.scrollTop + perTick;
    if (element.scrollTop === to) return;
    scrollTo(element, to, duration - 10);
  });
};

var Select = function (_Component) {
  (0, _inherits3['default'])(Select, _Component);

  function Select() {
    var _ref;

    var _temp, _this, _ret;

    (0, _classCallCheck3['default'])(this, Select);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = (0, _possibleConstructorReturn3['default'])(this, (_ref = Select.__proto__ || Object.getPrototypeOf(Select)).call.apply(_ref, [this].concat(args))), _this), _this.state = {
      active: false
    }, _this.onSelect = function (value) {
      var _this$props = _this.props,
          onSelect = _this$props.onSelect,
          type = _this$props.type;

      onSelect(type, value);
    }, _this.handleMouseEnter = function (e) {
      _this.setState({ active: true });
      _this.props.onMouseEnter(e);
    }, _this.handleMouseLeave = function () {
      _this.setState({ active: false });
    }, _this.saveList = function (node) {
      _this.list = node;
    }, _temp), (0, _possibleConstructorReturn3['default'])(_this, _ret);
  }

  (0, _createClass3['default'])(Select, [{
    key: 'componentDidMount',
    value: function componentDidMount() {
      // jump to selected option
      this.scrollToSelected(0);
    }
  }, {
    key: 'componentDidUpdate',
    value: function componentDidUpdate(prevProps) {
      // smooth scroll to selected option
      if (prevProps.selectedIndex !== this.props.selectedIndex) {
        this.scrollToSelected(120);
      }
    }
  }, {
    key: 'getOptions',
    value: function getOptions() {
      var _this2 = this;

      var _props = this.props,
          options = _props.options,
          selectedIndex = _props.selectedIndex,
          prefixCls = _props.prefixCls;

      return options.map(function (item, index) {
        var _classnames;

        var cls = (0, _classnames4['default'])((_classnames = {}, (0, _defineProperty3['default'])(_classnames, prefixCls + '-select-option-selected', selectedIndex === index), (0, _defineProperty3['default'])(_classnames, prefixCls + '-select-option-disabled', item.disabled), _classnames));
        var onclick = null;
        if (!item.disabled) {
          onclick = _this2.onSelect.bind(_this2, item.value);
        }
        return _react2['default'].createElement(
          'li',
          {
            className: cls,
            key: index,
            onClick: onclick,
            disabled: item.disabled
          },
          item.value
        );
      });
    }
  }, {
    key: 'scrollToSelected',
    value: function scrollToSelected(duration) {
      // move to selected item
      var select = _reactDom2['default'].findDOMNode(this);
      var list = _reactDom2['default'].findDOMNode(this.list);
      if (!list) {
        return;
      }
      var index = this.props.selectedIndex;
      if (index < 0) {
        index = 0;
      }
      var topOption = list.children[index];
      var to = topOption.offsetTop;
      scrollTo(select, to, duration);
    }
  }, {
    key: 'render',
    value: function render() {
      var _classnames2;

      if (this.props.options.length === 0) {
        return null;
      }

      var prefixCls = this.props.prefixCls;

      var cls = (0, _classnames4['default'])((_classnames2 = {}, (0, _defineProperty3['default'])(_classnames2, prefixCls + '-select', 1), (0, _defineProperty3['default'])(_classnames2, prefixCls + '-select-active', this.state.active), _classnames2));

      return _react2['default'].createElement(
        'div',
        {
          className: cls,
          onMouseEnter: this.handleMouseEnter,
          onMouseLeave: this.handleMouseLeave
        },
        _react2['default'].createElement(
          'ul',
          { ref: this.saveList },
          this.getOptions()
        )
      );
    }
  }]);
  return Select;
}(_react.Component);

Select.propTypes = {
  prefixCls: _propTypes2['default'].string,
  options: _propTypes2['default'].array,
  selectedIndex: _propTypes2['default'].number,
  type: _propTypes2['default'].string,
  onSelect: _propTypes2['default'].func,
  onMouseEnter: _propTypes2['default'].func
};
exports['default'] = Select;
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
    value: true
});

var _defineProperty2 = __webpack_require__(41);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _extends2 = __webpack_require__(19);

var _extends3 = _interopRequireDefault(_extends2);

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _createClass2 = __webpack_require__(34);

var _createClass3 = _interopRequireDefault(_createClass2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

exports.generateShowHourMinuteSecond = generateShowHourMinuteSecond;

var _react = __webpack_require__(2);

var React = _interopRequireWildcard(_react);

var _moment = __webpack_require__(23);

var moment = _interopRequireWildcard(_moment);

var _reactLifecyclesCompat = __webpack_require__(118);

var _TimePicker = __webpack_require__(1097);

var _TimePicker2 = _interopRequireDefault(_TimePicker);

var _classnames = __webpack_require__(25);

var _classnames2 = _interopRequireDefault(_classnames);

var _LocaleReceiver = __webpack_require__(237);

var _LocaleReceiver2 = _interopRequireDefault(_LocaleReceiver);

var _en_US = __webpack_require__(508);

var _en_US2 = _interopRequireDefault(_en_US);

var _interopDefault = __webpack_require__(405);

var _interopDefault2 = _interopRequireDefault(_interopDefault);

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function generateShowHourMinuteSecond(format) {
    // Ref: http://momentjs.com/docs/#/parsing/string-format/
    return {
        showHour: format.indexOf('H') > -1 || format.indexOf('h') > -1 || format.indexOf('k') > -1,
        showMinute: format.indexOf('m') > -1,
        showSecond: format.indexOf('s') > -1
    };
}

var TimePicker = function (_React$Component) {
    (0, _inherits3['default'])(TimePicker, _React$Component);

    function TimePicker(props) {
        (0, _classCallCheck3['default'])(this, TimePicker);

        var _this = (0, _possibleConstructorReturn3['default'])(this, (TimePicker.__proto__ || Object.getPrototypeOf(TimePicker)).call(this, props));

        _this.handleChange = function (value) {
            if (!('value' in _this.props)) {
                _this.setState({ value: value });
            }
            var _this$props = _this.props,
                onChange = _this$props.onChange,
                _this$props$format = _this$props.format,
                format = _this$props$format === undefined ? 'HH:mm:ss' : _this$props$format;

            if (onChange) {
                onChange(value, value && value.format(format) || '');
            }
        };
        _this.handleOpenClose = function (_ref) {
            var open = _ref.open;
            var onOpenChange = _this.props.onOpenChange;

            if (onOpenChange) {
                onOpenChange(open);
            }
        };
        _this.saveTimePicker = function (timePickerRef) {
            _this.timePickerRef = timePickerRef;
        };
        _this.renderTimePicker = function (locale) {
            var props = (0, _extends3['default'])({}, _this.props);
            delete props.defaultValue;
            var format = _this.getDefaultFormat();
            var className = (0, _classnames2['default'])(props.className, (0, _defineProperty3['default'])({}, props.prefixCls + '-' + props.size, !!props.size));
            var addon = function addon(panel) {
                return props.addon ? React.createElement(
                    'div',
                    { className: props.prefixCls + '-panel-addon' },
                    props.addon(panel)
                ) : null;
            };
            return React.createElement(_TimePicker2['default'], (0, _extends3['default'])({}, generateShowHourMinuteSecond(format), props, { ref: _this.saveTimePicker, format: format, className: className, value: _this.state.value, placeholder: props.placeholder === undefined ? locale.placeholder : props.placeholder, onChange: _this.handleChange, onOpen: _this.handleOpenClose, onClose: _this.handleOpenClose, addon: addon }));
        };
        var value = props.value || props.defaultValue;
        if (value && !(0, _interopDefault2['default'])(moment).isMoment(value)) {
            throw new Error('The value/defaultValue of TimePicker must be a moment object after `antd@2.0`, ' + 'see: https://u.ant.design/time-picker-value');
        }
        _this.state = {
            value: value
        };
        return _this;
    }

    (0, _createClass3['default'])(TimePicker, [{
        key: 'focus',
        value: function focus() {
            this.timePickerRef.focus();
        }
    }, {
        key: 'blur',
        value: function blur() {
            this.timePickerRef.blur();
        }
    }, {
        key: 'getDefaultFormat',
        value: function getDefaultFormat() {
            var _props = this.props,
                format = _props.format,
                use12Hours = _props.use12Hours;

            if (format) {
                return format;
            } else if (use12Hours) {
                return 'h:mm:ss a';
            }
            return 'HH:mm:ss';
        }
    }, {
        key: 'render',
        value: function render() {
            return React.createElement(
                _LocaleReceiver2['default'],
                { componentName: 'TimePicker', defaultLocale: _en_US2['default'] },
                this.renderTimePicker
            );
        }
    }], [{
        key: 'getDerivedStateFromProps',
        value: function getDerivedStateFromProps(nextProps) {
            if ('value' in nextProps) {
                return { value: nextProps.value };
            }
            return null;
        }
    }]);
    return TimePicker;
}(React.Component);

TimePicker.defaultProps = {
    prefixCls: 'ant-time-picker',
    align: {
        offset: [0, -2]
    },
    disabled: false,
    disabledHours: undefined,
    disabledMinutes: undefined,
    disabledSeconds: undefined,
    hideDisabledOptions: false,
    placement: 'bottomLeft',
    transitionName: 'slide-up',
    focusOnOpen: true
};
(0, _reactLifecyclesCompat.polyfill)(TimePicker);
exports['default'] = TimePicker;

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _createClass2 = __webpack_require__(34);

var _createClass3 = _interopRequireDefault(_createClass2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(3);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _rcTrigger = __webpack_require__(205);

var _rcTrigger2 = _interopRequireDefault(_rcTrigger);

var _Panel = __webpack_require__(644);

var _Panel2 = _interopRequireDefault(_Panel);

var _placements = __webpack_require__(1098);

var _placements2 = _interopRequireDefault(_placements);

var _moment = __webpack_require__(23);

var _moment2 = _interopRequireDefault(_moment);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function noop() {}

function refFn(field, component) {
  this[field] = component;
}

var Picker = function (_Component) {
  (0, _inherits3['default'])(Picker, _Component);

  function Picker(props) {
    (0, _classCallCheck3['default'])(this, Picker);

    var _this = (0, _possibleConstructorReturn3['default'])(this, (Picker.__proto__ || Object.getPrototypeOf(Picker)).call(this, props));

    _initialiseProps.call(_this);

    _this.saveInputRef = refFn.bind(_this, 'picker');
    _this.savePanelRef = refFn.bind(_this, 'panelInstance');
    var defaultOpen = props.defaultOpen,
        defaultValue = props.defaultValue,
        _props$open = props.open,
        open = _props$open === undefined ? defaultOpen : _props$open,
        _props$value = props.value,
        value = _props$value === undefined ? defaultValue : _props$value;

    _this.state = {
      open: open,
      value: value
    };
    return _this;
  }

  (0, _createClass3['default'])(Picker, [{
    key: 'componentWillReceiveProps',
    value: function componentWillReceiveProps(nextProps) {
      var value = nextProps.value,
          open = nextProps.open;

      if ('value' in nextProps) {
        this.setState({
          value: value
        });
      }
      if (open !== undefined) {
        this.setState({ open: open });
      }
    }
  }, {
    key: 'setValue',
    value: function setValue(value) {
      if (!('value' in this.props)) {
        this.setState({
          value: value
        });
      }
      this.props.onChange(value);
    }
  }, {
    key: 'getFormat',
    value: function getFormat() {
      var _props = this.props,
          format = _props.format,
          showHour = _props.showHour,
          showMinute = _props.showMinute,
          showSecond = _props.showSecond,
          use12Hours = _props.use12Hours;

      if (format) {
        return format;
      }

      if (use12Hours) {
        var fmtString = [showHour ? 'h' : '', showMinute ? 'mm' : '', showSecond ? 'ss' : ''].filter(function (item) {
          return !!item;
        }).join(':');

        return fmtString.concat(' a');
      }

      return [showHour ? 'HH' : '', showMinute ? 'mm' : '', showSecond ? 'ss' : ''].filter(function (item) {
        return !!item;
      }).join(':');
    }
  }, {
    key: 'getPanelElement',
    value: function getPanelElement() {
      var _props2 = this.props,
          prefixCls = _props2.prefixCls,
          placeholder = _props2.placeholder,
          disabledHours = _props2.disabledHours,
          disabledMinutes = _props2.disabledMinutes,
          disabledSeconds = _props2.disabledSeconds,
          hideDisabledOptions = _props2.hideDisabledOptions,
          inputReadOnly = _props2.inputReadOnly,
          allowEmpty = _props2.allowEmpty,
          showHour = _props2.showHour,
          showMinute = _props2.showMinute,
          showSecond = _props2.showSecond,
          defaultOpenValue = _props2.defaultOpenValue,
          clearText = _props2.clearText,
          addon = _props2.addon,
          use12Hours = _props2.use12Hours,
          focusOnOpen = _props2.focusOnOpen,
          onKeyDown = _props2.onKeyDown,
          hourStep = _props2.hourStep,
          minuteStep = _props2.minuteStep,
          secondStep = _props2.secondStep;

      return _react2['default'].createElement(_Panel2['default'], {
        clearText: clearText,
        prefixCls: prefixCls + '-panel',
        ref: this.savePanelRef,
        value: this.state.value,
        inputReadOnly: inputReadOnly,
        onChange: this.onPanelChange,
        onClear: this.onPanelClear,
        defaultOpenValue: defaultOpenValue,
        showHour: showHour,
        showMinute: showMinute,
        showSecond: showSecond,
        onEsc: this.onEsc,
        allowEmpty: allowEmpty,
        format: this.getFormat(),
        placeholder: placeholder,
        disabledHours: disabledHours,
        disabledMinutes: disabledMinutes,
        disabledSeconds: disabledSeconds,
        hideDisabledOptions: hideDisabledOptions,
        use12Hours: use12Hours,
        hourStep: hourStep,
        minuteStep: minuteStep,
        secondStep: secondStep,
        addon: addon,
        focusOnOpen: focusOnOpen,
        onKeyDown: onKeyDown
      });
    }
  }, {
    key: 'getPopupClassName',
    value: function getPopupClassName() {
      var _props3 = this.props,
          showHour = _props3.showHour,
          showMinute = _props3.showMinute,
          showSecond = _props3.showSecond,
          use12Hours = _props3.use12Hours,
          prefixCls = _props3.prefixCls;

      var popupClassName = this.props.popupClassName;
      // Keep it for old compatibility
      if ((!showHour || !showMinute || !showSecond) && !use12Hours) {
        popupClassName += ' ' + prefixCls + '-panel-narrow';
      }
      var selectColumnCount = 0;
      if (showHour) {
        selectColumnCount += 1;
      }
      if (showMinute) {
        selectColumnCount += 1;
      }
      if (showSecond) {
        selectColumnCount += 1;
      }
      if (use12Hours) {
        selectColumnCount += 1;
      }
      popupClassName += ' ' + prefixCls + '-panel-column-' + selectColumnCount;
      return popupClassName;
    }
  }, {
    key: 'setOpen',
    value: function setOpen(open) {
      var _props4 = this.props,
          onOpen = _props4.onOpen,
          onClose = _props4.onClose;

      if (this.state.open !== open) {
        if (!('open' in this.props)) {
          this.setState({ open: open });
        }
        if (open) {
          onOpen({ open: open });
        } else {
          onClose({ open: open });
        }
      }
    }
  }, {
    key: 'focus',
    value: function focus() {
      this.picker.focus();
    }
  }, {
    key: 'blur',
    value: function blur() {
      this.picker.blur();
    }
  }, {
    key: 'render',
    value: function render() {
      var _props5 = this.props,
          prefixCls = _props5.prefixCls,
          placeholder = _props5.placeholder,
          placement = _props5.placement,
          align = _props5.align,
          disabled = _props5.disabled,
          transitionName = _props5.transitionName,
          style = _props5.style,
          className = _props5.className,
          getPopupContainer = _props5.getPopupContainer,
          name = _props5.name,
          autoComplete = _props5.autoComplete,
          onFocus = _props5.onFocus,
          onBlur = _props5.onBlur,
          autoFocus = _props5.autoFocus,
          inputReadOnly = _props5.inputReadOnly;
      var _state = this.state,
          open = _state.open,
          value = _state.value;

      var popupClassName = this.getPopupClassName();
      return _react2['default'].createElement(
        _rcTrigger2['default'],
        {
          prefixCls: prefixCls + '-panel',
          popupClassName: popupClassName,
          popup: this.getPanelElement(),
          popupAlign: align,
          builtinPlacements: _placements2['default'],
          popupPlacement: placement,
          action: disabled ? [] : ['click'],
          destroyPopupOnHide: true,
          getPopupContainer: getPopupContainer,
          popupTransitionName: transitionName,
          popupVisible: open,
          onPopupVisibleChange: this.onVisibleChange
        },
        _react2['default'].createElement(
          'span',
          { className: prefixCls + ' ' + className, style: style },
          _react2['default'].createElement('input', {
            className: prefixCls + '-input',
            ref: this.saveInputRef,
            type: 'text',
            placeholder: placeholder,
            name: name,
            onKeyDown: this.onKeyDown,
            disabled: disabled,
            value: value && value.format(this.getFormat()) || '',
            autoComplete: autoComplete,
            onFocus: onFocus,
            onBlur: onBlur,
            autoFocus: autoFocus,
            onChange: noop,
            readOnly: !!inputReadOnly
          }),
          _react2['default'].createElement('span', { className: prefixCls + '-icon' })
        )
      );
    }
  }]);
  return Picker;
}(_react.Component);

Picker.propTypes = {
  prefixCls: _propTypes2['default'].string,
  clearText: _propTypes2['default'].string,
  value: _propTypes2['default'].object,
  defaultOpenValue: _propTypes2['default'].object,
  inputReadOnly: _propTypes2['default'].bool,
  disabled: _propTypes2['default'].bool,
  allowEmpty: _propTypes2['default'].bool,
  defaultValue: _propTypes2['default'].object,
  open: _propTypes2['default'].bool,
  defaultOpen: _propTypes2['default'].bool,
  align: _propTypes2['default'].object,
  placement: _propTypes2['default'].any,
  transitionName: _propTypes2['default'].string,
  getPopupContainer: _propTypes2['default'].func,
  placeholder: _propTypes2['default'].string,
  format: _propTypes2['default'].string,
  showHour: _propTypes2['default'].bool,
  showMinute: _propTypes2['default'].bool,
  showSecond: _propTypes2['default'].bool,
  style: _propTypes2['default'].object,
  className: _propTypes2['default'].string,
  popupClassName: _propTypes2['default'].string,
  disabledHours: _propTypes2['default'].func,
  disabledMinutes: _propTypes2['default'].func,
  disabledSeconds: _propTypes2['default'].func,
  hideDisabledOptions: _propTypes2['default'].bool,
  onChange: _propTypes2['default'].func,
  onOpen: _propTypes2['default'].func,
  onClose: _propTypes2['default'].func,
  onFocus: _propTypes2['default'].func,
  onBlur: _propTypes2['default'].func,
  addon: _propTypes2['default'].func,
  name: _propTypes2['default'].string,
  autoComplete: _propTypes2['default'].string,
  use12Hours: _propTypes2['default'].bool,
  hourStep: _propTypes2['default'].number,
  minuteStep: _propTypes2['default'].number,
  secondStep: _propTypes2['default'].number,
  focusOnOpen: _propTypes2['default'].bool,
  onKeyDown: _propTypes2['default'].func,
  autoFocus: _propTypes2['default'].bool
};
Picker.defaultProps = {
  clearText: 'clear',
  prefixCls: 'rc-time-picker',
  defaultOpen: false,
  inputReadOnly: false,
  style: {},
  className: '',
  popupClassName: '',
  align: {},
  defaultOpenValue: (0, _moment2['default'])(),
  allowEmpty: true,
  showHour: true,
  showMinute: true,
  showSecond: true,
  disabledHours: noop,
  disabledMinutes: noop,
  disabledSeconds: noop,
  hideDisabledOptions: false,
  placement: 'bottomLeft',
  onChange: noop,
  onOpen: noop,
  onClose: noop,
  onFocus: noop,
  onBlur: noop,
  addon: noop,
  use12Hours: false,
  focusOnOpen: false,
  onKeyDown: noop
};

var _initialiseProps = function _initialiseProps() {
  var _this2 = this;

  this.onPanelChange = function (value) {
    _this2.setValue(value);
  };

  this.onPanelClear = function () {
    _this2.setValue(null);
    _this2.setOpen(false);
  };

  this.onVisibleChange = function (open) {
    _this2.setOpen(open);
  };

  this.onEsc = function () {
    _this2.setOpen(false);
    _this2.focus();
  };

  this.onKeyDown = function (e) {
    if (e.keyCode === 40) {
      _this2.setOpen(true);
    }
  };
};

exports['default'] = Picker;
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
  value: true
});
var autoAdjustOverflow = {
  adjustX: 1,
  adjustY: 1
};

var targetOffset = [0, 0];

var placements = {
  bottomLeft: {
    points: ['tl', 'tl'],
    overflow: autoAdjustOverflow,
    offset: [0, -3],
    targetOffset: targetOffset
  },
  bottomRight: {
    points: ['tr', 'tr'],
    overflow: autoAdjustOverflow,
    offset: [0, -3],
    targetOffset: targetOffset
  },
  topRight: {
    points: ['br', 'br'],
    overflow: autoAdjustOverflow,
    offset: [0, 3],
    targetOffset: targetOffset
  },
  topLeft: {
    points: ['bl', 'bl'],
    overflow: autoAdjustOverflow,
    offset: [0, 3],
    targetOffset: targetOffset
  }
};

exports['default'] = placements;
module.exports = exports['default'];

Object.defineProperty(exports, "__esModule", {
    value: true
});

var _extends2 = __webpack_require__(19);

var _extends3 = _interopRequireDefault(_extends2);

var _defineProperty2 = __webpack_require__(41);

var _defineProperty3 = _interopRequireDefault(_defineProperty2);

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _createClass2 = __webpack_require__(34);

var _createClass3 = _interopRequireDefault(_createClass2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _slicedToArray2 = __webpack_require__(393);

var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);

var _react = __webpack_require__(2);

var React = _interopRequireWildcard(_react);

var _moment = __webpack_require__(23);

var moment = _interopRequireWildcard(_moment);

var _reactLifecyclesCompat = __webpack_require__(118);

var _RangeCalendar = __webpack_require__(1100);

var _RangeCalendar2 = _interopRequireDefault(_RangeCalendar);

var _Picker = __webpack_require__(501);

var _Picker2 = _interopRequireDefault(_Picker);

var _classnames = __webpack_require__(25);

var _classnames2 = _interopRequireDefault(_classnames);

var _shallowequal = __webpack_require__(166);

var _shallowequal2 = _interopRequireDefault(_shallowequal);

var _icon = __webpack_require__(104);

var _icon2 = _interopRequireDefault(_icon);

var _tag = __webpack_require__(130);

var _tag2 = _interopRequireDefault(_tag);

var _warning = __webpack_require__(220);

var _warning2 = _interopRequireDefault(_warning);

var _interopDefault = __webpack_require__(405);

var _interopDefault2 = _interopRequireDefault(_interopDefault);

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function getShowDateFromValue(value) {
    var _value = (0, _slicedToArray3['default'])(value, 2),
        start = _value[0],
        end = _value[1];
    // value could be an empty array, then we should not reset showDate


    if (!start && !end) {
        return;
    }
    var newEnd = end && end.isSame(start, 'month') ? end.clone().add(1, 'month') : end;
    return [start, newEnd];
} /* tslint:disable jsx-no-multiline-js */

function formatValue(value, format) {
    return value && value.format(format) || '';
}
function pickerValueAdapter(value) {
    if (!value) {
        return;
    }
    if (Array.isArray(value)) {
        return value;
    }
    return [value, value.clone().add(1, 'month')];
}
function isEmptyArray(arr) {
    if (Array.isArray(arr)) {
        return arr.length === 0 || arr.every(function (i) {
            return !i;
        });
    }
    return false;
}
function fixLocale(value, localeCode) {
    if (!localeCode) {
        return;
    }
    if (!value || value.length === 0) {
        return;
    }
    if (value[0]) {
        value[0].locale(localeCode);
    }
    if (value[1]) {
        value[1].locale(localeCode);
    }
}

var RangePicker = function (_React$Component) {
    (0, _inherits3['default'])(RangePicker, _React$Component);

    function RangePicker(props) {
        (0, _classCallCheck3['default'])(this, RangePicker);

        var _this = (0, _possibleConstructorReturn3['default'])(this, (RangePicker.__proto__ || Object.getPrototypeOf(RangePicker)).call(this, props));

        _this.clearSelection = function (e) {
            e.preventDefault();
            e.stopPropagation();
            _this.setState({ value: [] });
            _this.handleChange([]);
        };
        _this.clearHoverValue = function () {
            return _this.setState({ hoverValue: [] });
        };
        _this.handleChange = function (value) {
            var props = _this.props;
            if (!('value' in props)) {
                _this.setState(function (_ref) {
                    var showDate = _ref.showDate;
                    return {
                        value: value,
                        showDate: getShowDateFromValue(value) || showDate
                    };
                });
            }
            props.onChange(value, [formatValue(value[0], props.format), formatValue(value[1], props.format)]);
        };
        _this.handleOpenChange = function (open) {
            if (!('open' in _this.props)) {
                _this.setState({ open: open });
            }
            if (open === false) {
                _this.clearHoverValue();
            }
            var onOpenChange = _this.props.onOpenChange;

            if (onOpenChange) {
                onOpenChange(open);
            }
        };
        _this.handleShowDateChange = function (showDate) {
            return _this.setState({ showDate: showDate });
        };
        _this.handleHoverChange = function (hoverValue) {
            return _this.setState({ hoverValue: hoverValue });
        };
        _this.handleRangeMouseLeave = function () {
            if (_this.state.open) {
                _this.clearHoverValue();
            }
        };
        _this.handleCalendarInputSelect = function (value) {
            if (!value[0]) {
                return;
            }
            _this.setState(function (_ref2) {
                var showDate = _ref2.showDate;
                return {
                    value: value,
                    showDate: getShowDateFromValue(value) || showDate
                };
            });
        };
        _this.handleRangeClick = function (value) {
            if (typeof value === 'function') {
                value = value();
            }
            _this.setValue(value, true);
            var onOk = _this.props.onOk;

            if (onOk) {
                onOk(value);
            }
        };
        _this.savePicker = function (node) {
            _this.picker = node;
        };
        _this.renderFooter = function () {
            var _this$props = _this.props,
                prefixCls = _this$props.prefixCls,
                ranges = _this$props.ranges,
                renderExtraFooter = _this$props.renderExtraFooter,
                tagPrefixCls = _this$props.tagPrefixCls;

            if (!ranges && !renderExtraFooter) {
                return null;
            }
            var customFooter = renderExtraFooter ? React.createElement(
                'div',
                { className: prefixCls + '-footer-extra', key: 'extra' },
                renderExtraFooter.apply(undefined, arguments)
            ) : null;
            var operations = Object.keys(ranges || {}).map(function (range) {
                var value = ranges[range];
                return React.createElement(
                    _tag2['default'],
                    { key: range, prefixCls: tagPrefixCls, color: 'blue', onClick: function onClick() {
                            return _this.handleRangeClick(value);
                        }, onMouseEnter: function onMouseEnter() {
                            return _this.setState({ hoverValue: value });
                        }, onMouseLeave: _this.handleRangeMouseLeave },
                    range
                );
            });
            var rangeNode = React.createElement(
                'div',
                { className: prefixCls + '-footer-extra ' + prefixCls + '-range-quick-selector', key: 'range' },
                operations
            );
            return [rangeNode, customFooter];
        };
        var value = props.value || props.defaultValue || [];
        if (value[0] && !(0, _interopDefault2['default'])(moment).isMoment(value[0]) || value[1] && !(0, _interopDefault2['default'])(moment).isMoment(value[1])) {
            throw new Error('The value/defaultValue of RangePicker must be a moment object array after `antd@2.0`, ' + 'see: https://u.ant.design/date-picker-value');
        }
        var pickerValue = !value || isEmptyArray(value) ? props.defaultPickerValue : value;
        _this.state = {
            value: value,
            showDate: pickerValueAdapter(pickerValue || (0, _interopDefault2['default'])(moment)()),
            open: props.open,
            hoverValue: []
        };
        return _this;
    }

    (0, _createClass3['default'])(RangePicker, [{
        key: 'setValue',
        value: function setValue(value, hidePanel) {
            this.handleChange(value);
            if ((hidePanel || !this.props.showTime) && !('open' in this.props)) {
                this.setState({ open: false });
            }
        }
    }, {
        key: 'focus',
        value: function focus() {
            this.picker.focus();
        }
    }, {
        key: 'blur',
        value: function blur() {
            this.picker.blur();
        }
    }, {
        key: 'render',
        value: function render() {
            var _classNames,
                _this2 = this;

            var state = this.state,
                props = this.props;
            var value = state.value,
                showDate = state.showDate,
                hoverValue = state.hoverValue,
                open = state.open;
            var prefixCls = props.prefixCls,
                popupStyle = props.popupStyle,
                style = props.style,
                disabledDate = props.disabledDate,
                disabledTime = props.disabledTime,
                showTime = props.showTime,
                showToday = props.showToday,
                ranges = props.ranges,
                onOk = props.onOk,
                locale = props.locale,
                localeCode = props.localeCode,
                format = props.format,
                dateRender = props.dateRender,
                onCalendarChange = props.onCalendarChange;

            fixLocale(value, localeCode);
            fixLocale(showDate, localeCode);
            (0, _warning2['default'])(!('onOK' in props), 'It should be `RangePicker[onOk]`, instead of `onOK`!');
            var calendarClassName = (0, _classnames2['default'])((_classNames = {}, (0, _defineProperty3['default'])(_classNames, prefixCls + '-time', showTime), (0, _defineProperty3['default'])(_classNames, prefixCls + '-range-with-ranges', ranges), _classNames));
            // 需要选择时间时，点击 ok 时才触发 onChange
            var pickerChangeHandler = {
                onChange: this.handleChange
            };
            var calendarProps = {
                onOk: this.handleChange
            };
            if (props.timePicker) {
                pickerChangeHandler.onChange = function (changedValue) {
                    return _this2.handleChange(changedValue);
                };
            } else {
                calendarProps = {};
            }
            if ('mode' in props) {
                calendarProps.mode = props.mode;
            }
            var startPlaceholder = 'placeholder' in props ? props.placeholder[0] : locale.lang.rangePlaceholder[0];
            var endPlaceholder = 'placeholder' in props ? props.placeholder[1] : locale.lang.rangePlaceholder[1];
            var calendar = React.createElement(_RangeCalendar2['default'], (0, _extends3['default'])({}, calendarProps, { onChange: onCalendarChange, format: format, prefixCls: prefixCls, className: calendarClassName, renderFooter: this.renderFooter, timePicker: props.timePicker, disabledDate: disabledDate, disabledTime: disabledTime, dateInputPlaceholder: [startPlaceholder, endPlaceholder], locale: locale.lang, onOk: onOk, dateRender: dateRender, value: showDate, onValueChange: this.handleShowDateChange, hoverValue: hoverValue, onHoverChange: this.handleHoverChange, onPanelChange: props.onPanelChange, showToday: showToday, onInputSelect: this.handleCalendarInputSelect }));
            // default width for showTime
            var pickerStyle = {};
            if (props.showTime) {
                pickerStyle.width = style && style.width || 350;
            }
            var clearIcon = !props.disabled && props.allowClear && value && (value[0] || value[1]) ? React.createElement(_icon2['default'], { type: 'cross-circle', className: prefixCls + '-picker-clear', onClick: this.clearSelection }) : null;
            var input = function input(_ref3) {
                var inputValue = _ref3.value;

                var start = inputValue[0];
                var end = inputValue[1];
                return React.createElement(
                    'span',
                    { className: props.pickerInputClass },
                    React.createElement('input', { disabled: props.disabled, readOnly: true, value: start && start.format(props.format) || '', placeholder: startPlaceholder, className: prefixCls + '-range-picker-input', tabIndex: -1 }),
                    React.createElement(
                        'span',
                        { className: prefixCls + '-range-picker-separator' },
                        ' ~ '
                    ),
                    React.createElement('input', { disabled: props.disabled, readOnly: true, value: end && end.format(props.format) || '', placeholder: endPlaceholder, className: prefixCls + '-range-picker-input', tabIndex: -1 }),
                    clearIcon,
                    React.createElement('span', { className: prefixCls + '-picker-icon' })
                );
            };
            return React.createElement(
                'span',
                { ref: this.savePicker, id: props.id, className: (0, _classnames2['default'])(props.className, props.pickerClass), style: (0, _extends3['default'])({}, style, pickerStyle), tabIndex: props.disabled ? -1 : 0, onFocus: props.onFocus, onBlur: props.onBlur, onMouseEnter: props.onMouseEnter, onMouseLeave: props.onMouseLeave },
                React.createElement(
                    _Picker2['default'],
                    (0, _extends3['default'])({}, props, pickerChangeHandler, { calendar: calendar, value: value, open: open, onOpenChange: this.handleOpenChange, prefixCls: prefixCls + '-picker-container', style: popupStyle }),
                    input
                )
            );
        }
    }], [{
        key: 'getDerivedStateFromProps',
        value: function getDerivedStateFromProps(nextProps, prevState) {
            var state = null;
            if ('value' in nextProps) {
                var value = nextProps.value || [];
                state = {
                    value: value
                };
                if (!(0, _shallowequal2['default'])(nextProps.value, prevState.value)) {
                    state = (0, _extends3['default'])({}, state, { showDate: getShowDateFromValue(value) || prevState.showDate });
                }
            }
            if ('open' in nextProps && prevState.open !== nextProps.open) {
                state = (0, _extends3['default'])({}, state, { open: nextProps.open });
            }
            return state;
        }
    }]);
    return RangePicker;
}(React.Component);

RangePicker.defaultProps = {
    prefixCls: 'ant-calendar',
    tagPrefixCls: 'ant-tag',
    allowClear: true,
    showToday: false
};
(0, _reactLifecyclesCompat.polyfill)(RangePicker);
exports['default'] = RangePicker;
module.exports = exports['default'];

exports.__esModule = true;

var _extends2 = __webpack_require__(19);

var _extends3 = _interopRequireDefault(_extends2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _createReactClass = __webpack_require__(75);

var _createReactClass2 = _interopRequireDefault(_createReactClass);

var _propTypes = __webpack_require__(37);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _moment = __webpack_require__(23);

var _moment2 = _interopRequireDefault(_moment);

var _classnames2 = __webpack_require__(25);

var _classnames3 = _interopRequireDefault(_classnames2);

var _KeyCode = __webpack_require__(392);

var _KeyCode2 = _interopRequireDefault(_KeyCode);

var _CalendarPart = __webpack_require__(1101);

var _CalendarPart2 = _interopRequireDefault(_CalendarPart);

var _TodayButton = __webpack_require__(640);

var _TodayButton2 = _interopRequireDefault(_TodayButton);

var _OkButton = __webpack_require__(641);

var _OkButton2 = _interopRequireDefault(_OkButton);

var _TimePickerButton = __webpack_require__(642);

var _TimePickerButton2 = _interopRequireDefault(_TimePickerButton);

var _CommonMixin = __webpack_require__(643);

var _CommonMixin2 = _interopRequireDefault(_CommonMixin);

var _util = __webpack_require__(304);

var _toTime = __webpack_require__(1106);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function noop() {}

function isEmptyArray(arr) {
  return Array.isArray(arr) && (arr.length === 0 || arr.every(function (i) {
    return !i;
  }));
}

function isArraysEqual(a, b) {
  if (a === b) return true;
  if (a === null || typeof a === 'undefined' || b === null || typeof b === 'undefined') {
    return false;
  }
  if (a.length !== b.length) return false;

  for (var i = 0; i < a.length; ++i) {
    if (a[i] !== b[i]) return false;
  }
  return true;
}

function getValueFromSelectedValue(selectedValue) {
  var start = selectedValue[0],
      end = selectedValue[1];

  var newEnd = end && end.isSame(start, 'month') ? end.clone().add(1, 'month') : end;
  return [start, newEnd];
}

function normalizeAnchor(props, init) {
  var selectedValue = props.selectedValue || init && props.defaultSelectedValue;
  var value = props.value || init && props.defaultValue;
  var normalizedValue = value ? getValueFromSelectedValue(value) : getValueFromSelectedValue(selectedValue);
  return !isEmptyArray(normalizedValue) ? normalizedValue : init && [(0, _moment2['default'])(), (0, _moment2['default'])().add(1, 'months')];
}

function generateOptions(length, extraOptionGen) {
  var arr = extraOptionGen ? extraOptionGen().concat() : [];
  for (var value = 0; value < length; value++) {
    if (arr.indexOf(value) === -1) {
      arr.push(value);
    }
  }
  return arr;
}

function onInputSelect(direction, value) {
  if (!value) {
    return;
  }
  var originalValue = this.state.selectedValue;
  var selectedValue = originalValue.concat();
  var index = direction === 'left' ? 0 : 1;
  selectedValue[index] = value;
  if (selectedValue[0] && this.compare(selectedValue[0], selectedValue[1]) > 0) {
    selectedValue[1 - index] = this.state.showTimePicker ? selectedValue[index] : undefined;
  }
  this.props.onInputSelect(selectedValue);
  this.fireSelectValueChange(selectedValue);
}

var RangeCalendar = (0, _createReactClass2['default'])({
  displayName: 'RangeCalendar',

  propTypes: {
    prefixCls: _propTypes2['default'].string,
    dateInputPlaceholder: _propTypes2['default'].any,
    defaultValue: _propTypes2['default'].any,
    value: _propTypes2['default'].any,
    hoverValue: _propTypes2['default'].any,
    mode: _propTypes2['default'].arrayOf(_propTypes2['default'].oneOf(['date', 'month', 'year', 'decade'])),
    showDateInput: _propTypes2['default'].bool,
    timePicker: _propTypes2['default'].any,
    showOk: _propTypes2['default'].bool,
    showToday: _propTypes2['default'].bool,
    defaultSelectedValue: _propTypes2['default'].array,
    selectedValue: _propTypes2['default'].array,
    onOk: _propTypes2['default'].func,
    showClear: _propTypes2['default'].bool,
    locale: _propTypes2['default'].object,
    onChange: _propTypes2['default'].func,
    onSelect: _propTypes2['default'].func,
    onValueChange: _propTypes2['default'].func,
    onHoverChange: _propTypes2['default'].func,
    onPanelChange: _propTypes2['default'].func,
    format: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].string]),
    onClear: _propTypes2['default'].func,
    type: _propTypes2['default'].any,
    disabledDate: _propTypes2['default'].func,
    disabledTime: _propTypes2['default'].func
  },

  mixins: [_CommonMixin2['default']],

  getDefaultProps: function getDefaultProps() {
    return {
      type: 'both',
      defaultSelectedValue: [],
      onValueChange: noop,
      onHoverChange: noop,
      onPanelChange: noop,
      disabledTime: noop,
      onInputSelect: noop,
      showToday: true,
      showDateInput: true
    };
  },
  getInitialState: function getInitialState() {
    var props = this.props;
    var selectedValue = props.selectedValue || props.defaultSelectedValue;
    var value = normalizeAnchor(props, 1);
    return {
      selectedValue: selectedValue,
      prevSelectedValue: selectedValue,
      firstSelectedValue: null,
      hoverValue: props.hoverValue || [],
      value: value,
      showTimePicker: false,
      mode: props.mode || ['date', 'date']
    };
  },
  componentWillReceiveProps: function componentWillReceiveProps(nextProps) {
    var state = this.state;

    var newState = {};
    if ('value' in nextProps) {
      newState.value = normalizeAnchor(nextProps, 0);
      this.setState(newState);
    }
    if ('hoverValue' in nextProps && !isArraysEqual(state.hoverValue, nextProps.hoverValue)) {
      this.setState({ hoverValue: nextProps.hoverValue });
    }
    if ('selectedValue' in nextProps) {
      newState.selectedValue = nextProps.selectedValue;
      newState.prevSelectedValue = nextProps.selectedValue;
      this.setState(newState);
    }
    if ('mode' in nextProps && !isArraysEqual(state.mode, nextProps.mode)) {
      this.setState({ mode: nextProps.mode });
    }
  },
  onDatePanelEnter: function onDatePanelEnter() {
    if (this.hasSelectedValue()) {
      this.fireHoverValueChange(this.state.selectedValue.concat());
    }
  },
  onDatePanelLeave: function onDatePanelLeave() {
    if (this.hasSelectedValue()) {
      this.fireHoverValueChange([]);
    }
  },
  onSelect: function onSelect(value) {
    var type = this.props.type;
    var _state = this.state,
        selectedValue = _state.selectedValue,
        prevSelectedValue = _state.prevSelectedValue,
        firstSelectedValue = _state.firstSelectedValue;

    var nextSelectedValue = void 0;
    if (type === 'both') {
      if (!firstSelectedValue) {
        (0, _util.syncTime)(prevSelectedValue[0], value);
        nextSelectedValue = [value];
      } else if (this.compare(firstSelectedValue, value) < 0) {
        (0, _util.syncTime)(prevSelectedValue[1], value);
        nextSelectedValue = [firstSelectedValue, value];
      } else {
        (0, _util.syncTime)(prevSelectedValue[0], value);
        (0, _util.syncTime)(prevSelectedValue[1], firstSelectedValue);
        nextSelectedValue = [value, firstSelectedValue];
      }
    } else if (type === 'start') {
      (0, _util.syncTime)(prevSelectedValue[0], value);
      var endValue = selectedValue[1];
      nextSelectedValue = endValue && this.compare(endValue, value) > 0 ? [value, endValue] : [value];
    } else {
      // type === 'end'
      var startValue = selectedValue[0];
      if (startValue && this.compare(startValue, value) <= 0) {
        (0, _util.syncTime)(prevSelectedValue[1], value);
        nextSelectedValue = [startValue, value];
      } else {
        (0, _util.syncTime)(prevSelectedValue[0], value);
        nextSelectedValue = [value];
      }
    }

    this.fireSelectValueChange(nextSelectedValue);
  },
  onKeyDown: function onKeyDown(event) {
    var _this = this;

    if (event.target.nodeName.toLowerCase() === 'input') {
      return;
    }

    var keyCode = event.keyCode;

    var ctrlKey = event.ctrlKey || event.metaKey;

    var _state2 = this.state,
        selectedValue = _state2.selectedValue,
        hoverValue = _state2.hoverValue,
        firstSelectedValue = _state2.firstSelectedValue,
        value = _state2.value;
    var _props = this.props,
        onKeyDown = _props.onKeyDown,
        disabledDate = _props.disabledDate;

    // Update last time of the picker

    var updateHoverPoint = function updateHoverPoint(func) {
      // Change hover to make focus in UI
      var currentHoverTime = void 0;
      var nextHoverTime = void 0;
      var nextHoverValue = void 0;

      if (!firstSelectedValue) {
        currentHoverTime = hoverValue[0] || selectedValue[0] || value[0] || (0, _moment2['default'])();
        nextHoverTime = func(currentHoverTime);
        nextHoverValue = [nextHoverTime];
        _this.fireHoverValueChange(nextHoverValue);
      } else {
        if (hoverValue.length === 1) {
          currentHoverTime = hoverValue[0].clone();
          nextHoverTime = func(currentHoverTime);
          nextHoverValue = _this.onDayHover(nextHoverTime);
        } else {
          currentHoverTime = hoverValue[0].isSame(firstSelectedValue, 'day') ? hoverValue[1] : hoverValue[0];
          nextHoverTime = func(currentHoverTime);
          nextHoverValue = _this.onDayHover(nextHoverTime);
        }
      }

      // Find origin hover time on value index
      if (nextHoverValue.length >= 2) {
        var miss = nextHoverValue.some(function (ht) {
          return !(0, _toTime.includesTime)(value, ht, 'month');
        });
        if (miss) {
          var newValue = nextHoverValue.slice().sort(function (t1, t2) {
            return t1.valueOf() - t2.valueOf();
          });
          if (newValue[0].isSame(newValue[1], 'month')) {
            newValue[1] = newValue[0].clone().add(1, 'month');
          }
          _this.fireValueChange(newValue);
        }
      } else if (nextHoverValue.length === 1) {
        // If only one value, let's keep the origin panel
        var oriValueIndex = value.findIndex(function (time) {
          return time.isSame(currentHoverTime, 'month');
        });
        if (oriValueIndex === -1) oriValueIndex = 0;

        if (value.every(function (time) {
          return !time.isSame(nextHoverTime, 'month');
        })) {
          var _newValue = value.slice();
          _newValue[oriValueIndex] = nextHoverTime.clone();
          _this.fireValueChange(_newValue);
        }
      }

      event.preventDefault();

      return nextHoverTime;
    };

    switch (keyCode) {
      case _KeyCode2['default'].DOWN:
        updateHoverPoint(function (time) {
          return (0, _toTime.goTime)(time, 1, 'weeks');
        });
        return;
      case _KeyCode2['default'].UP:
        updateHoverPoint(function (time) {
          return (0, _toTime.goTime)(time, -1, 'weeks');
        });
        return;
      case _KeyCode2['default'].LEFT:
        if (ctrlKey) {
          updateHoverPoint(function (time) {
            return (0, _toTime.goTime)(time, -1, 'years');
          });
        } else {
          updateHoverPoint(function (time) {
            return (0, _toTime.goTime)(time, -1, 'days');
          });
        }
        return;
      case _KeyCode2['default'].RIGHT:
        if (ctrlKey) {
          updateHoverPoint(function (time) {
            return (0, _toTime.goTime)(time, 1, 'years');
          });
        } else {
          updateHoverPoint(function (time) {
            return (0, _toTime.goTime)(time, 1, 'days');
          });
        }
        return;
      case _KeyCode2['default'].HOME:
        updateHoverPoint(function (time) {
          return (0, _toTime.goStartMonth)(time);
        });
        return;
      case _KeyCode2['default'].END:
        updateHoverPoint(function (time) {
          return (0, _toTime.goEndMonth)(time);
        });
        return;
      case _KeyCode2['default'].PAGE_DOWN:
        updateHoverPoint(function (time) {
          return (0, _toTime.goTime)(time, 1, 'month');
        });
        return;
      case _KeyCode2['default'].PAGE_UP:
        updateHoverPoint(function (time) {
          return (0, _toTime.goTime)(time, -1, 'month');
        });
        return;
      case _KeyCode2['default'].ENTER:
        {
          var lastValue = void 0;
          if (hoverValue.length === 0) {
            lastValue = updateHoverPoint(function (time) {
              return time;
            });
          } else if (hoverValue.length === 1) {
            lastValue = hoverValue[0];
          } else {
            lastValue = hoverValue[0].isSame(firstSelectedValue, 'day') ? hoverValue[1] : hoverValue[0];
          }
          if (lastValue && (!disabledDate || !disabledDate(lastValue))) {
            this.onSelect(lastValue);
          }
          event.preventDefault();
          return;
        }
      default:
        if (onKeyDown) {
          onKeyDown(event);
        }
    }
  },
  onDayHover: function onDayHover(value) {
    var hoverValue = [];
    var _state3 = this.state,
        selectedValue = _state3.selectedValue,
        firstSelectedValue = _state3.firstSelectedValue;
    var type = this.props.type;

    if (type === 'start' && selectedValue[1]) {
      hoverValue = this.compare(value, selectedValue[1]) < 0 ? [value, selectedValue[1]] : [value];
    } else if (type === 'end' && selectedValue[0]) {
      hoverValue = this.compare(value, selectedValue[0]) > 0 ? [selectedValue[0], value] : [];
    } else {
      if (!firstSelectedValue) {
        if (this.state.hoverValue.length) {
          this.setState({ hoverValue: [] });
        }
        return hoverValue;
      }
      hoverValue = this.compare(value, firstSelectedValue) < 0 ? [value, firstSelectedValue] : [firstSelectedValue, value];
    }
    this.fireHoverValueChange(hoverValue);

    return hoverValue;
  },
  onToday: function onToday() {
    var startValue = (0, _util.getTodayTime)(this.state.value[0]);
    var endValue = startValue.clone().add(1, 'months');
    this.setState({ value: [startValue, endValue] });
  },
  onOpenTimePicker: function onOpenTimePicker() {
    this.setState({
      showTimePicker: true
    });
  },
  onCloseTimePicker: function onCloseTimePicker() {
    this.setState({
      showTimePicker: false
    });
  },
  onOk: function onOk() {
    var selectedValue = this.state.selectedValue;

    if (this.isAllowedDateAndTime(selectedValue)) {
      this.props.onOk(this.state.selectedValue);
    }
  },
  onStartInputSelect: function onStartInputSelect() {
    for (var _len = arguments.length, oargs = Array(_len), _key = 0; _key < _len; _key++) {
      oargs[_key] = arguments[_key];
    }

    var args = ['left'].concat(oargs);
    return onInputSelect.apply(this, args);
  },
  onEndInputSelect: function onEndInputSelect() {
    for (var _len2 = arguments.length, oargs = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
      oargs[_key2] = arguments[_key2];
    }

    var args = ['right'].concat(oargs);
    return onInputSelect.apply(this, args);
  },
  onStartValueChange: function onStartValueChange(leftValue) {
    var value = [].concat(this.state.value);
    value[0] = leftValue;
    return this.fireValueChange(value);
  },
  onEndValueChange: function onEndValueChange(rightValue) {
    var value = [].concat(this.state.value);
    value[1] = rightValue;
    return this.fireValueChange(value);
  },
  onStartPanelChange: function onStartPanelChange(value, mode) {
    var props = this.props,
        state = this.state;

    var newMode = [mode, state.mode[1]];
    if (!('mode' in props)) {
      this.setState({
        mode: newMode
      });
    }
    var newValue = [value || state.value[0], state.value[1]];
    props.onPanelChange(newValue, newMode);
  },
  onEndPanelChange: function onEndPanelChange(value, mode) {
    var props = this.props,
        state = this.state;

    var newMode = [state.mode[0], mode];
    if (!('mode' in props)) {
      this.setState({
        mode: newMode
      });
    }
    var newValue = [state.value[0], value || state.value[1]];
    props.onPanelChange(newValue, newMode);
  },
  getStartValue: function getStartValue() {
    var value = this.state.value[0];
    var selectedValue = this.state.selectedValue;
    // keep selectedTime when select date
    if (selectedValue[0] && this.props.timePicker) {
      value = value.clone();
      (0, _util.syncTime)(selectedValue[0], value);
    }
    if (this.state.showTimePicker && selectedValue[0]) {
      return selectedValue[0];
    }
    return value;
  },
  getEndValue: function getEndValue() {
    var _state4 = this.state,
        value = _state4.value,
        selectedValue = _state4.selectedValue,
        showTimePicker = _state4.showTimePicker;

    var endValue = value[1] ? value[1].clone() : value[0].clone().add(1, 'month');
    // keep selectedTime when select date
    if (selectedValue[1] && this.props.timePicker) {
      (0, _util.syncTime)(selectedValue[1], endValue);
    }
    if (showTimePicker) {
      return selectedValue[1] ? selectedValue[1] : this.getStartValue();
    }
    return endValue;
  },

  // get disabled hours for second picker
  getEndDisableTime: function getEndDisableTime() {
    var _state5 = this.state,
        selectedValue = _state5.selectedValue,
        value = _state5.value;
    var disabledTime = this.props.disabledTime;

    var userSettingDisabledTime = disabledTime(selectedValue, 'end') || {};
    var startValue = selectedValue && selectedValue[0] || value[0].clone();
    // if startTime and endTime is same day..
    // the second time picker will not able to pick time before first time picker
    if (!selectedValue[1] || startValue.isSame(selectedValue[1], 'day')) {
      var hours = startValue.hour();
      var minutes = startValue.minute();
      var second = startValue.second();
      var _disabledHours = userSettingDisabledTime.disabledHours,
          _disabledMinutes = userSettingDisabledTime.disabledMinutes,
          _disabledSeconds = userSettingDisabledTime.disabledSeconds;

      var oldDisabledMinutes = _disabledMinutes ? _disabledMinutes() : [];
      var olddisabledSeconds = _disabledSeconds ? _disabledSeconds() : [];
      _disabledHours = generateOptions(hours, _disabledHours);
      _disabledMinutes = generateOptions(minutes, _disabledMinutes);
      _disabledSeconds = generateOptions(second, _disabledSeconds);
      return {
        disabledHours: function disabledHours() {
          return _disabledHours;
        },
        disabledMinutes: function disabledMinutes(hour) {
          if (hour === hours) {
            return _disabledMinutes;
          }
          return oldDisabledMinutes;
        },
        disabledSeconds: function disabledSeconds(hour, minute) {
          if (hour === hours && minute === minutes) {
            return _disabledSeconds;
          }
          return olddisabledSeconds;
        }
      };
    }
    return userSettingDisabledTime;
  },
  isAllowedDateAndTime: function isAllowedDateAndTime(selectedValue) {
    return (0, _util.isAllowedDate)(selectedValue[0], this.props.disabledDate, this.disabledStartTime) && (0, _util.isAllowedDate)(selectedValue[1], this.props.disabledDate, this.disabledEndTime);
  },
  isMonthYearPanelShow: function isMonthYearPanelShow(mode) {
    return ['month', 'year', 'decade'].indexOf(mode) > -1;
  },
  hasSelectedValue: function hasSelectedValue() {
    var selectedValue = this.state.selectedValue;

    return !!selectedValue[1] && !!selectedValue[0];
  },
  compare: function compare(v1, v2) {
    if (this.props.timePicker) {
      return v1.diff(v2);
    }
    return v1.diff(v2, 'days');
  },
  fireSelectValueChange: function fireSelectValueChange(selectedValue, direct) {
    var timePicker = this.props.timePicker;
    var prevSelectedValue = this.state.prevSelectedValue;

    if (timePicker && timePicker.props.defaultValue) {
      var timePickerDefaultValue = timePicker.props.defaultValue;
      if (!prevSelectedValue[0] && selectedValue[0]) {
        (0, _util.syncTime)(timePickerDefaultValue[0], selectedValue[0]);
      }
      if (!prevSelectedValue[1] && selectedValue[1]) {
        (0, _util.syncTime)(timePickerDefaultValue[1], selectedValue[1]);
      }
    }

    if (!('selectedValue' in this.props)) {
      this.setState({
        selectedValue: selectedValue
      });
    }

    // 尚未选择过时间，直接输入的话
    if (!this.state.selectedValue[0] || !this.state.selectedValue[1]) {
      var startValue = selectedValue[0] || (0, _moment2['default'])();
      var endValue = selectedValue[1] || startValue.clone().add(1, 'months');
      this.setState({
        selectedValue: selectedValue,
        value: getValueFromSelectedValue([startValue, endValue])
      });
    }

    if (selectedValue[0] && !selectedValue[1]) {
      this.setState({ firstSelectedValue: selectedValue[0] });
      this.fireHoverValueChange(selectedValue.concat());
    }
    this.props.onChange(selectedValue);
    if (direct || selectedValue[0] && selectedValue[1]) {
      this.setState({
        prevSelectedValue: selectedValue,
        firstSelectedValue: null
      });
      this.fireHoverValueChange([]);
      this.props.onSelect(selectedValue);
    }
  },
  fireValueChange: function fireValueChange(value) {
    var props = this.props;
    if (!('value' in props)) {
      this.setState({
        value: value
      });
    }
    props.onValueChange(value);
  },
  fireHoverValueChange: function fireHoverValueChange(hoverValue) {
    var props = this.props;
    if (!('hoverValue' in props)) {
      this.setState({ hoverValue: hoverValue });
    }
    props.onHoverChange(hoverValue);
  },
  clear: function clear() {
    this.fireSelectValueChange([], true);
    this.props.onClear();
  },
  disabledStartTime: function disabledStartTime(time) {
    return this.props.disabledTime(time, 'start');
  },
  disabledEndTime: function disabledEndTime(time) {
    return this.props.disabledTime(time, 'end');
  },
  disabledStartMonth: function disabledStartMonth(month) {
    var value = this.state.value;

    return month.isSameOrAfter(value[1], 'month');
  },
  disabledEndMonth: function disabledEndMonth(month) {
    var value = this.state.value;

    return month.isSameOrBefore(value[0], 'month');
  },
  render: function render() {
    var _className, _classnames;

    var props = this.props,
        state = this.state;
    var prefixCls = props.prefixCls,
        dateInputPlaceholder = props.dateInputPlaceholder,
        timePicker = props.timePicker,
        showOk = props.showOk,
        locale = props.locale,
        showClear = props.showClear,
        showToday = props.showToday,
        type = props.type;
    var hoverValue = state.hoverValue,
        selectedValue = state.selectedValue,
        mode = state.mode,
        showTimePicker = state.showTimePicker;

    var className = (_className = {}, _className[props.className] = !!props.className, _className[prefixCls] = 1, _className[prefixCls + '-hidden'] = !props.visible, _className[prefixCls + '-range'] = 1, _className[prefixCls + '-show-time-picker'] = showTimePicker, _className[prefixCls + '-week-number'] = props.showWeekNumber, _className);
    var classes = (0, _classnames3['default'])(className);
    var newProps = {
      selectedValue: state.selectedValue,
      onSelect: this.onSelect,
      onDayHover: type === 'start' && selectedValue[1] || type === 'end' && selectedValue[0] || !!hoverValue.length ? this.onDayHover : undefined
    };

    var placeholder1 = void 0;
    var placeholder2 = void 0;

    if (dateInputPlaceholder) {
      if (Array.isArray(dateInputPlaceholder)) {
        placeholder1 = dateInputPlaceholder[0];
        placeholder2 = dateInputPlaceholder[1];
      } else {
        placeholder1 = placeholder2 = dateInputPlaceholder;
      }
    }
    var showOkButton = showOk === true || showOk !== false && !!timePicker;
    var cls = (0, _classnames3['default'])((_classnames = {}, _classnames[prefixCls + '-footer'] = true, _classnames[prefixCls + '-range-bottom'] = true, _classnames[prefixCls + '-footer-show-ok'] = showOkButton, _classnames));

    var startValue = this.getStartValue();
    var endValue = this.getEndValue();
    var todayTime = (0, _util.getTodayTime)(startValue);
    var thisMonth = todayTime.month();
    var thisYear = todayTime.year();
    var isTodayInView = startValue.year() === thisYear && startValue.month() === thisMonth || endValue.year() === thisYear && endValue.month() === thisMonth;
    var nextMonthOfStart = startValue.clone().add(1, 'months');
    var isClosestMonths = nextMonthOfStart.year() === endValue.year() && nextMonthOfStart.month() === endValue.month();

    // console.warn('Render:', selectedValue.map(t => t.format('YYYY-MM-DD')).join(', '));
    // console.log('start:', startValue.format('YYYY-MM-DD'));
    // console.log('end:', endValue.format('YYYY-MM-DD'));

    return _react2['default'].createElement(
      'div',
      {
        ref: this.saveRoot,
        className: classes,
        style: props.style,
        tabIndex: '0',
        onKeyDown: this.onKeyDown
      },
      props.renderSidebar(),
      _react2['default'].createElement(
        'div',
        { className: prefixCls + '-panel' },
        showClear && selectedValue[0] && selectedValue[1] ? _react2['default'].createElement('a', {
          className: prefixCls + '-clear-btn',
          role: 'button',
          title: locale.clear,
          onClick: this.clear
        }) : null,
        _react2['default'].createElement(
          'div',
          {
            className: prefixCls + '-date-panel',
            onMouseLeave: type !== 'both' ? this.onDatePanelLeave : undefined,
            onMouseEnter: type !== 'both' ? this.onDatePanelEnter : undefined
          },
          _react2['default'].createElement(_CalendarPart2['default'], (0, _extends3['default'])({}, props, newProps, {
            hoverValue: hoverValue,
            direction: 'left',
            disabledTime: this.disabledStartTime,
            disabledMonth: this.disabledStartMonth,
            format: this.getFormat(),
            value: startValue,
            mode: mode[0],
            placeholder: placeholder1,
            onInputSelect: this.onStartInputSelect,
            onValueChange: this.onStartValueChange,
            onPanelChange: this.onStartPanelChange,
            showDateInput: this.props.showDateInput,
            timePicker: timePicker,
            showTimePicker: showTimePicker,
            enablePrev: true,
            enableNext: !isClosestMonths || this.isMonthYearPanelShow(mode[1])
          })),
          _react2['default'].createElement(
            'span',
            { className: prefixCls + '-range-middle' },
            '~'
          ),
          _react2['default'].createElement(_CalendarPart2['default'], (0, _extends3['default'])({}, props, newProps, {
            hoverValue: hoverValue,
            direction: 'right',
            format: this.getFormat(),
            timePickerDisabledTime: this.getEndDisableTime(),
            placeholder: placeholder2,
            value: endValue,
            mode: mode[1],
            onInputSelect: this.onEndInputSelect,
            onValueChange: this.onEndValueChange,
            onPanelChange: this.onEndPanelChange,
            showDateInput: this.props.showDateInput,
            timePicker: timePicker,
            showTimePicker: showTimePicker,
            disabledTime: this.disabledEndTime,
            disabledMonth: this.disabledEndMonth,
            enablePrev: !isClosestMonths || this.isMonthYearPanelShow(mode[0]),
            enableNext: true
          }))
        ),
        _react2['default'].createElement(
          'div',
          { className: cls },
          props.renderFooter(),
          showToday || props.timePicker || showOkButton ? _react2['default'].createElement(
            'div',
            { className: prefixCls + '-footer-btn' },
            showToday ? _react2['default'].createElement(_TodayButton2['default'], (0, _extends3['default'])({}, props, {
              disabled: isTodayInView,
              value: state.value[0],
              onToday: this.onToday,
              text: locale.backToToday
            })) : null,
            props.timePicker ? _react2['default'].createElement(_TimePickerButton2['default'], (0, _extends3['default'])({}, props, {
              showTimePicker: showTimePicker,
              onOpenTimePicker: this.onOpenTimePicker,
              onCloseTimePicker: this.onCloseTimePicker,
              timePickerDisabled: !this.hasSelectedValue() || hoverValue.length
            })) : null,
            showOkButton ? _react2['default'].createElement(_OkButton2['default'], (0, _extends3['default'])({}, props, {
              onOk: this.onOk,
              okDisabled: !this.isAllowedDateAndTime(selectedValue) || !this.hasSelectedValue() || hoverValue.length
            })) : null
          ) : null
        )
      )
    );
  }
});

exports['default'] = RangeCalendar;
module.exports = exports['default'];

exports.__esModule = true;

var _extends2 = __webpack_require__(19);

var _extends3 = _interopRequireDefault(_extends2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _createReactClass = __webpack_require__(75);

var _createReactClass2 = _interopRequireDefault(_createReactClass);

var _propTypes = __webpack_require__(37);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _CalendarHeader = __webpack_require__(638);

var _CalendarHeader2 = _interopRequireDefault(_CalendarHeader);

var _DateTable = __webpack_require__(1102);

var _DateTable2 = _interopRequireDefault(_DateTable);

var _DateInput = __webpack_require__(1105);

var _DateInput2 = _interopRequireDefault(_DateInput);

var _index = __webpack_require__(304);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var CalendarPart = (0, _createReactClass2['default'])({
  displayName: 'CalendarPart',

  propTypes: {
    prefixCls: _propTypes2['default'].string,
    value: _propTypes2['default'].any,
    hoverValue: _propTypes2['default'].any,
    selectedValue: _propTypes2['default'].any,
    direction: _propTypes2['default'].any,
    locale: _propTypes2['default'].any,
    showDateInput: _propTypes2['default'].bool,
    showTimePicker: _propTypes2['default'].bool,
    format: _propTypes2['default'].any,
    placeholder: _propTypes2['default'].any,
    disabledDate: _propTypes2['default'].any,
    timePicker: _propTypes2['default'].any,
    disabledTime: _propTypes2['default'].any,
    onInputSelect: _propTypes2['default'].func,
    timePickerDisabledTime: _propTypes2['default'].object,
    enableNext: _propTypes2['default'].any,
    enablePrev: _propTypes2['default'].any
  },
  render: function render() {
    var props = this.props;
    var prefixCls = props.prefixCls,
        value = props.value,
        hoverValue = props.hoverValue,
        selectedValue = props.selectedValue,
        mode = props.mode,
        direction = props.direction,
        locale = props.locale,
        format = props.format,
        placeholder = props.placeholder,
        disabledDate = props.disabledDate,
        timePicker = props.timePicker,
        disabledTime = props.disabledTime,
        timePickerDisabledTime = props.timePickerDisabledTime,
        showTimePicker = props.showTimePicker,
        onInputSelect = props.onInputSelect,
        enablePrev = props.enablePrev,
        enableNext = props.enableNext;

    var shouldShowTimePicker = showTimePicker && timePicker;
    var disabledTimeConfig = shouldShowTimePicker && disabledTime ? (0, _index.getTimeConfig)(selectedValue, disabledTime) : null;
    var rangeClassName = prefixCls + '-range';
    var newProps = {
      locale: locale,
      value: value,
      prefixCls: prefixCls,
      showTimePicker: showTimePicker
    };
    var index = direction === 'left' ? 0 : 1;
    var timePickerEle = shouldShowTimePicker && _react2['default'].cloneElement(timePicker, (0, _extends3['default'])({
      showHour: true,
      showMinute: true,
      showSecond: true
    }, timePicker.props, disabledTimeConfig, timePickerDisabledTime, {
      onChange: onInputSelect,
      defaultOpenValue: value,
      value: selectedValue[index]
    }));

    var dateInputElement = props.showDateInput && _react2['default'].createElement(_DateInput2['default'], {
      format: format,
      locale: locale,
      prefixCls: prefixCls,
      timePicker: timePicker,
      disabledDate: disabledDate,
      placeholder: placeholder,
      disabledTime: disabledTime,
      value: value,
      showClear: false,
      selectedValue: selectedValue[index],
      onChange: onInputSelect
    });

    return _react2['default'].createElement(
      'div',
      {
        className: rangeClassName + '-part ' + rangeClassName + '-' + direction
      },
      dateInputElement,
      _react2['default'].createElement(
        'div',
        { style: { outline: 'none' } },
        _react2['default'].createElement(_CalendarHeader2['default'], (0, _extends3['default'])({}, newProps, {
          mode: mode,
          enableNext: enableNext,
          enablePrev: enablePrev,
          onValueChange: props.onValueChange,
          onPanelChange: props.onPanelChange,
          disabledMonth: props.disabledMonth
        })),
        showTimePicker ? _react2['default'].createElement(
          'div',
          { className: prefixCls + '-time-picker' },
          _react2['default'].createElement(
            'div',
            { className: prefixCls + '-time-picker-panel' },
            timePickerEle
          )
        ) : null,
        _react2['default'].createElement(
          'div',
          { className: prefixCls + '-body' },
          _react2['default'].createElement(_DateTable2['default'], (0, _extends3['default'])({}, newProps, {
            hoverValue: hoverValue,
            selectedValue: selectedValue,
            dateRender: props.dateRender,
            onSelect: props.onSelect,
            onDayHover: props.onDayHover,
            disabledDate: disabledDate,
            showWeekNumber: props.showWeekNumber
          }))
        )
      )
    );
  }
});

exports['default'] = CalendarPart;
module.exports = exports['default'];

exports.__esModule = true;

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _DateTHead = __webpack_require__(1103);

var _DateTHead2 = _interopRequireDefault(_DateTHead);

var _DateTBody = __webpack_require__(1104);

var _DateTBody2 = _interopRequireDefault(_DateTBody);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var DateTable = function (_React$Component) {
  (0, _inherits3['default'])(DateTable, _React$Component);

  function DateTable() {
    (0, _classCallCheck3['default'])(this, DateTable);
    return (0, _possibleConstructorReturn3['default'])(this, _React$Component.apply(this, arguments));
  }

  DateTable.prototype.render = function render() {
    var props = this.props;
    var prefixCls = props.prefixCls;
    return _react2['default'].createElement(
      'table',
      { className: prefixCls + '-table', cellSpacing: '0', role: 'grid' },
      _react2['default'].createElement(_DateTHead2['default'], props),
      _react2['default'].createElement(_DateTBody2['default'], props)
    );
  };

  return DateTable;
}(_react2['default'].Component);

exports['default'] = DateTable;
module.exports = exports['default'];

exports.__esModule = true;

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _DateConstants = __webpack_require__(645);

var _DateConstants2 = _interopRequireDefault(_DateConstants);

var _moment = __webpack_require__(23);

var _moment2 = _interopRequireDefault(_moment);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var DateTHead = function (_React$Component) {
  (0, _inherits3['default'])(DateTHead, _React$Component);

  function DateTHead() {
    (0, _classCallCheck3['default'])(this, DateTHead);
    return (0, _possibleConstructorReturn3['default'])(this, _React$Component.apply(this, arguments));
  }

  DateTHead.prototype.render = function render() {
    var props = this.props;
    var value = props.value;
    var localeData = value.localeData();
    var prefixCls = props.prefixCls;
    var veryShortWeekdays = [];
    var weekDays = [];
    var firstDayOfWeek = localeData.firstDayOfWeek();
    var showWeekNumberEl = void 0;
    var now = (0, _moment2['default'])();
    for (var dateColIndex = 0; dateColIndex < _DateConstants2['default'].DATE_COL_COUNT; dateColIndex++) {
      var index = (firstDayOfWeek + dateColIndex) % _DateConstants2['default'].DATE_COL_COUNT;
      now.day(index);
      veryShortWeekdays[dateColIndex] = localeData.weekdaysMin(now);
      weekDays[dateColIndex] = localeData.weekdaysShort(now);
    }

    if (props.showWeekNumber) {
      showWeekNumberEl = _react2['default'].createElement(
        'th',
        {
          role: 'columnheader',
          className: prefixCls + '-column-header ' + prefixCls + '-week-number-header'
        },
        _react2['default'].createElement(
          'span',
          { className: prefixCls + '-column-header-inner' },
          'x'
        )
      );
    }
    var weekDaysEls = weekDays.map(function (day, xindex) {
      return _react2['default'].createElement(
        'th',
        {
          key: xindex,
          role: 'columnheader',
          title: day,
          className: prefixCls + '-column-header'
        },
        _react2['default'].createElement(
          'span',
          { className: prefixCls + '-column-header-inner' },
          veryShortWeekdays[xindex]
        )
      );
    });
    return _react2['default'].createElement(
      'thead',
      null,
      _react2['default'].createElement(
        'tr',
        { role: 'row' },
        showWeekNumberEl,
        weekDaysEls
      )
    );
  };

  return DateTHead;
}(_react2['default'].Component);

exports['default'] = DateTHead;
module.exports = exports['default'];

exports.__esModule = true;
exports["default"] = {
  DATE_ROW_COUNT: 6,
  DATE_COL_COUNT: 7
};
module.exports = exports['default'];

exports.__esModule = true;

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _createReactClass = __webpack_require__(75);

var _createReactClass2 = _interopRequireDefault(_createReactClass);

var _propTypes = __webpack_require__(37);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _classnames = __webpack_require__(25);

var _classnames2 = _interopRequireDefault(_classnames);

var _DateConstants = __webpack_require__(645);

var _DateConstants2 = _interopRequireDefault(_DateConstants);

var _util = __webpack_require__(304);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function isSameDay(one, two) {
  return one && two && one.isSame(two, 'day');
}

function beforeCurrentMonthYear(current, today) {
  if (current.year() < today.year()) {
    return 1;
  }
  return current.year() === today.year() && current.month() < today.month();
}

function afterCurrentMonthYear(current, today) {
  if (current.year() > today.year()) {
    return 1;
  }
  return current.year() === today.year() && current.month() > today.month();
}

function getIdFromDate(date) {
  return 'rc-calendar-' + date.year() + '-' + date.month() + '-' + date.date();
}

var DateTBody = (0, _createReactClass2['default'])({
  displayName: 'DateTBody',

  propTypes: {
    contentRender: _propTypes2['default'].func,
    dateRender: _propTypes2['default'].func,
    disabledDate: _propTypes2['default'].func,
    prefixCls: _propTypes2['default'].string,
    selectedValue: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].arrayOf(_propTypes2['default'].object)]),
    value: _propTypes2['default'].object,
    hoverValue: _propTypes2['default'].any,
    showWeekNumber: _propTypes2['default'].bool
  },

  getDefaultProps: function getDefaultProps() {
    return {
      hoverValue: []
    };
  },
  render: function render() {
    var props = this.props;
    var contentRender = props.contentRender,
        prefixCls = props.prefixCls,
        selectedValue = props.selectedValue,
        value = props.value,
        showWeekNumber = props.showWeekNumber,
        dateRender = props.dateRender,
        disabledDate = props.disabledDate,
        hoverValue = props.hoverValue;

    var iIndex = void 0;
    var jIndex = void 0;
    var current = void 0;
    var dateTable = [];
    var today = (0, _util.getTodayTime)(value);
    var cellClass = prefixCls + '-cell';
    var weekNumberCellClass = prefixCls + '-week-number-cell';
    var dateClass = prefixCls + '-date';
    var todayClass = prefixCls + '-today';
    var selectedClass = prefixCls + '-selected-day';
    var selectedDateClass = prefixCls + '-selected-date'; // do not move with mouse operation
    var selectedStartDateClass = prefixCls + '-selected-start-date';
    var selectedEndDateClass = prefixCls + '-selected-end-date';
    var inRangeClass = prefixCls + '-in-range-cell';
    var lastMonthDayClass = prefixCls + '-last-month-cell';
    var nextMonthDayClass = prefixCls + '-next-month-btn-day';
    var disabledClass = prefixCls + '-disabled-cell';
    var firstDisableClass = prefixCls + '-disabled-cell-first-of-row';
    var lastDisableClass = prefixCls + '-disabled-cell-last-of-row';
    var lastDayOfMonthClass = prefixCls + '-last-day-of-month';
    var month1 = value.clone();
    month1.date(1);
    var day = month1.day();
    var lastMonthDiffDay = (day + 7 - value.localeData().firstDayOfWeek()) % 7;
    // calculate last month
    var lastMonth1 = month1.clone();
    lastMonth1.add(0 - lastMonthDiffDay, 'days');
    var passed = 0;

    for (iIndex = 0; iIndex < _DateConstants2['default'].DATE_ROW_COUNT; iIndex++) {
      for (jIndex = 0; jIndex < _DateConstants2['default'].DATE_COL_COUNT; jIndex++) {
        current = lastMonth1;
        if (passed) {
          current = current.clone();
          current.add(passed, 'days');
        }
        dateTable.push(current);
        passed++;
      }
    }
    var tableHtml = [];
    passed = 0;

    for (iIndex = 0; iIndex < _DateConstants2['default'].DATE_ROW_COUNT; iIndex++) {
      var _cx;

      var isCurrentWeek = void 0;
      var weekNumberCell = void 0;
      var isActiveWeek = false;
      var dateCells = [];
      if (showWeekNumber) {
        weekNumberCell = _react2['default'].createElement(
          'td',
          {
            key: dateTable[passed].week(),
            role: 'gridcell',
            className: weekNumberCellClass
          },
          dateTable[passed].week()
        );
      }
      for (jIndex = 0; jIndex < _DateConstants2['default'].DATE_COL_COUNT; jIndex++) {
        var next = null;
        var last = null;
        current = dateTable[passed];
        if (jIndex < _DateConstants2['default'].DATE_COL_COUNT - 1) {
          next = dateTable[passed + 1];
        }
        if (jIndex > 0) {
          last = dateTable[passed - 1];
        }
        var cls = cellClass;
        var disabled = false;
        var selected = false;

        if (isSameDay(current, today)) {
          cls += ' ' + todayClass;
          isCurrentWeek = true;
        }

        var isBeforeCurrentMonthYear = beforeCurrentMonthYear(current, value);
        var isAfterCurrentMonthYear = afterCurrentMonthYear(current, value);

        if (selectedValue && Array.isArray(selectedValue)) {
          var rangeValue = hoverValue.length ? hoverValue : selectedValue;
          if (!isBeforeCurrentMonthYear && !isAfterCurrentMonthYear) {
            var startValue = rangeValue[0];
            var endValue = rangeValue[1];
            if (startValue) {
              if (isSameDay(current, startValue)) {
                selected = true;
                isActiveWeek = true;
                cls += ' ' + selectedStartDateClass;
              }
            }
            if (startValue && endValue) {
              if (isSameDay(current, endValue)) {
                selected = true;
                isActiveWeek = true;
                cls += ' ' + selectedEndDateClass;
              } else if (current.isAfter(startValue, 'day') && current.isBefore(endValue, 'day')) {
                cls += ' ' + inRangeClass;
              }
            }
          }
        } else if (isSameDay(current, value)) {
          // keyboard change value, highlight works
          selected = true;
          isActiveWeek = true;
        }

        if (isSameDay(current, selectedValue)) {
          cls += ' ' + selectedDateClass;
        }

        if (isBeforeCurrentMonthYear) {
          cls += ' ' + lastMonthDayClass;
        }

        if (isAfterCurrentMonthYear) {
          cls += ' ' + nextMonthDayClass;
        }

        if (current.clone().endOf('month').date() === current.date()) {
          cls += ' ' + lastDayOfMonthClass;
        }

        if (disabledDate) {
          if (disabledDate(current, value)) {
            disabled = true;

            if (!last || !disabledDate(last, value)) {
              cls += ' ' + firstDisableClass;
            }

            if (!next || !disabledDate(next, value)) {
              cls += ' ' + lastDisableClass;
            }
          }
        }

        if (selected) {
          cls += ' ' + selectedClass;
        }

        if (disabled) {
          cls += ' ' + disabledClass;
        }

        var dateHtml = void 0;
        if (dateRender) {
          dateHtml = dateRender(current, value);
        } else {
          var content = contentRender ? contentRender(current, value) : current.date();
          dateHtml = _react2['default'].createElement(
            'div',
            {
              key: getIdFromDate(current),
              className: dateClass,
              'aria-selected': selected,
              'aria-disabled': disabled
            },
            content
          );
        }

        dateCells.push(_react2['default'].createElement(
          'td',
          {
            key: passed,
            onClick: disabled ? undefined : props.onSelect.bind(null, current),
            onMouseEnter: disabled ? undefined : props.onDayHover && props.onDayHover.bind(null, current) || undefined,
            role: 'gridcell',
            title: (0, _util.getTitleString)(current),
            className: cls
          },
          dateHtml
        ));

        passed++;
      }

      tableHtml.push(_react2['default'].createElement(
        'tr',
        {
          key: iIndex,
          role: 'row',
          className: (0, _classnames2['default'])((_cx = {}, _cx[prefixCls + '-current-week'] = isCurrentWeek, _cx[prefixCls + '-active-week'] = isActiveWeek, _cx))
        },
        weekNumberCell,
        dateCells
      ));
    }
    return _react2['default'].createElement(
      'tbody',
      { className: prefixCls + '-tbody' },
      tableHtml
    );
  }
});

exports['default'] = DateTBody;
module.exports = exports['default'];

exports.__esModule = true;

var _react = __webpack_require__(2);

var _react2 = _interopRequireDefault(_react);

var _reactDom = __webpack_require__(40);

var _reactDom2 = _interopRequireDefault(_reactDom);

var _createReactClass = __webpack_require__(75);

var _createReactClass2 = _interopRequireDefault(_createReactClass);

var _propTypes = __webpack_require__(37);

var _propTypes2 = _interopRequireDefault(_propTypes);

var _moment = __webpack_require__(23);

var _moment2 = _interopRequireDefault(_moment);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var DateInput = (0, _createReactClass2['default'])({
  displayName: 'DateInput',

  propTypes: {
    prefixCls: _propTypes2['default'].string,
    timePicker: _propTypes2['default'].object,
    value: _propTypes2['default'].object,
    disabledTime: _propTypes2['default'].any,
    format: _propTypes2['default'].string,
    locale: _propTypes2['default'].object,
    disabledDate: _propTypes2['default'].func,
    onChange: _propTypes2['default'].func,
    onClear: _propTypes2['default'].func,
    placeholder: _propTypes2['default'].string,
    onSelect: _propTypes2['default'].func,
    selectedValue: _propTypes2['default'].object
  },

  getInitialState: function getInitialState() {
    var selectedValue = this.props.selectedValue;
    return {
      str: selectedValue && selectedValue.format(this.props.format) || '',
      invalid: false
    };
  },
  componentWillReceiveProps: function componentWillReceiveProps(nextProps) {
    this.cachedSelectionStart = this.dateInputInstance.selectionStart;
    this.cachedSelectionEnd = this.dateInputInstance.selectionEnd;
    // when popup show, click body will call this, bug!
    var selectedValue = nextProps.selectedValue;
    this.setState({
      str: selectedValue && selectedValue.format(nextProps.format) || '',
      invalid: false
    });
  },
  componentDidUpdate: function componentDidUpdate() {
    if (!this.state.invalid) {
      this.dateInputInstance.setSelectionRange(this.cachedSelectionStart, this.cachedSelectionEnd);
    }
  },
  onInputChange: function onInputChange(event) {
    var str = event.target.value;
    this.setState({
      str: str
    });
    var value = void 0;
    var _props = this.props,
        disabledDate = _props.disabledDate,
        format = _props.format,
        onChange = _props.onChange;

    if (str) {
      var parsed = (0, _moment2['default'])(str, format, true);
      if (!parsed.isValid()) {
        this.setState({
          invalid: true
        });
        return;
      }
      value = this.props.value.clone();
      value.year(parsed.year()).month(parsed.month()).date(parsed.date()).hour(parsed.hour()).minute(parsed.minute()).second(parsed.second());

      if (value && (!disabledDate || !disabledDate(value))) {
        var originalValue = this.props.selectedValue;
        if (originalValue && value) {
          if (!originalValue.isSame(value)) {
            onChange(value);
          }
        } else if (originalValue !== value) {
          onChange(value);
        }
      } else {
        this.setState({
          invalid: true
        });
        return;
      }
    } else {
      onChange(null);
    }
    this.setState({
      invalid: false
    });
  },
  onClear: function onClear() {
    this.setState({
      str: ''
    });
    this.props.onClear(null);
  },
  getRootDOMNode: function getRootDOMNode() {
    return _reactDom2['default'].findDOMNode(this);
  },
  focus: function focus() {
    if (this.dateInputInstance) {
      this.dateInputInstance.focus();
    }
  },
  saveDateInput: function saveDateInput(dateInput) {
    this.dateInputInstance = dateInput;
  },
  render: function render() {
    var props = this.props;
    var _state = this.state,
        invalid = _state.invalid,
        str = _state.str;
    var locale = props.locale,
        prefixCls = props.prefixCls,
        placeholder = props.placeholder;

    var invalidClass = invalid ? prefixCls + '-input-invalid' : '';
    return _react2['default'].createElement(
      'div',
      { className: prefixCls + '-input-wrap' },
      _react2['default'].createElement(
        'div',
        { className: prefixCls + '-date-input-wrap' },
        _react2['default'].createElement('input', {
          ref: this.saveDateInput,
          className: prefixCls + '-input ' + invalidClass,
          value: str,
          disabled: props.disabled,
          placeholder: placeholder,
          onChange: this.onInputChange
        })
      ),
      props.showClear ? _react2['default'].createElement('a', {
        className: prefixCls + '-clear-btn',
        role: 'button',
        title: locale.clear,
        onClick: this.onClear
      }) : null
    );
  }
});

exports['default'] = DateInput;
module.exports = exports['default'];

exports.__esModule = true;
exports.goStartMonth = goStartMonth;
exports.goEndMonth = goEndMonth;
exports.goTime = goTime;
exports.includesTime = includesTime;
function goStartMonth(time) {
  return time.clone().startOf('month');
}

function goEndMonth(time) {
  return time.clone().endOf('month');
}

function goTime(time, direction, unit) {
  return time.clone().add(direction, unit);
}

function includesTime() {
  var timeList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
  var time = arguments[1];
  var unit = arguments[2];

  return timeList.some(function (t) {
    return t.isSame(time, unit);
  });
}

Object.defineProperty(exports, "__esModule", {
    value: true
});

var _extends2 = __webpack_require__(19);

var _extends3 = _interopRequireDefault(_extends2);

var _classCallCheck2 = __webpack_require__(22);

var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

var _createClass2 = __webpack_require__(34);

var _createClass3 = _interopRequireDefault(_createClass2);

var _possibleConstructorReturn2 = __webpack_require__(21);

var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);

var _inherits2 = __webpack_require__(26);

var _inherits3 = _interopRequireDefault(_inherits2);

var _react = __webpack_require__(2);

var React = _interopRequireWildcard(_react);

var _moment = __webpack_require__(23);

var moment = _interopRequireWildcard(_moment);

var _reactLifecyclesCompat = __webpack_require__(118);

var _rcCalendar = __webpack_require__(646);

var _rcCalendar2 = _interopRequireDefault(_rcCalendar);

var _Picker = __webpack_require__(501);

var _Picker2 = _interopRequireDefault(_Picker);

var _classnames = __webpack_require__(25);

var _classnames2 = _interopRequireDefault(_classnames);

var _icon = __webpack_require__(104);

var _icon2 = _interopRequireDefault(_icon);

var _interopDefault = __webpack_require__(405);

var _interopDefault2 = _interopRequireDefault(_interopDefault);

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function formatValue(value, format) {
    return value && value.format(format) || '';
}

var WeekPicker = function (_React$Component) {
    (0, _inherits3['default'])(WeekPicker, _React$Component);

    function WeekPicker(props) {
        (0, _classCallCheck3['default'])(this, WeekPicker);

        var _this = (0, _possibleConstructorReturn3['default'])(this, (WeekPicker.__proto__ || Object.getPrototypeOf(WeekPicker)).call(this, props));

        _this.weekDateRender = function (current) {
            var selectedValue = _this.state.value;
            var prefixCls = _this.props.prefixCls;

            if (selectedValue && current.year() === selectedValue.year() && current.week() === selectedValue.week()) {
                return React.createElement(
                    'div',
                    { className: prefixCls + '-selected-day' },
                    React.createElement(
                        'div',
                        { className: prefixCls + '-date' },
                        current.date()
                    )
                );
            }
            return React.createElement(
                'div',
                { className: prefixCls + '-date' },
                current.date()
            );
        };
        _this.handleChange = function (value) {
            if (!('value' in _this.props)) {
                _this.setState({ value: value });
            }
            _this.props.onChange(value, formatValue(value, _this.props.format));
        };
        _this.clearSelection = function (e) {
            e.preventDefault();
            e.stopPropagation();
            _this.handleChange(null);
        };
        _this.saveInput = function (node) {
            _this.input = node;
        };
        var value = props.value || props.defaultValue;
        if (value && !(0, _interopDefault2['default'])(moment).isMoment(value)) {
            throw new Error('The value/defaultValue of DatePicker or MonthPicker must be ' + 'a moment object after `antd@2.0`, see: https://u.ant.design/date-picker-value');
        }
        _this.state = {
            value: value
        };
        return _this;
    }

    (0, _createClass3['default'])(WeekPicker, [{
        key: 'focus',
        value: function focus() {
            this.input.focus();
        }
    }, {
        key: 'blur',
        value: function blur() {
            this.input.blur();
        }
    }, {
        key: 'render',
        value: function render() {
            var _this2 = this;

            var _props = this.props,
                prefixCls = _props.prefixCls,
                className = _props.className,
                disabled = _props.disabled,
                pickerClass = _props.pickerClass,
                popupStyle = _props.popupStyle,
                pickerInputClass = _props.pickerInputClass,
                format = _props.format,
                allowClear = _props.allowClear,
                locale = _props.locale,
                localeCode = _props.localeCode,
                disabledDate = _props.disabledDate,
                style = _props.style,
                onFocus = _props.onFocus,
                onBlur = _props.onBlur;

            var pickerValue = this.state.value;
            if (pickerValue && localeCode) {
                pickerValue.locale(localeCode);
            }
            var placeholder = 'placeholder' in this.props ? this.props.placeholder : locale.lang.placeholder;
            var calendar = React.createElement(_rcCalendar2['default'], { showWeekNumber: true, dateRender: this.weekDateRender, prefixCls: prefixCls, format: format, locale: locale.lang, showDateInput: false, showToday: false, disabledDate: disabledDate });
            var clearIcon = !disabled && allowClear && this.state.value ? React.createElement(_icon2['default'], { type: 'cross-circle', className: prefixCls + '-picker-clear', onClick: this.clearSelection }) : null;
            var input = function input(_ref) {
                var value = _ref.value;

                return React.createElement(
                    'span',
                    null,
                    React.createElement('input', { ref: _this2.saveInput, disabled: disabled, readOnly: true, value: value && value.format(format) || '', placeholder: placeholder, className: pickerInputClass, onFocus: onFocus, onBlur: onBlur, style: style }),
                    clearIcon,
                    React.createElement('span', { className: prefixCls + '-picker-icon' })
                );
            };
            return React.createElement(
                'span',
                { className: (0, _classnames2['default'])(className, pickerClass), id: this.props.id },
                React.createElement(
                    _Picker2['default'],
                    (0, _extends3['default'])({}, this.props, { calendar: calendar, prefixCls: prefixCls + '-picker-container', value: pickerValue, onChange: this.handleChange, style: popupStyle }),
                    input
                )
            );
        }
    }], [{
        key: 'getDerivedStateFromProps',
        value: function getDerivedStateFromProps(nextProps) {
            if ('value' in nextProps) {
                return { value: nextProps.value };
            }
            return null;
        }
    }]);
    return WeekPicker;
}(React.Component);

WeekPicker.defaultProps = {
    format: 'gggg-wo',
    allowClear: true
};
(0, _reactLifecyclesCompat.polyfill)(WeekPicker);
exports['default'] = WeekPicker;
module.exports = exports['default'];// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "version", function() { return /* reexport */ version; });
__webpack_require__.d(__webpack_exports__, "bisect", function() { return /* reexport */ bisect; });
__webpack_require__.d(__webpack_exports__, "bisectRight", function() { return /* reexport */ bisectRight; });
__webpack_require__.d(__webpack_exports__, "bisectLeft", function() { return /* reexport */ bisectLeft; });
__webpack_require__.d(__webpack_exports__, "ascending", function() { return /* reexport */ ascending; });
__webpack_require__.d(__webpack_exports__, "bisector", function() { return /* reexport */ bisector; });
__webpack_require__.d(__webpack_exports__, "cross", function() { return /* reexport */ cross; });
__webpack_require__.d(__webpack_exports__, "descending", function() { return /* reexport */ descending; });
__webpack_require__.d(__webpack_exports__, "deviation", function() { return /* reexport */ deviation; });
__webpack_require__.d(__webpack_exports__, "extent", function() { return /* reexport */ src_extent; });
__webpack_require__.d(__webpack_exports__, "histogram", function() { return /* reexport */ src_histogram; });
__webpack_require__.d(__webpack_exports__, "thresholdFreedmanDiaconis", function() { return /* reexport */ freedmanDiaconis; });
__webpack_require__.d(__webpack_exports__, "thresholdScott", function() { return /* reexport */ scott; });
__webpack_require__.d(__webpack_exports__, "thresholdSturges", function() { return /* reexport */ sturges; });
__webpack_require__.d(__webpack_exports__, "max", function() { return /* reexport */ src_max; });
__webpack_require__.d(__webpack_exports__, "mean", function() { return /* reexport */ src_mean; });
__webpack_require__.d(__webpack_exports__, "median", function() { return /* reexport */ median; });
__webpack_require__.d(__webpack_exports__, "merge", function() { return /* reexport */ src_merge; });
__webpack_require__.d(__webpack_exports__, "min", function() { return /* reexport */ src_min; });
__webpack_require__.d(__webpack_exports__, "pairs", function() { return /* reexport */ pairs; });
__webpack_require__.d(__webpack_exports__, "permute", function() { return /* reexport */ permute; });
__webpack_require__.d(__webpack_exports__, "quantile", function() { return /* reexport */ quantile; });
__webpack_require__.d(__webpack_exports__, "range", function() { return /* reexport */ src_range; });
__webpack_require__.d(__webpack_exports__, "scan", function() { return /* reexport */ scan; });
__webpack_require__.d(__webpack_exports__, "shuffle", function() { return /* reexport */ shuffle; });
__webpack_require__.d(__webpack_exports__, "sum", function() { return /* reexport */ src_sum; });
__webpack_require__.d(__webpack_exports__, "ticks", function() { return /* reexport */ ticks; });
__webpack_require__.d(__webpack_exports__, "tickIncrement", function() { return /* reexport */ tickIncrement; });
__webpack_require__.d(__webpack_exports__, "tickStep", function() { return /* reexport */ tickStep; });
__webpack_require__.d(__webpack_exports__, "transpose", function() { return /* reexport */ src_transpose; });
__webpack_require__.d(__webpack_exports__, "variance", function() { return /* reexport */ variance; });
__webpack_require__.d(__webpack_exports__, "zip", function() { return /* reexport */ zip; });
__webpack_require__.d(__webpack_exports__, "axisTop", function() { return /* reexport */ axisTop; });
__webpack_require__.d(__webpack_exports__, "axisRight", function() { return /* reexport */ axisRight; });
__webpack_require__.d(__webpack_exports__, "axisBottom", function() { return /* reexport */ axisBottom; });
__webpack_require__.d(__webpack_exports__, "axisLeft", function() { return /* reexport */ axisLeft; });
__webpack_require__.d(__webpack_exports__, "brush", function() { return /* reexport */ src_brush; });
__webpack_require__.d(__webpack_exports__, "brushX", function() { return /* reexport */ brushX; });
__webpack_require__.d(__webpack_exports__, "brushY", function() { return /* reexport */ brushY; });
__webpack_require__.d(__webpack_exports__, "brushSelection", function() { return /* reexport */ brushSelection; });
__webpack_require__.d(__webpack_exports__, "chord", function() { return /* reexport */ src_chord; });
__webpack_require__.d(__webpack_exports__, "ribbon", function() { return /* reexport */ src_ribbon; });
__webpack_require__.d(__webpack_exports__, "nest", function() { return /* reexport */ d3_collection["d" /* nest */]; });
__webpack_require__.d(__webpack_exports__, "set", function() { return /* reexport */ d3_collection["e" /* set */]; });
__webpack_require__.d(__webpack_exports__, "map", function() { return /* reexport */ d3_collection["c" /* map */]; });
__webpack_require__.d(__webpack_exports__, "keys", function() { return /* reexport */ d3_collection["b" /* keys */]; });
__webpack_require__.d(__webpack_exports__, "values", function() { return /* reexport */ d3_collection["f" /* values */]; });
__webpack_require__.d(__webpack_exports__, "entries", function() { return /* reexport */ d3_collection["a" /* entries */]; });
__webpack_require__.d(__webpack_exports__, "color", function() { return /* reexport */ d3_color["a" /* color */]; });
__webpack_require__.d(__webpack_exports__, "rgb", function() { return /* reexport */ d3_color["f" /* rgb */]; });
__webpack_require__.d(__webpack_exports__, "hsl", function() { return /* reexport */ d3_color["d" /* hsl */]; });
__webpack_require__.d(__webpack_exports__, "lab", function() { return /* reexport */ d3_color["e" /* lab */]; });
__webpack_require__.d(__webpack_exports__, "hcl", function() { return /* reexport */ d3_color["c" /* hcl */]; });
__webpack_require__.d(__webpack_exports__, "cubehelix", function() { return /* reexport */ d3_color["b" /* cubehelix */]; });
__webpack_require__.d(__webpack_exports__, "dispatch", function() { return /* reexport */ src_dispatch; });
__webpack_require__.d(__webpack_exports__, "drag", function() { return /* reexport */ src_drag; });
__webpack_require__.d(__webpack_exports__, "dragDisable", function() { return /* reexport */ nodrag; });
__webpack_require__.d(__webpack_exports__, "dragEnable", function() { return /* reexport */ yesdrag; });
__webpack_require__.d(__webpack_exports__, "dsvFormat", function() { return /* reexport */ dsv; });
__webpack_require__.d(__webpack_exports__, "csvParse", function() { return /* reexport */ csvParse; });
__webpack_require__.d(__webpack_exports__, "csvParseRows", function() { return /* reexport */ csvParseRows; });
__webpack_require__.d(__webpack_exports__, "csvFormat", function() { return /* reexport */ csvFormat; });
__webpack_require__.d(__webpack_exports__, "csvFormatRows", function() { return /* reexport */ csvFormatRows; });
__webpack_require__.d(__webpack_exports__, "tsvParse", function() { return /* reexport */ tsvParse; });
__webpack_require__.d(__webpack_exports__, "tsvParseRows", function() { return /* reexport */ tsvParseRows; });
__webpack_require__.d(__webpack_exports__, "tsvFormat", function() { return /* reexport */ tsvFormat; });
__webpack_require__.d(__webpack_exports__, "tsvFormatRows", function() { return /* reexport */ tsvFormatRows; });
__webpack_require__.d(__webpack_exports__, "easeLinear", function() { return /* reexport */ linear; });
__webpack_require__.d(__webpack_exports__, "easeQuad", function() { return /* reexport */ quadInOut; });
__webpack_require__.d(__webpack_exports__, "easeQuadIn", function() { return /* reexport */ quadIn; });
__webpack_require__.d(__webpack_exports__, "easeQuadOut", function() { return /* reexport */ quadOut; });
__webpack_require__.d(__webpack_exports__, "easeQuadInOut", function() { return /* reexport */ quadInOut; });
__webpack_require__.d(__webpack_exports__, "easeCubic", function() { return /* reexport */ cubicInOut; });
__webpack_require__.d(__webpack_exports__, "easeCubicIn", function() { return /* reexport */ cubicIn; });
__webpack_require__.d(__webpack_exports__, "easeCubicOut", function() { return /* reexport */ cubicOut; });
__webpack_require__.d(__webpack_exports__, "easeCubicInOut", function() { return /* reexport */ cubicInOut; });
__webpack_require__.d(__webpack_exports__, "easePoly", function() { return /* reexport */ polyInOut; });
__webpack_require__.d(__webpack_exports__, "easePolyIn", function() { return /* reexport */ polyIn; });
__webpack_require__.d(__webpack_exports__, "easePolyOut", function() { return /* reexport */ polyOut; });
__webpack_require__.d(__webpack_exports__, "easePolyInOut", function() { return /* reexport */ polyInOut; });
__webpack_require__.d(__webpack_exports__, "easeSin", function() { return /* reexport */ sinInOut; });
__webpack_require__.d(__webpack_exports__, "easeSinIn", function() { return /* reexport */ sinIn; });
__webpack_require__.d(__webpack_exports__, "easeSinOut", function() { return /* reexport */ sinOut; });
__webpack_require__.d(__webpack_exports__, "easeSinInOut", function() { return /* reexport */ sinInOut; });
__webpack_require__.d(__webpack_exports__, "easeExp", function() { return /* reexport */ expInOut; });
__webpack_require__.d(__webpack_exports__, "easeExpIn", function() { return /* reexport */ expIn; });
__webpack_require__.d(__webpack_exports__, "easeExpOut", function() { return /* reexport */ expOut; });
__webpack_require__.d(__webpack_exports__, "easeExpInOut", function() { return /* reexport */ expInOut; });
__webpack_require__.d(__webpack_exports__, "easeCircle", function() { return /* reexport */ circleInOut; });
__webpack_require__.d(__webpack_exports__, "easeCircleIn", function() { return /* reexport */ circleIn; });
__webpack_require__.d(__webpack_exports__, "easeCircleOut", function() { return /* reexport */ circleOut; });
__webpack_require__.d(__webpack_exports__, "easeCircleInOut", function() { return /* reexport */ circleInOut; });
__webpack_require__.d(__webpack_exports__, "easeBounce", function() { return /* reexport */ bounceOut; });
__webpack_require__.d(__webpack_exports__, "easeBounceIn", function() { return /* reexport */ bounceIn; });
__webpack_require__.d(__webpack_exports__, "easeBounceOut", function() { return /* reexport */ bounceOut; });
__webpack_require__.d(__webpack_exports__, "easeBounceInOut", function() { return /* reexport */ bounceInOut; });
__webpack_require__.d(__webpack_exports__, "easeBack", function() { return /* reexport */ backInOut; });
__webpack_require__.d(__webpack_exports__, "easeBackIn", function() { return /* reexport */ backIn; });
__webpack_require__.d(__webpack_exports__, "easeBackOut", function() { return /* reexport */ backOut; });
__webpack_require__.d(__webpack_exports__, "easeBackInOut", function() { return /* reexport */ backInOut; });
__webpack_require__.d(__webpack_exports__, "easeElastic", function() { return /* reexport */ elasticOut; });
__webpack_require__.d(__webpack_exports__, "easeElasticIn", function() { return /* reexport */ elasticIn; });
__webpack_require__.d(__webpack_exports__, "easeElasticOut", function() { return /* reexport */ elasticOut; });
__webpack_require__.d(__webpack_exports__, "easeElasticInOut", function() { return /* reexport */ elasticInOut; });
__webpack_require__.d(__webpack_exports__, "forceCenter", function() { return /* reexport */ src_center; });
__webpack_require__.d(__webpack_exports__, "forceCollide", function() { return /* reexport */ collide; });
__webpack_require__.d(__webpack_exports__, "forceLink", function() { return /* reexport */ src_link; });
__webpack_require__.d(__webpack_exports__, "forceManyBody", function() { return /* reexport */ manyBody; });
__webpack_require__.d(__webpack_exports__, "forceRadial", function() { return /* reexport */ radial; });
__webpack_require__.d(__webpack_exports__, "forceSimulation", function() { return /* reexport */ src_simulation; });
__webpack_require__.d(__webpack_exports__, "forceX", function() { return /* reexport */ d3_force_src_x; });
__webpack_require__.d(__webpack_exports__, "forceY", function() { return /* reexport */ d3_force_src_y; });
__webpack_require__.d(__webpack_exports__, "formatDefaultLocale", function() { return /* reexport */ d3_format["b" /* formatDefaultLocale */]; });
__webpack_require__.d(__webpack_exports__, "format", function() { return /* reexport */ d3_format["a" /* format */]; });
__webpack_require__.d(__webpack_exports__, "formatPrefix", function() { return /* reexport */ d3_format["d" /* formatPrefix */]; });
__webpack_require__.d(__webpack_exports__, "formatLocale", function() { return /* reexport */ d3_format["c" /* formatLocale */]; });
__webpack_require__.d(__webpack_exports__, "formatSpecifier", function() { return /* reexport */ d3_format["e" /* formatSpecifier */]; });
__webpack_require__.d(__webpack_exports__, "precisionFixed", function() { return /* reexport */ d3_format["f" /* precisionFixed */]; });
__webpack_require__.d(__webpack_exports__, "precisionPrefix", function() { return /* reexport */ d3_format["g" /* precisionPrefix */]; });
__webpack_require__.d(__webpack_exports__, "precisionRound", function() { return /* reexport */ d3_format["h" /* precisionRound */]; });
__webpack_require__.d(__webpack_exports__, "geoArea", function() { return /* reexport */ src_area; });
__webpack_require__.d(__webpack_exports__, "geoBounds", function() { return /* reexport */ bounds; });
__webpack_require__.d(__webpack_exports__, "geoCentroid", function() { return /* reexport */ src_centroid; });
__webpack_require__.d(__webpack_exports__, "geoCircle", function() { return /* reexport */ src_circle; });
__webpack_require__.d(__webpack_exports__, "geoClipAntimeridian", function() { return /* reexport */ clip_antimeridian; });
__webpack_require__.d(__webpack_exports__, "geoClipCircle", function() { return /* reexport */ clip_circle; });
__webpack_require__.d(__webpack_exports__, "geoClipExtent", function() { return /* reexport */ clip_extent; });
__webpack_require__.d(__webpack_exports__, "geoClipRectangle", function() { return /* reexport */ clipRectangle; });
__webpack_require__.d(__webpack_exports__, "geoContains", function() { return /* reexport */ contains; });
__webpack_require__.d(__webpack_exports__, "geoDistance", function() { return /* reexport */ src_distance; });
__webpack_require__.d(__webpack_exports__, "geoGraticule", function() { return /* reexport */ graticule_graticule; });
__webpack_require__.d(__webpack_exports__, "geoGraticule10", function() { return /* reexport */ graticule10; });
__webpack_require__.d(__webpack_exports__, "geoInterpolate", function() { return /* reexport */ src_interpolate; });
__webpack_require__.d(__webpack_exports__, "geoLength", function() { return /* reexport */ src_length; });
__webpack_require__.d(__webpack_exports__, "geoPath", function() { return /* reexport */ src_path; });
__webpack_require__.d(__webpack_exports__, "geoAlbers", function() { return /* reexport */ albers; });
__webpack_require__.d(__webpack_exports__, "geoAlbersUsa", function() { return /* reexport */ projection_albersUsa; });
__webpack_require__.d(__webpack_exports__, "geoAzimuthalEqualArea", function() { return /* reexport */ azimuthalEqualArea; });
__webpack_require__.d(__webpack_exports__, "geoAzimuthalEqualAreaRaw", function() { return /* reexport */ azimuthalEqualAreaRaw; });
__webpack_require__.d(__webpack_exports__, "geoAzimuthalEquidistant", function() { return /* reexport */ azimuthalEquidistant; });
__webpack_require__.d(__webpack_exports__, "geoAzimuthalEquidistantRaw", function() { return /* reexport */ azimuthalEquidistantRaw; });
__webpack_require__.d(__webpack_exports__, "geoConicConformal", function() { return /* reexport */ conicConformal; });
__webpack_require__.d(__webpack_exports__, "geoConicConformalRaw", function() { return /* reexport */ conicConformalRaw; });
__webpack_require__.d(__webpack_exports__, "geoConicEqualArea", function() { return /* reexport */ conicEqualArea; });
__webpack_require__.d(__webpack_exports__, "geoConicEqualAreaRaw", function() { return /* reexport */ conicEqualAreaRaw; });
__webpack_require__.d(__webpack_exports__, "geoConicEquidistant", function() { return /* reexport */ conicEquidistant; });
__webpack_require__.d(__webpack_exports__, "geoConicEquidistantRaw", function() { return /* reexport */ conicEquidistantRaw; });
__webpack_require__.d(__webpack_exports__, "geoEquirectangular", function() { return /* reexport */ equirectangular; });
__webpack_require__.d(__webpack_exports__, "geoEquirectangularRaw", function() { return /* reexport */ equirectangularRaw; });
__webpack_require__.d(__webpack_exports__, "geoGnomonic", function() { return /* reexport */ gnomonic; });
__webpack_require__.d(__webpack_exports__, "geoGnomonicRaw", function() { return /* reexport */ gnomonicRaw; });
__webpack_require__.d(__webpack_exports__, "geoIdentity", function() { return /* reexport */ projection_identity; });
__webpack_require__.d(__webpack_exports__, "geoProjection", function() { return /* reexport */ projection_projection; });
__webpack_require__.d(__webpack_exports__, "geoProjectionMutator", function() { return /* reexport */ projectionMutator; });
__webpack_require__.d(__webpack_exports__, "geoMercator", function() { return /* reexport */ mercator; });
__webpack_require__.d(__webpack_exports__, "geoMercatorRaw", function() { return /* reexport */ mercatorRaw; });
__webpack_require__.d(__webpack_exports__, "geoNaturalEarth1", function() { return /* reexport */ naturalEarth1; });
__webpack_require__.d(__webpack_exports__, "geoNaturalEarth1Raw", function() { return /* reexport */ naturalEarth1Raw; });
__webpack_require__.d(__webpack_exports__, "geoOrthographic", function() { return /* reexport */ orthographic; });
__webpack_require__.d(__webpack_exports__, "geoOrthographicRaw", function() { return /* reexport */ orthographicRaw; });
__webpack_require__.d(__webpack_exports__, "geoStereographic", function() { return /* reexport */ stereographic; });
__webpack_require__.d(__webpack_exports__, "geoStereographicRaw", function() { return /* reexport */ stereographicRaw; });
__webpack_require__.d(__webpack_exports__, "geoTransverseMercator", function() { return /* reexport */ transverseMercator; });
__webpack_require__.d(__webpack_exports__, "geoTransverseMercatorRaw", function() { return /* reexport */ transverseMercatorRaw; });
__webpack_require__.d(__webpack_exports__, "geoRotation", function() { return /* reexport */ src_rotation; });
__webpack_require__.d(__webpack_exports__, "geoStream", function() { return /* reexport */ src_stream; });
__webpack_require__.d(__webpack_exports__, "geoTransform", function() { return /* reexport */ src_transform; });
__webpack_require__.d(__webpack_exports__, "cluster", function() { return /* reexport */ cluster; });
__webpack_require__.d(__webpack_exports__, "hierarchy", function() { return /* reexport */ hierarchy; });
__webpack_require__.d(__webpack_exports__, "pack", function() { return /* reexport */ src_pack; });
__webpack_require__.d(__webpack_exports__, "packSiblings", function() { return /* reexport */ siblings; });
__webpack_require__.d(__webpack_exports__, "packEnclose", function() { return /* reexport */ enclose; });
__webpack_require__.d(__webpack_exports__, "partition", function() { return /* reexport */ src_partition; });
__webpack_require__.d(__webpack_exports__, "stratify", function() { return /* reexport */ src_stratify; });
__webpack_require__.d(__webpack_exports__, "tree", function() { return /* reexport */ src_tree; });
__webpack_require__.d(__webpack_exports__, "treemap", function() { return /* reexport */ src_treemap; });
__webpack_require__.d(__webpack_exports__, "treemapBinary", function() { return /* reexport */ binary; });
__webpack_require__.d(__webpack_exports__, "treemapDice", function() { return /* reexport */ dice; });
__webpack_require__.d(__webpack_exports__, "treemapSlice", function() { return /* reexport */ treemap_slice; });
__webpack_require__.d(__webpack_exports__, "treemapSliceDice", function() { return /* reexport */ sliceDice; });
__webpack_require__.d(__webpack_exports__, "treemapSquarify", function() { return /* reexport */ squarify; });
__webpack_require__.d(__webpack_exports__, "treemapResquarify", function() { return /* reexport */ treemap_resquarify; });
__webpack_require__.d(__webpack_exports__, "interpolate", function() { return /* reexport */ d3_interpolate["a" /* interpolate */]; });
__webpack_require__.d(__webpack_exports__, "interpolateArray", function() { return /* reexport */ d3_interpolate["b" /* interpolateArray */]; });
__webpack_require__.d(__webpack_exports__, "interpolateBasis", function() { return /* reexport */ d3_interpolate["c" /* interpolateBasis */]; });
__webpack_require__.d(__webpack_exports__, "interpolateBasisClosed", function() { return /* reexport */ d3_interpolate["d" /* interpolateBasisClosed */]; });
__webpack_require__.d(__webpack_exports__, "interpolateDate", function() { return /* reexport */ d3_interpolate["g" /* interpolateDate */]; });
__webpack_require__.d(__webpack_exports__, "interpolateNumber", function() { return /* reexport */ d3_interpolate["m" /* interpolateNumber */]; });
__webpack_require__.d(__webpack_exports__, "interpolateObject", function() { return /* reexport */ d3_interpolate["n" /* interpolateObject */]; });
__webpack_require__.d(__webpack_exports__, "interpolateRound", function() { return /* reexport */ d3_interpolate["r" /* interpolateRound */]; });
__webpack_require__.d(__webpack_exports__, "interpolateString", function() { return /* reexport */ d3_interpolate["s" /* interpolateString */]; });
__webpack_require__.d(__webpack_exports__, "interpolateTransformCss", function() { return /* reexport */ d3_interpolate["t" /* interpolateTransformCss */]; });
__webpack_require__.d(__webpack_exports__, "interpolateTransformSvg", function() { return /* reexport */ d3_interpolate["u" /* interpolateTransformSvg */]; });
__webpack_require__.d(__webpack_exports__, "interpolateZoom", function() { return /* reexport */ d3_interpolate["v" /* interpolateZoom */]; });
__webpack_require__.d(__webpack_exports__, "interpolateRgb", function() { return /* reexport */ d3_interpolate["o" /* interpolateRgb */]; });
__webpack_require__.d(__webpack_exports__, "interpolateRgbBasis", function() { return /* reexport */ d3_interpolate["p" /* interpolateRgbBasis */]; });
__webpack_require__.d(__webpack_exports__, "interpolateRgbBasisClosed", function() { return /* reexport */ d3_interpolate["q" /* interpolateRgbBasisClosed */]; });
__webpack_require__.d(__webpack_exports__, "interpolateHsl", function() { return /* reexport */ d3_interpolate["j" /* interpolateHsl */]; });
__webpack_require__.d(__webpack_exports__, "interpolateHslLong", function() { return /* reexport */ d3_interpolate["k" /* interpolateHslLong */]; });
__webpack_require__.d(__webpack_exports__, "interpolateLab", function() { return /* reexport */ d3_interpolate["l" /* interpolateLab */]; });
__webpack_require__.d(__webpack_exports__, "interpolateHcl", function() { return /* reexport */ d3_interpolate["h" /* interpolateHcl */]; });
__webpack_require__.d(__webpack_exports__, "interpolateHclLong", function() { return /* reexport */ d3_interpolate["i" /* interpolateHclLong */]; });
__webpack_require__.d(__webpack_exports__, "interpolateCubehelix", function() { return /* reexport */ d3_interpolate["e" /* interpolateCubehelix */]; });
__webpack_require__.d(__webpack_exports__, "interpolateCubehelixLong", function() { return /* reexport */ d3_interpolate["f" /* interpolateCubehelixLong */]; });
__webpack_require__.d(__webpack_exports__, "quantize", function() { return /* reexport */ d3_interpolate["w" /* quantize */]; });
__webpack_require__.d(__webpack_exports__, "path", function() { return /* reexport */ d3_path["a" /* path */]; });
__webpack_require__.d(__webpack_exports__, "polygonArea", function() { return /* reexport */ d3_polygon_src_area; });
__webpack_require__.d(__webpack_exports__, "polygonCentroid", function() { return /* reexport */ d3_polygon_src_centroid; });
__webpack_require__.d(__webpack_exports__, "polygonHull", function() { return /* reexport */ hull; });
__webpack_require__.d(__webpack_exports__, "polygonContains", function() { return /* reexport */ src_contains; });
__webpack_require__.d(__webpack_exports__, "polygonLength", function() { return /* reexport */ d3_polygon_src_length; });
__webpack_require__.d(__webpack_exports__, "quadtree", function() { return /* reexport */ quadtree; });
__webpack_require__.d(__webpack_exports__, "queue", function() { return /* reexport */ queue; });
__webpack_require__.d(__webpack_exports__, "randomUniform", function() { return /* reexport */ uniform; });
__webpack_require__.d(__webpack_exports__, "randomNormal", function() { return /* reexport */ src_normal; });
__webpack_require__.d(__webpack_exports__, "randomLogNormal", function() { return /* reexport */ logNormal; });
__webpack_require__.d(__webpack_exports__, "randomBates", function() { return /* reexport */ bates; });
__webpack_require__.d(__webpack_exports__, "randomIrwinHall", function() { return /* reexport */ irwinHall; });
__webpack_require__.d(__webpack_exports__, "randomExponential", function() { return /* reexport */ exponential; });
__webpack_require__.d(__webpack_exports__, "request", function() { return /* reexport */ src_request; });
__webpack_require__.d(__webpack_exports__, "html", function() { return /* reexport */ src_html; });
__webpack_require__.d(__webpack_exports__, "json", function() { return /* reexport */ json; });
__webpack_require__.d(__webpack_exports__, "text", function() { return /* reexport */ src_text; });
__webpack_require__.d(__webpack_exports__, "xml", function() { return /* reexport */ xml; });
__webpack_require__.d(__webpack_exports__, "csv", function() { return /* reexport */ src_csv; });
__webpack_require__.d(__webpack_exports__, "tsv", function() { return /* reexport */ src_tsv; });
__webpack_require__.d(__webpack_exports__, "scaleBand", function() { return /* reexport */ d3_scale["scaleBand"]; });
__webpack_require__.d(__webpack_exports__, "scalePoint", function() { return /* reexport */ d3_scale["scalePoint"]; });
__webpack_require__.d(__webpack_exports__, "scaleIdentity", function() { return /* reexport */ d3_scale["scaleIdentity"]; });
__webpack_require__.d(__webpack_exports__, "scaleLinear", function() { return /* reexport */ d3_scale["scaleLinear"]; });
__webpack_require__.d(__webpack_exports__, "scaleLog", function() { return /* reexport */ d3_scale["scaleLog"]; });
__webpack_require__.d(__webpack_exports__, "scaleOrdinal", function() { return /* reexport */ d3_scale["scaleOrdinal"]; });
__webpack_require__.d(__webpack_exports__, "scaleImplicit", function() { return /* reexport */ d3_scale["scaleImplicit"]; });
__webpack_require__.d(__webpack_exports__, "scalePow", function() { return /* reexport */ d3_scale["scalePow"]; });
__webpack_require__.d(__webpack_exports__, "scaleSqrt", function() { return /* reexport */ d3_scale["scaleSqrt"]; });
__webpack_require__.d(__webpack_exports__, "scaleQuantile", function() { return /* reexport */ d3_scale["scaleQuantile"]; });
__webpack_require__.d(__webpack_exports__, "scaleQuantize", function() { return /* reexport */ d3_scale["scaleQuantize"]; });
__webpack_require__.d(__webpack_exports__, "scaleThreshold", function() { return /* reexport */ d3_scale["scaleThreshold"]; });
__webpack_require__.d(__webpack_exports__, "scaleTime", function() { return /* reexport */ d3_scale["scaleTime"]; });
__webpack_require__.d(__webpack_exports__, "scaleUtc", function() { return /* reexport */ d3_scale["scaleUtc"]; });
__webpack_require__.d(__webpack_exports__, "schemeCategory10", function() { return /* reexport */ d3_scale["schemeCategory10"]; });
__webpack_require__.d(__webpack_exports__, "schemeCategory20b", function() { return /* reexport */ d3_scale["schemeCategory20b"]; });
__webpack_require__.d(__webpack_exports__, "schemeCategory20c", function() { return /* reexport */ d3_scale["schemeCategory20c"]; });
__webpack_require__.d(__webpack_exports__, "schemeCategory20", function() { return /* reexport */ d3_scale["schemeCategory20"]; });
__webpack_require__.d(__webpack_exports__, "interpolateCubehelixDefault", function() { return /* reexport */ d3_scale["interpolateCubehelixDefault"]; });
__webpack_require__.d(__webpack_exports__, "interpolateRainbow", function() { return /* reexport */ d3_scale["interpolateRainbow"]; });
__webpack_require__.d(__webpack_exports__, "interpolateWarm", function() { return /* reexport */ d3_scale["interpolateWarm"]; });
__webpack_require__.d(__webpack_exports__, "interpolateCool", function() { return /* reexport */ d3_scale["interpolateCool"]; });
__webpack_require__.d(__webpack_exports__, "interpolateViridis", function() { return /* reexport */ d3_scale["interpolateViridis"]; });
__webpack_require__.d(__webpack_exports__, "interpolateMagma", function() { return /* reexport */ d3_scale["interpolateMagma"]; });
__webpack_require__.d(__webpack_exports__, "interpolateInferno", function() { return /* reexport */ d3_scale["interpolateInferno"]; });
__webpack_require__.d(__webpack_exports__, "interpolatePlasma", function() { return /* reexport */ d3_scale["interpolatePlasma"]; });
__webpack_require__.d(__webpack_exports__, "scaleSequential", function() { return /* reexport */ d3_scale["scaleSequential"]; });
__webpack_require__.d(__webpack_exports__, "create", function() { return /* reexport */ src_create; });
__webpack_require__.d(__webpack_exports__, "creator", function() { return /* reexport */ creator; });
__webpack_require__.d(__webpack_exports__, "local", function() { return /* reexport */ local; });
__webpack_require__.d(__webpack_exports__, "matcher", function() { return /* reexport */ src_matcher; });
__webpack_require__.d(__webpack_exports__, "mouse", function() { return /* reexport */ mouse; });
__webpack_require__.d(__webpack_exports__, "namespace", function() { return /* reexport */ namespace; });
__webpack_require__.d(__webpack_exports__, "namespaces", function() { return /* reexport */ namespaces; });
__webpack_require__.d(__webpack_exports__, "clientPoint", function() { return /* reexport */ src_point; });
__webpack_require__.d(__webpack_exports__, "select", function() { return /* reexport */ src_select; });
__webpack_require__.d(__webpack_exports__, "selectAll", function() { return /* reexport */ src_selectAll; });
__webpack_require__.d(__webpack_exports__, "selection", function() { return /* reexport */ src_selection; });
__webpack_require__.d(__webpack_exports__, "selector", function() { return /* reexport */ src_selector; });
__webpack_require__.d(__webpack_exports__, "selectorAll", function() { return /* reexport */ selectorAll; });
__webpack_require__.d(__webpack_exports__, "style", function() { return /* reexport */ styleValue; });
__webpack_require__.d(__webpack_exports__, "touch", function() { return /* reexport */ src_touch; });
__webpack_require__.d(__webpack_exports__, "touches", function() { return /* reexport */ src_touches; });
__webpack_require__.d(__webpack_exports__, "window", function() { return /* reexport */ src_window; });
__webpack_require__.d(__webpack_exports__, "event", function() { return /* reexport */ on_event; });
__webpack_require__.d(__webpack_exports__, "customEvent", function() { return /* reexport */ customEvent; });
__webpack_require__.d(__webpack_exports__, "arc", function() { return /* reexport */ src_arc; });
__webpack_require__.d(__webpack_exports__, "area", function() { return /* reexport */ d3_shape_src_area; });
__webpack_require__.d(__webpack_exports__, "line", function() { return /* reexport */ src_line; });
__webpack_require__.d(__webpack_exports__, "pie", function() { return /* reexport */ src_pie; });
__webpack_require__.d(__webpack_exports__, "areaRadial", function() { return /* reexport */ areaRadial; });
__webpack_require__.d(__webpack_exports__, "radialArea", function() { return /* reexport */ areaRadial; });
__webpack_require__.d(__webpack_exports__, "lineRadial", function() { return /* reexport */ src_lineRadial; });
__webpack_require__.d(__webpack_exports__, "radialLine", function() { return /* reexport */ src_lineRadial; });
__webpack_require__.d(__webpack_exports__, "pointRadial", function() { return /* reexport */ pointRadial; });
__webpack_require__.d(__webpack_exports__, "linkHorizontal", function() { return /* reexport */ linkHorizontal; });
__webpack_require__.d(__webpack_exports__, "linkVertical", function() { return /* reexport */ linkVertical; });
__webpack_require__.d(__webpack_exports__, "linkRadial", function() { return /* reexport */ linkRadial; });
__webpack_require__.d(__webpack_exports__, "symbol", function() { return /* reexport */ src_symbol; });
__webpack_require__.d(__webpack_exports__, "symbols", function() { return /* reexport */ symbols; });
__webpack_require__.d(__webpack_exports__, "symbolCircle", function() { return /* reexport */ symbol_circle; });
__webpack_require__.d(__webpack_exports__, "symbolCross", function() { return /* reexport */ symbol_cross; });
__webpack_require__.d(__webpack_exports__, "symbolDiamond", function() { return /* reexport */ diamond; });
__webpack_require__.d(__webpack_exports__, "symbolSquare", function() { return /* reexport */ square; });
__webpack_require__.d(__webpack_exports__, "symbolStar", function() { return /* reexport */ star; });
__webpack_require__.d(__webpack_exports__, "symbolTriangle", function() { return /* reexport */ triangle; });
__webpack_require__.d(__webpack_exports__, "symbolWye", function() { return /* reexport */ wye; });
__webpack_require__.d(__webpack_exports__, "curveBasisClosed", function() { return /* reexport */ basisClosed; });
__webpack_require__.d(__webpack_exports__, "curveBasisOpen", function() { return /* reexport */ basisOpen; });
__webpack_require__.d(__webpack_exports__, "curveBasis", function() { return /* reexport */ basis; });
__webpack_require__.d(__webpack_exports__, "curveBundle", function() { return /* reexport */ curve_bundle; });
__webpack_require__.d(__webpack_exports__, "curveCardinalClosed", function() { return /* reexport */ cardinalClosed; });
__webpack_require__.d(__webpack_exports__, "curveCardinalOpen", function() { return /* reexport */ cardinalOpen; });
__webpack_require__.d(__webpack_exports__, "curveCardinal", function() { return /* reexport */ cardinal; });
__webpack_require__.d(__webpack_exports__, "curveCatmullRomClosed", function() { return /* reexport */ catmullRomClosed; });
__webpack_require__.d(__webpack_exports__, "curveCatmullRomOpen", function() { return /* reexport */ catmullRomOpen; });
__webpack_require__.d(__webpack_exports__, "curveCatmullRom", function() { return /* reexport */ curve_catmullRom; });
__webpack_require__.d(__webpack_exports__, "curveLinearClosed", function() { return /* reexport */ linearClosed; });
__webpack_require__.d(__webpack_exports__, "curveLinear", function() { return /* reexport */ curve_linear; });
__webpack_require__.d(__webpack_exports__, "curveMonotoneX", function() { return /* reexport */ monotoneX; });
__webpack_require__.d(__webpack_exports__, "curveMonotoneY", function() { return /* reexport */ monotoneY; });
__webpack_require__.d(__webpack_exports__, "curveNatural", function() { return /* reexport */ natural; });
__webpack_require__.d(__webpack_exports__, "curveStep", function() { return /* reexport */ curve_step; });
__webpack_require__.d(__webpack_exports__, "curveStepAfter", function() { return /* reexport */ stepAfter; });
__webpack_require__.d(__webpack_exports__, "curveStepBefore", function() { return /* reexport */ stepBefore; });
__webpack_require__.d(__webpack_exports__, "stack", function() { return /* reexport */ src_stack; });
__webpack_require__.d(__webpack_exports__, "stackOffsetExpand", function() { return /* reexport */ expand; });
__webpack_require__.d(__webpack_exports__, "stackOffsetDiverging", function() { return /* reexport */ diverging; });
__webpack_require__.d(__webpack_exports__, "stackOffsetNone", function() { return /* reexport */ offset_none; });
__webpack_require__.d(__webpack_exports__, "stackOffsetSilhouette", function() { return /* reexport */ silhouette; });
__webpack_require__.d(__webpack_exports__, "stackOffsetWiggle", function() { return /* reexport */ wiggle; });
__webpack_require__.d(__webpack_exports__, "stackOrderAscending", function() { return /* reexport */ order_ascending; });
__webpack_require__.d(__webpack_exports__, "stackOrderDescending", function() { return /* reexport */ order_descending; });
__webpack_require__.d(__webpack_exports__, "stackOrderInsideOut", function() { return /* reexport */ insideOut; });
__webpack_require__.d(__webpack_exports__, "stackOrderNone", function() { return /* reexport */ order_none; });
__webpack_require__.d(__webpack_exports__, "stackOrderReverse", function() { return /* reexport */ reverse; });
__webpack_require__.d(__webpack_exports__, "timeInterval", function() { return /* reexport */ d3_time["g" /* timeInterval */]; });
__webpack_require__.d(__webpack_exports__, "timeMillisecond", function() { return /* reexport */ d3_time["h" /* timeMillisecond */]; });
__webpack_require__.d(__webpack_exports__, "timeMilliseconds", function() { return /* reexport */ d3_time["i" /* timeMilliseconds */]; });
__webpack_require__.d(__webpack_exports__, "utcMillisecond", function() { return /* reexport */ d3_time["L" /* utcMillisecond */]; });
__webpack_require__.d(__webpack_exports__, "utcMilliseconds", function() { return /* reexport */ d3_time["M" /* utcMilliseconds */]; });
__webpack_require__.d(__webpack_exports__, "timeSecond", function() { return /* reexport */ d3_time["r" /* timeSecond */]; });
__webpack_require__.d(__webpack_exports__, "timeSeconds", function() { return /* reexport */ d3_time["s" /* timeSeconds */]; });
__webpack_require__.d(__webpack_exports__, "utcSecond", function() { return /* reexport */ d3_time["V" /* utcSecond */]; });
__webpack_require__.d(__webpack_exports__, "utcSeconds", function() { return /* reexport */ d3_time["W" /* utcSeconds */]; });
__webpack_require__.d(__webpack_exports__, "timeMinute", function() { return /* reexport */ d3_time["j" /* timeMinute */]; });
__webpack_require__.d(__webpack_exports__, "timeMinutes", function() { return /* reexport */ d3_time["k" /* timeMinutes */]; });
__webpack_require__.d(__webpack_exports__, "timeHour", function() { return /* reexport */ d3_time["e" /* timeHour */]; });
__webpack_require__.d(__webpack_exports__, "timeHours", function() { return /* reexport */ d3_time["f" /* timeHours */]; });
__webpack_require__.d(__webpack_exports__, "timeDay", function() { return /* reexport */ d3_time["a" /* timeDay */]; });
__webpack_require__.d(__webpack_exports__, "timeDays", function() { return /* reexport */ d3_time["b" /* timeDays */]; });
__webpack_require__.d(__webpack_exports__, "timeWeek", function() { return /* reexport */ d3_time["B" /* timeWeek */]; });
__webpack_require__.d(__webpack_exports__, "timeWeeks", function() { return /* reexport */ d3_time["C" /* timeWeeks */]; });
__webpack_require__.d(__webpack_exports__, "timeSunday", function() { return /* reexport */ d3_time["t" /* timeSunday */]; });
__webpack_require__.d(__webpack_exports__, "timeSundays", function() { return /* reexport */ d3_time["u" /* timeSundays */]; });
__webpack_require__.d(__webpack_exports__, "timeMonday", function() { return /* reexport */ d3_time["l" /* timeMonday */]; });
__webpack_require__.d(__webpack_exports__, "timeMondays", function() { return /* reexport */ d3_time["m" /* timeMondays */]; });
__webpack_require__.d(__webpack_exports__, "timeTuesday", function() { return /* reexport */ d3_time["x" /* timeTuesday */]; });
__webpack_require__.d(__webpack_exports__, "timeTuesdays", function() { return /* reexport */ d3_time["y" /* timeTuesdays */]; });
__webpack_require__.d(__webpack_exports__, "timeWednesday", function() { return /* reexport */ d3_time["z" /* timeWednesday */]; });
__webpack_require__.d(__webpack_exports__, "timeWednesdays", function() { return /* reexport */ d3_time["A" /* timeWednesdays */]; });
__webpack_require__.d(__webpack_exports__, "timeThursday", function() { return /* reexport */ d3_time["v" /* timeThursday */]; });
__webpack_require__.d(__webpack_exports__, "timeThursdays", function() { return /* reexport */ d3_time["w" /* timeThursdays */]; });
__webpack_require__.d(__webpack_exports__, "timeFriday", function() { return /* reexport */ d3_time["c" /* timeFriday */]; });
__webpack_require__.d(__webpack_exports__, "timeFridays", function() { return /* reexport */ d3_time["d" /* timeFridays */]; });
__webpack_require__.d(__webpack_exports__, "timeSaturday", function() { return /* reexport */ d3_time["p" /* timeSaturday */]; });
__webpack_require__.d(__webpack_exports__, "timeSaturdays", function() { return /* reexport */ d3_time["q" /* timeSaturdays */]; });
__webpack_require__.d(__webpack_exports__, "timeMonth", function() { return /* reexport */ d3_time["n" /* timeMonth */]; });
__webpack_require__.d(__webpack_exports__, "timeMonths", function() { return /* reexport */ d3_time["o" /* timeMonths */]; });
__webpack_require__.d(__webpack_exports__, "timeYear", function() { return /* reexport */ d3_time["D" /* timeYear */]; });
__webpack_require__.d(__webpack_exports__, "timeYears", function() { return /* reexport */ d3_time["E" /* timeYears */]; });
__webpack_require__.d(__webpack_exports__, "utcMinute", function() { return /* reexport */ d3_time["N" /* utcMinute */]; });
__webpack_require__.d(__webpack_exports__, "utcMinutes", function() { return /* reexport */ d3_time["O" /* utcMinutes */]; });
__webpack_require__.d(__webpack_exports__, "utcHour", function() { return /* reexport */ d3_time["J" /* utcHour */]; });
__webpack_require__.d(__webpack_exports__, "utcHours", function() { return /* reexport */ d3_time["K" /* utcHours */]; });
__webpack_require__.d(__webpack_exports__, "utcDay", function() { return /* reexport */ d3_time["F" /* utcDay */]; });
__webpack_require__.d(__webpack_exports__, "utcDays", function() { return /* reexport */ d3_time["G" /* utcDays */]; });
__webpack_require__.d(__webpack_exports__, "utcWeek", function() { return /* reexport */ d3_time["fb" /* utcWeek */]; });
__webpack_require__.d(__webpack_exports__, "utcWeeks", function() { return /* reexport */ d3_time["gb" /* utcWeeks */]; });
__webpack_require__.d(__webpack_exports__, "utcSunday", function() { return /* reexport */ d3_time["X" /* utcSunday */]; });
__webpack_require__.d(__webpack_exports__, "utcSundays", function() { return /* reexport */ d3_time["Y" /* utcSundays */]; });
__webpack_require__.d(__webpack_exports__, "utcMonday", function() { return /* reexport */ d3_time["P" /* utcMonday */]; });
__webpack_require__.d(__webpack_exports__, "utcMondays", function() { return /* reexport */ d3_time["Q" /* utcMondays */]; });
__webpack_require__.d(__webpack_exports__, "utcTuesday", function() { return /* reexport */ d3_time["bb" /* utcTuesday */]; });
__webpack_require__.d(__webpack_exports__, "utcTuesdays", function() { return /* reexport */ d3_time["cb" /* utcTuesdays */]; });
__webpack_require__.d(__webpack_exports__, "utcWednesday", function() { return /* reexport */ d3_time["db" /* utcWednesday */]; });
__webpack_require__.d(__webpack_exports__, "utcWednesdays", function() { return /* reexport */ d3_time["eb" /* utcWednesdays */]; });
__webpack_require__.d(__webpack_exports__, "utcThursday", function() { return /* reexport */ d3_time["Z" /* utcThursday */]; });
__webpack_require__.d(__webpack_exports__, "utcThursdays", function() { return /* reexport */ d3_time["ab" /* utcThursdays */]; });
__webpack_require__.d(__webpack_exports__, "utcFriday", function() { return /* reexport */ d3_time["H" /* utcFriday */]; });
__webpack_require__.d(__webpack_exports__, "utcFridays", function() { return /* reexport */ d3_time["I" /* utcFridays */]; });
__webpack_require__.d(__webpack_exports__, "utcSaturday", function() { return /* reexport */ d3_time["T" /* utcSaturday */]; });
__webpack_require__.d(__webpack_exports__, "utcSaturdays", function() { return /* reexport */ d3_time["U" /* utcSaturdays */]; });
__webpack_require__.d(__webpack_exports__, "utcMonth", function() { return /* reexport */ d3_time["R" /* utcMonth */]; });
__webpack_require__.d(__webpack_exports__, "utcMonths", function() { return /* reexport */ d3_time["S" /* utcMonths */]; });
__webpack_require__.d(__webpack_exports__, "utcYear", function() { return /* reexport */ d3_time["hb" /* utcYear */]; });
__webpack_require__.d(__webpack_exports__, "utcYears", function() { return /* reexport */ d3_time["ib" /* utcYears */]; });
__webpack_require__.d(__webpack_exports__, "timeFormatDefaultLocale", function() { return /* reexport */ defaultLocale; });
__webpack_require__.d(__webpack_exports__, "timeFormat", function() { return /* reexport */ timeFormat; });
__webpack_require__.d(__webpack_exports__, "timeParse", function() { return /* reexport */ timeParse; });
__webpack_require__.d(__webpack_exports__, "utcFormat", function() { return /* reexport */ utcFormat; });
__webpack_require__.d(__webpack_exports__, "utcParse", function() { return /* reexport */ utcParse; });
__webpack_require__.d(__webpack_exports__, "timeFormatLocale", function() { return /* reexport */ formatLocale; });
__webpack_require__.d(__webpack_exports__, "isoFormat", function() { return /* reexport */ isoFormat; });
__webpack_require__.d(__webpack_exports__, "isoParse", function() { return /* reexport */ isoParse; });
__webpack_require__.d(__webpack_exports__, "now", function() { return /* reexport */ now; });
__webpack_require__.d(__webpack_exports__, "timer", function() { return /* reexport */ timer; });
__webpack_require__.d(__webpack_exports__, "timerFlush", function() { return /* reexport */ timerFlush; });
__webpack_require__.d(__webpack_exports__, "timeout", function() { return /* reexport */ src_timeout; });
__webpack_require__.d(__webpack_exports__, "interval", function() { return /* reexport */ src_interval; });
__webpack_require__.d(__webpack_exports__, "transition", function() { return /* reexport */ src_transition_transition; });
__webpack_require__.d(__webpack_exports__, "active", function() { return /* reexport */ src_active; });
__webpack_require__.d(__webpack_exports__, "interrupt", function() { return /* reexport */ interrupt; });
__webpack_require__.d(__webpack_exports__, "voronoi", function() { return /* reexport */ src_voronoi; });
__webpack_require__.d(__webpack_exports__, "zoom", function() { return /* reexport */ src_zoom; });
__webpack_require__.d(__webpack_exports__, "zoomTransform", function() { return /* reexport */ transform_transform; });
__webpack_require__.d(__webpack_exports__, "zoomIdentity", function() { return /* reexport */ transform_identity; });

// CONCATENATED MODULE: ./node_modules/d3/build/package.js
var package_name = "d3";
var version = "4.13.0";
var description = "Data-Driven Documents";
var keywords = ["dom","visualization","svg","animation","canvas"];
var homepage = "https://d3js.org";
var license = "BSD-3-Clause";
var author = {"name":"Mike Bostock","url":"https://bost.ocks.org/mike"};
var main = "build/d3.node.js";
var unpkg = "build/d3.min.js";
var jsdelivr = "build/d3.min.js";
var package_module = "index";
var repository = {"type":"git","url":"https://github.com/d3/d3.git"};
var scripts = {"pretest":"rimraf build && mkdir build && json2module package.json > build/package.js && node rollup.node","test":"tape 'test/**/*-test.js'","prepublishOnly":"npm run test && rollup -c --banner \"$(preamble)\" && uglifyjs -b beautify=false,preamble=\"'$(preamble)'\" build/d3.js -c negate_iife=false -m -o build/d3.min.js","postpublish":"git push && git push --tags && cd ../d3.github.com && git pull && cp ../d3/build/d3.js d3.v4.js && cp ../d3/build/d3.min.js d3.v4.min.js && git add d3.v4.js d3.v4.min.js && git commit -m \"d3 ${npm_package_version}\" && git push && cd - && cd ../d3-bower && git pull && cp ../d3/LICENSE ../d3/README.md ../d3/build/d3.js ../d3/build/d3.min.js . && git add -- LICENSE README.md d3.js d3.min.js && git commit -m \"${npm_package_version}\" && git tag -am \"${npm_package_version}\" v${npm_package_version} && git push && git push --tags && cd - && zip -j build/d3.zip -- LICENSE README.md API.md CHANGES.md build/d3.js build/d3.min.js"};
var devDependencies = {"json2module":"0.0","package-preamble":"0.1","rimraf":"2","rollup":"0.53","rollup-plugin-ascii":"0.0","rollup-plugin-node-resolve":"3","tape":"4","uglify-js":"3.2"};
var dependencies = {"d3-array":"1.2.1","d3-axis":"1.0.8","d3-brush":"1.0.4","d3-chord":"1.0.4","d3-collection":"1.0.4","d3-color":"1.0.3","d3-dispatch":"1.0.3","d3-drag":"1.2.1","d3-dsv":"1.0.8","d3-ease":"1.0.3","d3-force":"1.1.0","d3-format":"1.2.2","d3-geo":"1.9.1","d3-hierarchy":"1.1.5","d3-interpolate":"1.1.6","d3-path":"1.0.5","d3-polygon":"1.0.3","d3-quadtree":"1.0.3","d3-queue":"3.0.7","d3-random":"1.1.0","d3-request":"1.0.6","d3-scale":"1.0.7","d3-selection":"1.3.0","d3-shape":"1.2.0","d3-time":"1.0.8","d3-time-format":"2.1.1","d3-timer":"1.0.7","d3-transition":"1.1.1","d3-voronoi":"1.1.2","d3-zoom":"1.7.1"};

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/ascending.js
/* harmony default export */ var ascending = (function(a, b) {
  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/bisector.js


/* harmony default export */ var bisector = (function(compare) {
  if (compare.length === 1) compare = ascendingComparator(compare);
  return {
    left: function(a, x, lo, hi) {
      if (lo == null) lo = 0;
      if (hi == null) hi = a.length;
      while (lo < hi) {
        var mid = lo + hi >>> 1;
        if (compare(a[mid], x) < 0) lo = mid + 1;
        else hi = mid;
      }
      return lo;
    },
    right: function(a, x, lo, hi) {
      if (lo == null) lo = 0;
      if (hi == null) hi = a.length;
      while (lo < hi) {
        var mid = lo + hi >>> 1;
        if (compare(a[mid], x) > 0) hi = mid;
        else lo = mid + 1;
      }
      return lo;
    }
  };
});

function ascendingComparator(f) {
  return function(d, x) {
    return ascending(f(d), x);
  };
}

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/bisect.js



var ascendingBisect = bisector(ascending);
var bisectRight = ascendingBisect.right;
var bisectLeft = ascendingBisect.left;
/* harmony default export */ var bisect = (bisectRight);

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/pairs.js
/* harmony default export */ var pairs = (function(array, f) {
  if (f == null) f = pair;
  var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);
  while (i < n) pairs[i] = f(p, p = array[++i]);
  return pairs;
});

function pair(a, b) {
  return [a, b];
}

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/cross.js


/* harmony default export */ var cross = (function(values0, values1, reduce) {
  var n0 = values0.length,
      n1 = values1.length,
      values = new Array(n0 * n1),
      i0,
      i1,
      i,
      value0;

  if (reduce == null) reduce = pair;

  for (i0 = i = 0; i0 < n0; ++i0) {
    for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {
      values[i] = reduce(value0, values1[i1]);
    }
  }

  return values;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/descending.js
/* harmony default export */ var descending = (function(a, b) {
  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/number.js
/* harmony default export */ var number = (function(x) {
  return x === null ? NaN : +x;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/variance.js


/* harmony default export */ var variance = (function(values, valueof) {
  var n = values.length,
      m = 0,
      i = -1,
      mean = 0,
      value,
      delta,
      sum = 0;

  if (valueof == null) {
    while (++i < n) {
      if (!isNaN(value = number(values[i]))) {
        delta = value - mean;
        mean += delta / ++m;
        sum += delta * (value - mean);
      }
    }
  }

  else {
    while (++i < n) {
      if (!isNaN(value = number(valueof(values[i], i, values)))) {
        delta = value - mean;
        mean += delta / ++m;
        sum += delta * (value - mean);
      }
    }
  }

  if (m > 1) return sum / (m - 1);
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/deviation.js


/* harmony default export */ var deviation = (function(array, f) {
  var v = variance(array, f);
  return v ? Math.sqrt(v) : v;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/extent.js
/* harmony default export */ var src_extent = (function(values, valueof) {
  var n = values.length,
      i = -1,
      value,
      min,
      max;

  if (valueof == null) {
    while (++i < n) { // Find the first comparable value.
      if ((value = values[i]) != null && value >= value) {
        min = max = value;
        while (++i < n) { // Compare the remaining values.
          if ((value = values[i]) != null) {
            if (min > value) min = value;
            if (max < value) max = value;
          }
        }
      }
    }
  }

  else {
    while (++i < n) { // Find the first comparable value.
      if ((value = valueof(values[i], i, values)) != null && value >= value) {
        min = max = value;
        while (++i < n) { // Compare the remaining values.
          if ((value = valueof(values[i], i, values)) != null) {
            if (min > value) min = value;
            if (max < value) max = value;
          }
        }
      }
    }
  }

  return [min, max];
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/array.js
var array_array = Array.prototype;

var slice = array_array.slice;
var map = array_array.map;

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/constant.js
/* harmony default export */ var constant = (function(x) {
  return function() {
    return x;
  };
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/identity.js
/* harmony default export */ var identity = (function(x) {
  return x;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/range.js
/* harmony default export */ var src_range = (function(start, stop, step) {
  start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;

  var i = -1,
      n = Math.max(0, Math.ceil((stop - start) / step)) | 0,
      range = new Array(n);

  while (++i < n) {
    range[i] = start + i * step;
  }

  return range;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/ticks.js
var e10 = Math.sqrt(50),
    e5 = Math.sqrt(10),
    e2 = Math.sqrt(2);

/* harmony default export */ var ticks = (function(start, stop, count) {
  var reverse,
      i = -1,
      n,
      ticks,
      step;

  stop = +stop, start = +start, count = +count;
  if (start === stop && count > 0) return [start];
  if (reverse = stop < start) n = start, start = stop, stop = n;
  if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];

  if (step > 0) {
    start = Math.ceil(start / step);
    stop = Math.floor(stop / step);
    ticks = new Array(n = Math.ceil(stop - start + 1));
    while (++i < n) ticks[i] = (start + i) * step;
  } else {
    start = Math.floor(start * step);
    stop = Math.ceil(stop * step);
    ticks = new Array(n = Math.ceil(start - stop + 1));
    while (++i < n) ticks[i] = (start - i) / step;
  }

  if (reverse) ticks.reverse();

  return ticks;
});

function tickIncrement(start, stop, count) {
  var step = (stop - start) / Math.max(0, count),
      power = Math.floor(Math.log(step) / Math.LN10),
      error = step / Math.pow(10, power);
  return power >= 0
      ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)
      : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);
}

function tickStep(start, stop, count) {
  var step0 = Math.abs(stop - start) / Math.max(0, count),
      step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
      error = step0 / step1;
  if (error >= e10) step1 *= 10;
  else if (error >= e5) step1 *= 5;
  else if (error >= e2) step1 *= 2;
  return stop < start ? -step1 : step1;
}

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/threshold/sturges.js
/* harmony default export */ var sturges = (function(values) {
  return Math.ceil(Math.log(values.length) / Math.LN2) + 1;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/histogram.js









/* harmony default export */ var src_histogram = (function() {
  var value = identity,
      domain = src_extent,
      threshold = sturges;

  function histogram(data) {
    var i,
        n = data.length,
        x,
        values = new Array(n);

    for (i = 0; i < n; ++i) {
      values[i] = value(data[i], i, data);
    }

    var xz = domain(values),
        x0 = xz[0],
        x1 = xz[1],
        tz = threshold(values, x0, x1);

    // Convert number of thresholds into uniform thresholds.
    if (!Array.isArray(tz)) {
      tz = tickStep(x0, x1, tz);
      tz = src_range(Math.ceil(x0 / tz) * tz, Math.floor(x1 / tz) * tz, tz); // exclusive
    }

    // Remove any thresholds outside the domain.
    var m = tz.length;
    while (tz[0] <= x0) tz.shift(), --m;
    while (tz[m - 1] > x1) tz.pop(), --m;

    var bins = new Array(m + 1),
        bin;

    // Initialize bins.
    for (i = 0; i <= m; ++i) {
      bin = bins[i] = [];
      bin.x0 = i > 0 ? tz[i - 1] : x0;
      bin.x1 = i < m ? tz[i] : x1;
    }

    // Assign data to bins by value, ignoring any outside the domain.
    for (i = 0; i < n; ++i) {
      x = values[i];
      if (x0 <= x && x <= x1) {
        bins[bisect(tz, x, 0, m)].push(data[i]);
      }
    }

    return bins;
  }

  histogram.value = function(_) {
    return arguments.length ? (value = typeof _ === "function" ? _ : constant(_), histogram) : value;
  };

  histogram.domain = function(_) {
    return arguments.length ? (domain = typeof _ === "function" ? _ : constant([_[0], _[1]]), histogram) : domain;
  };

  histogram.thresholds = function(_) {
    return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;
  };

  return histogram;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/quantile.js


/* harmony default export */ var quantile = (function(values, p, valueof) {
  if (valueof == null) valueof = number;
  if (!(n = values.length)) return;
  if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);
  if (p >= 1) return +valueof(values[n - 1], n - 1, values);
  var n,
      i = (n - 1) * p,
      i0 = Math.floor(i),
      value0 = +valueof(values[i0], i0, values),
      value1 = +valueof(values[i0 + 1], i0 + 1, values);
  return value0 + (value1 - value0) * (i - i0);
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/threshold/freedmanDiaconis.js





/* harmony default export */ var freedmanDiaconis = (function(values, min, max) {
  values = map.call(values, number).sort(ascending);
  return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/threshold/scott.js


/* harmony default export */ var scott = (function(values, min, max) {
  return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/max.js
/* harmony default export */ var src_max = (function(values, valueof) {
  var n = values.length,
      i = -1,
      value,
      max;

  if (valueof == null) {
    while (++i < n) { // Find the first comparable value.
      if ((value = values[i]) != null && value >= value) {
        max = value;
        while (++i < n) { // Compare the remaining values.
          if ((value = values[i]) != null && value > max) {
            max = value;
          }
        }
      }
    }
  }

  else {
    while (++i < n) { // Find the first comparable value.
      if ((value = valueof(values[i], i, values)) != null && value >= value) {
        max = value;
        while (++i < n) { // Compare the remaining values.
          if ((value = valueof(values[i], i, values)) != null && value > max) {
            max = value;
          }
        }
      }
    }
  }

  return max;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/mean.js


/* harmony default export */ var src_mean = (function(values, valueof) {
  var n = values.length,
      m = n,
      i = -1,
      value,
      sum = 0;

  if (valueof == null) {
    while (++i < n) {
      if (!isNaN(value = number(values[i]))) sum += value;
      else --m;
    }
  }

  else {
    while (++i < n) {
      if (!isNaN(value = number(valueof(values[i], i, values)))) sum += value;
      else --m;
    }
  }

  if (m) return sum / m;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/median.js




/* harmony default export */ var median = (function(values, valueof) {
  var n = values.length,
      i = -1,
      value,
      numbers = [];

  if (valueof == null) {
    while (++i < n) {
      if (!isNaN(value = number(values[i]))) {
        numbers.push(value);
      }
    }
  }

  else {
    while (++i < n) {
      if (!isNaN(value = number(valueof(values[i], i, values)))) {
        numbers.push(value);
      }
    }
  }

  return quantile(numbers.sort(ascending), 0.5);
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/merge.js
/* harmony default export */ var src_merge = (function(arrays) {
  var n = arrays.length,
      m,
      i = -1,
      j = 0,
      merged,
      array;

  while (++i < n) j += arrays[i].length;
  merged = new Array(j);

  while (--n >= 0) {
    array = arrays[n];
    m = array.length;
    while (--m >= 0) {
      merged[--j] = array[m];
    }
  }

  return merged;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/min.js
/* harmony default export */ var src_min = (function(values, valueof) {
  var n = values.length,
      i = -1,
      value,
      min;

  if (valueof == null) {
    while (++i < n) { // Find the first comparable value.
      if ((value = values[i]) != null && value >= value) {
        min = value;
        while (++i < n) { // Compare the remaining values.
          if ((value = values[i]) != null && min > value) {
            min = value;
          }
        }
      }
    }
  }

  else {
    while (++i < n) { // Find the first comparable value.
      if ((value = valueof(values[i], i, values)) != null && value >= value) {
        min = value;
        while (++i < n) { // Compare the remaining values.
          if ((value = valueof(values[i], i, values)) != null && min > value) {
            min = value;
          }
        }
      }
    }
  }

  return min;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/permute.js
/* harmony default export */ var permute = (function(array, indexes) {
  var i = indexes.length, permutes = new Array(i);
  while (i--) permutes[i] = array[indexes[i]];
  return permutes;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/scan.js


/* harmony default export */ var scan = (function(values, compare) {
  if (!(n = values.length)) return;
  var n,
      i = 0,
      j = 0,
      xi,
      xj = values[j];

  if (compare == null) compare = ascending;

  while (++i < n) {
    if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {
      xj = xi, j = i;
    }
  }

  if (compare(xj, xj) === 0) return j;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/shuffle.js
/* harmony default export */ var shuffle = (function(array, i0, i1) {
  var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),
      t,
      i;

  while (m) {
    i = Math.random() * m-- | 0;
    t = array[m + i0];
    array[m + i0] = array[i + i0];
    array[i + i0] = t;
  }

  return array;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/sum.js
/* harmony default export */ var src_sum = (function(values, valueof) {
  var n = values.length,
      i = -1,
      value,
      sum = 0;

  if (valueof == null) {
    while (++i < n) {
      if (value = +values[i]) sum += value; // Note: zero and null are equivalent.
    }
  }

  else {
    while (++i < n) {
      if (value = +valueof(values[i], i, values)) sum += value;
    }
  }

  return sum;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/transpose.js


/* harmony default export */ var src_transpose = (function(matrix) {
  if (!(n = matrix.length)) return [];
  for (var i = -1, m = src_min(matrix, transpose_length), transpose = new Array(m); ++i < m;) {
    for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {
      row[j] = matrix[j][i];
    }
  }
  return transpose;
});

function transpose_length(d) {
  return d.length;
}

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/src/zip.js


/* harmony default export */ var zip = (function() {
  return src_transpose(arguments);
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-array/index.js




























// CONCATENATED MODULE: ./node_modules/d3-axis/src/array.js
var array_slice = Array.prototype.slice;

// CONCATENATED MODULE: ./node_modules/d3-axis/src/identity.js
/* harmony default export */ var src_identity = (function(x) {
  return x;
});

// CONCATENATED MODULE: ./node_modules/d3-axis/src/axis.js



var axis_top = 1,
    axis_right = 2,
    axis_bottom = 3,
    axis_left = 4,
    epsilon = 1e-6;

function translateX(x) {
  return "translate(" + (x + 0.5) + ",0)";
}

function translateY(y) {
  return "translate(0," + (y + 0.5) + ")";
}

function axis_number(scale) {
  return function(d) {
    return +scale(d);
  };
}

function axis_center(scale) {
  var offset = Math.max(0, scale.bandwidth() - 1) / 2; // Adjust for 0.5px offset.
  if (scale.round()) offset = Math.round(offset);
  return function(d) {
    return +scale(d) + offset;
  };
}

function entering() {
  return !this.__axis;
}

function axis_axis(orient, scale) {
  var tickArguments = [],
      tickValues = null,
      tickFormat = null,
      tickSizeInner = 6,
      tickSizeOuter = 6,
      tickPadding = 3,
      k = orient === axis_top || orient === axis_left ? -1 : 1,
      x = orient === axis_left || orient === axis_right ? "x" : "y",
      transform = orient === axis_top || orient === axis_bottom ? translateX : translateY;

  function axis(context) {
    var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,
        format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : src_identity) : tickFormat,
        spacing = Math.max(tickSizeInner, 0) + tickPadding,
        range = scale.range(),
        range0 = +range[0] + 0.5,
        range1 = +range[range.length - 1] + 0.5,
        position = (scale.bandwidth ? axis_center : axis_number)(scale.copy()),
        selection = context.selection ? context.selection() : context,
        path = selection.selectAll(".domain").data([null]),
        tick = selection.selectAll(".tick").data(values, scale).order(),
        tickExit = tick.exit(),
        tickEnter = tick.enter().append("g").attr("class", "tick"),
        line = tick.select("line"),
        text = tick.select("text");

    path = path.merge(path.enter().insert("path", ".tick")
        .attr("class", "domain")
        .attr("stroke", "#000"));

    tick = tick.merge(tickEnter);

    line = line.merge(tickEnter.append("line")
        .attr("stroke", "#000")
        .attr(x + "2", k * tickSizeInner));

    text = text.merge(tickEnter.append("text")
        .attr("fill", "#000")
        .attr(x, k * spacing)
        .attr("dy", orient === axis_top ? "0em" : orient === axis_bottom ? "0.71em" : "0.32em"));

    if (context !== selection) {
      path = path.transition(context);
      tick = tick.transition(context);
      line = line.transition(context);
      text = text.transition(context);

      tickExit = tickExit.transition(context)
          .attr("opacity", epsilon)
          .attr("transform", function(d) { return isFinite(d = position(d)) ? transform(d) : this.getAttribute("transform"); });

      tickEnter
          .attr("opacity", epsilon)
          .attr("transform", function(d) { var p = this.parentNode.__axis; return transform(p && isFinite(p = p(d)) ? p : position(d)); });
    }

    tickExit.remove();

    path
        .attr("d", orient === axis_left || orient == axis_right
            ? "M" + k * tickSizeOuter + "," + range0 + "H0.5V" + range1 + "H" + k * tickSizeOuter
            : "M" + range0 + "," + k * tickSizeOuter + "V0.5H" + range1 + "V" + k * tickSizeOuter);

    tick
        .attr("opacity", 1)
        .attr("transform", function(d) { return transform(position(d)); });

    line
        .attr(x + "2", k * tickSizeInner);

    text
        .attr(x, k * spacing)
        .text(format);

    selection.filter(entering)
        .attr("fill", "none")
        .attr("font-size", 10)
        .attr("font-family", "sans-serif")
        .attr("text-anchor", orient === axis_right ? "start" : orient === axis_left ? "end" : "middle");

    selection
        .each(function() { this.__axis = position; });
  }

  axis.scale = function(_) {
    return arguments.length ? (scale = _, axis) : scale;
  };

  axis.ticks = function() {
    return tickArguments = array_slice.call(arguments), axis;
  };

  axis.tickArguments = function(_) {
    return arguments.length ? (tickArguments = _ == null ? [] : array_slice.call(_), axis) : tickArguments.slice();
  };

  axis.tickValues = function(_) {
    return arguments.length ? (tickValues = _ == null ? null : array_slice.call(_), axis) : tickValues && tickValues.slice();
  };

  axis.tickFormat = function(_) {
    return arguments.length ? (tickFormat = _, axis) : tickFormat;
  };

  axis.tickSize = function(_) {
    return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;
  };

  axis.tickSizeInner = function(_) {
    return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;
  };

  axis.tickSizeOuter = function(_) {
    return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;
  };

  axis.tickPadding = function(_) {
    return arguments.length ? (tickPadding = +_, axis) : tickPadding;
  };

  return axis;
}

function axisTop(scale) {
  return axis_axis(axis_top, scale);
}

function axisRight(scale) {
  return axis_axis(axis_right, scale);
}

function axisBottom(scale) {
  return axis_axis(axis_bottom, scale);
}

function axisLeft(scale) {
  return axis_axis(axis_left, scale);
}

// CONCATENATED MODULE: ./node_modules/d3-axis/index.js


// CONCATENATED MODULE: ./node_modules/d3-dispatch/src/dispatch.js
var noop = {value: function() {}};

function dispatch() {
  for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {
    if (!(t = arguments[i] + "") || (t in _)) throw new Error("illegal type: " + t);
    _[t] = [];
  }
  return new Dispatch(_);
}

function Dispatch(_) {
  this._ = _;
}

function parseTypenames(typenames, types) {
  return typenames.trim().split(/^|\s+/).map(function(t) {
    var name = "", i = t.indexOf(".");
    if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
    if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t);
    return {type: t, name: name};
  });
}

Dispatch.prototype = dispatch.prototype = {
  constructor: Dispatch,
  on: function(typename, callback) {
    var _ = this._,
        T = parseTypenames(typename + "", _),
        t,
        i = -1,
        n = T.length;

    // If no callback was specified, return the callback of the given type and name.
    if (arguments.length < 2) {
      while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;
      return;
    }

    // If a type was specified, set the callback for the given type and name.
    // Otherwise, if a null callback was specified, remove callbacks of the given name.
    if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback);
    while (++i < n) {
      if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);
      else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);
    }

    return this;
  },
  copy: function() {
    var copy = {}, _ = this._;
    for (var t in _) copy[t] = _[t].slice();
    return new Dispatch(copy);
  },
  call: function(type, that) {
    if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];
    if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
    for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
  },
  apply: function(type, that, args) {
    if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
    for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
  }
};

function get(type, name) {
  for (var i = 0, n = type.length, c; i < n; ++i) {
    if ((c = type[i]).name === name) {
      return c.value;
    }
  }
}

function set(type, name, callback) {
  for (var i = 0, n = type.length; i < n; ++i) {
    if (type[i].name === name) {
      type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));
      break;
    }
  }
  if (callback != null) type.push({name: name, value: callback});
  return type;
}

/* harmony default export */ var src_dispatch = (dispatch);

// CONCATENATED MODULE: ./node_modules/d3-dispatch/index.js


// CONCATENATED MODULE: ./node_modules/d3-selection/src/namespaces.js
var xhtml = "http://www.w3.org/1999/xhtml";

/* harmony default export */ var namespaces = ({
  svg: "http://www.w3.org/2000/svg",
  xhtml: xhtml,
  xlink: "http://www.w3.org/1999/xlink",
  xml: "http://www.w3.org/XML/1998/namespace",
  xmlns: "http://www.w3.org/2000/xmlns/"
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/namespace.js


/* harmony default export */ var namespace = (function(name) {
  var prefix = name += "", i = prefix.indexOf(":");
  if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1);
  return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/creator.js



function creatorInherit(name) {
  return function() {
    var document = this.ownerDocument,
        uri = this.namespaceURI;
    return uri === xhtml && document.documentElement.namespaceURI === xhtml
        ? document.createElement(name)
        : document.createElementNS(uri, name);
  };
}

function creatorFixed(fullname) {
  return function() {
    return this.ownerDocument.createElementNS(fullname.space, fullname.local);
  };
}

/* harmony default export */ var creator = (function(name) {
  var fullname = namespace(name);
  return (fullname.local
      ? creatorFixed
      : creatorInherit)(fullname);
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selector.js
function none() {}

/* harmony default export */ var src_selector = (function(selector) {
  return selector == null ? none : function() {
    return this.querySelector(selector);
  };
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/select.js



/* harmony default export */ var selection_select = (function(select) {
  if (typeof select !== "function") select = src_selector(select);

  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
      if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
        if ("__data__" in node) subnode.__data__ = node.__data__;
        subgroup[i] = subnode;
      }
    }
  }

  return new Selection(subgroups, this._parents);
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selectorAll.js
function selectorAll_empty() {
  return [];
}

/* harmony default export */ var selectorAll = (function(selector) {
  return selector == null ? selectorAll_empty : function() {
    return this.querySelectorAll(selector);
  };
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/selectAll.js



/* harmony default export */ var selectAll = (function(select) {
  if (typeof select !== "function") select = selectorAll(select);

  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
      if (node = group[i]) {
        subgroups.push(select.call(node, node.__data__, i, group));
        parents.push(node);
      }
    }
  }

  return new Selection(subgroups, parents);
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/matcher.js
var matcher = function(selector) {
  return function() {
    return this.matches(selector);
  };
};

if (typeof document !== "undefined") {
  var matcher_element = document.documentElement;
  if (!matcher_element.matches) {
    var vendorMatches = matcher_element.webkitMatchesSelector
        || matcher_element.msMatchesSelector
        || matcher_element.mozMatchesSelector
        || matcher_element.oMatchesSelector;
    matcher = function(selector) {
      return function() {
        return vendorMatches.call(this, selector);
      };
    };
  }
}

/* harmony default export */ var src_matcher = (matcher);

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/filter.js



/* harmony default export */ var selection_filter = (function(match) {
  if (typeof match !== "function") match = src_matcher(match);

  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
      if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
        subgroup.push(node);
      }
    }
  }

  return new Selection(subgroups, this._parents);
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/sparse.js
/* harmony default export */ var sparse = (function(update) {
  return new Array(update.length);
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/enter.js



/* harmony default export */ var selection_enter = (function() {
  return new Selection(this._enter || this._groups.map(sparse), this._parents);
});

function EnterNode(parent, datum) {
  this.ownerDocument = parent.ownerDocument;
  this.namespaceURI = parent.namespaceURI;
  this._next = null;
  this._parent = parent;
  this.__data__ = datum;
}

EnterNode.prototype = {
  constructor: EnterNode,
  appendChild: function(child) { return this._parent.insertBefore(child, this._next); },
  insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },
  querySelector: function(selector) { return this._parent.querySelector(selector); },
  querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }
};

// CONCATENATED MODULE: ./node_modules/d3-selection/src/constant.js
/* harmony default export */ var src_constant = (function(x) {
  return function() {
    return x;
  };
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/data.js




var keyPrefix = "$"; // Protect against keys like “__proto__”.

function bindIndex(parent, group, enter, update, exit, data) {
  var i = 0,
      node,
      groupLength = group.length,
      dataLength = data.length;

  // Put any non-null nodes that fit into update.
  // Put any null nodes into enter.
  // Put any remaining data into enter.
  for (; i < dataLength; ++i) {
    if (node = group[i]) {
      node.__data__ = data[i];
      update[i] = node;
    } else {
      enter[i] = new EnterNode(parent, data[i]);
    }
  }

  // Put any non-null nodes that don’t fit into exit.
  for (; i < groupLength; ++i) {
    if (node = group[i]) {
      exit[i] = node;
    }
  }
}

function bindKey(parent, group, enter, update, exit, data, key) {
  var i,
      node,
      nodeByKeyValue = {},
      groupLength = group.length,
      dataLength = data.length,
      keyValues = new Array(groupLength),
      keyValue;

  // Compute the key for each node.
  // If multiple nodes have the same key, the duplicates are added to exit.
  for (i = 0; i < groupLength; ++i) {
    if (node = group[i]) {
      keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);
      if (keyValue in nodeByKeyValue) {
        exit[i] = node;
      } else {
        nodeByKeyValue[keyValue] = node;
      }
    }
  }

  // Compute the key for each datum.
  // If there a node associated with this key, join and add it to update.
  // If there is not (or the key is a duplicate), add it to enter.
  for (i = 0; i < dataLength; ++i) {
    keyValue = keyPrefix + key.call(parent, data[i], i, data);
    if (node = nodeByKeyValue[keyValue]) {
      update[i] = node;
      node.__data__ = data[i];
      nodeByKeyValue[keyValue] = null;
    } else {
      enter[i] = new EnterNode(parent, data[i]);
    }
  }

  // Add any remaining nodes that were not bound to data to exit.
  for (i = 0; i < groupLength; ++i) {
    if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {
      exit[i] = node;
    }
  }
}

/* harmony default export */ var selection_data = (function(value, key) {
  if (!value) {
    data = new Array(this.size()), j = -1;
    this.each(function(d) { data[++j] = d; });
    return data;
  }

  var bind = key ? bindKey : bindIndex,
      parents = this._parents,
      groups = this._groups;

  if (typeof value !== "function") value = src_constant(value);

  for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {
    var parent = parents[j],
        group = groups[j],
        groupLength = group.length,
        data = value.call(parent, parent && parent.__data__, j, parents),
        dataLength = data.length,
        enterGroup = enter[j] = new Array(dataLength),
        updateGroup = update[j] = new Array(dataLength),
        exitGroup = exit[j] = new Array(groupLength);

    bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);

    // Now connect the enter nodes to their following update node, such that
    // appendChild can insert the materialized enter node before this node,
    // rather than at the end of the parent node.
    for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {
      if (previous = enterGroup[i0]) {
        if (i0 >= i1) i1 = i0 + 1;
        while (!(next = updateGroup[i1]) && ++i1 < dataLength);
        previous._next = next || null;
      }
    }
  }

  update = new Selection(update, parents);
  update._enter = enter;
  update._exit = exit;
  return update;
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/exit.js



/* harmony default export */ var selection_exit = (function() {
  return new Selection(this._exit || this._groups.map(sparse), this._parents);
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/merge.js


/* harmony default export */ var selection_merge = (function(selection) {

  for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {
    for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
      if (node = group0[i] || group1[i]) {
        merge[i] = node;
      }
    }
  }

  for (; j < m0; ++j) {
    merges[j] = groups0[j];
  }

  return new Selection(merges, this._parents);
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/order.js
/* harmony default export */ var selection_order = (function() {

  for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {
    for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {
      if (node = group[i]) {
        if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);
        next = node;
      }
    }
  }

  return this;
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/sort.js


/* harmony default export */ var selection_sort = (function(compare) {
  if (!compare) compare = sort_ascending;

  function compareNode(a, b) {
    return a && b ? compare(a.__data__, b.__data__) : !a - !b;
  }

  for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {
    for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {
      if (node = group[i]) {
        sortgroup[i] = node;
      }
    }
    sortgroup.sort(compareNode);
  }

  return new Selection(sortgroups, this._parents).order();
});

function sort_ascending(a, b) {
  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
}

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/call.js
/* harmony default export */ var call = (function() {
  var callback = arguments[0];
  arguments[0] = this;
  callback.apply(null, arguments);
  return this;
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/nodes.js
/* harmony default export */ var selection_nodes = (function() {
  var nodes = new Array(this.size()), i = -1;
  this.each(function() { nodes[++i] = this; });
  return nodes;
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/node.js
/* harmony default export */ var selection_node = (function() {

  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
    for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {
      var node = group[i];
      if (node) return node;
    }
  }

  return null;
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/size.js
/* harmony default export */ var selection_size = (function() {
  var size = 0;
  this.each(function() { ++size; });
  return size;
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/empty.js
/* harmony default export */ var selection_empty = (function() {
  return !this.node();
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/each.js
/* harmony default export */ var each = (function(callback) {

  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
    for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
      if (node = group[i]) callback.call(node, node.__data__, i, group);
    }
  }

  return this;
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/attr.js


function attrRemove(name) {
  return function() {
    this.removeAttribute(name);
  };
}

function attrRemoveNS(fullname) {
  return function() {
    this.removeAttributeNS(fullname.space, fullname.local);
  };
}

function attrConstant(name, value) {
  return function() {
    this.setAttribute(name, value);
  };
}

function attrConstantNS(fullname, value) {
  return function() {
    this.setAttributeNS(fullname.space, fullname.local, value);
  };
}

function attrFunction(name, value) {
  return function() {
    var v = value.apply(this, arguments);
    if (v == null) this.removeAttribute(name);
    else this.setAttribute(name, v);
  };
}

function attrFunctionNS(fullname, value) {
  return function() {
    var v = value.apply(this, arguments);
    if (v == null) this.removeAttributeNS(fullname.space, fullname.local);
    else this.setAttributeNS(fullname.space, fullname.local, v);
  };
}

/* harmony default export */ var attr = (function(name, value) {
  var fullname = namespace(name);

  if (arguments.length < 2) {
    var node = this.node();
    return fullname.local
        ? node.getAttributeNS(fullname.space, fullname.local)
        : node.getAttribute(fullname);
  }

  return this.each((value == null
      ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === "function"
      ? (fullname.local ? attrFunctionNS : attrFunction)
      : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/window.js
/* harmony default export */ var src_window = (function(node) {
  return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node
      || (node.document && node) // node is a Window
      || node.defaultView; // node is a Document
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/style.js


function styleRemove(name) {
  return function() {
    this.style.removeProperty(name);
  };
}

function styleConstant(name, value, priority) {
  return function() {
    this.style.setProperty(name, value, priority);
  };
}

function styleFunction(name, value, priority) {
  return function() {
    var v = value.apply(this, arguments);
    if (v == null) this.style.removeProperty(name);
    else this.style.setProperty(name, v, priority);
  };
}

/* harmony default export */ var style = (function(name, value, priority) {
  return arguments.length > 1
      ? this.each((value == null
            ? styleRemove : typeof value === "function"
            ? styleFunction
            : styleConstant)(name, value, priority == null ? "" : priority))
      : styleValue(this.node(), name);
});

function styleValue(node, name) {
  return node.style.getPropertyValue(name)
      || src_window(node).getComputedStyle(node, null).getPropertyValue(name);
}

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/property.js
function propertyRemove(name) {
  return function() {
    delete this[name];
  };
}

function propertyConstant(name, value) {
  return function() {
    this[name] = value;
  };
}

function propertyFunction(name, value) {
  return function() {
    var v = value.apply(this, arguments);
    if (v == null) delete this[name];
    else this[name] = v;
  };
}

/* harmony default export */ var property = (function(name, value) {
  return arguments.length > 1
      ? this.each((value == null
          ? propertyRemove : typeof value === "function"
          ? propertyFunction
          : propertyConstant)(name, value))
      : this.node()[name];
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/classed.js
function classArray(string) {
  return string.trim().split(/^|\s+/);
}

function classList(node) {
  return node.classList || new ClassList(node);
}

function ClassList(node) {
  this._node = node;
  this._names = classArray(node.getAttribute("class") || "");
}

ClassList.prototype = {
  add: function(name) {
    var i = this._names.indexOf(name);
    if (i < 0) {
      this._names.push(name);
      this._node.setAttribute("class", this._names.join(" "));
    }
  },
  remove: function(name) {
    var i = this._names.indexOf(name);
    if (i >= 0) {
      this._names.splice(i, 1);
      this._node.setAttribute("class", this._names.join(" "));
    }
  },
  contains: function(name) {
    return this._names.indexOf(name) >= 0;
  }
};

function classedAdd(node, names) {
  var list = classList(node), i = -1, n = names.length;
  while (++i < n) list.add(names[i]);
}

function classedRemove(node, names) {
  var list = classList(node), i = -1, n = names.length;
  while (++i < n) list.remove(names[i]);
}

function classedTrue(names) {
  return function() {
    classedAdd(this, names);
  };
}

function classedFalse(names) {
  return function() {
    classedRemove(this, names);
  };
}

function classedFunction(names, value) {
  return function() {
    (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);
  };
}

/* harmony default export */ var classed = (function(name, value) {
  var names = classArray(name + "");

  if (arguments.length < 2) {
    var list = classList(this.node()), i = -1, n = names.length;
    while (++i < n) if (!list.contains(names[i])) return false;
    return true;
  }

  return this.each((typeof value === "function"
      ? classedFunction : value
      ? classedTrue
      : classedFalse)(names, value));
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/text.js
function textRemove() {
  this.textContent = "";
}

function textConstant(value) {
  return function() {
    this.textContent = value;
  };
}

function textFunction(value) {
  return function() {
    var v = value.apply(this, arguments);
    this.textContent = v == null ? "" : v;
  };
}

/* harmony default export */ var selection_text = (function(value) {
  return arguments.length
      ? this.each(value == null
          ? textRemove : (typeof value === "function"
          ? textFunction
          : textConstant)(value))
      : this.node().textContent;
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/html.js
function htmlRemove() {
  this.innerHTML = "";
}

function htmlConstant(value) {
  return function() {
    this.innerHTML = value;
  };
}

function htmlFunction(value) {
  return function() {
    var v = value.apply(this, arguments);
    this.innerHTML = v == null ? "" : v;
  };
}

/* harmony default export */ var html = (function(value) {
  return arguments.length
      ? this.each(value == null
          ? htmlRemove : (typeof value === "function"
          ? htmlFunction
          : htmlConstant)(value))
      : this.node().innerHTML;
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/raise.js
function raise() {
  if (this.nextSibling) this.parentNode.appendChild(this);
}

/* harmony default export */ var selection_raise = (function() {
  return this.each(raise);
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/lower.js
function lower() {
  if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);
}

/* harmony default export */ var selection_lower = (function() {
  return this.each(lower);
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/append.js


/* harmony default export */ var append = (function(name) {
  var create = typeof name === "function" ? name : creator(name);
  return this.select(function() {
    return this.appendChild(create.apply(this, arguments));
  });
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/insert.js



function constantNull() {
  return null;
}

/* harmony default export */ var insert = (function(name, before) {
  var create = typeof name === "function" ? name : creator(name),
      select = before == null ? constantNull : typeof before === "function" ? before : src_selector(before);
  return this.select(function() {
    return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);
  });
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/remove.js
function remove() {
  var parent = this.parentNode;
  if (parent) parent.removeChild(this);
}

/* harmony default export */ var selection_remove = (function() {
  return this.each(remove);
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/clone.js
function selection_cloneShallow() {
  return this.parentNode.insertBefore(this.cloneNode(false), this.nextSibling);
}

function selection_cloneDeep() {
  return this.parentNode.insertBefore(this.cloneNode(true), this.nextSibling);
}

/* harmony default export */ var clone = (function(deep) {
  return this.select(deep ? selection_cloneDeep : selection_cloneShallow);
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/datum.js
/* harmony default export */ var datum = (function(value) {
  return arguments.length
      ? this.property("__data__", value)
      : this.node().__data__;
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/on.js
var filterEvents = {};

var on_event = null;

if (typeof document !== "undefined") {
  var on_element = document.documentElement;
  if (!("onmouseenter" in on_element)) {
    filterEvents = {mouseenter: "mouseover", mouseleave: "mouseout"};
  }
}

function filterContextListener(listener, index, group) {
  listener = contextListener(listener, index, group);
  return function(event) {
    var related = event.relatedTarget;
    if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {
      listener.call(this, event);
    }
  };
}

function contextListener(listener, index, group) {
  return function(event1) {
    var event0 = on_event; // Events can be reentrant (e.g., focus).
    on_event = event1;
    try {
      listener.call(this, this.__data__, index, group);
    } finally {
      on_event = event0;
    }
  };
}

function on_parseTypenames(typenames) {
  return typenames.trim().split(/^|\s+/).map(function(t) {
    var name = "", i = t.indexOf(".");
    if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
    return {type: t, name: name};
  });
}

function onRemove(typename) {
  return function() {
    var on = this.__on;
    if (!on) return;
    for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {
      if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {
        this.removeEventListener(o.type, o.listener, o.capture);
      } else {
        on[++i] = o;
      }
    }
    if (++i) on.length = i;
    else delete this.__on;
  };
}

function onAdd(typename, value, capture) {
  var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;
  return function(d, i, group) {
    var on = this.__on, o, listener = wrap(value, i, group);
    if (on) for (var j = 0, m = on.length; j < m; ++j) {
      if ((o = on[j]).type === typename.type && o.name === typename.name) {
        this.removeEventListener(o.type, o.listener, o.capture);
        this.addEventListener(o.type, o.listener = listener, o.capture = capture);
        o.value = value;
        return;
      }
    }
    this.addEventListener(typename.type, listener, capture);
    o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};
    if (!on) this.__on = [o];
    else on.push(o);
  };
}

/* harmony default export */ var on = (function(typename, value, capture) {
  var typenames = on_parseTypenames(typename + ""), i, n = typenames.length, t;

  if (arguments.length < 2) {
    var on = this.node().__on;
    if (on) for (var j = 0, m = on.length, o; j < m; ++j) {
      for (i = 0, o = on[j]; i < n; ++i) {
        if ((t = typenames[i]).type === o.type && t.name === o.name) {
          return o.value;
        }
      }
    }
    return;
  }

  on = value ? onAdd : onRemove;
  if (capture == null) capture = false;
  for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));
  return this;
});

function customEvent(event1, listener, that, args) {
  var event0 = on_event;
  event1.sourceEvent = on_event;
  on_event = event1;
  try {
    return listener.apply(that, args);
  } finally {
    on_event = event0;
  }
}

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/dispatch.js


function dispatchEvent(node, type, params) {
  var window = src_window(node),
      event = window.CustomEvent;

  if (typeof event === "function") {
    event = new event(type, params);
  } else {
    event = window.document.createEvent("Event");
    if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;
    else event.initEvent(type, false, false);
  }

  node.dispatchEvent(event);
}

function dispatchConstant(type, params) {
  return function() {
    return dispatchEvent(this, type, params);
  };
}

function dispatchFunction(type, params) {
  return function() {
    return dispatchEvent(this, type, params.apply(this, arguments));
  };
}

/* harmony default export */ var selection_dispatch = (function(type, params) {
  return this.each((typeof params === "function"
      ? dispatchFunction
      : dispatchConstant)(type, params));
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/index.js































var selection_root = [null];

function Selection(groups, parents) {
  this._groups = groups;
  this._parents = parents;
}

function selection_selection() {
  return new Selection([[document.documentElement]], selection_root);
}

Selection.prototype = selection_selection.prototype = {
  constructor: Selection,
  select: selection_select,
  selectAll: selectAll,
  filter: selection_filter,
  data: selection_data,
  enter: selection_enter,
  exit: selection_exit,
  merge: selection_merge,
  order: selection_order,
  sort: selection_sort,
  call: call,
  nodes: selection_nodes,
  node: selection_node,
  size: selection_size,
  empty: selection_empty,
  each: each,
  attr: attr,
  style: style,
  property: property,
  classed: classed,
  text: selection_text,
  html: html,
  raise: selection_raise,
  lower: selection_lower,
  append: append,
  insert: insert,
  remove: selection_remove,
  clone: clone,
  datum: datum,
  on: on,
  dispatch: selection_dispatch
};

/* harmony default export */ var src_selection = (selection_selection);

// CONCATENATED MODULE: ./node_modules/d3-selection/src/select.js


/* harmony default export */ var src_select = (function(selector) {
  return typeof selector === "string"
      ? new Selection([[document.querySelector(selector)]], [document.documentElement])
      : new Selection([[selector]], selection_root);
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/create.js



/* harmony default export */ var src_create = (function(name) {
  return src_select(creator(name).call(document.documentElement));
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/local.js
var nextId = 0;

function local() {
  return new Local;
}

function Local() {
  this._ = "@" + (++nextId).toString(36);
}

Local.prototype = local.prototype = {
  constructor: Local,
  get: function(node) {
    var id = this._;
    while (!(id in node)) if (!(node = node.parentNode)) return;
    return node[id];
  },
  set: function(node, value) {
    return node[this._] = value;
  },
  remove: function(node) {
    return this._ in node && delete node[this._];
  },
  toString: function() {
    return this._;
  }
};

// CONCATENATED MODULE: ./node_modules/d3-selection/src/sourceEvent.js


/* harmony default export */ var sourceEvent = (function() {
  var current = on_event, source;
  while (source = current.sourceEvent) current = source;
  return current;
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/point.js
/* harmony default export */ var src_point = (function(node, event) {
  var svg = node.ownerSVGElement || node;

  if (svg.createSVGPoint) {
    var point = svg.createSVGPoint();
    point.x = event.clientX, point.y = event.clientY;
    point = point.matrixTransform(node.getScreenCTM().inverse());
    return [point.x, point.y];
  }

  var rect = node.getBoundingClientRect();
  return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/mouse.js



/* harmony default export */ var mouse = (function(node) {
  var event = sourceEvent();
  if (event.changedTouches) event = event.changedTouches[0];
  return src_point(node, event);
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/selectAll.js


/* harmony default export */ var src_selectAll = (function(selector) {
  return typeof selector === "string"
      ? new Selection([document.querySelectorAll(selector)], [document.documentElement])
      : new Selection([selector == null ? [] : selector], selection_root);
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/touch.js



/* harmony default export */ var src_touch = (function(node, touches, identifier) {
  if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;

  for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {
    if ((touch = touches[i]).identifier === identifier) {
      return src_point(node, touch);
    }
  }

  return null;
});

// CONCATENATED MODULE: ./node_modules/d3-selection/src/touches.js



/* harmony default export */ var src_touches = (function(node, touches) {
  if (touches == null) touches = sourceEvent().touches;

  for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {
    points[i] = src_point(node, touches[i]);
  }

  return points;
});

// CONCATENATED MODULE: ./node_modules/d3-selection/index.js



















// CONCATENATED MODULE: ./node_modules/d3-drag/src/noevent.js


function nopropagation() {
  on_event.stopImmediatePropagation();
}

/* harmony default export */ var noevent = (function() {
  on_event.preventDefault();
  on_event.stopImmediatePropagation();
});

// CONCATENATED MODULE: ./node_modules/d3-drag/src/nodrag.js



/* harmony default export */ var nodrag = (function(view) {
  var root = view.document.documentElement,
      selection = src_select(view).on("dragstart.drag", noevent, true);
  if ("onselectstart" in root) {
    selection.on("selectstart.drag", noevent, true);
  } else {
    root.__noselect = root.style.MozUserSelect;
    root.style.MozUserSelect = "none";
  }
});

function yesdrag(view, noclick) {
  var root = view.document.documentElement,
      selection = src_select(view).on("dragstart.drag", null);
  if (noclick) {
    selection.on("click.drag", noevent, true);
    setTimeout(function() { selection.on("click.drag", null); }, 0);
  }
  if ("onselectstart" in root) {
    selection.on("selectstart.drag", null);
  } else {
    root.style.MozUserSelect = root.__noselect;
    delete root.__noselect;
  }
}

// CONCATENATED MODULE: ./node_modules/d3-drag/src/constant.js
/* harmony default export */ var d3_drag_src_constant = (function(x) {
  return function() {
    return x;
  };
});

// CONCATENATED MODULE: ./node_modules/d3-drag/src/event.js
function DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) {
  this.target = target;
  this.type = type;
  this.subject = subject;
  this.identifier = id;
  this.active = active;
  this.x = x;
  this.y = y;
  this.dx = dx;
  this.dy = dy;
  this._ = dispatch;
}

DragEvent.prototype.on = function() {
  var value = this._.on.apply(this._, arguments);
  return value === this._ ? this : value;
};

// CONCATENATED MODULE: ./node_modules/d3-drag/src/drag.js







// Ignore right-click, since that should open the context menu.
function defaultFilter() {
  return !on_event.button;
}

function defaultContainer() {
  return this.parentNode;
}

function defaultSubject(d) {
  return d == null ? {x: on_event.x, y: on_event.y} : d;
}

function defaultTouchable() {
  return "ontouchstart" in this;
}

/* harmony default export */ var src_drag = (function() {
  var filter = defaultFilter,
      container = defaultContainer,
      subject = defaultSubject,
      touchable = defaultTouchable,
      gestures = {},
      listeners = src_dispatch("start", "drag", "end"),
      active = 0,
      mousedownx,
      mousedowny,
      mousemoving,
      touchending,
      clickDistance2 = 0;

  function drag(selection) {
    selection
        .on("mousedown.drag", mousedowned)
      .filter(touchable)
        .on("touchstart.drag", touchstarted)
        .on("touchmove.drag", touchmoved)
        .on("touchend.drag touchcancel.drag", touchended)
        .style("touch-action", "none")
        .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
  }

  function mousedowned() {
    if (touchending || !filter.apply(this, arguments)) return;
    var gesture = beforestart("mouse", container.apply(this, arguments), mouse, this, arguments);
    if (!gesture) return;
    src_select(on_event.view).on("mousemove.drag", mousemoved, true).on("mouseup.drag", mouseupped, true);
    nodrag(on_event.view);
    nopropagation();
    mousemoving = false;
    mousedownx = on_event.clientX;
    mousedowny = on_event.clientY;
    gesture("start");
  }

  function mousemoved() {
    noevent();
    if (!mousemoving) {
      var dx = on_event.clientX - mousedownx, dy = on_event.clientY - mousedowny;
      mousemoving = dx * dx + dy * dy > clickDistance2;
    }
    gestures.mouse("drag");
  }

  function mouseupped() {
    src_select(on_event.view).on("mousemove.drag mouseup.drag", null);
    yesdrag(on_event.view, mousemoving);
    noevent();
    gestures.mouse("end");
  }

  function touchstarted() {
    if (!filter.apply(this, arguments)) return;
    var touches = on_event.changedTouches,
        c = container.apply(this, arguments),
        n = touches.length, i, gesture;

    for (i = 0; i < n; ++i) {
      if (gesture = beforestart(touches[i].identifier, c, src_touch, this, arguments)) {
        nopropagation();
        gesture("start");
      }
    }
  }

  function touchmoved() {
    var touches = on_event.changedTouches,
        n = touches.length, i, gesture;

    for (i = 0; i < n; ++i) {
      if (gesture = gestures[touches[i].identifier]) {
        noevent();
        gesture("drag");
      }
    }
  }

  function touchended() {
    var touches = on_event.changedTouches,
        n = touches.length, i, gesture;

    if (touchending) clearTimeout(touchending);
    touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!
    for (i = 0; i < n; ++i) {
      if (gesture = gestures[touches[i].identifier]) {
        nopropagation();
        gesture("end");
      }
    }
  }

  function beforestart(id, container, point, that, args) {
    var p = point(container, id), s, dx, dy,
        sublisteners = listeners.copy();

    if (!customEvent(new DragEvent(drag, "beforestart", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {
      if ((on_event.subject = s = subject.apply(that, args)) == null) return false;
      dx = s.x - p[0] || 0;
      dy = s.y - p[1] || 0;
      return true;
    })) return;

    return function gesture(type) {
      var p0 = p, n;
      switch (type) {
        case "start": gestures[id] = gesture, n = active++; break;
        case "end": delete gestures[id], --active; // nobreak
        case "drag": p = point(container, id), n = active; break;
      }
      customEvent(new DragEvent(drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]);
    };
  }

  drag.filter = function(_) {
    return arguments.length ? (filter = typeof _ === "function" ? _ : d3_drag_src_constant(!!_), drag) : filter;
  };

  drag.container = function(_) {
    return arguments.length ? (container = typeof _ === "function" ? _ : d3_drag_src_constant(_), drag) : container;
  };

  drag.subject = function(_) {
    return arguments.length ? (subject = typeof _ === "function" ? _ : d3_drag_src_constant(_), drag) : subject;
  };

  drag.touchable = function(_) {
    return arguments.length ? (touchable = typeof _ === "function" ? _ : d3_drag_src_constant(!!_), drag) : touchable;
  };

  drag.on = function() {
    var value = listeners.on.apply(listeners, arguments);
    return value === listeners ? drag : value;
  };

  drag.clickDistance = function(_) {
    return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);
  };

  return drag;
});

// CONCATENATED MODULE: ./node_modules/d3-drag/index.js



// EXTERNAL MODULE: ./node_modules/d3-interpolate/index.js + 21 modules
var d3_interpolate = __webpack_require__(111);

// CONCATENATED MODULE: ./node_modules/d3-timer/src/timer.js
var timer_frame = 0, // is an animation frame pending?
    timer_timeout = 0, // is a timeout pending?
    interval = 0, // are any timers active?
    pokeDelay = 1000, // how frequently we check for clock skew
    taskHead,
    taskTail,
    clockLast = 0,
    clockNow = 0,
    clockSkew = 0,
    clock = typeof performance === "object" && performance.now ? performance : Date,
    setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };

function now() {
  return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);
}

function clearNow() {
  clockNow = 0;
}

function Timer() {
  this._call =
  this._time =
  this._next = null;
}

Timer.prototype = timer.prototype = {
  constructor: Timer,
  restart: function(callback, delay, time) {
    if (typeof callback !== "function") throw new TypeError("callback is not a function");
    time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);
    if (!this._next && taskTail !== this) {
      if (taskTail) taskTail._next = this;
      else taskHead = this;
      taskTail = this;
    }
    this._call = callback;
    this._time = time;
    sleep();
  },
  stop: function() {
    if (this._call) {
      this._call = null;
      this._time = Infinity;
      sleep();
    }
  }
};

function timer(callback, delay, time) {
  var t = new Timer;
  t.restart(callback, delay, time);
  return t;
}

function timerFlush() {
  now(); // Get the current time, if not already set.
  ++timer_frame; // Pretend we’ve set an alarm, if we haven’t already.
  var t = taskHead, e;
  while (t) {
    if ((e = clockNow - t._time) >= 0) t._call.call(null, e);
    t = t._next;
  }
  --timer_frame;
}

function wake() {
  clockNow = (clockLast = clock.now()) + clockSkew;
  timer_frame = timer_timeout = 0;
  try {
    timerFlush();
  } finally {
    timer_frame = 0;
    nap();
    clockNow = 0;
  }
}

function poke() {
  var now = clock.now(), delay = now - clockLast;
  if (delay > pokeDelay) clockSkew -= delay, clockLast = now;
}

function nap() {
  var t0, t1 = taskHead, t2, time = Infinity;
  while (t1) {
    if (t1._call) {
      if (time > t1._time) time = t1._time;
      t0 = t1, t1 = t1._next;
    } else {
      t2 = t1._next, t1._next = null;
      t1 = t0 ? t0._next = t2 : taskHead = t2;
    }
  }
  taskTail = t0;
  sleep(time);
}

function sleep(time) {
  if (timer_frame) return; // Soonest alarm already set, or will be.
  if (timer_timeout) timer_timeout = clearTimeout(timer_timeout);
  var delay = time - clockNow; // Strictly less than if we recomputed clockNow.
  if (delay > 24) {
    if (time < Infinity) timer_timeout = setTimeout(wake, time - clock.now() - clockSkew);
    if (interval) interval = clearInterval(interval);
  } else {
    if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);
    timer_frame = 1, setFrame(wake);
  }
}

// CONCATENATED MODULE: ./node_modules/d3-timer/src/timeout.js


/* harmony default export */ var src_timeout = (function(callback, delay, time) {
  var t = new Timer;
  delay = delay == null ? 0 : +delay;
  t.restart(function(elapsed) {
    t.stop();
    callback(elapsed + delay);
  }, delay, time);
  return t;
});

// CONCATENATED MODULE: ./node_modules/d3-timer/src/interval.js


/* harmony default export */ var src_interval = (function(callback, delay, time) {
  var t = new Timer, total = delay;
  if (delay == null) return t.restart(callback, delay, time), t;
  delay = +delay, time = time == null ? now() : +time;
  t.restart(function tick(elapsed) {
    elapsed += total;
    t.restart(tick, total += delay, time);
    callback(elapsed);
  }, delay, time);
  return t;
});

// CONCATENATED MODULE: ./node_modules/d3-timer/index.js






// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/schedule.js



var emptyOn = src_dispatch("start", "end", "interrupt");
var emptyTween = [];

var CREATED = 0;
var SCHEDULED = 1;
var STARTING = 2;
var STARTED = 3;
var RUNNING = 4;
var ENDING = 5;
var ENDED = 6;

/* harmony default export */ var transition_schedule = (function(node, name, id, index, group, timing) {
  var schedules = node.__transition;
  if (!schedules) node.__transition = {};
  else if (id in schedules) return;
  schedule_create(node, id, {
    name: name,
    index: index, // For context during callback.
    group: group, // For context during callback.
    on: emptyOn,
    tween: emptyTween,
    time: timing.time,
    delay: timing.delay,
    duration: timing.duration,
    ease: timing.ease,
    timer: null,
    state: CREATED
  });
});

function init(node, id) {
  var schedule = schedule_get(node, id);
  if (schedule.state > CREATED) throw new Error("too late; already scheduled");
  return schedule;
}

function schedule_set(node, id) {
  var schedule = schedule_get(node, id);
  if (schedule.state > STARTING) throw new Error("too late; already started");
  return schedule;
}

function schedule_get(node, id) {
  var schedule = node.__transition;
  if (!schedule || !(schedule = schedule[id])) throw new Error("transition not found");
  return schedule;
}

function schedule_create(node, id, self) {
  var schedules = node.__transition,
      tween;

  // Initialize the self timer when the transition is created.
  // Note the actual delay is not known until the first callback!
  schedules[id] = self;
  self.timer = timer(schedule, 0, self.time);

  function schedule(elapsed) {
    self.state = SCHEDULED;
    self.timer.restart(start, self.delay, self.time);

    // If the elapsed delay is less than our first sleep, start immediately.
    if (self.delay <= elapsed) start(elapsed - self.delay);
  }

  function start(elapsed) {
    var i, j, n, o;

    // If the state is not SCHEDULED, then we previously errored on start.
    if (self.state !== SCHEDULED) return stop();

    for (i in schedules) {
      o = schedules[i];
      if (o.name !== self.name) continue;

      // While this element already has a starting transition during this frame,
      // defer starting an interrupting transition until that transition has a
      // chance to tick (and possibly end); see d3/d3-transition#54!
      if (o.state === STARTED) return src_timeout(start);

      // Interrupt the active transition, if any.
      // Dispatch the interrupt event.
      if (o.state === RUNNING) {
        o.state = ENDED;
        o.timer.stop();
        o.on.call("interrupt", node, node.__data__, o.index, o.group);
        delete schedules[i];
      }

      // Cancel any pre-empted transitions. No interrupt event is dispatched
      // because the cancelled transitions never started. Note that this also
      // removes this transition from the pending list!
      else if (+i < id) {
        o.state = ENDED;
        o.timer.stop();
        delete schedules[i];
      }
    }

    // Defer the first tick to end of the current frame; see d3/d3#1576.
    // Note the transition may be canceled after start and before the first tick!
    // Note this must be scheduled before the start event; see d3/d3-transition#16!
    // Assuming this is successful, subsequent callbacks go straight to tick.
    src_timeout(function() {
      if (self.state === STARTED) {
        self.state = RUNNING;
        self.timer.restart(tick, self.delay, self.time);
        tick(elapsed);
      }
    });

    // Dispatch the start event.
    // Note this must be done before the tween are initialized.
    self.state = STARTING;
    self.on.call("start", node, node.__data__, self.index, self.group);
    if (self.state !== STARTING) return; // interrupted
    self.state = STARTED;

    // Initialize the tween, deleting null tween.
    tween = new Array(n = self.tween.length);
    for (i = 0, j = -1; i < n; ++i) {
      if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {
        tween[++j] = o;
      }
    }
    tween.length = j + 1;
  }

  function tick(elapsed) {
    var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),
        i = -1,
        n = tween.length;

    while (++i < n) {
      tween[i].call(null, t);
    }

    // Dispatch the end event.
    if (self.state === ENDING) {
      self.on.call("end", node, node.__data__, self.index, self.group);
      stop();
    }
  }

  function stop() {
    self.state = ENDED;
    self.timer.stop();
    delete schedules[id];
    for (var i in schedules) return; // eslint-disable-line no-unused-vars
    delete node.__transition;
  }
}

// CONCATENATED MODULE: ./node_modules/d3-transition/src/interrupt.js


/* harmony default export */ var interrupt = (function(node, name) {
  var schedules = node.__transition,
      schedule,
      active,
      empty = true,
      i;

  if (!schedules) return;

  name = name == null ? null : name + "";

  for (i in schedules) {
    if ((schedule = schedules[i]).name !== name) { empty = false; continue; }
    active = schedule.state > STARTING && schedule.state < ENDING;
    schedule.state = ENDED;
    schedule.timer.stop();
    if (active) schedule.on.call("interrupt", node, node.__data__, schedule.index, schedule.group);
    delete schedules[i];
  }

  if (empty) delete node.__transition;
});

// CONCATENATED MODULE: ./node_modules/d3-transition/src/selection/interrupt.js


/* harmony default export */ var selection_interrupt = (function(name) {
  return this.each(function() {
    interrupt(this, name);
  });
});

// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/tween.js


function tweenRemove(id, name) {
  var tween0, tween1;
  return function() {
    var schedule = schedule_set(this, id),
        tween = schedule.tween;

    // If this node shared tween with the previous node,
    // just assign the updated shared tween and we’re done!
    // Otherwise, copy-on-write.
    if (tween !== tween0) {
      tween1 = tween0 = tween;
      for (var i = 0, n = tween1.length; i < n; ++i) {
        if (tween1[i].name === name) {
          tween1 = tween1.slice();
          tween1.splice(i, 1);
          break;
        }
      }
    }

    schedule.tween = tween1;
  };
}

function tweenFunction(id, name, value) {
  var tween0, tween1;
  if (typeof value !== "function") throw new Error;
  return function() {
    var schedule = schedule_set(this, id),
        tween = schedule.tween;

    // If this node shared tween with the previous node,
    // just assign the updated shared tween and we’re done!
    // Otherwise, copy-on-write.
    if (tween !== tween0) {
      tween1 = (tween0 = tween).slice();
      for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {
        if (tween1[i].name === name) {
          tween1[i] = t;
          break;
        }
      }
      if (i === n) tween1.push(t);
    }

    schedule.tween = tween1;
  };
}

/* harmony default export */ var transition_tween = (function(name, value) {
  var id = this._id;

  name += "";

  if (arguments.length < 2) {
    var tween = schedule_get(this.node(), id).tween;
    for (var i = 0, n = tween.length, t; i < n; ++i) {
      if ((t = tween[i]).name === name) {
        return t.value;
      }
    }
    return null;
  }

  return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));
});

function tweenValue(transition, name, value) {
  var id = transition._id;

  transition.each(function() {
    var schedule = schedule_set(this, id);
    (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);
  });

  return function(node) {
    return schedule_get(node, id).value[name];
  };
}

// EXTERNAL MODULE: ./node_modules/d3-color/index.js + 5 modules
var d3_color = __webpack_require__(77);

// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/interpolate.js



/* harmony default export */ var transition_interpolate = (function(a, b) {
  var c;
  return (typeof b === "number" ? d3_interpolate["m" /* interpolateNumber */]
      : b instanceof d3_color["a" /* color */] ? d3_interpolate["o" /* interpolateRgb */]
      : (c = Object(d3_color["a" /* color */])(b)) ? (b = c, d3_interpolate["o" /* interpolateRgb */])
      : d3_interpolate["s" /* interpolateString */])(a, b);
});

// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/attr.js





function attr_attrRemove(name) {
  return function() {
    this.removeAttribute(name);
  };
}

function attr_attrRemoveNS(fullname) {
  return function() {
    this.removeAttributeNS(fullname.space, fullname.local);
  };
}

function attr_attrConstant(name, interpolate, value1) {
  var value00,
      interpolate0;
  return function() {
    var value0 = this.getAttribute(name);
    return value0 === value1 ? null
        : value0 === value00 ? interpolate0
        : interpolate0 = interpolate(value00 = value0, value1);
  };
}

function attr_attrConstantNS(fullname, interpolate, value1) {
  var value00,
      interpolate0;
  return function() {
    var value0 = this.getAttributeNS(fullname.space, fullname.local);
    return value0 === value1 ? null
        : value0 === value00 ? interpolate0
        : interpolate0 = interpolate(value00 = value0, value1);
  };
}

function attr_attrFunction(name, interpolate, value) {
  var value00,
      value10,
      interpolate0;
  return function() {
    var value0, value1 = value(this);
    if (value1 == null) return void this.removeAttribute(name);
    value0 = this.getAttribute(name);
    return value0 === value1 ? null
        : value0 === value00 && value1 === value10 ? interpolate0
        : interpolate0 = interpolate(value00 = value0, value10 = value1);
  };
}

function attr_attrFunctionNS(fullname, interpolate, value) {
  var value00,
      value10,
      interpolate0;
  return function() {
    var value0, value1 = value(this);
    if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);
    value0 = this.getAttributeNS(fullname.space, fullname.local);
    return value0 === value1 ? null
        : value0 === value00 && value1 === value10 ? interpolate0
        : interpolate0 = interpolate(value00 = value0, value10 = value1);
  };
}

/* harmony default export */ var transition_attr = (function(name, value) {
  var fullname = namespace(name), i = fullname === "transform" ? d3_interpolate["u" /* interpolateTransformSvg */] : transition_interpolate;
  return this.attrTween(name, typeof value === "function"
      ? (fullname.local ? attr_attrFunctionNS : attr_attrFunction)(fullname, i, tweenValue(this, "attr." + name, value))
      : value == null ? (fullname.local ? attr_attrRemoveNS : attr_attrRemove)(fullname)
      : (fullname.local ? attr_attrConstantNS : attr_attrConstant)(fullname, i, value + ""));
});

// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/attrTween.js


function attrTweenNS(fullname, value) {
  function tween() {
    var node = this, i = value.apply(node, arguments);
    return i && function(t) {
      node.setAttributeNS(fullname.space, fullname.local, i(t));
    };
  }
  tween._value = value;
  return tween;
}

function attrTween(name, value) {
  function tween() {
    var node = this, i = value.apply(node, arguments);
    return i && function(t) {
      node.setAttribute(name, i(t));
    };
  }
  tween._value = value;
  return tween;
}

/* harmony default export */ var transition_attrTween = (function(name, value) {
  var key = "attr." + name;
  if (arguments.length < 2) return (key = this.tween(key)) && key._value;
  if (value == null) return this.tween(key, null);
  if (typeof value !== "function") throw new Error;
  var fullname = namespace(name);
  return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));
});

// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/delay.js


function delayFunction(id, value) {
  return function() {
    init(this, id).delay = +value.apply(this, arguments);
  };
}

function delayConstant(id, value) {
  return value = +value, function() {
    init(this, id).delay = value;
  };
}

/* harmony default export */ var transition_delay = (function(value) {
  var id = this._id;

  return arguments.length
      ? this.each((typeof value === "function"
          ? delayFunction
          : delayConstant)(id, value))
      : schedule_get(this.node(), id).delay;
});

// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/duration.js


function durationFunction(id, value) {
  return function() {
    schedule_set(this, id).duration = +value.apply(this, arguments);
  };
}

function durationConstant(id, value) {
  return value = +value, function() {
    schedule_set(this, id).duration = value;
  };
}

/* harmony default export */ var transition_duration = (function(value) {
  var id = this._id;

  return arguments.length
      ? this.each((typeof value === "function"
          ? durationFunction
          : durationConstant)(id, value))
      : schedule_get(this.node(), id).duration;
});

// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/ease.js


function easeConstant(id, value) {
  if (typeof value !== "function") throw new Error;
  return function() {
    schedule_set(this, id).ease = value;
  };
}

/* harmony default export */ var ease = (function(value) {
  var id = this._id;

  return arguments.length
      ? this.each(easeConstant(id, value))
      : schedule_get(this.node(), id).ease;
});

// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/filter.js



/* harmony default export */ var transition_filter = (function(match) {
  if (typeof match !== "function") match = src_matcher(match);

  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
      if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
        subgroup.push(node);
      }
    }
  }

  return new Transition(subgroups, this._parents, this._name, this._id);
});

// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/merge.js


/* harmony default export */ var transition_merge = (function(transition) {
  if (transition._id !== this._id) throw new Error;

  for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {
    for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
      if (node = group0[i] || group1[i]) {
        merge[i] = node;
      }
    }
  }

  for (; j < m0; ++j) {
    merges[j] = groups0[j];
  }

  return new Transition(merges, this._parents, this._name, this._id);
});

// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/on.js


function on_start(name) {
  return (name + "").trim().split(/^|\s+/).every(function(t) {
    var i = t.indexOf(".");
    if (i >= 0) t = t.slice(0, i);
    return !t || t === "start";
  });
}

function onFunction(id, name, listener) {
  var on0, on1, sit = on_start(name) ? init : schedule_set;
  return function() {
    var schedule = sit(this, id),
        on = schedule.on;

    // If this node shared a dispatch with the previous node,
    // just assign the updated shared dispatch and we’re done!
    // Otherwise, copy-on-write.
    if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);

    schedule.on = on1;
  };
}

/* harmony default export */ var transition_on = (function(name, listener) {
  var id = this._id;

  return arguments.length < 2
      ? schedule_get(this.node(), id).on.on(name)
      : this.each(onFunction(id, name, listener));
});

// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/remove.js
function removeFunction(id) {
  return function() {
    var parent = this.parentNode;
    for (var i in this.__transition) if (+i !== id) return;
    if (parent) parent.removeChild(this);
  };
}

/* harmony default export */ var transition_remove = (function() {
  return this.on("end.remove", removeFunction(this._id));
});

// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/select.js




/* harmony default export */ var transition_select = (function(select) {
  var name = this._name,
      id = this._id;

  if (typeof select !== "function") select = src_selector(select);

  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
      if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
        if ("__data__" in node) subnode.__data__ = node.__data__;
        subgroup[i] = subnode;
        transition_schedule(subgroup[i], name, id, i, subgroup, schedule_get(node, id));
      }
    }
  }

  return new Transition(subgroups, this._parents, name, id);
});

// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/selectAll.js




/* harmony default export */ var transition_selectAll = (function(select) {
  var name = this._name,
      id = this._id;

  if (typeof select !== "function") select = selectorAll(select);

  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
      if (node = group[i]) {
        for (var children = select.call(node, node.__data__, i, group), child, inherit = schedule_get(node, id), k = 0, l = children.length; k < l; ++k) {
          if (child = children[k]) {
            transition_schedule(child, name, id, k, children, inherit);
          }
        }
        subgroups.push(children);
        parents.push(node);
      }
    }
  }

  return new Transition(subgroups, parents, name, id);
});

// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/selection.js


var selection_Selection = src_selection.prototype.constructor;

/* harmony default export */ var transition_selection = (function() {
  return new selection_Selection(this._groups, this._parents);
});

// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/style.js





function style_styleRemove(name, interpolate) {
  var value00,
      value10,
      interpolate0;
  return function() {
    var value0 = styleValue(this, name),
        value1 = (this.style.removeProperty(name), styleValue(this, name));
    return value0 === value1 ? null
        : value0 === value00 && value1 === value10 ? interpolate0
        : interpolate0 = interpolate(value00 = value0, value10 = value1);
  };
}

function styleRemoveEnd(name) {
  return function() {
    this.style.removeProperty(name);
  };
}

function style_styleConstant(name, interpolate, value1) {
  var value00,
      interpolate0;
  return function() {
    var value0 = styleValue(this, name);
    return value0 === value1 ? null
        : value0 === value00 ? interpolate0
        : interpolate0 = interpolate(value00 = value0, value1);
  };
}

function style_styleFunction(name, interpolate, value) {
  var value00,
      value10,
      interpolate0;
  return function() {
    var value0 = styleValue(this, name),
        value1 = value(this);
    if (value1 == null) value1 = (this.style.removeProperty(name), styleValue(this, name));
    return value0 === value1 ? null
        : value0 === value00 && value1 === value10 ? interpolate0
        : interpolate0 = interpolate(value00 = value0, value10 = value1);
  };
}

/* harmony default export */ var transition_style = (function(name, value, priority) {
  var i = (name += "") === "transform" ? d3_interpolate["t" /* interpolateTransformCss */] : transition_interpolate;
  return value == null ? this
          .styleTween(name, style_styleRemove(name, i))
          .on("end.style." + name, styleRemoveEnd(name))
      : this.styleTween(name, typeof value === "function"
          ? style_styleFunction(name, i, tweenValue(this, "style." + name, value))
          : style_styleConstant(name, i, value + ""), priority);
});

// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/styleTween.js
function styleTween(name, value, priority) {
  function tween() {
    var node = this, i = value.apply(node, arguments);
    return i && function(t) {
      node.style.setProperty(name, i(t), priority);
    };
  }
  tween._value = value;
  return tween;
}

/* harmony default export */ var transition_styleTween = (function(name, value, priority) {
  var key = "style." + (name += "");
  if (arguments.length < 2) return (key = this.tween(key)) && key._value;
  if (value == null) return this.tween(key, null);
  if (typeof value !== "function") throw new Error;
  return this.tween(key, styleTween(name, value, priority == null ? "" : priority));
});

// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/text.js


function text_textConstant(value) {
  return function() {
    this.textContent = value;
  };
}

function text_textFunction(value) {
  return function() {
    var value1 = value(this);
    this.textContent = value1 == null ? "" : value1;
  };
}

/* harmony default export */ var transition_text = (function(value) {
  return this.tween("text", typeof value === "function"
      ? text_textFunction(tweenValue(this, "text", value))
      : text_textConstant(value == null ? "" : value + ""));
});

// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/transition.js



/* harmony default export */ var transition_transition = (function() {
  var name = this._name,
      id0 = this._id,
      id1 = newId();

  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
      if (node = group[i]) {
        var inherit = schedule_get(node, id0);
        transition_schedule(node, name, id1, i, group, {
          time: inherit.time + inherit.delay + inherit.duration,
          delay: 0,
          duration: inherit.duration,
          ease: inherit.ease
        });
      }
    }
  }

  return new Transition(groups, this._parents, name, id1);
});

// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/index.js



















var transition_id = 0;

function Transition(groups, parents, name, id) {
  this._groups = groups;
  this._parents = parents;
  this._name = name;
  this._id = id;
}

function src_transition_transition(name) {
  return src_selection().transition(name);
}

function newId() {
  return ++transition_id;
}

var selection_prototype = src_selection.prototype;

Transition.prototype = src_transition_transition.prototype = {
  constructor: Transition,
  select: transition_select,
  selectAll: transition_selectAll,
  filter: transition_filter,
  merge: transition_merge,
  selection: transition_selection,
  transition: transition_transition,
  call: selection_prototype.call,
  nodes: selection_prototype.nodes,
  node: selection_prototype.node,
  size: selection_prototype.size,
  empty: selection_prototype.empty,
  each: selection_prototype.each,
  on: transition_on,
  attr: transition_attr,
  attrTween: transition_attrTween,
  style: transition_style,
  styleTween: transition_styleTween,
  text: transition_text,
  remove: transition_remove,
  tween: transition_tween,
  delay: transition_delay,
  duration: transition_duration,
  ease: ease
};

// CONCATENATED MODULE: ./node_modules/d3-ease/src/linear.js
function linear(t) {
  return +t;
}

// CONCATENATED MODULE: ./node_modules/d3-ease/src/quad.js
function quadIn(t) {
  return t * t;
}

function quadOut(t) {
  return t * (2 - t);
}

function quadInOut(t) {
  return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;
}

// CONCATENATED MODULE: ./node_modules/d3-ease/src/cubic.js
function cubicIn(t) {
  return t * t * t;
}

function cubicOut(t) {
  return --t * t * t + 1;
}

function cubicInOut(t) {
  return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;
}

// CONCATENATED MODULE: ./node_modules/d3-ease/src/poly.js
var exponent = 3;

var polyIn = (function custom(e) {
  e = +e;

  function polyIn(t) {
    return Math.pow(t, e);
  }

  polyIn.exponent = custom;

  return polyIn;
})(exponent);

var polyOut = (function custom(e) {
  e = +e;

  function polyOut(t) {
    return 1 - Math.pow(1 - t, e);
  }

  polyOut.exponent = custom;

  return polyOut;
})(exponent);

var polyInOut = (function custom(e) {
  e = +e;

  function polyInOut(t) {
    return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;
  }

  polyInOut.exponent = custom;

  return polyInOut;
})(exponent);

// CONCATENATED MODULE: ./node_modules/d3-ease/src/sin.js
var pi = Math.PI,
    halfPi = pi / 2;

function sinIn(t) {
  return 1 - Math.cos(t * halfPi);
}

function sinOut(t) {
  return Math.sin(t * halfPi);
}

function sinInOut(t) {
  return (1 - Math.cos(pi * t)) / 2;
}

// CONCATENATED MODULE: ./node_modules/d3-ease/src/exp.js
function expIn(t) {
  return Math.pow(2, 10 * t - 10);
}

function expOut(t) {
  return 1 - Math.pow(2, -10 * t);
}

function expInOut(t) {
  return ((t *= 2) <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) / 2;
}

// CONCATENATED MODULE: ./node_modules/d3-ease/src/circle.js
function circleIn(t) {
  return 1 - Math.sqrt(1 - t * t);
}

function circleOut(t) {
  return Math.sqrt(1 - --t * t);
}

function circleInOut(t) {
  return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;
}

// CONCATENATED MODULE: ./node_modules/d3-ease/src/bounce.js
var bounce_b1 = 4 / 11,
    b2 = 6 / 11,
    b3 = 8 / 11,
    b4 = 3 / 4,
    b5 = 9 / 11,
    b6 = 10 / 11,
    b7 = 15 / 16,
    b8 = 21 / 22,
    b9 = 63 / 64,
    bounce_b0 = 1 / bounce_b1 / bounce_b1;

function bounceIn(t) {
  return 1 - bounceOut(1 - t);
}

function bounceOut(t) {
  return (t = +t) < bounce_b1 ? bounce_b0 * t * t : t < b3 ? bounce_b0 * (t -= b2) * t + b4 : t < b6 ? bounce_b0 * (t -= b5) * t + b7 : bounce_b0 * (t -= b8) * t + b9;
}

function bounceInOut(t) {
  return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;
}

// CONCATENATED MODULE: ./node_modules/d3-ease/src/back.js
var overshoot = 1.70158;

var backIn = (function custom(s) {
  s = +s;

  function backIn(t) {
    return t * t * ((s + 1) * t - s);
  }

  backIn.overshoot = custom;

  return backIn;
})(overshoot);

var backOut = (function custom(s) {
  s = +s;

  function backOut(t) {
    return --t * t * ((s + 1) * t + s) + 1;
  }

  backOut.overshoot = custom;

  return backOut;
})(overshoot);

var backInOut = (function custom(s) {
  s = +s;

  function backInOut(t) {
    return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;
  }

  backInOut.overshoot = custom;

  return backInOut;
})(overshoot);

// CONCATENATED MODULE: ./node_modules/d3-ease/src/elastic.js
var tau = 2 * Math.PI,
    amplitude = 1,
    period = 0.3;

var elasticIn = (function custom(a, p) {
  var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);

  function elasticIn(t) {
    return a * Math.pow(2, 10 * --t) * Math.sin((s - t) / p);
  }

  elasticIn.amplitude = function(a) { return custom(a, p * tau); };
  elasticIn.period = function(p) { return custom(a, p); };

  return elasticIn;
})(amplitude, period);

var elasticOut = (function custom(a, p) {
  var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);

  function elasticOut(t) {
    return 1 - a * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / p);
  }

  elasticOut.amplitude = function(a) { return custom(a, p * tau); };
  elasticOut.period = function(p) { return custom(a, p); };

  return elasticOut;
})(amplitude, period);

var elasticInOut = (function custom(a, p) {
  var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);

  function elasticInOut(t) {
    return ((t = t * 2 - 1) < 0
        ? a * Math.pow(2, 10 * t) * Math.sin((s - t) / p)
        : 2 - a * Math.pow(2, -10 * t) * Math.sin((s + t) / p)) / 2;
  }

  elasticInOut.amplitude = function(a) { return custom(a, p * tau); };
  elasticInOut.period = function(p) { return custom(a, p); };

  return elasticInOut;
})(amplitude, period);

// CONCATENATED MODULE: ./node_modules/d3-ease/index.js




















// CONCATENATED MODULE: ./node_modules/d3-transition/src/selection/transition.js





var defaultTiming = {
  time: null, // Set on use.
  delay: 0,
  duration: 250,
  ease: cubicInOut
};

function transition_inherit(node, id) {
  var timing;
  while (!(timing = node.__transition) || !(timing = timing[id])) {
    if (!(node = node.parentNode)) {
      return defaultTiming.time = now(), defaultTiming;
    }
  }
  return timing;
}

/* harmony default export */ var selection_transition = (function(name) {
  var id,
      timing;

  if (name instanceof Transition) {
    id = name._id, name = name._name;
  } else {
    id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + "";
  }

  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
      if (node = group[i]) {
        transition_schedule(node, name, id, i, group, timing || transition_inherit(node, id));
      }
    }
  }

  return new Transition(groups, this._parents, name, id);
});

// CONCATENATED MODULE: ./node_modules/d3-transition/src/selection/index.js




src_selection.prototype.interrupt = selection_interrupt;
src_selection.prototype.transition = selection_transition;

// CONCATENATED MODULE: ./node_modules/d3-transition/src/active.js



var active_root = [null];

/* harmony default export */ var src_active = (function(node, name) {
  var schedules = node.__transition,
      schedule,
      i;

  if (schedules) {
    name = name == null ? null : name + "";
    for (i in schedules) {
      if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {
        return new Transition([[node]], active_root, name, +i);
      }
    }
  }

  return null;
});

// CONCATENATED MODULE: ./node_modules/d3-transition/index.js





// CONCATENATED MODULE: ./node_modules/d3-brush/src/constant.js
/* harmony default export */ var d3_brush_src_constant = (function(x) {
  return function() {
    return x;
  };
});

// CONCATENATED MODULE: ./node_modules/d3-brush/src/event.js
/* harmony default export */ var src_event = (function(target, type, selection) {
  this.target = target;
  this.type = type;
  this.selection = selection;
});

// CONCATENATED MODULE: ./node_modules/d3-brush/src/noevent.js


function noevent_nopropagation() {
  on_event.stopImmediatePropagation();
}

/* harmony default export */ var src_noevent = (function() {
  on_event.preventDefault();
  on_event.stopImmediatePropagation();
});

// CONCATENATED MODULE: ./node_modules/d3-brush/src/brush.js









var MODE_DRAG = {name: "drag"},
    MODE_SPACE = {name: "space"},
    MODE_HANDLE = {name: "handle"},
    MODE_CENTER = {name: "center"};

var brush_X = {
  name: "x",
  handles: ["e", "w"].map(brush_type),
  input: function(x, e) { return x && [[x[0], e[0][1]], [x[1], e[1][1]]]; },
  output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }
};

var brush_Y = {
  name: "y",
  handles: ["n", "s"].map(brush_type),
  input: function(y, e) { return y && [[e[0][0], y[0]], [e[1][0], y[1]]]; },
  output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }
};

var XY = {
  name: "xy",
  handles: ["n", "e", "s", "w", "nw", "ne", "se", "sw"].map(brush_type),
  input: function(xy) { return xy; },
  output: function(xy) { return xy; }
};

var cursors = {
  overlay: "crosshair",
  selection: "move",
  n: "ns-resize",
  e: "ew-resize",
  s: "ns-resize",
  w: "ew-resize",
  nw: "nwse-resize",
  ne: "nesw-resize",
  se: "nwse-resize",
  sw: "nesw-resize"
};

var flipX = {
  e: "w",
  w: "e",
  nw: "ne",
  ne: "nw",
  se: "sw",
  sw: "se"
};

var flipY = {
  n: "s",
  s: "n",
  nw: "sw",
  ne: "se",
  se: "ne",
  sw: "nw"
};

var signsX = {
  overlay: +1,
  selection: +1,
  n: null,
  e: +1,
  s: null,
  w: -1,
  nw: -1,
  ne: +1,
  se: +1,
  sw: -1
};

var signsY = {
  overlay: +1,
  selection: +1,
  n: -1,
  e: null,
  s: +1,
  w: null,
  nw: -1,
  ne: -1,
  se: +1,
  sw: +1
};

function brush_type(t) {
  return {type: t};
}

// Ignore right-click, since that should open the context menu.
function brush_defaultFilter() {
  return !on_event.button;
}

function defaultExtent() {
  var svg = this.ownerSVGElement || this;
  return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];
}

// Like d3.local, but with the name “__brush” rather than auto-generated.
function brush_local(node) {
  while (!node.__brush) if (!(node = node.parentNode)) return;
  return node.__brush;
}

function brush_empty(extent) {
  return extent[0][0] === extent[1][0]
      || extent[0][1] === extent[1][1];
}

function brushSelection(node) {
  var state = node.__brush;
  return state ? state.dim.output(state.selection) : null;
}

function brushX() {
  return brush_brush(brush_X);
}

function brushY() {
  return brush_brush(brush_Y);
}

/* harmony default export */ var src_brush = (function() {
  return brush_brush(XY);
});

function brush_brush(dim) {
  var extent = defaultExtent,
      filter = brush_defaultFilter,
      listeners = src_dispatch(brush, "start", "brush", "end"),
      handleSize = 6,
      touchending;

  function brush(group) {
    var overlay = group
        .property("__brush", initialize)
      .selectAll(".overlay")
      .data([brush_type("overlay")]);

    overlay.enter().append("rect")
        .attr("class", "overlay")
        .attr("pointer-events", "all")
        .attr("cursor", cursors.overlay)
      .merge(overlay)
        .each(function() {
          var extent = brush_local(this).extent;
          src_select(this)
              .attr("x", extent[0][0])
              .attr("y", extent[0][1])
              .attr("width", extent[1][0] - extent[0][0])
              .attr("height", extent[1][1] - extent[0][1]);
        });

    group.selectAll(".selection")
      .data([brush_type("selection")])
      .enter().append("rect")
        .attr("class", "selection")
        .attr("cursor", cursors.selection)
        .attr("fill", "#777")
        .attr("fill-opacity", 0.3)
        .attr("stroke", "#fff")
        .attr("shape-rendering", "crispEdges");

    var handle = group.selectAll(".handle")
      .data(dim.handles, function(d) { return d.type; });

    handle.exit().remove();

    handle.enter().append("rect")
        .attr("class", function(d) { return "handle handle--" + d.type; })
        .attr("cursor", function(d) { return cursors[d.type]; });

    group
        .each(redraw)
        .attr("fill", "none")
        .attr("pointer-events", "all")
        .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)")
        .on("mousedown.brush touchstart.brush", started);
  }

  brush.move = function(group, selection) {
    if (group.selection) {
      group
          .on("start.brush", function() { emitter(this, arguments).beforestart().start(); })
          .on("interrupt.brush end.brush", function() { emitter(this, arguments).end(); })
          .tween("brush", function() {
            var that = this,
                state = that.__brush,
                emit = emitter(that, arguments),
                selection0 = state.selection,
                selection1 = dim.input(typeof selection === "function" ? selection.apply(this, arguments) : selection, state.extent),
                i = Object(d3_interpolate["a" /* interpolate */])(selection0, selection1);

            function tween(t) {
              state.selection = t === 1 && brush_empty(selection1) ? null : i(t);
              redraw.call(that);
              emit.brush();
            }

            return selection0 && selection1 ? tween : tween(1);
          });
    } else {
      group
          .each(function() {
            var that = this,
                args = arguments,
                state = that.__brush,
                selection1 = dim.input(typeof selection === "function" ? selection.apply(that, args) : selection, state.extent),
                emit = emitter(that, args).beforestart();

            interrupt(that);
            state.selection = selection1 == null || brush_empty(selection1) ? null : selection1;
            redraw.call(that);
            emit.start().brush().end();
          });
    }
  };

  function redraw() {
    var group = src_select(this),
        selection = brush_local(this).selection;

    if (selection) {
      group.selectAll(".selection")
          .style("display", null)
          .attr("x", selection[0][0])
          .attr("y", selection[0][1])
          .attr("width", selection[1][0] - selection[0][0])
          .attr("height", selection[1][1] - selection[0][1]);

      group.selectAll(".handle")
          .style("display", null)
          .attr("x", function(d) { return d.type[d.type.length - 1] === "e" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })
          .attr("y", function(d) { return d.type[0] === "s" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })
          .attr("width", function(d) { return d.type === "n" || d.type === "s" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })
          .attr("height", function(d) { return d.type === "e" || d.type === "w" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });
    }

    else {
      group.selectAll(".selection,.handle")
          .style("display", "none")
          .attr("x", null)
          .attr("y", null)
          .attr("width", null)
          .attr("height", null);
    }
  }

  function emitter(that, args) {
    return that.__brush.emitter || new Emitter(that, args);
  }

  function Emitter(that, args) {
    this.that = that;
    this.args = args;
    this.state = that.__brush;
    this.active = 0;
  }

  Emitter.prototype = {
    beforestart: function() {
      if (++this.active === 1) this.state.emitter = this, this.starting = true;
      return this;
    },
    start: function() {
      if (this.starting) this.starting = false, this.emit("start");
      return this;
    },
    brush: function() {
      this.emit("brush");
      return this;
    },
    end: function() {
      if (--this.active === 0) delete this.state.emitter, this.emit("end");
      return this;
    },
    emit: function(type) {
      customEvent(new src_event(brush, type, dim.output(this.state.selection)), listeners.apply, listeners, [type, this.that, this.args]);
    }
  };

  function started() {
    if (on_event.touches) { if (on_event.changedTouches.length < on_event.touches.length) return src_noevent(); }
    else if (touchending) return;
    if (!filter.apply(this, arguments)) return;

    var that = this,
        type = on_event.target.__data__.type,
        mode = (on_event.metaKey ? type = "overlay" : type) === "selection" ? MODE_DRAG : (on_event.altKey ? MODE_CENTER : MODE_HANDLE),
        signX = dim === brush_Y ? null : signsX[type],
        signY = dim === brush_X ? null : signsY[type],
        state = brush_local(that),
        extent = state.extent,
        selection = state.selection,
        W = extent[0][0], w0, w1,
        N = extent[0][1], n0, n1,
        E = extent[1][0], e0, e1,
        S = extent[1][1], s0, s1,
        dx,
        dy,
        moving,
        shifting = signX && signY && on_event.shiftKey,
        lockX,
        lockY,
        point0 = mouse(that),
        point = point0,
        emit = emitter(that, arguments).beforestart();

    if (type === "overlay") {
      state.selection = selection = [
        [w0 = dim === brush_Y ? W : point0[0], n0 = dim === brush_X ? N : point0[1]],
        [e0 = dim === brush_Y ? E : w0, s0 = dim === brush_X ? S : n0]
      ];
    } else {
      w0 = selection[0][0];
      n0 = selection[0][1];
      e0 = selection[1][0];
      s0 = selection[1][1];
    }

    w1 = w0;
    n1 = n0;
    e1 = e0;
    s1 = s0;

    var group = src_select(that)
        .attr("pointer-events", "none");

    var overlay = group.selectAll(".overlay")
        .attr("cursor", cursors[type]);

    if (on_event.touches) {
      group
          .on("touchmove.brush", moved, true)
          .on("touchend.brush touchcancel.brush", ended, true);
    } else {
      var view = src_select(on_event.view)
          .on("keydown.brush", keydowned, true)
          .on("keyup.brush", keyupped, true)
          .on("mousemove.brush", moved, true)
          .on("mouseup.brush", ended, true);

      nodrag(on_event.view);
    }

    noevent_nopropagation();
    interrupt(that);
    redraw.call(that);
    emit.start();

    function moved() {
      var point1 = mouse(that);
      if (shifting && !lockX && !lockY) {
        if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true;
        else lockX = true;
      }
      point = point1;
      moving = true;
      src_noevent();
      move();
    }

    function move() {
      var t;

      dx = point[0] - point0[0];
      dy = point[1] - point0[1];

      switch (mode) {
        case MODE_SPACE:
        case MODE_DRAG: {
          if (signX) dx = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;
          if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;
          break;
        }
        case MODE_HANDLE: {
          if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0;
          else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx;
          if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0;
          else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy;
          break;
        }
        case MODE_CENTER: {
          if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX));
          if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.min(S, s0 + dy * signY));
          break;
        }
      }

      if (e1 < w1) {
        signX *= -1;
        t = w0, w0 = e0, e0 = t;
        t = w1, w1 = e1, e1 = t;
        if (type in flipX) overlay.attr("cursor", cursors[type = flipX[type]]);
      }

      if (s1 < n1) {
        signY *= -1;
        t = n0, n0 = s0, s0 = t;
        t = n1, n1 = s1, s1 = t;
        if (type in flipY) overlay.attr("cursor", cursors[type = flipY[type]]);
      }

      if (state.selection) selection = state.selection; // May be set by brush.move!
      if (lockX) w1 = selection[0][0], e1 = selection[1][0];
      if (lockY) n1 = selection[0][1], s1 = selection[1][1];

      if (selection[0][0] !== w1
          || selection[0][1] !== n1
          || selection[1][0] !== e1
          || selection[1][1] !== s1) {
        state.selection = [[w1, n1], [e1, s1]];
        redraw.call(that);
        emit.brush();
      }
    }

    function ended() {
      noevent_nopropagation();
      if (on_event.touches) {
        if (on_event.touches.length) return;
        if (touchending) clearTimeout(touchending);
        touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!
        group.on("touchmove.brush touchend.brush touchcancel.brush", null);
      } else {
        yesdrag(on_event.view, moving);
        view.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null);
      }
      group.attr("pointer-events", "all");
      overlay.attr("cursor", cursors.overlay);
      if (state.selection) selection = state.selection; // May be set by brush.move (on start)!
      if (brush_empty(selection)) state.selection = null, redraw.call(that);
      emit.end();
    }

    function keydowned() {
      switch (on_event.keyCode) {
        case 16: { // SHIFT
          shifting = signX && signY;
          break;
        }
        case 18: { // ALT
          if (mode === MODE_HANDLE) {
            if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;
            if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;
            mode = MODE_CENTER;
            move();
          }
          break;
        }
        case 32: { // SPACE; takes priority over ALT
          if (mode === MODE_HANDLE || mode === MODE_CENTER) {
            if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;
            if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;
            mode = MODE_SPACE;
            overlay.attr("cursor", cursors.selection);
            move();
          }
          break;
        }
        default: return;
      }
      src_noevent();
    }

    function keyupped() {
      switch (on_event.keyCode) {
        case 16: { // SHIFT
          if (shifting) {
            lockX = lockY = shifting = false;
            move();
          }
          break;
        }
        case 18: { // ALT
          if (mode === MODE_CENTER) {
            if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;
            if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;
            mode = MODE_HANDLE;
            move();
          }
          break;
        }
        case 32: { // SPACE
          if (mode === MODE_SPACE) {
            if (on_event.altKey) {
              if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;
              if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;
              mode = MODE_CENTER;
            } else {
              if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;
              if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;
              mode = MODE_HANDLE;
            }
            overlay.attr("cursor", cursors[type]);
            move();
          }
          break;
        }
        default: return;
      }
      src_noevent();
    }
  }

  function initialize() {
    var state = this.__brush || {selection: null};
    state.extent = extent.apply(this, arguments);
    state.dim = dim;
    return state;
  }

  brush.extent = function(_) {
    return arguments.length ? (extent = typeof _ === "function" ? _ : d3_brush_src_constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), brush) : extent;
  };

  brush.filter = function(_) {
    return arguments.length ? (filter = typeof _ === "function" ? _ : d3_brush_src_constant(!!_), brush) : filter;
  };

  brush.handleSize = function(_) {
    return arguments.length ? (handleSize = +_, brush) : handleSize;
  };

  brush.on = function() {
    var value = listeners.on.apply(listeners, arguments);
    return value === listeners ? brush : value;
  };

  return brush;
}

// CONCATENATED MODULE: ./node_modules/d3-brush/index.js


// EXTERNAL MODULE: ./node_modules/d3-array/src/index.js + 31 modules
var src = __webpack_require__(72);

// CONCATENATED MODULE: ./node_modules/d3-chord/src/math.js
var cos = Math.cos;
var sin = Math.sin;
var math_pi = Math.PI;
var math_halfPi = math_pi / 2;
var math_tau = math_pi * 2;
var math_max = Math.max;

// CONCATENATED MODULE: ./node_modules/d3-chord/src/chord.js



function compareValue(compare) {
  return function(a, b) {
    return compare(
      a.source.value + a.target.value,
      b.source.value + b.target.value
    );
  };
}

/* harmony default export */ var src_chord = (function() {
  var padAngle = 0,
      sortGroups = null,
      sortSubgroups = null,
      sortChords = null;

  function chord(matrix) {
    var n = matrix.length,
        groupSums = [],
        groupIndex = Object(src["range"])(n),
        subgroupIndex = [],
        chords = [],
        groups = chords.groups = new Array(n),
        subgroups = new Array(n * n),
        k,
        x,
        x0,
        dx,
        i,
        j;

    // Compute the sum.
    k = 0, i = -1; while (++i < n) {
      x = 0, j = -1; while (++j < n) {
        x += matrix[i][j];
      }
      groupSums.push(x);
      subgroupIndex.push(Object(src["range"])(n));
      k += x;
    }

    // Sort groups…
    if (sortGroups) groupIndex.sort(function(a, b) {
      return sortGroups(groupSums[a], groupSums[b]);
    });

    // Sort subgroups…
    if (sortSubgroups) subgroupIndex.forEach(function(d, i) {
      d.sort(function(a, b) {
        return sortSubgroups(matrix[i][a], matrix[i][b]);
      });
    });

    // Convert the sum to scaling factor for [0, 2pi].
    // TODO Allow start and end angle to be specified?
    // TODO Allow padding to be specified as percentage?
    k = math_max(0, math_tau - padAngle * n) / k;
    dx = k ? padAngle : math_tau / n;

    // Compute the start and end angle for each group and subgroup.
    // Note: Opera has a bug reordering object literal properties!
    x = 0, i = -1; while (++i < n) {
      x0 = x, j = -1; while (++j < n) {
        var di = groupIndex[i],
            dj = subgroupIndex[di][j],
            v = matrix[di][dj],
            a0 = x,
            a1 = x += v * k;
        subgroups[dj * n + di] = {
          index: di,
          subindex: dj,
          startAngle: a0,
          endAngle: a1,
          value: v
        };
      }
      groups[di] = {
        index: di,
        startAngle: x0,
        endAngle: x,
        value: groupSums[di]
      };
      x += dx;
    }

    // Generate chords for each (non-empty) subgroup-subgroup link.
    i = -1; while (++i < n) {
      j = i - 1; while (++j < n) {
        var source = subgroups[j * n + i],
            target = subgroups[i * n + j];
        if (source.value || target.value) {
          chords.push(source.value < target.value
              ? {source: target, target: source}
              : {source: source, target: target});
        }
      }
    }

    return sortChords ? chords.sort(sortChords) : chords;
  }

  chord.padAngle = function(_) {
    return arguments.length ? (padAngle = math_max(0, _), chord) : padAngle;
  };

  chord.sortGroups = function(_) {
    return arguments.length ? (sortGroups = _, chord) : sortGroups;
  };

  chord.sortSubgroups = function(_) {
    return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;
  };

  chord.sortChords = function(_) {
    return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;
  };

  return chord;
});

// CONCATENATED MODULE: ./node_modules/d3-chord/src/array.js
var src_array_slice = Array.prototype.slice;

// CONCATENATED MODULE: ./node_modules/d3-chord/src/constant.js
/* harmony default export */ var d3_chord_src_constant = (function(x) {
  return function() {
    return x;
  };
});

// EXTERNAL MODULE: ./node_modules/d3-path/index.js + 1 modules
var d3_path = __webpack_require__(129);

// CONCATENATED MODULE: ./node_modules/d3-chord/src/ribbon.js





function defaultSource(d) {
  return d.source;
}

function defaultTarget(d) {
  return d.target;
}

function defaultRadius(d) {
  return d.radius;
}

function defaultStartAngle(d) {
  return d.startAngle;
}

function defaultEndAngle(d) {
  return d.endAngle;
}

/* harmony default export */ var src_ribbon = (function() {
  var source = defaultSource,
      target = defaultTarget,
      radius = defaultRadius,
      startAngle = defaultStartAngle,
      endAngle = defaultEndAngle,
      context = null;

  function ribbon() {
    var buffer,
        argv = src_array_slice.call(arguments),
        s = source.apply(this, argv),
        t = target.apply(this, argv),
        sr = +radius.apply(this, (argv[0] = s, argv)),
        sa0 = startAngle.apply(this, argv) - math_halfPi,
        sa1 = endAngle.apply(this, argv) - math_halfPi,
        sx0 = sr * cos(sa0),
        sy0 = sr * sin(sa0),
        tr = +radius.apply(this, (argv[0] = t, argv)),
        ta0 = startAngle.apply(this, argv) - math_halfPi,
        ta1 = endAngle.apply(this, argv) - math_halfPi;

    if (!context) context = buffer = Object(d3_path["a" /* path */])();

    context.moveTo(sx0, sy0);
    context.arc(0, 0, sr, sa0, sa1);
    if (sa0 !== ta0 || sa1 !== ta1) { // TODO sr !== tr?
      context.quadraticCurveTo(0, 0, tr * cos(ta0), tr * sin(ta0));
      context.arc(0, 0, tr, ta0, ta1);
    }
    context.quadraticCurveTo(0, 0, sx0, sy0);
    context.closePath();

    if (buffer) return context = null, buffer + "" || null;
  }

  ribbon.radius = function(_) {
    return arguments.length ? (radius = typeof _ === "function" ? _ : d3_chord_src_constant(+_), ribbon) : radius;
  };

  ribbon.startAngle = function(_) {
    return arguments.length ? (startAngle = typeof _ === "function" ? _ : d3_chord_src_constant(+_), ribbon) : startAngle;
  };

  ribbon.endAngle = function(_) {
    return arguments.length ? (endAngle = typeof _ === "function" ? _ : d3_chord_src_constant(+_), ribbon) : endAngle;
  };

  ribbon.source = function(_) {
    return arguments.length ? (source = _, ribbon) : source;
  };

  ribbon.target = function(_) {
    return arguments.length ? (target = _, ribbon) : target;
  };

  ribbon.context = function(_) {
    return arguments.length ? ((context = _ == null ? null : _), ribbon) : context;
  };

  return ribbon;
});

// CONCATENATED MODULE: ./node_modules/d3-chord/index.js



// EXTERNAL MODULE: ./node_modules/d3-collection/index.js + 6 modules
var d3_collection = __webpack_require__(199);

// CONCATENATED MODULE: ./node_modules/d3-dsv/src/dsv.js
var EOL = {},
    EOF = {},
    QUOTE = 34,
    NEWLINE = 10,
    RETURN = 13;

function objectConverter(columns) {
  return new Function("d", "return {" + columns.map(function(name, i) {
    return JSON.stringify(name) + ": d[" + i + "]";
  }).join(",") + "}");
}

function customConverter(columns, f) {
  var object = objectConverter(columns);
  return function(row, i) {
    return f(object(row), i, columns);
  };
}

// Compute unique columns in order of discovery.
function inferColumns(rows) {
  var columnSet = Object.create(null),
      columns = [];

  rows.forEach(function(row) {
    for (var column in row) {
      if (!(column in columnSet)) {
        columns.push(columnSet[column] = column);
      }
    }
  });

  return columns;
}

/* harmony default export */ var dsv = (function(delimiter) {
  var reFormat = new RegExp("[\"" + delimiter + "\n\r]"),
      DELIMITER = delimiter.charCodeAt(0);

  function parse(text, f) {
    var convert, columns, rows = parseRows(text, function(row, i) {
      if (convert) return convert(row, i - 1);
      columns = row, convert = f ? customConverter(row, f) : objectConverter(row);
    });
    rows.columns = columns || [];
    return rows;
  }

  function parseRows(text, f) {
    var rows = [], // output rows
        N = text.length,
        I = 0, // current character index
        n = 0, // current line number
        t, // current token
        eof = N <= 0, // current token followed by EOF?
        eol = false; // current token followed by EOL?

    // Strip the trailing newline.
    if (text.charCodeAt(N - 1) === NEWLINE) --N;
    if (text.charCodeAt(N - 1) === RETURN) --N;

    function token() {
      if (eof) return EOF;
      if (eol) return eol = false, EOL;

      // Unescape quotes.
      var i, j = I, c;
      if (text.charCodeAt(j) === QUOTE) {
        while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);
        if ((i = I) >= N) eof = true;
        else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;
        else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
        return text.slice(j + 1, i - 1).replace(/""/g, "\"");
      }

      // Find next delimiter or newline.
      while (I < N) {
        if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;
        else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
        else if (c !== DELIMITER) continue;
        return text.slice(j, i);
      }

      // Return last token before EOF.
      return eof = true, text.slice(j, N);
    }

    while ((t = token()) !== EOF) {
      var row = [];
      while (t !== EOL && t !== EOF) row.push(t), t = token();
      if (f && (row = f(row, n++)) == null) continue;
      rows.push(row);
    }

    return rows;
  }

  function format(rows, columns) {
    if (columns == null) columns = inferColumns(rows);
    return [columns.map(formatValue).join(delimiter)].concat(rows.map(function(row) {
      return columns.map(function(column) {
        return formatValue(row[column]);
      }).join(delimiter);
    })).join("\n");
  }

  function formatRows(rows) {
    return rows.map(formatRow).join("\n");
  }

  function formatRow(row) {
    return row.map(formatValue).join(delimiter);
  }

  function formatValue(text) {
    return text == null ? ""
        : reFormat.test(text += "") ? "\"" + text.replace(/"/g, "\"\"") + "\""
        : text;
  }

  return {
    parse: parse,
    parseRows: parseRows,
    format: format,
    formatRows: formatRows
  };
});

// CONCATENATED MODULE: ./node_modules/d3-dsv/src/csv.js


var csv = dsv(",");

var csvParse = csv.parse;
var csvParseRows = csv.parseRows;
var csvFormat = csv.format;
var csvFormatRows = csv.formatRows;

// CONCATENATED MODULE: ./node_modules/d3-dsv/src/tsv.js


var tsv = dsv("\t");

var tsvParse = tsv.parse;
var tsvParseRows = tsv.parseRows;
var tsvFormat = tsv.format;
var tsvFormatRows = tsv.formatRows;

// CONCATENATED MODULE: ./node_modules/d3-dsv/index.js




// CONCATENATED MODULE: ./node_modules/d3-force/src/center.js
/* harmony default export */ var src_center = (function(x, y) {
  var nodes;

  if (x == null) x = 0;
  if (y == null) y = 0;

  function force() {
    var i,
        n = nodes.length,
        node,
        sx = 0,
        sy = 0;

    for (i = 0; i < n; ++i) {
      node = nodes[i], sx += node.x, sy += node.y;
    }

    for (sx = sx / n - x, sy = sy / n - y, i = 0; i < n; ++i) {
      node = nodes[i], node.x -= sx, node.y -= sy;
    }
  }

  force.initialize = function(_) {
    nodes = _;
  };

  force.x = function(_) {
    return arguments.length ? (x = +_, force) : x;
  };

  force.y = function(_) {
    return arguments.length ? (y = +_, force) : y;
  };

  return force;
});

// CONCATENATED MODULE: ./node_modules/d3-force/src/constant.js
/* harmony default export */ var d3_force_src_constant = (function(x) {
  return function() {
    return x;
  };
});

// CONCATENATED MODULE: ./node_modules/d3-force/src/jiggle.js
/* harmony default export */ var jiggle = (function() {
  return (Math.random() - 0.5) * 1e-6;
});

// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/add.js
/* harmony default export */ var add = (function(d) {
  var x = +this._x.call(null, d),
      y = +this._y.call(null, d);
  return add_add(this.cover(x, y), x, y, d);
});

function add_add(tree, x, y, d) {
  if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points

  var parent,
      node = tree._root,
      leaf = {data: d},
      x0 = tree._x0,
      y0 = tree._y0,
      x1 = tree._x1,
      y1 = tree._y1,
      xm,
      ym,
      xp,
      yp,
      right,
      bottom,
      i,
      j;

  // If the tree is empty, initialize the root as a leaf.
  if (!node) return tree._root = leaf, tree;

  // Find the existing leaf for the new point, or add it.
  while (node.length) {
    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
    if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;
  }

  // Is the new point is exactly coincident with the existing point?
  xp = +tree._x.call(null, node.data);
  yp = +tree._y.call(null, node.data);
  if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;

  // Otherwise, split the leaf node until the old and new point are separated.
  do {
    parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);
    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
  } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));
  return parent[j] = node, parent[i] = leaf, tree;
}

function addAll(data) {
  var d, i, n = data.length,
      x,
      y,
      xz = new Array(n),
      yz = new Array(n),
      x0 = Infinity,
      y0 = Infinity,
      x1 = -Infinity,
      y1 = -Infinity;

  // Compute the points and their extent.
  for (i = 0; i < n; ++i) {
    if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;
    xz[i] = x;
    yz[i] = y;
    if (x < x0) x0 = x;
    if (x > x1) x1 = x;
    if (y < y0) y0 = y;
    if (y > y1) y1 = y;
  }

  // If there were no (valid) points, inherit the existing extent.
  if (x1 < x0) x0 = this._x0, x1 = this._x1;
  if (y1 < y0) y0 = this._y0, y1 = this._y1;

  // Expand the tree to cover the new points.
  this.cover(x0, y0).cover(x1, y1);

  // Add the new points.
  for (i = 0; i < n; ++i) {
    add_add(this, xz[i], yz[i], data[i]);
  }

  return this;
}

// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/cover.js
/* harmony default export */ var src_cover = (function(x, y) {
  if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points

  var x0 = this._x0,
      y0 = this._y0,
      x1 = this._x1,
      y1 = this._y1;

  // If the quadtree has no extent, initialize them.
  // Integer extent are necessary so that if we later double the extent,
  // the existing quadrant boundaries don’t change due to floating point error!
  if (isNaN(x0)) {
    x1 = (x0 = Math.floor(x)) + 1;
    y1 = (y0 = Math.floor(y)) + 1;
  }

  // Otherwise, double repeatedly to cover.
  else if (x0 > x || x > x1 || y0 > y || y > y1) {
    var z = x1 - x0,
        node = this._root,
        parent,
        i;

    switch (i = (y < (y0 + y1) / 2) << 1 | (x < (x0 + x1) / 2)) {
      case 0: {
        do parent = new Array(4), parent[i] = node, node = parent;
        while (z *= 2, x1 = x0 + z, y1 = y0 + z, x > x1 || y > y1);
        break;
      }
      case 1: {
        do parent = new Array(4), parent[i] = node, node = parent;
        while (z *= 2, x0 = x1 - z, y1 = y0 + z, x0 > x || y > y1);
        break;
      }
      case 2: {
        do parent = new Array(4), parent[i] = node, node = parent;
        while (z *= 2, x1 = x0 + z, y0 = y1 - z, x > x1 || y0 > y);
        break;
      }
      case 3: {
        do parent = new Array(4), parent[i] = node, node = parent;
        while (z *= 2, x0 = x1 - z, y0 = y1 - z, x0 > x || y0 > y);
        break;
      }
    }

    if (this._root && this._root.length) this._root = node;
  }

  // If the quadtree covers the point already, just return.
  else return this;

  this._x0 = x0;
  this._y0 = y0;
  this._x1 = x1;
  this._y1 = y1;
  return this;
});

// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/data.js
/* harmony default export */ var src_data = (function() {
  var data = [];
  this.visit(function(node) {
    if (!node.length) do data.push(node.data); while (node = node.next)
  });
  return data;
});

// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/extent.js
/* harmony default export */ var d3_quadtree_src_extent = (function(_) {
  return arguments.length
      ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])
      : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];
});

// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/quad.js
/* harmony default export */ var src_quad = (function(node, x0, y0, x1, y1) {
  this.node = node;
  this.x0 = x0;
  this.y0 = y0;
  this.x1 = x1;
  this.y1 = y1;
});

// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/find.js


/* harmony default export */ var find = (function(x, y, radius) {
  var data,
      x0 = this._x0,
      y0 = this._y0,
      x1,
      y1,
      x2,
      y2,
      x3 = this._x1,
      y3 = this._y1,
      quads = [],
      node = this._root,
      q,
      i;

  if (node) quads.push(new src_quad(node, x0, y0, x3, y3));
  if (radius == null) radius = Infinity;
  else {
    x0 = x - radius, y0 = y - radius;
    x3 = x + radius, y3 = y + radius;
    radius *= radius;
  }

  while (q = quads.pop()) {

    // Stop searching if this quadrant can’t contain a closer node.
    if (!(node = q.node)
        || (x1 = q.x0) > x3
        || (y1 = q.y0) > y3
        || (x2 = q.x1) < x0
        || (y2 = q.y1) < y0) continue;

    // Bisect the current quadrant.
    if (node.length) {
      var xm = (x1 + x2) / 2,
          ym = (y1 + y2) / 2;

      quads.push(
        new src_quad(node[3], xm, ym, x2, y2),
        new src_quad(node[2], x1, ym, xm, y2),
        new src_quad(node[1], xm, y1, x2, ym),
        new src_quad(node[0], x1, y1, xm, ym)
      );

      // Visit the closest quadrant first.
      if (i = (y >= ym) << 1 | (x >= xm)) {
        q = quads[quads.length - 1];
        quads[quads.length - 1] = quads[quads.length - 1 - i];
        quads[quads.length - 1 - i] = q;
      }
    }

    // Visit this point. (Visiting coincident points isn’t necessary!)
    else {
      var dx = x - +this._x.call(null, node.data),
          dy = y - +this._y.call(null, node.data),
          d2 = dx * dx + dy * dy;
      if (d2 < radius) {
        var d = Math.sqrt(radius = d2);
        x0 = x - d, y0 = y - d;
        x3 = x + d, y3 = y + d;
        data = node.data;
      }
    }
  }

  return data;
});

// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/remove.js
/* harmony default export */ var src_remove = (function(d) {
  if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points

  var parent,
      node = this._root,
      retainer,
      previous,
      next,
      x0 = this._x0,
      y0 = this._y0,
      x1 = this._x1,
      y1 = this._y1,
      x,
      y,
      xm,
      ym,
      right,
      bottom,
      i,
      j;

  // If the tree is empty, initialize the root as a leaf.
  if (!node) return this;

  // Find the leaf node for the point.
  // While descending, also retain the deepest parent with a non-removed sibling.
  if (node.length) while (true) {
    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
    if (!(parent = node, node = node[i = bottom << 1 | right])) return this;
    if (!node.length) break;
    if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;
  }

  // Find the point to remove.
  while (node.data !== d) if (!(previous = node, node = node.next)) return this;
  if (next = node.next) delete node.next;

  // If there are multiple coincident points, remove just the point.
  if (previous) return (next ? previous.next = next : delete previous.next), this;

  // If this is the root point, remove it.
  if (!parent) return this._root = next, this;

  // Remove this leaf.
  next ? parent[i] = next : delete parent[i];

  // If the parent now contains exactly one leaf, collapse superfluous parents.
  if ((node = parent[0] || parent[1] || parent[2] || parent[3])
      && node === (parent[3] || parent[2] || parent[1] || parent[0])
      && !node.length) {
    if (retainer) retainer[j] = node;
    else this._root = node;
  }

  return this;
});

function removeAll(data) {
  for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);
  return this;
}

// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/root.js
/* harmony default export */ var src_root = (function() {
  return this._root;
});

// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/size.js
/* harmony default export */ var src_size = (function() {
  var size = 0;
  this.visit(function(node) {
    if (!node.length) do ++size; while (node = node.next)
  });
  return size;
});

// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/visit.js


/* harmony default export */ var visit = (function(callback) {
  var quads = [], q, node = this._root, child, x0, y0, x1, y1;
  if (node) quads.push(new src_quad(node, this._x0, this._y0, this._x1, this._y1));
  while (q = quads.pop()) {
    if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {
      var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;
      if (child = node[3]) quads.push(new src_quad(child, xm, ym, x1, y1));
      if (child = node[2]) quads.push(new src_quad(child, x0, ym, xm, y1));
      if (child = node[1]) quads.push(new src_quad(child, xm, y0, x1, ym));
      if (child = node[0]) quads.push(new src_quad(child, x0, y0, xm, ym));
    }
  }
  return this;
});

// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/visitAfter.js


/* harmony default export */ var visitAfter = (function(callback) {
  var quads = [], next = [], q;
  if (this._root) quads.push(new src_quad(this._root, this._x0, this._y0, this._x1, this._y1));
  while (q = quads.pop()) {
    var node = q.node;
    if (node.length) {
      var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;
      if (child = node[0]) quads.push(new src_quad(child, x0, y0, xm, ym));
      if (child = node[1]) quads.push(new src_quad(child, xm, y0, x1, ym));
      if (child = node[2]) quads.push(new src_quad(child, x0, ym, xm, y1));
      if (child = node[3]) quads.push(new src_quad(child, xm, ym, x1, y1));
    }
    next.push(q);
  }
  while (q = next.pop()) {
    callback(q.node, q.x0, q.y0, q.x1, q.y1);
  }
  return this;
});

// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/x.js
function defaultX(d) {
  return d[0];
}

/* harmony default export */ var src_x = (function(_) {
  return arguments.length ? (this._x = _, this) : this._x;
});

// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/y.js
function defaultY(d) {
  return d[1];
}

/* harmony default export */ var src_y = (function(_) {
  return arguments.length ? (this._y = _, this) : this._y;
});

// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/quadtree.js













function quadtree(nodes, x, y) {
  var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);
  return nodes == null ? tree : tree.addAll(nodes);
}

function Quadtree(x, y, x0, y0, x1, y1) {
  this._x = x;
  this._y = y;
  this._x0 = x0;
  this._y0 = y0;
  this._x1 = x1;
  this._y1 = y1;
  this._root = undefined;
}

function leaf_copy(leaf) {
  var copy = {data: leaf.data}, next = copy;
  while (leaf = leaf.next) next = next.next = {data: leaf.data};
  return copy;
}

var treeProto = quadtree.prototype = Quadtree.prototype;

treeProto.copy = function() {
  var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),
      node = this._root,
      nodes,
      child;

  if (!node) return copy;

  if (!node.length) return copy._root = leaf_copy(node), copy;

  nodes = [{source: node, target: copy._root = new Array(4)}];
  while (node = nodes.pop()) {
    for (var i = 0; i < 4; ++i) {
      if (child = node.source[i]) {
        if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});
        else node.target[i] = leaf_copy(child);
      }
    }
  }

  return copy;
};

treeProto.add = add;
treeProto.addAll = addAll;
treeProto.cover = src_cover;
treeProto.data = src_data;
treeProto.extent = d3_quadtree_src_extent;
treeProto.find = find;
treeProto.remove = src_remove;
treeProto.removeAll = removeAll;
treeProto.root = src_root;
treeProto.size = src_size;
treeProto.visit = visit;
treeProto.visitAfter = visitAfter;
treeProto.x = src_x;
treeProto.y = src_y;

// CONCATENATED MODULE: ./node_modules/d3-quadtree/index.js


// CONCATENATED MODULE: ./node_modules/d3-force/src/collide.js




function collide_x(d) {
  return d.x + d.vx;
}

function collide_y(d) {
  return d.y + d.vy;
}

/* harmony default export */ var collide = (function(radius) {
  var nodes,
      radii,
      strength = 1,
      iterations = 1;

  if (typeof radius !== "function") radius = d3_force_src_constant(radius == null ? 1 : +radius);

  function force() {
    var i, n = nodes.length,
        tree,
        node,
        xi,
        yi,
        ri,
        ri2;

    for (var k = 0; k < iterations; ++k) {
      tree = quadtree(nodes, collide_x, collide_y).visitAfter(prepare);
      for (i = 0; i < n; ++i) {
        node = nodes[i];
        ri = radii[node.index], ri2 = ri * ri;
        xi = node.x + node.vx;
        yi = node.y + node.vy;
        tree.visit(apply);
      }
    }

    function apply(quad, x0, y0, x1, y1) {
      var data = quad.data, rj = quad.r, r = ri + rj;
      if (data) {
        if (data.index > node.index) {
          var x = xi - data.x - data.vx,
              y = yi - data.y - data.vy,
              l = x * x + y * y;
          if (l < r * r) {
            if (x === 0) x = jiggle(), l += x * x;
            if (y === 0) y = jiggle(), l += y * y;
            l = (r - (l = Math.sqrt(l))) / l * strength;
            node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));
            node.vy += (y *= l) * r;
            data.vx -= x * (r = 1 - r);
            data.vy -= y * r;
          }
        }
        return;
      }
      return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;
    }
  }

  function prepare(quad) {
    if (quad.data) return quad.r = radii[quad.data.index];
    for (var i = quad.r = 0; i < 4; ++i) {
      if (quad[i] && quad[i].r > quad.r) {
        quad.r = quad[i].r;
      }
    }
  }

  function initialize() {
    if (!nodes) return;
    var i, n = nodes.length, node;
    radii = new Array(n);
    for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);
  }

  force.initialize = function(_) {
    nodes = _;
    initialize();
  };

  force.iterations = function(_) {
    return arguments.length ? (iterations = +_, force) : iterations;
  };

  force.strength = function(_) {
    return arguments.length ? (strength = +_, force) : strength;
  };

  force.radius = function(_) {
    return arguments.length ? (radius = typeof _ === "function" ? _ : d3_force_src_constant(+_), initialize(), force) : radius;
  };

  return force;
});

// CONCATENATED MODULE: ./node_modules/d3-force/src/link.js




function link_index(d) {
  return d.index;
}

function link_find(nodeById, nodeId) {
  var node = nodeById.get(nodeId);
  if (!node) throw new Error("missing: " + nodeId);
  return node;
}

/* harmony default export */ var src_link = (function(links) {
  var id = link_index,
      strength = defaultStrength,
      strengths,
      distance = d3_force_src_constant(30),
      distances,
      nodes,
      count,
      bias,
      iterations = 1;

  if (links == null) links = [];

  function defaultStrength(link) {
    return 1 / Math.min(count[link.source.index], count[link.target.index]);
  }

  function force(alpha) {
    for (var k = 0, n = links.length; k < iterations; ++k) {
      for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {
        link = links[i], source = link.source, target = link.target;
        x = target.x + target.vx - source.x - source.vx || jiggle();
        y = target.y + target.vy - source.y - source.vy || jiggle();
        l = Math.sqrt(x * x + y * y);
        l = (l - distances[i]) / l * alpha * strengths[i];
        x *= l, y *= l;
        target.vx -= x * (b = bias[i]);
        target.vy -= y * b;
        source.vx += x * (b = 1 - b);
        source.vy += y * b;
      }
    }
  }

  function initialize() {
    if (!nodes) return;

    var i,
        n = nodes.length,
        m = links.length,
        nodeById = Object(d3_collection["c" /* map */])(nodes, id),
        link;

    for (i = 0, count = new Array(n); i < m; ++i) {
      link = links[i], link.index = i;
      if (typeof link.source !== "object") link.source = link_find(nodeById, link.source);
      if (typeof link.target !== "object") link.target = link_find(nodeById, link.target);
      count[link.source.index] = (count[link.source.index] || 0) + 1;
      count[link.target.index] = (count[link.target.index] || 0) + 1;
    }

    for (i = 0, bias = new Array(m); i < m; ++i) {
      link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);
    }

    strengths = new Array(m), initializeStrength();
    distances = new Array(m), initializeDistance();
  }

  function initializeStrength() {
    if (!nodes) return;

    for (var i = 0, n = links.length; i < n; ++i) {
      strengths[i] = +strength(links[i], i, links);
    }
  }

  function initializeDistance() {
    if (!nodes) return;

    for (var i = 0, n = links.length; i < n; ++i) {
      distances[i] = +distance(links[i], i, links);
    }
  }

  force.initialize = function(_) {
    nodes = _;
    initialize();
  };

  force.links = function(_) {
    return arguments.length ? (links = _, initialize(), force) : links;
  };

  force.id = function(_) {
    return arguments.length ? (id = _, force) : id;
  };

  force.iterations = function(_) {
    return arguments.length ? (iterations = +_, force) : iterations;
  };

  force.strength = function(_) {
    return arguments.length ? (strength = typeof _ === "function" ? _ : d3_force_src_constant(+_), initializeStrength(), force) : strength;
  };

  force.distance = function(_) {
    return arguments.length ? (distance = typeof _ === "function" ? _ : d3_force_src_constant(+_), initializeDistance(), force) : distance;
  };

  return force;
});

// CONCATENATED MODULE: ./node_modules/d3-force/src/simulation.js




function simulation_x(d) {
  return d.x;
}

function simulation_y(d) {
  return d.y;
}

var initialRadius = 10,
    initialAngle = Math.PI * (3 - Math.sqrt(5));

/* harmony default export */ var src_simulation = (function(nodes) {
  var simulation,
      alpha = 1,
      alphaMin = 0.001,
      alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),
      alphaTarget = 0,
      velocityDecay = 0.6,
      forces = Object(d3_collection["c" /* map */])(),
      stepper = timer(step),
      event = src_dispatch("tick", "end");

  if (nodes == null) nodes = [];

  function step() {
    tick();
    event.call("tick", simulation);
    if (alpha < alphaMin) {
      stepper.stop();
      event.call("end", simulation);
    }
  }

  function tick() {
    var i, n = nodes.length, node;

    alpha += (alphaTarget - alpha) * alphaDecay;

    forces.each(function(force) {
      force(alpha);
    });

    for (i = 0; i < n; ++i) {
      node = nodes[i];
      if (node.fx == null) node.x += node.vx *= velocityDecay;
      else node.x = node.fx, node.vx = 0;
      if (node.fy == null) node.y += node.vy *= velocityDecay;
      else node.y = node.fy, node.vy = 0;
    }
  }

  function initializeNodes() {
    for (var i = 0, n = nodes.length, node; i < n; ++i) {
      node = nodes[i], node.index = i;
      if (isNaN(node.x) || isNaN(node.y)) {
        var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;
        node.x = radius * Math.cos(angle);
        node.y = radius * Math.sin(angle);
      }
      if (isNaN(node.vx) || isNaN(node.vy)) {
        node.vx = node.vy = 0;
      }
    }
  }

  function initializeForce(force) {
    if (force.initialize) force.initialize(nodes);
    return force;
  }

  initializeNodes();

  return simulation = {
    tick: tick,

    restart: function() {
      return stepper.restart(step), simulation;
    },

    stop: function() {
      return stepper.stop(), simulation;
    },

    nodes: function(_) {
      return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;
    },

    alpha: function(_) {
      return arguments.length ? (alpha = +_, simulation) : alpha;
    },

    alphaMin: function(_) {
      return arguments.length ? (alphaMin = +_, simulation) : alphaMin;
    },

    alphaDecay: function(_) {
      return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;
    },

    alphaTarget: function(_) {
      return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;
    },

    velocityDecay: function(_) {
      return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;
    },

    force: function(name, _) {
      return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);
    },

    find: function(x, y, radius) {
      var i = 0,
          n = nodes.length,
          dx,
          dy,
          d2,
          node,
          closest;

      if (radius == null) radius = Infinity;
      else radius *= radius;

      for (i = 0; i < n; ++i) {
        node = nodes[i];
        dx = x - node.x;
        dy = y - node.y;
        d2 = dx * dx + dy * dy;
        if (d2 < radius) closest = node, radius = d2;
      }

      return closest;
    },

    on: function(name, _) {
      return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);
    }
  };
});

// CONCATENATED MODULE: ./node_modules/d3-force/src/manyBody.js





/* harmony default export */ var manyBody = (function() {
  var nodes,
      node,
      alpha,
      strength = d3_force_src_constant(-30),
      strengths,
      distanceMin2 = 1,
      distanceMax2 = Infinity,
      theta2 = 0.81;

  function force(_) {
    var i, n = nodes.length, tree = quadtree(nodes, simulation_x, simulation_y).visitAfter(accumulate);
    for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);
  }

  function initialize() {
    if (!nodes) return;
    var i, n = nodes.length, node;
    strengths = new Array(n);
    for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);
  }

  function accumulate(quad) {
    var strength = 0, q, c, weight = 0, x, y, i;

    // For internal nodes, accumulate forces from child quadrants.
    if (quad.length) {
      for (x = y = i = 0; i < 4; ++i) {
        if ((q = quad[i]) && (c = Math.abs(q.value))) {
          strength += q.value, weight += c, x += c * q.x, y += c * q.y;
        }
      }
      quad.x = x / weight;
      quad.y = y / weight;
    }

    // For leaf nodes, accumulate forces from coincident quadrants.
    else {
      q = quad;
      q.x = q.data.x;
      q.y = q.data.y;
      do strength += strengths[q.data.index];
      while (q = q.next);
    }

    quad.value = strength;
  }

  function apply(quad, x1, _, x2) {
    if (!quad.value) return true;

    var x = quad.x - node.x,
        y = quad.y - node.y,
        w = x2 - x1,
        l = x * x + y * y;

    // Apply the Barnes-Hut approximation if possible.
    // Limit forces for very close nodes; randomize direction if coincident.
    if (w * w / theta2 < l) {
      if (l < distanceMax2) {
        if (x === 0) x = jiggle(), l += x * x;
        if (y === 0) y = jiggle(), l += y * y;
        if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
        node.vx += x * quad.value * alpha / l;
        node.vy += y * quad.value * alpha / l;
      }
      return true;
    }

    // Otherwise, process points directly.
    else if (quad.length || l >= distanceMax2) return;

    // Limit forces for very close nodes; randomize direction if coincident.
    if (quad.data !== node || quad.next) {
      if (x === 0) x = jiggle(), l += x * x;
      if (y === 0) y = jiggle(), l += y * y;
      if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
    }

    do if (quad.data !== node) {
      w = strengths[quad.data.index] * alpha / l;
      node.vx += x * w;
      node.vy += y * w;
    } while (quad = quad.next);
  }

  force.initialize = function(_) {
    nodes = _;
    initialize();
  };

  force.strength = function(_) {
    return arguments.length ? (strength = typeof _ === "function" ? _ : d3_force_src_constant(+_), initialize(), force) : strength;
  };

  force.distanceMin = function(_) {
    return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);
  };

  force.distanceMax = function(_) {
    return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);
  };

  force.theta = function(_) {
    return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);
  };

  return force;
});

// CONCATENATED MODULE: ./node_modules/d3-force/src/radial.js


/* harmony default export */ var radial = (function(radius, x, y) {
  var nodes,
      strength = d3_force_src_constant(0.1),
      strengths,
      radiuses;

  if (typeof radius !== "function") radius = d3_force_src_constant(+radius);
  if (x == null) x = 0;
  if (y == null) y = 0;

  function force(alpha) {
    for (var i = 0, n = nodes.length; i < n; ++i) {
      var node = nodes[i],
          dx = node.x - x || 1e-6,
          dy = node.y - y || 1e-6,
          r = Math.sqrt(dx * dx + dy * dy),
          k = (radiuses[i] - r) * strengths[i] * alpha / r;
      node.vx += dx * k;
      node.vy += dy * k;
    }
  }

  function initialize() {
    if (!nodes) return;
    var i, n = nodes.length;
    strengths = new Array(n);
    radiuses = new Array(n);
    for (i = 0; i < n; ++i) {
      radiuses[i] = +radius(nodes[i], i, nodes);
      strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);
    }
  }

  force.initialize = function(_) {
    nodes = _, initialize();
  };

  force.strength = function(_) {
    return arguments.length ? (strength = typeof _ === "function" ? _ : d3_force_src_constant(+_), initialize(), force) : strength;
  };

  force.radius = function(_) {
    return arguments.length ? (radius = typeof _ === "function" ? _ : d3_force_src_constant(+_), initialize(), force) : radius;
  };

  force.x = function(_) {
    return arguments.length ? (x = +_, force) : x;
  };

  force.y = function(_) {
    return arguments.length ? (y = +_, force) : y;
  };

  return force;
});

// CONCATENATED MODULE: ./node_modules/d3-force/src/x.js


/* harmony default export */ var d3_force_src_x = (function(x) {
  var strength = d3_force_src_constant(0.1),
      nodes,
      strengths,
      xz;

  if (typeof x !== "function") x = d3_force_src_constant(x == null ? 0 : +x);

  function force(alpha) {
    for (var i = 0, n = nodes.length, node; i < n; ++i) {
      node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;
    }
  }

  function initialize() {
    if (!nodes) return;
    var i, n = nodes.length;
    strengths = new Array(n);
    xz = new Array(n);
    for (i = 0; i < n; ++i) {
      strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
    }
  }

  force.initialize = function(_) {
    nodes = _;
    initialize();
  };

  force.strength = function(_) {
    return arguments.length ? (strength = typeof _ === "function" ? _ : d3_force_src_constant(+_), initialize(), force) : strength;
  };

  force.x = function(_) {
    return arguments.length ? (x = typeof _ === "function" ? _ : d3_force_src_constant(+_), initialize(), force) : x;
  };

  return force;
});

// CONCATENATED MODULE: ./node_modules/d3-force/src/y.js


/* harmony default export */ var d3_force_src_y = (function(y) {
  var strength = d3_force_src_constant(0.1),
      nodes,
      strengths,
      yz;

  if (typeof y !== "function") y = d3_force_src_constant(y == null ? 0 : +y);

  function force(alpha) {
    for (var i = 0, n = nodes.length, node; i < n; ++i) {
      node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;
    }
  }

  function initialize() {
    if (!nodes) return;
    var i, n = nodes.length;
    strengths = new Array(n);
    yz = new Array(n);
    for (i = 0; i < n; ++i) {
      strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
    }
  }

  force.initialize = function(_) {
    nodes = _;
    initialize();
  };

  force.strength = function(_) {
    return arguments.length ? (strength = typeof _ === "function" ? _ : d3_force_src_constant(+_), initialize(), force) : strength;
  };

  force.y = function(_) {
    return arguments.length ? (y = typeof _ === "function" ? _ : d3_force_src_constant(+_), initialize(), force) : y;
  };

  return force;
});

// CONCATENATED MODULE: ./node_modules/d3-force/index.js









// EXTERNAL MODULE: ./node_modules/d3-format/index.js + 15 modules
var d3_format = __webpack_require__(131);

// CONCATENATED MODULE: ./node_modules/d3-geo/src/adder.js
// Adds floating point numbers with twice the normal precision.
// Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and
// Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)
// 305–363 (1997).
// Code adapted from GeographicLib by Charles F. F. Karney,
// http://geographiclib.sourceforge.net/

/* harmony default export */ var adder = (function() {
  return new Adder;
});

function Adder() {
  this.reset();
}

Adder.prototype = {
  constructor: Adder,
  reset: function() {
    this.s = // rounded value
    this.t = 0; // exact error
  },
  add: function(y) {
    adder_add(temp, y, this.t);
    adder_add(this, temp.s, this.s);
    if (this.s) this.t += temp.t;
    else this.s = temp.t;
  },
  valueOf: function() {
    return this.s;
  }
};

var temp = new Adder;

function adder_add(adder, a, b) {
  var x = adder.s = a + b,
      bv = x - a,
      av = x - bv;
  adder.t = (a - av) + (b - bv);
}

// CONCATENATED MODULE: ./node_modules/d3-geo/src/math.js
var math_epsilon = 1e-6;
var epsilon2 = 1e-12;
var src_math_pi = Math.PI;
var src_math_halfPi = src_math_pi / 2;
var quarterPi = src_math_pi / 4;
var src_math_tau = src_math_pi * 2;

var degrees = 180 / src_math_pi;
var radians = src_math_pi / 180;

var abs = Math.abs;
var atan = Math.atan;
var atan2 = Math.atan2;
var math_cos = Math.cos;
var ceil = Math.ceil;
var exp = Math.exp;
var floor = Math.floor;
var log = Math.log;
var pow = Math.pow;
var math_sin = Math.sin;
var math_sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };
var sqrt = Math.sqrt;
var tan = Math.tan;

function acos(x) {
  return x > 1 ? 0 : x < -1 ? src_math_pi : Math.acos(x);
}

function asin(x) {
  return x > 1 ? src_math_halfPi : x < -1 ? -src_math_halfPi : Math.asin(x);
}

function haversin(x) {
  return (x = math_sin(x / 2)) * x;
}

// CONCATENATED MODULE: ./node_modules/d3-geo/src/noop.js
function noop_noop() {}

// CONCATENATED MODULE: ./node_modules/d3-geo/src/stream.js
function streamGeometry(geometry, stream) {
  if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {
    streamGeometryType[geometry.type](geometry, stream);
  }
}

var streamObjectType = {
  Feature: function(object, stream) {
    streamGeometry(object.geometry, stream);
  },
  FeatureCollection: function(object, stream) {
    var features = object.features, i = -1, n = features.length;
    while (++i < n) streamGeometry(features[i].geometry, stream);
  }
};

var streamGeometryType = {
  Sphere: function(object, stream) {
    stream.sphere();
  },
  Point: function(object, stream) {
    object = object.coordinates;
    stream.point(object[0], object[1], object[2]);
  },
  MultiPoint: function(object, stream) {
    var coordinates = object.coordinates, i = -1, n = coordinates.length;
    while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);
  },
  LineString: function(object, stream) {
    streamLine(object.coordinates, stream, 0);
  },
  MultiLineString: function(object, stream) {
    var coordinates = object.coordinates, i = -1, n = coordinates.length;
    while (++i < n) streamLine(coordinates[i], stream, 0);
  },
  Polygon: function(object, stream) {
    streamPolygon(object.coordinates, stream);
  },
  MultiPolygon: function(object, stream) {
    var coordinates = object.coordinates, i = -1, n = coordinates.length;
    while (++i < n) streamPolygon(coordinates[i], stream);
  },
  GeometryCollection: function(object, stream) {
    var geometries = object.geometries, i = -1, n = geometries.length;
    while (++i < n) streamGeometry(geometries[i], stream);
  }
};

function streamLine(coordinates, stream, closed) {
  var i = -1, n = coordinates.length - closed, coordinate;
  stream.lineStart();
  while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);
  stream.lineEnd();
}

function streamPolygon(coordinates, stream) {
  var i = -1, n = coordinates.length;
  stream.polygonStart();
  while (++i < n) streamLine(coordinates[i], stream, 1);
  stream.polygonEnd();
}

/* harmony default export */ var src_stream = (function(object, stream) {
  if (object && streamObjectType.hasOwnProperty(object.type)) {
    streamObjectType[object.type](object, stream);
  } else {
    streamGeometry(object, stream);
  }
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/area.js





var areaRingSum = adder();

var areaSum = adder(),
    area_lambda00,
    phi00,
    area_lambda0,
    area_cosPhi0,
    area_sinPhi0;

var areaStream = {
  point: noop_noop,
  lineStart: noop_noop,
  lineEnd: noop_noop,
  polygonStart: function() {
    areaRingSum.reset();
    areaStream.lineStart = areaRingStart;
    areaStream.lineEnd = areaRingEnd;
  },
  polygonEnd: function() {
    var areaRing = +areaRingSum;
    areaSum.add(areaRing < 0 ? src_math_tau + areaRing : areaRing);
    this.lineStart = this.lineEnd = this.point = noop_noop;
  },
  sphere: function() {
    areaSum.add(src_math_tau);
  }
};

function areaRingStart() {
  areaStream.point = areaPointFirst;
}

function areaRingEnd() {
  areaPoint(area_lambda00, phi00);
}

function areaPointFirst(lambda, phi) {
  areaStream.point = areaPoint;
  area_lambda00 = lambda, phi00 = phi;
  lambda *= radians, phi *= radians;
  area_lambda0 = lambda, area_cosPhi0 = math_cos(phi = phi / 2 + quarterPi), area_sinPhi0 = math_sin(phi);
}

function areaPoint(lambda, phi) {
  lambda *= radians, phi *= radians;
  phi = phi / 2 + quarterPi; // half the angular distance from south pole

  // Spherical excess E for a spherical triangle with vertices: south pole,
  // previous point, current point.  Uses a formula derived from Cagnoli’s
  // theorem.  See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).
  var dLambda = lambda - area_lambda0,
      sdLambda = dLambda >= 0 ? 1 : -1,
      adLambda = sdLambda * dLambda,
      cosPhi = math_cos(phi),
      sinPhi = math_sin(phi),
      k = area_sinPhi0 * sinPhi,
      u = area_cosPhi0 * cosPhi + k * math_cos(adLambda),
      v = k * sdLambda * math_sin(adLambda);
  areaRingSum.add(atan2(v, u));

  // Advance the previous points.
  area_lambda0 = lambda, area_cosPhi0 = cosPhi, area_sinPhi0 = sinPhi;
}

/* harmony default export */ var src_area = (function(object) {
  areaSum.reset();
  src_stream(object, areaStream);
  return areaSum * 2;
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/cartesian.js


function cartesian_spherical(cartesian) {
  return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];
}

function cartesian_cartesian(spherical) {
  var lambda = spherical[0], phi = spherical[1], cosPhi = math_cos(phi);
  return [cosPhi * math_cos(lambda), cosPhi * math_sin(lambda), math_sin(phi)];
}

function cartesianDot(a, b) {
  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
}

function cartesianCross(a, b) {
  return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];
}

// TODO return a
function cartesianAddInPlace(a, b) {
  a[0] += b[0], a[1] += b[1], a[2] += b[2];
}

function cartesianScale(vector, k) {
  return [vector[0] * k, vector[1] * k, vector[2] * k];
}

// TODO return d
function cartesianNormalizeInPlace(d) {
  var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
  d[0] /= l, d[1] /= l, d[2] /= l;
}

// CONCATENATED MODULE: ./node_modules/d3-geo/src/bounds.js






var bounds_lambda0, bounds_phi0, bounds_lambda1, bounds_phi1, // bounds
    bounds_lambda2, // previous lambda-coordinate
    bounds_lambda00, bounds_phi00, // first point
    bounds_p0, // previous 3D point
    deltaSum = adder(),
    ranges,
    bounds_range;

var boundsStream = {
  point: boundsPoint,
  lineStart: boundsLineStart,
  lineEnd: boundsLineEnd,
  polygonStart: function() {
    boundsStream.point = boundsRingPoint;
    boundsStream.lineStart = boundsRingStart;
    boundsStream.lineEnd = boundsRingEnd;
    deltaSum.reset();
    areaStream.polygonStart();
  },
  polygonEnd: function() {
    areaStream.polygonEnd();
    boundsStream.point = boundsPoint;
    boundsStream.lineStart = boundsLineStart;
    boundsStream.lineEnd = boundsLineEnd;
    if (areaRingSum < 0) bounds_lambda0 = -(bounds_lambda1 = 180), bounds_phi0 = -(bounds_phi1 = 90);
    else if (deltaSum > math_epsilon) bounds_phi1 = 90;
    else if (deltaSum < -math_epsilon) bounds_phi0 = -90;
    bounds_range[0] = bounds_lambda0, bounds_range[1] = bounds_lambda1;
  }
};

function boundsPoint(lambda, phi) {
  ranges.push(bounds_range = [bounds_lambda0 = lambda, bounds_lambda1 = lambda]);
  if (phi < bounds_phi0) bounds_phi0 = phi;
  if (phi > bounds_phi1) bounds_phi1 = phi;
}

function bounds_linePoint(lambda, phi) {
  var p = cartesian_cartesian([lambda * radians, phi * radians]);
  if (bounds_p0) {
    var normal = cartesianCross(bounds_p0, p),
        equatorial = [normal[1], -normal[0], 0],
        inflection = cartesianCross(equatorial, normal);
    cartesianNormalizeInPlace(inflection);
    inflection = cartesian_spherical(inflection);
    var delta = lambda - bounds_lambda2,
        sign = delta > 0 ? 1 : -1,
        lambdai = inflection[0] * degrees * sign,
        phii,
        antimeridian = abs(delta) > 180;
    if (antimeridian ^ (sign * bounds_lambda2 < lambdai && lambdai < sign * lambda)) {
      phii = inflection[1] * degrees;
      if (phii > bounds_phi1) bounds_phi1 = phii;
    } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * bounds_lambda2 < lambdai && lambdai < sign * lambda)) {
      phii = -inflection[1] * degrees;
      if (phii < bounds_phi0) bounds_phi0 = phii;
    } else {
      if (phi < bounds_phi0) bounds_phi0 = phi;
      if (phi > bounds_phi1) bounds_phi1 = phi;
    }
    if (antimeridian) {
      if (lambda < bounds_lambda2) {
        if (bounds_angle(bounds_lambda0, lambda) > bounds_angle(bounds_lambda0, bounds_lambda1)) bounds_lambda1 = lambda;
      } else {
        if (bounds_angle(lambda, bounds_lambda1) > bounds_angle(bounds_lambda0, bounds_lambda1)) bounds_lambda0 = lambda;
      }
    } else {
      if (bounds_lambda1 >= bounds_lambda0) {
        if (lambda < bounds_lambda0) bounds_lambda0 = lambda;
        if (lambda > bounds_lambda1) bounds_lambda1 = lambda;
      } else {
        if (lambda > bounds_lambda2) {
          if (bounds_angle(bounds_lambda0, lambda) > bounds_angle(bounds_lambda0, bounds_lambda1)) bounds_lambda1 = lambda;
        } else {
          if (bounds_angle(lambda, bounds_lambda1) > bounds_angle(bounds_lambda0, bounds_lambda1)) bounds_lambda0 = lambda;
        }
      }
    }
  } else {
    ranges.push(bounds_range = [bounds_lambda0 = lambda, bounds_lambda1 = lambda]);
  }
  if (phi < bounds_phi0) bounds_phi0 = phi;
  if (phi > bounds_phi1) bounds_phi1 = phi;
  bounds_p0 = p, bounds_lambda2 = lambda;
}

function boundsLineStart() {
  boundsStream.point = bounds_linePoint;
}

function boundsLineEnd() {
  bounds_range[0] = bounds_lambda0, bounds_range[1] = bounds_lambda1;
  boundsStream.point = boundsPoint;
  bounds_p0 = null;
}

function boundsRingPoint(lambda, phi) {
  if (bounds_p0) {
    var delta = lambda - bounds_lambda2;
    deltaSum.add(abs(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);
  } else {
    bounds_lambda00 = lambda, bounds_phi00 = phi;
  }
  areaStream.point(lambda, phi);
  bounds_linePoint(lambda, phi);
}

function boundsRingStart() {
  areaStream.lineStart();
}

function boundsRingEnd() {
  boundsRingPoint(bounds_lambda00, bounds_phi00);
  areaStream.lineEnd();
  if (abs(deltaSum) > math_epsilon) bounds_lambda0 = -(bounds_lambda1 = 180);
  bounds_range[0] = bounds_lambda0, bounds_range[1] = bounds_lambda1;
  bounds_p0 = null;
}

// Finds the left-right distance between two longitudes.
// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want
// the distance between ±180° to be 360°.
function bounds_angle(lambda0, lambda1) {
  return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;
}

function rangeCompare(a, b) {
  return a[0] - b[0];
}

function rangeContains(range, x) {
  return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;
}

/* harmony default export */ var bounds = (function(feature) {
  var i, n, a, b, merged, deltaMax, delta;

  bounds_phi1 = bounds_lambda1 = -(bounds_lambda0 = bounds_phi0 = Infinity);
  ranges = [];
  src_stream(feature, boundsStream);

  // First, sort ranges by their minimum longitudes.
  if (n = ranges.length) {
    ranges.sort(rangeCompare);

    // Then, merge any ranges that overlap.
    for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {
      b = ranges[i];
      if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {
        if (bounds_angle(a[0], b[1]) > bounds_angle(a[0], a[1])) a[1] = b[1];
        if (bounds_angle(b[0], a[1]) > bounds_angle(a[0], a[1])) a[0] = b[0];
      } else {
        merged.push(a = b);
      }
    }

    // Finally, find the largest gap between the merged ranges.
    // The final bounding box will be the inverse of this gap.
    for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {
      b = merged[i];
      if ((delta = bounds_angle(a[1], b[0])) > deltaMax) deltaMax = delta, bounds_lambda0 = b[0], bounds_lambda1 = a[1];
    }
  }

  ranges = bounds_range = null;

  return bounds_lambda0 === Infinity || bounds_phi0 === Infinity
      ? [[NaN, NaN], [NaN, NaN]]
      : [[bounds_lambda0, bounds_phi0], [bounds_lambda1, bounds_phi1]];
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/centroid.js




var W0, W1,
    centroid_X0, centroid_Y0, Z0,
    centroid_X1, centroid_Y1, Z1,
    X2, Y2, Z2,
    centroid_lambda00, centroid_phi00, // first point
    centroid_x0, centroid_y0, z0; // previous point

var centroidStream = {
  sphere: noop_noop,
  point: centroidPoint,
  lineStart: centroidLineStart,
  lineEnd: centroidLineEnd,
  polygonStart: function() {
    centroidStream.lineStart = centroidRingStart;
    centroidStream.lineEnd = centroidRingEnd;
  },
  polygonEnd: function() {
    centroidStream.lineStart = centroidLineStart;
    centroidStream.lineEnd = centroidLineEnd;
  }
};

// Arithmetic mean of Cartesian vectors.
function centroidPoint(lambda, phi) {
  lambda *= radians, phi *= radians;
  var cosPhi = math_cos(phi);
  centroidPointCartesian(cosPhi * math_cos(lambda), cosPhi * math_sin(lambda), math_sin(phi));
}

function centroidPointCartesian(x, y, z) {
  ++W0;
  centroid_X0 += (x - centroid_X0) / W0;
  centroid_Y0 += (y - centroid_Y0) / W0;
  Z0 += (z - Z0) / W0;
}

function centroidLineStart() {
  centroidStream.point = centroidLinePointFirst;
}

function centroidLinePointFirst(lambda, phi) {
  lambda *= radians, phi *= radians;
  var cosPhi = math_cos(phi);
  centroid_x0 = cosPhi * math_cos(lambda);
  centroid_y0 = cosPhi * math_sin(lambda);
  z0 = math_sin(phi);
  centroidStream.point = centroidLinePoint;
  centroidPointCartesian(centroid_x0, centroid_y0, z0);
}

function centroidLinePoint(lambda, phi) {
  lambda *= radians, phi *= radians;
  var cosPhi = math_cos(phi),
      x = cosPhi * math_cos(lambda),
      y = cosPhi * math_sin(lambda),
      z = math_sin(phi),
      w = atan2(sqrt((w = centroid_y0 * z - z0 * y) * w + (w = z0 * x - centroid_x0 * z) * w + (w = centroid_x0 * y - centroid_y0 * x) * w), centroid_x0 * x + centroid_y0 * y + z0 * z);
  W1 += w;
  centroid_X1 += w * (centroid_x0 + (centroid_x0 = x));
  centroid_Y1 += w * (centroid_y0 + (centroid_y0 = y));
  Z1 += w * (z0 + (z0 = z));
  centroidPointCartesian(centroid_x0, centroid_y0, z0);
}

function centroidLineEnd() {
  centroidStream.point = centroidPoint;
}

// See J. E. Brock, The Inertia Tensor for a Spherical Triangle,
// J. Applied Mechanics 42, 239 (1975).
function centroidRingStart() {
  centroidStream.point = centroidRingPointFirst;
}

function centroidRingEnd() {
  centroidRingPoint(centroid_lambda00, centroid_phi00);
  centroidStream.point = centroidPoint;
}

function centroidRingPointFirst(lambda, phi) {
  centroid_lambda00 = lambda, centroid_phi00 = phi;
  lambda *= radians, phi *= radians;
  centroidStream.point = centroidRingPoint;
  var cosPhi = math_cos(phi);
  centroid_x0 = cosPhi * math_cos(lambda);
  centroid_y0 = cosPhi * math_sin(lambda);
  z0 = math_sin(phi);
  centroidPointCartesian(centroid_x0, centroid_y0, z0);
}

function centroidRingPoint(lambda, phi) {
  lambda *= radians, phi *= radians;
  var cosPhi = math_cos(phi),
      x = cosPhi * math_cos(lambda),
      y = cosPhi * math_sin(lambda),
      z = math_sin(phi),
      cx = centroid_y0 * z - z0 * y,
      cy = z0 * x - centroid_x0 * z,
      cz = centroid_x0 * y - centroid_y0 * x,
      m = sqrt(cx * cx + cy * cy + cz * cz),
      w = asin(m), // line weight = angle
      v = m && -w / m; // area weight multiplier
  X2 += v * cx;
  Y2 += v * cy;
  Z2 += v * cz;
  W1 += w;
  centroid_X1 += w * (centroid_x0 + (centroid_x0 = x));
  centroid_Y1 += w * (centroid_y0 + (centroid_y0 = y));
  Z1 += w * (z0 + (z0 = z));
  centroidPointCartesian(centroid_x0, centroid_y0, z0);
}

/* harmony default export */ var src_centroid = (function(object) {
  W0 = W1 =
  centroid_X0 = centroid_Y0 = Z0 =
  centroid_X1 = centroid_Y1 = Z1 =
  X2 = Y2 = Z2 = 0;
  src_stream(object, centroidStream);

  var x = X2,
      y = Y2,
      z = Z2,
      m = x * x + y * y + z * z;

  // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.
  if (m < epsilon2) {
    x = centroid_X1, y = centroid_Y1, z = Z1;
    // If the feature has zero length, fall back to arithmetic mean of point vectors.
    if (W1 < math_epsilon) x = centroid_X0, y = centroid_Y0, z = Z0;
    m = x * x + y * y + z * z;
    // If the feature still has an undefined ccentroid, then return.
    if (m < epsilon2) return [NaN, NaN];
  }

  return [atan2(y, x) * degrees, asin(z / sqrt(m)) * degrees];
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/constant.js
/* harmony default export */ var d3_geo_src_constant = (function(x) {
  return function() {
    return x;
  };
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/compose.js
/* harmony default export */ var compose = (function(a, b) {

  function compose(x, y) {
    return x = a(x, y), b(x[0], x[1]);
  }

  if (a.invert && b.invert) compose.invert = function(x, y) {
    return x = b.invert(x, y), x && a.invert(x[0], x[1]);
  };

  return compose;
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/rotation.js



function rotationIdentity(lambda, phi) {
  return [lambda > src_math_pi ? lambda - src_math_tau : lambda < -src_math_pi ? lambda + src_math_tau : lambda, phi];
}

rotationIdentity.invert = rotationIdentity;

function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {
  return (deltaLambda %= src_math_tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))
    : rotationLambda(deltaLambda))
    : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)
    : rotationIdentity);
}

function forwardRotationLambda(deltaLambda) {
  return function(lambda, phi) {
    return lambda += deltaLambda, [lambda > src_math_pi ? lambda - src_math_tau : lambda < -src_math_pi ? lambda + src_math_tau : lambda, phi];
  };
}

function rotationLambda(deltaLambda) {
  var rotation = forwardRotationLambda(deltaLambda);
  rotation.invert = forwardRotationLambda(-deltaLambda);
  return rotation;
}

function rotationPhiGamma(deltaPhi, deltaGamma) {
  var cosDeltaPhi = math_cos(deltaPhi),
      sinDeltaPhi = math_sin(deltaPhi),
      cosDeltaGamma = math_cos(deltaGamma),
      sinDeltaGamma = math_sin(deltaGamma);

  function rotation(lambda, phi) {
    var cosPhi = math_cos(phi),
        x = math_cos(lambda) * cosPhi,
        y = math_sin(lambda) * cosPhi,
        z = math_sin(phi),
        k = z * cosDeltaPhi + x * sinDeltaPhi;
    return [
      atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),
      asin(k * cosDeltaGamma + y * sinDeltaGamma)
    ];
  }

  rotation.invert = function(lambda, phi) {
    var cosPhi = math_cos(phi),
        x = math_cos(lambda) * cosPhi,
        y = math_sin(lambda) * cosPhi,
        z = math_sin(phi),
        k = z * cosDeltaGamma - y * sinDeltaGamma;
    return [
      atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),
      asin(k * cosDeltaPhi - x * sinDeltaPhi)
    ];
  };

  return rotation;
}

/* harmony default export */ var src_rotation = (function(rotate) {
  rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);

  function forward(coordinates) {
    coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);
    return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;
  }

  forward.invert = function(coordinates) {
    coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);
    return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;
  };

  return forward;
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/circle.js





// Generates a circle centered at [0°, 0°], with a given radius and precision.
function circleStream(stream, radius, delta, direction, t0, t1) {
  if (!delta) return;
  var cosRadius = math_cos(radius),
      sinRadius = math_sin(radius),
      step = direction * delta;
  if (t0 == null) {
    t0 = radius + direction * src_math_tau;
    t1 = radius - step / 2;
  } else {
    t0 = circleRadius(cosRadius, t0);
    t1 = circleRadius(cosRadius, t1);
    if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * src_math_tau;
  }
  for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {
    point = cartesian_spherical([cosRadius, -sinRadius * math_cos(t), -sinRadius * math_sin(t)]);
    stream.point(point[0], point[1]);
  }
}

// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].
function circleRadius(cosRadius, point) {
  point = cartesian_cartesian(point), point[0] -= cosRadius;
  cartesianNormalizeInPlace(point);
  var radius = acos(-point[1]);
  return ((-point[2] < 0 ? -radius : radius) + src_math_tau - math_epsilon) % src_math_tau;
}

/* harmony default export */ var src_circle = (function() {
  var center = d3_geo_src_constant([0, 0]),
      radius = d3_geo_src_constant(90),
      precision = d3_geo_src_constant(6),
      ring,
      rotate,
      stream = {point: point};

  function point(x, y) {
    ring.push(x = rotate(x, y));
    x[0] *= degrees, x[1] *= degrees;
  }

  function circle() {
    var c = center.apply(this, arguments),
        r = radius.apply(this, arguments) * radians,
        p = precision.apply(this, arguments) * radians;
    ring = [];
    rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;
    circleStream(stream, r, p, 1);
    c = {type: "Polygon", coordinates: [ring]};
    ring = rotate = null;
    return c;
  }

  circle.center = function(_) {
    return arguments.length ? (center = typeof _ === "function" ? _ : d3_geo_src_constant([+_[0], +_[1]]), circle) : center;
  };

  circle.radius = function(_) {
    return arguments.length ? (radius = typeof _ === "function" ? _ : d3_geo_src_constant(+_), circle) : radius;
  };

  circle.precision = function(_) {
    return arguments.length ? (precision = typeof _ === "function" ? _ : d3_geo_src_constant(+_), circle) : precision;
  };

  return circle;
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/clip/buffer.js


/* harmony default export */ var clip_buffer = (function() {
  var lines = [],
      line;
  return {
    point: function(x, y) {
      line.push([x, y]);
    },
    lineStart: function() {
      lines.push(line = []);
    },
    lineEnd: noop_noop,
    rejoin: function() {
      if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));
    },
    result: function() {
      var result = lines;
      lines = [];
      line = null;
      return result;
    }
  };
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/pointEqual.js


/* harmony default export */ var pointEqual = (function(a, b) {
  return abs(a[0] - b[0]) < math_epsilon && abs(a[1] - b[1]) < math_epsilon;
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/clip/rejoin.js


function Intersection(point, points, other, entry) {
  this.x = point;
  this.z = points;
  this.o = other; // another intersection
  this.e = entry; // is an entry?
  this.v = false; // visited
  this.n = this.p = null; // next & previous
}

// A generalized polygon clipping algorithm: given a polygon that has been cut
// into its visible line segments, and rejoins the segments by interpolating
// along the clip edge.
/* harmony default export */ var rejoin = (function(segments, compareIntersection, startInside, interpolate, stream) {
  var subject = [],
      clip = [],
      i,
      n;

  segments.forEach(function(segment) {
    if ((n = segment.length - 1) <= 0) return;
    var n, p0 = segment[0], p1 = segment[n], x;

    // If the first and last points of a segment are coincident, then treat as a
    // closed ring. TODO if all rings are closed, then the winding order of the
    // exterior ring should be checked.
    if (pointEqual(p0, p1)) {
      stream.lineStart();
      for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);
      stream.lineEnd();
      return;
    }

    subject.push(x = new Intersection(p0, segment, null, true));
    clip.push(x.o = new Intersection(p0, null, x, false));
    subject.push(x = new Intersection(p1, segment, null, false));
    clip.push(x.o = new Intersection(p1, null, x, true));
  });

  if (!subject.length) return;

  clip.sort(compareIntersection);
  rejoin_link(subject);
  rejoin_link(clip);

  for (i = 0, n = clip.length; i < n; ++i) {
    clip[i].e = startInside = !startInside;
  }

  var start = subject[0],
      points,
      point;

  while (1) {
    // Find first unvisited intersection.
    var current = start,
        isSubject = true;
    while (current.v) if ((current = current.n) === start) return;
    points = current.z;
    stream.lineStart();
    do {
      current.v = current.o.v = true;
      if (current.e) {
        if (isSubject) {
          for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);
        } else {
          interpolate(current.x, current.n.x, 1, stream);
        }
        current = current.n;
      } else {
        if (isSubject) {
          points = current.p.z;
          for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);
        } else {
          interpolate(current.x, current.p.x, -1, stream);
        }
        current = current.p;
      }
      current = current.o;
      points = current.z;
      isSubject = !isSubject;
    } while (!current.v);
    stream.lineEnd();
  }
});

function rejoin_link(array) {
  if (!(n = array.length)) return;
  var n,
      i = 0,
      a = array[0],
      b;
  while (++i < n) {
    a.n = b = array[i];
    b.p = a;
    a = b;
  }
  a.n = b = array[0];
  b.p = a;
}

// CONCATENATED MODULE: ./node_modules/d3-geo/src/polygonContains.js




var polygonContains_sum = adder();

/* harmony default export */ var polygonContains = (function(polygon, point) {
  var lambda = point[0],
      phi = point[1],
      normal = [math_sin(lambda), -math_cos(lambda), 0],
      angle = 0,
      winding = 0;

  polygonContains_sum.reset();

  for (var i = 0, n = polygon.length; i < n; ++i) {
    if (!(m = (ring = polygon[i]).length)) continue;
    var ring,
        m,
        point0 = ring[m - 1],
        lambda0 = point0[0],
        phi0 = point0[1] / 2 + quarterPi,
        sinPhi0 = math_sin(phi0),
        cosPhi0 = math_cos(phi0);

    for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {
      var point1 = ring[j],
          lambda1 = point1[0],
          phi1 = point1[1] / 2 + quarterPi,
          sinPhi1 = math_sin(phi1),
          cosPhi1 = math_cos(phi1),
          delta = lambda1 - lambda0,
          sign = delta >= 0 ? 1 : -1,
          absDelta = sign * delta,
          antimeridian = absDelta > src_math_pi,
          k = sinPhi0 * sinPhi1;

      polygonContains_sum.add(atan2(k * sign * math_sin(absDelta), cosPhi0 * cosPhi1 + k * math_cos(absDelta)));
      angle += antimeridian ? delta + sign * src_math_tau : delta;

      // Are the longitudes either side of the point’s meridian (lambda),
      // and are the latitudes smaller than the parallel (phi)?
      if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {
        var arc = cartesianCross(cartesian_cartesian(point0), cartesian_cartesian(point1));
        cartesianNormalizeInPlace(arc);
        var intersection = cartesianCross(normal, arc);
        cartesianNormalizeInPlace(intersection);
        var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);
        if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {
          winding += antimeridian ^ delta >= 0 ? 1 : -1;
        }
      }
    }
  }

  // First, determine whether the South pole is inside or outside:
  //
  // It is inside if:
  // * the polygon winds around it in a clockwise direction.
  // * the polygon does not (cumulatively) wind around it, but has a negative
  //   (counter-clockwise) area.
  //
  // Second, count the (signed) number of times a segment crosses a lambda
  // from the point to the South pole.  If it is zero, then the point is the
  // same side as the South pole.

  return (angle < -math_epsilon || angle < math_epsilon && polygonContains_sum < -math_epsilon) ^ (winding & 1);
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/clip/index.js






/* harmony default export */ var src_clip = (function(pointVisible, clipLine, interpolate, start) {
  return function(sink) {
    var line = clipLine(sink),
        ringBuffer = clip_buffer(),
        ringSink = clipLine(ringBuffer),
        polygonStarted = false,
        polygon,
        segments,
        ring;

    var clip = {
      point: point,
      lineStart: lineStart,
      lineEnd: lineEnd,
      polygonStart: function() {
        clip.point = pointRing;
        clip.lineStart = ringStart;
        clip.lineEnd = ringEnd;
        segments = [];
        polygon = [];
      },
      polygonEnd: function() {
        clip.point = point;
        clip.lineStart = lineStart;
        clip.lineEnd = lineEnd;
        segments = Object(src["merge"])(segments);
        var startInside = polygonContains(polygon, start);
        if (segments.length) {
          if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
          rejoin(segments, clip_compareIntersection, startInside, interpolate, sink);
        } else if (startInside) {
          if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
          sink.lineStart();
          interpolate(null, null, 1, sink);
          sink.lineEnd();
        }
        if (polygonStarted) sink.polygonEnd(), polygonStarted = false;
        segments = polygon = null;
      },
      sphere: function() {
        sink.polygonStart();
        sink.lineStart();
        interpolate(null, null, 1, sink);
        sink.lineEnd();
        sink.polygonEnd();
      }
    };

    function point(lambda, phi) {
      if (pointVisible(lambda, phi)) sink.point(lambda, phi);
    }

    function pointLine(lambda, phi) {
      line.point(lambda, phi);
    }

    function lineStart() {
      clip.point = pointLine;
      line.lineStart();
    }

    function lineEnd() {
      clip.point = point;
      line.lineEnd();
    }

    function pointRing(lambda, phi) {
      ring.push([lambda, phi]);
      ringSink.point(lambda, phi);
    }

    function ringStart() {
      ringSink.lineStart();
      ring = [];
    }

    function ringEnd() {
      pointRing(ring[0][0], ring[0][1]);
      ringSink.lineEnd();

      var clean = ringSink.clean(),
          ringSegments = ringBuffer.result(),
          i, n = ringSegments.length, m,
          segment,
          point;

      ring.pop();
      polygon.push(ring);
      ring = null;

      if (!n) return;

      // No intersections.
      if (clean & 1) {
        segment = ringSegments[0];
        if ((m = segment.length - 1) > 0) {
          if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
          sink.lineStart();
          for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);
          sink.lineEnd();
        }
        return;
      }

      // Rejoin connected segments.
      // TODO reuse ringBuffer.rejoin()?
      if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));

      segments.push(ringSegments.filter(validSegment));
    }

    return clip;
  };
});

function validSegment(segment) {
  return segment.length > 1;
}

// Intersections are sorted along the clip edge. For both antimeridian cutting
// and circle clipping, the same comparison is used.
function clip_compareIntersection(a, b) {
  return ((a = a.x)[0] < 0 ? a[1] - src_math_halfPi - math_epsilon : src_math_halfPi - a[1])
       - ((b = b.x)[0] < 0 ? b[1] - src_math_halfPi - math_epsilon : src_math_halfPi - b[1]);
}

// CONCATENATED MODULE: ./node_modules/d3-geo/src/clip/antimeridian.js



/* harmony default export */ var clip_antimeridian = (src_clip(
  function() { return true; },
  clipAntimeridianLine,
  clipAntimeridianInterpolate,
  [-src_math_pi, -src_math_halfPi]
));

// Takes a line and cuts into visible segments. Return values: 0 - there were
// intersections or the line was empty; 1 - no intersections; 2 - there were
// intersections, and the first and last segments should be rejoined.
function clipAntimeridianLine(stream) {
  var lambda0 = NaN,
      phi0 = NaN,
      sign0 = NaN,
      clean; // no intersections

  return {
    lineStart: function() {
      stream.lineStart();
      clean = 1;
    },
    point: function(lambda1, phi1) {
      var sign1 = lambda1 > 0 ? src_math_pi : -src_math_pi,
          delta = abs(lambda1 - lambda0);
      if (abs(delta - src_math_pi) < math_epsilon) { // line crosses a pole
        stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? src_math_halfPi : -src_math_halfPi);
        stream.point(sign0, phi0);
        stream.lineEnd();
        stream.lineStart();
        stream.point(sign1, phi0);
        stream.point(lambda1, phi0);
        clean = 0;
      } else if (sign0 !== sign1 && delta >= src_math_pi) { // line crosses antimeridian
        if (abs(lambda0 - sign0) < math_epsilon) lambda0 -= sign0 * math_epsilon; // handle degeneracies
        if (abs(lambda1 - sign1) < math_epsilon) lambda1 -= sign1 * math_epsilon;
        phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);
        stream.point(sign0, phi0);
        stream.lineEnd();
        stream.lineStart();
        stream.point(sign1, phi0);
        clean = 0;
      }
      stream.point(lambda0 = lambda1, phi0 = phi1);
      sign0 = sign1;
    },
    lineEnd: function() {
      stream.lineEnd();
      lambda0 = phi0 = NaN;
    },
    clean: function() {
      return 2 - clean; // if intersections, rejoin first and last segments
    }
  };
}

function clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {
  var cosPhi0,
      cosPhi1,
      sinLambda0Lambda1 = math_sin(lambda0 - lambda1);
  return abs(sinLambda0Lambda1) > math_epsilon
      ? atan((math_sin(phi0) * (cosPhi1 = math_cos(phi1)) * math_sin(lambda1)
          - math_sin(phi1) * (cosPhi0 = math_cos(phi0)) * math_sin(lambda0))
          / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))
      : (phi0 + phi1) / 2;
}

function clipAntimeridianInterpolate(from, to, direction, stream) {
  var phi;
  if (from == null) {
    phi = direction * src_math_halfPi;
    stream.point(-src_math_pi, phi);
    stream.point(0, phi);
    stream.point(src_math_pi, phi);
    stream.point(src_math_pi, 0);
    stream.point(src_math_pi, -phi);
    stream.point(0, -phi);
    stream.point(-src_math_pi, -phi);
    stream.point(-src_math_pi, 0);
    stream.point(-src_math_pi, phi);
  } else if (abs(from[0] - to[0]) > math_epsilon) {
    var lambda = from[0] < to[0] ? src_math_pi : -src_math_pi;
    phi = direction * lambda / 2;
    stream.point(-lambda, phi);
    stream.point(0, phi);
    stream.point(lambda, phi);
  } else {
    stream.point(to[0], to[1]);
  }
}

// CONCATENATED MODULE: ./node_modules/d3-geo/src/clip/circle.js






/* harmony default export */ var clip_circle = (function(radius) {
  var cr = math_cos(radius),
      delta = 6 * radians,
      smallRadius = cr > 0,
      notHemisphere = abs(cr) > math_epsilon; // TODO optimise for this common case

  function interpolate(from, to, direction, stream) {
    circleStream(stream, radius, delta, direction, from, to);
  }

  function visible(lambda, phi) {
    return math_cos(lambda) * math_cos(phi) > cr;
  }

  // Takes a line and cuts into visible segments. Return values used for polygon
  // clipping: 0 - there were intersections or the line was empty; 1 - no
  // intersections 2 - there were intersections, and the first and last segments
  // should be rejoined.
  function clipLine(stream) {
    var point0, // previous point
        c0, // code for previous point
        v0, // visibility of previous point
        v00, // visibility of first point
        clean; // no intersections
    return {
      lineStart: function() {
        v00 = v0 = false;
        clean = 1;
      },
      point: function(lambda, phi) {
        var point1 = [lambda, phi],
            point2,
            v = visible(lambda, phi),
            c = smallRadius
              ? v ? 0 : code(lambda, phi)
              : v ? code(lambda + (lambda < 0 ? src_math_pi : -src_math_pi), phi) : 0;
        if (!point0 && (v00 = v0 = v)) stream.lineStart();
        // Handle degeneracies.
        // TODO ignore if not clipping polygons.
        if (v !== v0) {
          point2 = intersect(point0, point1);
          if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2)) {
            point1[0] += math_epsilon;
            point1[1] += math_epsilon;
            v = visible(point1[0], point1[1]);
          }
        }
        if (v !== v0) {
          clean = 0;
          if (v) {
            // outside going in
            stream.lineStart();
            point2 = intersect(point1, point0);
            stream.point(point2[0], point2[1]);
          } else {
            // inside going out
            point2 = intersect(point0, point1);
            stream.point(point2[0], point2[1]);
            stream.lineEnd();
          }
          point0 = point2;
        } else if (notHemisphere && point0 && smallRadius ^ v) {
          var t;
          // If the codes for two points are different, or are both zero,
          // and there this segment intersects with the small circle.
          if (!(c & c0) && (t = intersect(point1, point0, true))) {
            clean = 0;
            if (smallRadius) {
              stream.lineStart();
              stream.point(t[0][0], t[0][1]);
              stream.point(t[1][0], t[1][1]);
              stream.lineEnd();
            } else {
              stream.point(t[1][0], t[1][1]);
              stream.lineEnd();
              stream.lineStart();
              stream.point(t[0][0], t[0][1]);
            }
          }
        }
        if (v && (!point0 || !pointEqual(point0, point1))) {
          stream.point(point1[0], point1[1]);
        }
        point0 = point1, v0 = v, c0 = c;
      },
      lineEnd: function() {
        if (v0) stream.lineEnd();
        point0 = null;
      },
      // Rejoin first and last segments if there were intersections and the first
      // and last points were visible.
      clean: function() {
        return clean | ((v00 && v0) << 1);
      }
    };
  }

  // Intersects the great circle between a and b with the clip circle.
  function intersect(a, b, two) {
    var pa = cartesian_cartesian(a),
        pb = cartesian_cartesian(b);

    // We have two planes, n1.p = d1 and n2.p = d2.
    // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).
    var n1 = [1, 0, 0], // normal
        n2 = cartesianCross(pa, pb),
        n2n2 = cartesianDot(n2, n2),
        n1n2 = n2[0], // cartesianDot(n1, n2),
        determinant = n2n2 - n1n2 * n1n2;

    // Two polar points.
    if (!determinant) return !two && a;

    var c1 =  cr * n2n2 / determinant,
        c2 = -cr * n1n2 / determinant,
        n1xn2 = cartesianCross(n1, n2),
        A = cartesianScale(n1, c1),
        B = cartesianScale(n2, c2);
    cartesianAddInPlace(A, B);

    // Solve |p(t)|^2 = 1.
    var u = n1xn2,
        w = cartesianDot(A, u),
        uu = cartesianDot(u, u),
        t2 = w * w - uu * (cartesianDot(A, A) - 1);

    if (t2 < 0) return;

    var t = sqrt(t2),
        q = cartesianScale(u, (-w - t) / uu);
    cartesianAddInPlace(q, A);
    q = cartesian_spherical(q);

    if (!two) return q;

    // Two intersection points.
    var lambda0 = a[0],
        lambda1 = b[0],
        phi0 = a[1],
        phi1 = b[1],
        z;

    if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;

    var delta = lambda1 - lambda0,
        polar = abs(delta - src_math_pi) < math_epsilon,
        meridian = polar || delta < math_epsilon;

    if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;

    // Check that the first point is between a and b.
    if (meridian
        ? polar
          ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < math_epsilon ? phi0 : phi1)
          : phi0 <= q[1] && q[1] <= phi1
        : delta > src_math_pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {
      var q1 = cartesianScale(u, (-w + t) / uu);
      cartesianAddInPlace(q1, A);
      return [q, cartesian_spherical(q1)];
    }
  }

  // Generates a 4-bit vector representing the location of a point relative to
  // the small circle's bounding box.
  function code(lambda, phi) {
    var r = smallRadius ? radius : src_math_pi - radius,
        code = 0;
    if (lambda < -r) code |= 1; // left
    else if (lambda > r) code |= 2; // right
    if (phi < -r) code |= 4; // below
    else if (phi > r) code |= 8; // above
    return code;
  }

  return src_clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-src_math_pi, radius - src_math_pi]);
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/clip/line.js
/* harmony default export */ var clip_line = (function(a, b, x0, y0, x1, y1) {
  var ax = a[0],
      ay = a[1],
      bx = b[0],
      by = b[1],
      t0 = 0,
      t1 = 1,
      dx = bx - ax,
      dy = by - ay,
      r;

  r = x0 - ax;
  if (!dx && r > 0) return;
  r /= dx;
  if (dx < 0) {
    if (r < t0) return;
    if (r < t1) t1 = r;
  } else if (dx > 0) {
    if (r > t1) return;
    if (r > t0) t0 = r;
  }

  r = x1 - ax;
  if (!dx && r < 0) return;
  r /= dx;
  if (dx < 0) {
    if (r > t1) return;
    if (r > t0) t0 = r;
  } else if (dx > 0) {
    if (r < t0) return;
    if (r < t1) t1 = r;
  }

  r = y0 - ay;
  if (!dy && r > 0) return;
  r /= dy;
  if (dy < 0) {
    if (r < t0) return;
    if (r < t1) t1 = r;
  } else if (dy > 0) {
    if (r > t1) return;
    if (r > t0) t0 = r;
  }

  r = y1 - ay;
  if (!dy && r < 0) return;
  r /= dy;
  if (dy < 0) {
    if (r > t1) return;
    if (r > t0) t0 = r;
  } else if (dy > 0) {
    if (r < t0) return;
    if (r < t1) t1 = r;
  }

  if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;
  if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;
  return true;
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/clip/rectangle.js






var clipMax = 1e9, clipMin = -clipMax;

// TODO Use d3-polygon’s polygonContains here for the ring check?
// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?

function clipRectangle(x0, y0, x1, y1) {

  function visible(x, y) {
    return x0 <= x && x <= x1 && y0 <= y && y <= y1;
  }

  function interpolate(from, to, direction, stream) {
    var a = 0, a1 = 0;
    if (from == null
        || (a = corner(from, direction)) !== (a1 = corner(to, direction))
        || comparePoint(from, to) < 0 ^ direction > 0) {
      do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);
      while ((a = (a + direction + 4) % 4) !== a1);
    } else {
      stream.point(to[0], to[1]);
    }
  }

  function corner(p, direction) {
    return abs(p[0] - x0) < math_epsilon ? direction > 0 ? 0 : 3
        : abs(p[0] - x1) < math_epsilon ? direction > 0 ? 2 : 1
        : abs(p[1] - y0) < math_epsilon ? direction > 0 ? 1 : 0
        : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon
  }

  function compareIntersection(a, b) {
    return comparePoint(a.x, b.x);
  }

  function comparePoint(a, b) {
    var ca = corner(a, 1),
        cb = corner(b, 1);
    return ca !== cb ? ca - cb
        : ca === 0 ? b[1] - a[1]
        : ca === 1 ? a[0] - b[0]
        : ca === 2 ? a[1] - b[1]
        : b[0] - a[0];
  }

  return function(stream) {
    var activeStream = stream,
        bufferStream = clip_buffer(),
        segments,
        polygon,
        ring,
        x__, y__, v__, // first point
        x_, y_, v_, // previous point
        first,
        clean;

    var clipStream = {
      point: point,
      lineStart: lineStart,
      lineEnd: lineEnd,
      polygonStart: polygonStart,
      polygonEnd: polygonEnd
    };

    function point(x, y) {
      if (visible(x, y)) activeStream.point(x, y);
    }

    function polygonInside() {
      var winding = 0;

      for (var i = 0, n = polygon.length; i < n; ++i) {
        for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {
          a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];
          if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }
          else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }
        }
      }

      return winding;
    }

    // Buffer geometry within a polygon and then clip it en masse.
    function polygonStart() {
      activeStream = bufferStream, segments = [], polygon = [], clean = true;
    }

    function polygonEnd() {
      var startInside = polygonInside(),
          cleanInside = clean && startInside,
          visible = (segments = Object(src["merge"])(segments)).length;
      if (cleanInside || visible) {
        stream.polygonStart();
        if (cleanInside) {
          stream.lineStart();
          interpolate(null, null, 1, stream);
          stream.lineEnd();
        }
        if (visible) {
          rejoin(segments, compareIntersection, startInside, interpolate, stream);
        }
        stream.polygonEnd();
      }
      activeStream = stream, segments = polygon = ring = null;
    }

    function lineStart() {
      clipStream.point = linePoint;
      if (polygon) polygon.push(ring = []);
      first = true;
      v_ = false;
      x_ = y_ = NaN;
    }

    // TODO rather than special-case polygons, simply handle them separately.
    // Ideally, coincident intersection points should be jittered to avoid
    // clipping issues.
    function lineEnd() {
      if (segments) {
        linePoint(x__, y__);
        if (v__ && v_) bufferStream.rejoin();
        segments.push(bufferStream.result());
      }
      clipStream.point = point;
      if (v_) activeStream.lineEnd();
    }

    function linePoint(x, y) {
      var v = visible(x, y);
      if (polygon) ring.push([x, y]);
      if (first) {
        x__ = x, y__ = y, v__ = v;
        first = false;
        if (v) {
          activeStream.lineStart();
          activeStream.point(x, y);
        }
      } else {
        if (v && v_) activeStream.point(x, y);
        else {
          var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],
              b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];
          if (clip_line(a, b, x0, y0, x1, y1)) {
            if (!v_) {
              activeStream.lineStart();
              activeStream.point(a[0], a[1]);
            }
            activeStream.point(b[0], b[1]);
            if (!v) activeStream.lineEnd();
            clean = false;
          } else if (v) {
            activeStream.lineStart();
            activeStream.point(x, y);
            clean = false;
          }
        }
      }
      x_ = x, y_ = y, v_ = v;
    }

    return clipStream;
  };
}

// CONCATENATED MODULE: ./node_modules/d3-geo/src/clip/extent.js


/* harmony default export */ var clip_extent = (function() {
  var x0 = 0,
      y0 = 0,
      x1 = 960,
      y1 = 500,
      cache,
      cacheStream,
      clip;

  return clip = {
    stream: function(stream) {
      return cache && cacheStream === stream ? cache : cache = clipRectangle(x0, y0, x1, y1)(cacheStream = stream);
    },
    extent: function(_) {
      return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];
    }
  };
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/length.js





var lengthSum = adder(),
    length_lambda0,
    length_sinPhi0,
    length_cosPhi0;

var lengthStream = {
  sphere: noop_noop,
  point: noop_noop,
  lineStart: lengthLineStart,
  lineEnd: noop_noop,
  polygonStart: noop_noop,
  polygonEnd: noop_noop
};

function lengthLineStart() {
  lengthStream.point = lengthPointFirst;
  lengthStream.lineEnd = lengthLineEnd;
}

function lengthLineEnd() {
  lengthStream.point = lengthStream.lineEnd = noop_noop;
}

function lengthPointFirst(lambda, phi) {
  lambda *= radians, phi *= radians;
  length_lambda0 = lambda, length_sinPhi0 = math_sin(phi), length_cosPhi0 = math_cos(phi);
  lengthStream.point = lengthPoint;
}

function lengthPoint(lambda, phi) {
  lambda *= radians, phi *= radians;
  var sinPhi = math_sin(phi),
      cosPhi = math_cos(phi),
      delta = abs(lambda - length_lambda0),
      cosDelta = math_cos(delta),
      sinDelta = math_sin(delta),
      x = cosPhi * sinDelta,
      y = length_cosPhi0 * sinPhi - length_sinPhi0 * cosPhi * cosDelta,
      z = length_sinPhi0 * sinPhi + length_cosPhi0 * cosPhi * cosDelta;
  lengthSum.add(atan2(sqrt(x * x + y * y), z));
  length_lambda0 = lambda, length_sinPhi0 = sinPhi, length_cosPhi0 = cosPhi;
}

/* harmony default export */ var src_length = (function(object) {
  lengthSum.reset();
  src_stream(object, lengthStream);
  return +lengthSum;
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/distance.js


var distance_coordinates = [null, null],
    distance_object = {type: "LineString", coordinates: distance_coordinates};

/* harmony default export */ var src_distance = (function(a, b) {
  distance_coordinates[0] = a;
  distance_coordinates[1] = b;
  return src_length(distance_object);
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/contains.js




var containsObjectType = {
  Feature: function(object, point) {
    return containsGeometry(object.geometry, point);
  },
  FeatureCollection: function(object, point) {
    var features = object.features, i = -1, n = features.length;
    while (++i < n) if (containsGeometry(features[i].geometry, point)) return true;
    return false;
  }
};

var containsGeometryType = {
  Sphere: function() {
    return true;
  },
  Point: function(object, point) {
    return containsPoint(object.coordinates, point);
  },
  MultiPoint: function(object, point) {
    var coordinates = object.coordinates, i = -1, n = coordinates.length;
    while (++i < n) if (containsPoint(coordinates[i], point)) return true;
    return false;
  },
  LineString: function(object, point) {
    return containsLine(object.coordinates, point);
  },
  MultiLineString: function(object, point) {
    var coordinates = object.coordinates, i = -1, n = coordinates.length;
    while (++i < n) if (containsLine(coordinates[i], point)) return true;
    return false;
  },
  Polygon: function(object, point) {
    return containsPolygon(object.coordinates, point);
  },
  MultiPolygon: function(object, point) {
    var coordinates = object.coordinates, i = -1, n = coordinates.length;
    while (++i < n) if (containsPolygon(coordinates[i], point)) return true;
    return false;
  },
  GeometryCollection: function(object, point) {
    var geometries = object.geometries, i = -1, n = geometries.length;
    while (++i < n) if (containsGeometry(geometries[i], point)) return true;
    return false;
  }
};

function containsGeometry(geometry, point) {
  return geometry && containsGeometryType.hasOwnProperty(geometry.type)
      ? containsGeometryType[geometry.type](geometry, point)
      : false;
}

function containsPoint(coordinates, point) {
  return src_distance(coordinates, point) === 0;
}

function containsLine(coordinates, point) {
  var ab = src_distance(coordinates[0], coordinates[1]),
      ao = src_distance(coordinates[0], point),
      ob = src_distance(point, coordinates[1]);
  return ao + ob <= ab + math_epsilon;
}

function containsPolygon(coordinates, point) {
  return !!polygonContains(coordinates.map(ringRadians), pointRadians(point));
}

function ringRadians(ring) {
  return ring = ring.map(pointRadians), ring.pop(), ring;
}

function pointRadians(point) {
  return [point[0] * radians, point[1] * radians];
}

/* harmony default export */ var contains = (function(object, point) {
  return (object && containsObjectType.hasOwnProperty(object.type)
      ? containsObjectType[object.type]
      : containsGeometry)(object, point);
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/graticule.js



function graticuleX(y0, y1, dy) {
  var y = Object(src["range"])(y0, y1 - math_epsilon, dy).concat(y1);
  return function(x) { return y.map(function(y) { return [x, y]; }); };
}

function graticuleY(x0, x1, dx) {
  var x = Object(src["range"])(x0, x1 - math_epsilon, dx).concat(x1);
  return function(y) { return x.map(function(x) { return [x, y]; }); };
}

function graticule_graticule() {
  var x1, x0, X1, X0,
      y1, y0, Y1, Y0,
      dx = 10, dy = dx, DX = 90, DY = 360,
      x, y, X, Y,
      precision = 2.5;

  function graticule() {
    return {type: "MultiLineString", coordinates: lines()};
  }

  function lines() {
    return Object(src["range"])(ceil(X0 / DX) * DX, X1, DX).map(X)
        .concat(Object(src["range"])(ceil(Y0 / DY) * DY, Y1, DY).map(Y))
        .concat(Object(src["range"])(ceil(x0 / dx) * dx, x1, dx).filter(function(x) { return abs(x % DX) > math_epsilon; }).map(x))
        .concat(Object(src["range"])(ceil(y0 / dy) * dy, y1, dy).filter(function(y) { return abs(y % DY) > math_epsilon; }).map(y));
  }

  graticule.lines = function() {
    return lines().map(function(coordinates) { return {type: "LineString", coordinates: coordinates}; });
  };

  graticule.outline = function() {
    return {
      type: "Polygon",
      coordinates: [
        X(X0).concat(
        Y(Y1).slice(1),
        X(X1).reverse().slice(1),
        Y(Y0).reverse().slice(1))
      ]
    };
  };

  graticule.extent = function(_) {
    if (!arguments.length) return graticule.extentMinor();
    return graticule.extentMajor(_).extentMinor(_);
  };

  graticule.extentMajor = function(_) {
    if (!arguments.length) return [[X0, Y0], [X1, Y1]];
    X0 = +_[0][0], X1 = +_[1][0];
    Y0 = +_[0][1], Y1 = +_[1][1];
    if (X0 > X1) _ = X0, X0 = X1, X1 = _;
    if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;
    return graticule.precision(precision);
  };

  graticule.extentMinor = function(_) {
    if (!arguments.length) return [[x0, y0], [x1, y1]];
    x0 = +_[0][0], x1 = +_[1][0];
    y0 = +_[0][1], y1 = +_[1][1];
    if (x0 > x1) _ = x0, x0 = x1, x1 = _;
    if (y0 > y1) _ = y0, y0 = y1, y1 = _;
    return graticule.precision(precision);
  };

  graticule.step = function(_) {
    if (!arguments.length) return graticule.stepMinor();
    return graticule.stepMajor(_).stepMinor(_);
  };

  graticule.stepMajor = function(_) {
    if (!arguments.length) return [DX, DY];
    DX = +_[0], DY = +_[1];
    return graticule;
  };

  graticule.stepMinor = function(_) {
    if (!arguments.length) return [dx, dy];
    dx = +_[0], dy = +_[1];
    return graticule;
  };

  graticule.precision = function(_) {
    if (!arguments.length) return precision;
    precision = +_;
    x = graticuleX(y0, y1, 90);
    y = graticuleY(x0, x1, precision);
    X = graticuleX(Y0, Y1, 90);
    Y = graticuleY(X0, X1, precision);
    return graticule;
  };

  return graticule
      .extentMajor([[-180, -90 + math_epsilon], [180, 90 - math_epsilon]])
      .extentMinor([[-180, -80 - math_epsilon], [180, 80 + math_epsilon]]);
}

function graticule10() {
  return graticule_graticule()();
}

// CONCATENATED MODULE: ./node_modules/d3-geo/src/interpolate.js


/* harmony default export */ var src_interpolate = (function(a, b) {
  var x0 = a[0] * radians,
      y0 = a[1] * radians,
      x1 = b[0] * radians,
      y1 = b[1] * radians,
      cy0 = math_cos(y0),
      sy0 = math_sin(y0),
      cy1 = math_cos(y1),
      sy1 = math_sin(y1),
      kx0 = cy0 * math_cos(x0),
      ky0 = cy0 * math_sin(x0),
      kx1 = cy1 * math_cos(x1),
      ky1 = cy1 * math_sin(x1),
      d = 2 * asin(sqrt(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))),
      k = math_sin(d);

  var interpolate = d ? function(t) {
    var B = math_sin(t *= d) / k,
        A = math_sin(d - t) / k,
        x = A * kx0 + B * kx1,
        y = A * ky0 + B * ky1,
        z = A * sy0 + B * sy1;
    return [
      atan2(y, x) * degrees,
      atan2(z, sqrt(x * x + y * y)) * degrees
    ];
  } : function() {
    return [x0 * degrees, y0 * degrees];
  };

  interpolate.distance = d;

  return interpolate;
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/identity.js
/* harmony default export */ var d3_geo_src_identity = (function(x) {
  return x;
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/path/area.js




var area_areaSum = adder(),
    area_areaRingSum = adder(),
    area_x00,
    area_y00,
    area_x0,
    area_y0;

var area_areaStream = {
  point: noop_noop,
  lineStart: noop_noop,
  lineEnd: noop_noop,
  polygonStart: function() {
    area_areaStream.lineStart = area_areaRingStart;
    area_areaStream.lineEnd = area_areaRingEnd;
  },
  polygonEnd: function() {
    area_areaStream.lineStart = area_areaStream.lineEnd = area_areaStream.point = noop_noop;
    area_areaSum.add(abs(area_areaRingSum));
    area_areaRingSum.reset();
  },
  result: function() {
    var area = area_areaSum / 2;
    area_areaSum.reset();
    return area;
  }
};

function area_areaRingStart() {
  area_areaStream.point = area_areaPointFirst;
}

function area_areaPointFirst(x, y) {
  area_areaStream.point = area_areaPoint;
  area_x00 = area_x0 = x, area_y00 = area_y0 = y;
}

function area_areaPoint(x, y) {
  area_areaRingSum.add(area_y0 * x - area_x0 * y);
  area_x0 = x, area_y0 = y;
}

function area_areaRingEnd() {
  area_areaPoint(area_x00, area_y00);
}

/* harmony default export */ var path_area = (area_areaStream);

// CONCATENATED MODULE: ./node_modules/d3-geo/src/path/bounds.js


var bounds_x0 = Infinity,
    bounds_y0 = bounds_x0,
    bounds_x1 = -bounds_x0,
    bounds_y1 = bounds_x1;

var bounds_boundsStream = {
  point: bounds_boundsPoint,
  lineStart: noop_noop,
  lineEnd: noop_noop,
  polygonStart: noop_noop,
  polygonEnd: noop_noop,
  result: function() {
    var bounds = [[bounds_x0, bounds_y0], [bounds_x1, bounds_y1]];
    bounds_x1 = bounds_y1 = -(bounds_y0 = bounds_x0 = Infinity);
    return bounds;
  }
};

function bounds_boundsPoint(x, y) {
  if (x < bounds_x0) bounds_x0 = x;
  if (x > bounds_x1) bounds_x1 = x;
  if (y < bounds_y0) bounds_y0 = y;
  if (y > bounds_y1) bounds_y1 = y;
}

/* harmony default export */ var path_bounds = (bounds_boundsStream);

// CONCATENATED MODULE: ./node_modules/d3-geo/src/path/centroid.js


// TODO Enforce positive area for exterior, negative area for interior?

var path_centroid_X0 = 0,
    path_centroid_Y0 = 0,
    centroid_Z0 = 0,
    path_centroid_X1 = 0,
    path_centroid_Y1 = 0,
    centroid_Z1 = 0,
    centroid_X2 = 0,
    centroid_Y2 = 0,
    centroid_Z2 = 0,
    centroid_x00,
    centroid_y00,
    path_centroid_x0,
    path_centroid_y0;

var centroid_centroidStream = {
  point: centroid_centroidPoint,
  lineStart: centroid_centroidLineStart,
  lineEnd: centroid_centroidLineEnd,
  polygonStart: function() {
    centroid_centroidStream.lineStart = centroid_centroidRingStart;
    centroid_centroidStream.lineEnd = centroid_centroidRingEnd;
  },
  polygonEnd: function() {
    centroid_centroidStream.point = centroid_centroidPoint;
    centroid_centroidStream.lineStart = centroid_centroidLineStart;
    centroid_centroidStream.lineEnd = centroid_centroidLineEnd;
  },
  result: function() {
    var centroid = centroid_Z2 ? [centroid_X2 / centroid_Z2, centroid_Y2 / centroid_Z2]
        : centroid_Z1 ? [path_centroid_X1 / centroid_Z1, path_centroid_Y1 / centroid_Z1]
        : centroid_Z0 ? [path_centroid_X0 / centroid_Z0, path_centroid_Y0 / centroid_Z0]
        : [NaN, NaN];
    path_centroid_X0 = path_centroid_Y0 = centroid_Z0 =
    path_centroid_X1 = path_centroid_Y1 = centroid_Z1 =
    centroid_X2 = centroid_Y2 = centroid_Z2 = 0;
    return centroid;
  }
};

function centroid_centroidPoint(x, y) {
  path_centroid_X0 += x;
  path_centroid_Y0 += y;
  ++centroid_Z0;
}

function centroid_centroidLineStart() {
  centroid_centroidStream.point = centroidPointFirstLine;
}

function centroidPointFirstLine(x, y) {
  centroid_centroidStream.point = centroidPointLine;
  centroid_centroidPoint(path_centroid_x0 = x, path_centroid_y0 = y);
}

function centroidPointLine(x, y) {
  var dx = x - path_centroid_x0, dy = y - path_centroid_y0, z = sqrt(dx * dx + dy * dy);
  path_centroid_X1 += z * (path_centroid_x0 + x) / 2;
  path_centroid_Y1 += z * (path_centroid_y0 + y) / 2;
  centroid_Z1 += z;
  centroid_centroidPoint(path_centroid_x0 = x, path_centroid_y0 = y);
}

function centroid_centroidLineEnd() {
  centroid_centroidStream.point = centroid_centroidPoint;
}

function centroid_centroidRingStart() {
  centroid_centroidStream.point = centroidPointFirstRing;
}

function centroid_centroidRingEnd() {
  centroidPointRing(centroid_x00, centroid_y00);
}

function centroidPointFirstRing(x, y) {
  centroid_centroidStream.point = centroidPointRing;
  centroid_centroidPoint(centroid_x00 = path_centroid_x0 = x, centroid_y00 = path_centroid_y0 = y);
}

function centroidPointRing(x, y) {
  var dx = x - path_centroid_x0,
      dy = y - path_centroid_y0,
      z = sqrt(dx * dx + dy * dy);

  path_centroid_X1 += z * (path_centroid_x0 + x) / 2;
  path_centroid_Y1 += z * (path_centroid_y0 + y) / 2;
  centroid_Z1 += z;

  z = path_centroid_y0 * x - path_centroid_x0 * y;
  centroid_X2 += z * (path_centroid_x0 + x);
  centroid_Y2 += z * (path_centroid_y0 + y);
  centroid_Z2 += z * 3;
  centroid_centroidPoint(path_centroid_x0 = x, path_centroid_y0 = y);
}

/* harmony default export */ var path_centroid = (centroid_centroidStream);

// CONCATENATED MODULE: ./node_modules/d3-geo/src/path/context.js



function PathContext(context) {
  this._context = context;
}

PathContext.prototype = {
  _radius: 4.5,
  pointRadius: function(_) {
    return this._radius = _, this;
  },
  polygonStart: function() {
    this._line = 0;
  },
  polygonEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._point = 0;
  },
  lineEnd: function() {
    if (this._line === 0) this._context.closePath();
    this._point = NaN;
  },
  point: function(x, y) {
    switch (this._point) {
      case 0: {
        this._context.moveTo(x, y);
        this._point = 1;
        break;
      }
      case 1: {
        this._context.lineTo(x, y);
        break;
      }
      default: {
        this._context.moveTo(x + this._radius, y);
        this._context.arc(x, y, this._radius, 0, src_math_tau);
        break;
      }
    }
  },
  result: noop_noop
};

// CONCATENATED MODULE: ./node_modules/d3-geo/src/path/measure.js




var measure_lengthSum = adder(),
    lengthRing,
    measure_x00,
    measure_y00,
    measure_x0,
    measure_y0;

var measure_lengthStream = {
  point: noop_noop,
  lineStart: function() {
    measure_lengthStream.point = measure_lengthPointFirst;
  },
  lineEnd: function() {
    if (lengthRing) measure_lengthPoint(measure_x00, measure_y00);
    measure_lengthStream.point = noop_noop;
  },
  polygonStart: function() {
    lengthRing = true;
  },
  polygonEnd: function() {
    lengthRing = null;
  },
  result: function() {
    var length = +measure_lengthSum;
    measure_lengthSum.reset();
    return length;
  }
};

function measure_lengthPointFirst(x, y) {
  measure_lengthStream.point = measure_lengthPoint;
  measure_x00 = measure_x0 = x, measure_y00 = measure_y0 = y;
}

function measure_lengthPoint(x, y) {
  measure_x0 -= x, measure_y0 -= y;
  measure_lengthSum.add(sqrt(measure_x0 * measure_x0 + measure_y0 * measure_y0));
  measure_x0 = x, measure_y0 = y;
}

/* harmony default export */ var measure = (measure_lengthStream);

// CONCATENATED MODULE: ./node_modules/d3-geo/src/path/string.js
function PathString() {
  this._string = [];
}

PathString.prototype = {
  _radius: 4.5,
  _circle: string_circle(4.5),
  pointRadius: function(_) {
    if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;
    return this;
  },
  polygonStart: function() {
    this._line = 0;
  },
  polygonEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._point = 0;
  },
  lineEnd: function() {
    if (this._line === 0) this._string.push("Z");
    this._point = NaN;
  },
  point: function(x, y) {
    switch (this._point) {
      case 0: {
        this._string.push("M", x, ",", y);
        this._point = 1;
        break;
      }
      case 1: {
        this._string.push("L", x, ",", y);
        break;
      }
      default: {
        if (this._circle == null) this._circle = string_circle(this._radius);
        this._string.push("M", x, ",", y, this._circle);
        break;
      }
    }
  },
  result: function() {
    if (this._string.length) {
      var result = this._string.join("");
      this._string = [];
      return result;
    } else {
      return null;
    }
  }
};

function string_circle(radius) {
  return "m0," + radius
      + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius
      + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius
      + "z";
}

// CONCATENATED MODULE: ./node_modules/d3-geo/src/path/index.js









/* harmony default export */ var src_path = (function(projection, context) {
  var pointRadius = 4.5,
      projectionStream,
      contextStream;

  function path(object) {
    if (object) {
      if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments));
      src_stream(object, projectionStream(contextStream));
    }
    return contextStream.result();
  }

  path.area = function(object) {
    src_stream(object, projectionStream(path_area));
    return path_area.result();
  };

  path.measure = function(object) {
    src_stream(object, projectionStream(measure));
    return measure.result();
  };

  path.bounds = function(object) {
    src_stream(object, projectionStream(path_bounds));
    return path_bounds.result();
  };

  path.centroid = function(object) {
    src_stream(object, projectionStream(path_centroid));
    return path_centroid.result();
  };

  path.projection = function(_) {
    return arguments.length ? (projectionStream = _ == null ? (projection = null, d3_geo_src_identity) : (projection = _).stream, path) : projection;
  };

  path.context = function(_) {
    if (!arguments.length) return context;
    contextStream = _ == null ? (context = null, new PathString) : new PathContext(context = _);
    if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius);
    return path;
  };

  path.pointRadius = function(_) {
    if (!arguments.length) return pointRadius;
    pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_);
    return path;
  };

  return path.projection(projection).context(context);
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/transform.js
/* harmony default export */ var src_transform = (function(methods) {
  return {
    stream: transformer(methods)
  };
});

function transformer(methods) {
  return function(stream) {
    var s = new TransformStream;
    for (var key in methods) s[key] = methods[key];
    s.stream = stream;
    return s;
  };
}

function TransformStream() {}

TransformStream.prototype = {
  constructor: TransformStream,
  point: function(x, y) { this.stream.point(x, y); },
  sphere: function() { this.stream.sphere(); },
  lineStart: function() { this.stream.lineStart(); },
  lineEnd: function() { this.stream.lineEnd(); },
  polygonStart: function() { this.stream.polygonStart(); },
  polygonEnd: function() { this.stream.polygonEnd(); }
};

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/fit.js



function fit(projection, fitBounds, object) {
  var clip = projection.clipExtent && projection.clipExtent();
  projection.scale(150).translate([0, 0]);
  if (clip != null) projection.clipExtent(null);
  src_stream(object, projection.stream(path_bounds));
  fitBounds(path_bounds.result());
  if (clip != null) projection.clipExtent(clip);
  return projection;
}

function fitExtent(projection, extent, object) {
  return fit(projection, function(b) {
    var w = extent[1][0] - extent[0][0],
        h = extent[1][1] - extent[0][1],
        k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),
        x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,
        y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;
    projection.scale(150 * k).translate([x, y]);
  }, object);
}

function fitSize(projection, size, object) {
  return fitExtent(projection, [[0, 0], size], object);
}

function fitWidth(projection, width, object) {
  return fit(projection, function(b) {
    var w = +width,
        k = w / (b[1][0] - b[0][0]),
        x = (w - k * (b[1][0] + b[0][0])) / 2,
        y = -k * b[0][1];
    projection.scale(150 * k).translate([x, y]);
  }, object);
}

function fitHeight(projection, height, object) {
  return fit(projection, function(b) {
    var h = +height,
        k = h / (b[1][1] - b[0][1]),
        x = -k * b[0][0],
        y = (h - k * (b[1][1] + b[0][1])) / 2;
    projection.scale(150 * k).translate([x, y]);
  }, object);
}

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/resample.js




var maxDepth = 16, // maximum depth of subdivision
    cosMinDistance = math_cos(30 * radians); // cos(minimum angular distance)

/* harmony default export */ var resample = (function(project, delta2) {
  return +delta2 ? resample_resample(project, delta2) : resampleNone(project);
});

function resampleNone(project) {
  return transformer({
    point: function(x, y) {
      x = project(x, y);
      this.stream.point(x[0], x[1]);
    }
  });
}

function resample_resample(project, delta2) {

  function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {
    var dx = x1 - x0,
        dy = y1 - y0,
        d2 = dx * dx + dy * dy;
    if (d2 > 4 * delta2 && depth--) {
      var a = a0 + a1,
          b = b0 + b1,
          c = c0 + c1,
          m = sqrt(a * a + b * b + c * c),
          phi2 = asin(c /= m),
          lambda2 = abs(abs(c) - 1) < math_epsilon || abs(lambda0 - lambda1) < math_epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),
          p = project(lambda2, phi2),
          x2 = p[0],
          y2 = p[1],
          dx2 = x2 - x0,
          dy2 = y2 - y0,
          dz = dy * dx2 - dx * dy2;
      if (dz * dz / d2 > delta2 // perpendicular projected distance
          || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end
          || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance
        resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);
        stream.point(x2, y2);
        resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);
      }
    }
  }
  return function(stream) {
    var lambda00, x00, y00, a00, b00, c00, // first point
        lambda0, x0, y0, a0, b0, c0; // previous point

    var resampleStream = {
      point: point,
      lineStart: lineStart,
      lineEnd: lineEnd,
      polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },
      polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }
    };

    function point(x, y) {
      x = project(x, y);
      stream.point(x[0], x[1]);
    }

    function lineStart() {
      x0 = NaN;
      resampleStream.point = linePoint;
      stream.lineStart();
    }

    function linePoint(lambda, phi) {
      var c = cartesian_cartesian([lambda, phi]), p = project(lambda, phi);
      resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);
      stream.point(x0, y0);
    }

    function lineEnd() {
      resampleStream.point = point;
      stream.lineEnd();
    }

    function ringStart() {
      lineStart();
      resampleStream.point = ringPoint;
      resampleStream.lineEnd = ringEnd;
    }

    function ringPoint(lambda, phi) {
      linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;
      resampleStream.point = linePoint;
    }

    function ringEnd() {
      resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);
      resampleStream.lineEnd = lineEnd;
      lineEnd();
    }

    return resampleStream;
  };
}

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/index.js











var transformRadians = transformer({
  point: function(x, y) {
    this.stream.point(x * radians, y * radians);
  }
});

function transformRotate(rotate) {
  return transformer({
    point: function(x, y) {
      var r = rotate(x, y);
      return this.stream.point(r[0], r[1]);
    }
  });
}

function projection_projection(project) {
  return projectionMutator(function() { return project; })();
}

function projectionMutator(projectAt) {
  var project,
      k = 150, // scale
      x = 480, y = 250, // translate
      dx, dy, lambda = 0, phi = 0, // center
      deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, projectRotate, // rotate
      theta = null, preclip = clip_antimeridian, // clip angle
      x0 = null, y0, x1, y1, postclip = d3_geo_src_identity, // clip extent
      delta2 = 0.5, projectResample = resample(projectTransform, delta2), // precision
      cache,
      cacheStream;

  function projection(point) {
    point = projectRotate(point[0] * radians, point[1] * radians);
    return [point[0] * k + dx, dy - point[1] * k];
  }

  function invert(point) {
    point = projectRotate.invert((point[0] - dx) / k, (dy - point[1]) / k);
    return point && [point[0] * degrees, point[1] * degrees];
  }

  function projectTransform(x, y) {
    return x = project(x, y), [x[0] * k + dx, dy - x[1] * k];
  }

  projection.stream = function(stream) {
    return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));
  };

  projection.preclip = function(_) {
    return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;
  };

  projection.postclip = function(_) {
    return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;
  };

  projection.clipAngle = function(_) {
    return arguments.length ? (preclip = +_ ? clip_circle(theta = _ * radians) : (theta = null, clip_antimeridian), reset()) : theta * degrees;
  };

  projection.clipExtent = function(_) {
    return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, d3_geo_src_identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];
  };

  projection.scale = function(_) {
    return arguments.length ? (k = +_, recenter()) : k;
  };

  projection.translate = function(_) {
    return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];
  };

  projection.center = function(_) {
    return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];
  };

  projection.rotate = function(_) {
    return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];
  };

  projection.precision = function(_) {
    return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);
  };

  projection.fitExtent = function(extent, object) {
    return fitExtent(projection, extent, object);
  };

  projection.fitSize = function(size, object) {
    return fitSize(projection, size, object);
  };

  projection.fitWidth = function(width, object) {
    return fitWidth(projection, width, object);
  };

  projection.fitHeight = function(height, object) {
    return fitHeight(projection, height, object);
  };

  function recenter() {
    projectRotate = compose(rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma), project);
    var center = project(lambda, phi);
    dx = x - center[0] * k;
    dy = y + center[1] * k;
    return reset();
  }

  function reset() {
    cache = cacheStream = null;
    return projection;
  }

  return function() {
    project = projectAt.apply(this, arguments);
    projection.invert = project.invert && invert;
    return recenter();
  };
}

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/conic.js



function conicProjection(projectAt) {
  var phi0 = 0,
      phi1 = src_math_pi / 3,
      m = projectionMutator(projectAt),
      p = m(phi0, phi1);

  p.parallels = function(_) {
    return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees];
  };

  return p;
}

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/cylindricalEqualArea.js


function cylindricalEqualAreaRaw(phi0) {
  var cosPhi0 = math_cos(phi0);

  function forward(lambda, phi) {
    return [lambda * cosPhi0, math_sin(phi) / cosPhi0];
  }

  forward.invert = function(x, y) {
    return [x / cosPhi0, asin(y * cosPhi0)];
  };

  return forward;
}

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/conicEqualArea.js




function conicEqualAreaRaw(y0, y1) {
  var sy0 = math_sin(y0), n = (sy0 + math_sin(y1)) / 2;

  // Are the parallels symmetrical around the Equator?
  if (abs(n) < math_epsilon) return cylindricalEqualAreaRaw(y0);

  var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt(c) / n;

  function project(x, y) {
    var r = sqrt(c - 2 * n * math_sin(y)) / n;
    return [r * math_sin(x *= n), r0 - r * math_cos(x)];
  }

  project.invert = function(x, y) {
    var r0y = r0 - y;
    return [atan2(x, abs(r0y)) / n * math_sign(r0y), asin((c - (x * x + r0y * r0y) * n * n) / (2 * n))];
  };

  return project;
}

/* harmony default export */ var conicEqualArea = (function() {
  return conicProjection(conicEqualAreaRaw)
      .scale(155.424)
      .center([0, 33.6442]);
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/albers.js


/* harmony default export */ var albers = (function() {
  return conicEqualArea()
      .parallels([29.5, 45.5])
      .scale(1070)
      .translate([480, 250])
      .rotate([96, 0])
      .center([-0.6, 38.7]);
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/albersUsa.js





// The projections must have mutually exclusive clip regions on the sphere,
// as this will avoid emitting interleaving lines and polygons.
function multiplex(streams) {
  var n = streams.length;
  return {
    point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },
    sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },
    lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },
    lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },
    polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },
    polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }
  };
}

// A composite projection for the United States, configured by default for
// 960×500. The projection also works quite well at 960×600 if you change the
// scale to 1285 and adjust the translate accordingly. The set of standard
// parallels for each region comes from USGS, which is published here:
// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers
/* harmony default export */ var projection_albersUsa = (function() {
  var cache,
      cacheStream,
      lower48 = albers(), lower48Point,
      alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338
      hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007
      point, pointStream = {point: function(x, y) { point = [x, y]; }};

  function albersUsa(coordinates) {
    var x = coordinates[0], y = coordinates[1];
    return point = null,
        (lower48Point.point(x, y), point)
        || (alaskaPoint.point(x, y), point)
        || (hawaiiPoint.point(x, y), point);
  }

  albersUsa.invert = function(coordinates) {
    var k = lower48.scale(),
        t = lower48.translate(),
        x = (coordinates[0] - t[0]) / k,
        y = (coordinates[1] - t[1]) / k;
    return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska
        : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii
        : lower48).invert(coordinates);
  };

  albersUsa.stream = function(stream) {
    return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);
  };

  albersUsa.precision = function(_) {
    if (!arguments.length) return lower48.precision();
    lower48.precision(_), alaska.precision(_), hawaii.precision(_);
    return reset();
  };

  albersUsa.scale = function(_) {
    if (!arguments.length) return lower48.scale();
    lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);
    return albersUsa.translate(lower48.translate());
  };

  albersUsa.translate = function(_) {
    if (!arguments.length) return lower48.translate();
    var k = lower48.scale(), x = +_[0], y = +_[1];

    lower48Point = lower48
        .translate(_)
        .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])
        .stream(pointStream);

    alaskaPoint = alaska
        .translate([x - 0.307 * k, y + 0.201 * k])
        .clipExtent([[x - 0.425 * k + math_epsilon, y + 0.120 * k + math_epsilon], [x - 0.214 * k - math_epsilon, y + 0.234 * k - math_epsilon]])
        .stream(pointStream);

    hawaiiPoint = hawaii
        .translate([x - 0.205 * k, y + 0.212 * k])
        .clipExtent([[x - 0.214 * k + math_epsilon, y + 0.166 * k + math_epsilon], [x - 0.115 * k - math_epsilon, y + 0.234 * k - math_epsilon]])
        .stream(pointStream);

    return reset();
  };

  albersUsa.fitExtent = function(extent, object) {
    return fitExtent(albersUsa, extent, object);
  };

  albersUsa.fitSize = function(size, object) {
    return fitSize(albersUsa, size, object);
  };

  albersUsa.fitWidth = function(width, object) {
    return fitWidth(albersUsa, width, object);
  };

  albersUsa.fitHeight = function(height, object) {
    return fitHeight(albersUsa, height, object);
  };

  function reset() {
    cache = cacheStream = null;
    return albersUsa;
  }

  return albersUsa.scale(1070);
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/azimuthal.js


function azimuthalRaw(scale) {
  return function(x, y) {
    var cx = math_cos(x),
        cy = math_cos(y),
        k = scale(cx * cy);
    return [
      k * cy * math_sin(x),
      k * math_sin(y)
    ];
  }
}

function azimuthalInvert(angle) {
  return function(x, y) {
    var z = sqrt(x * x + y * y),
        c = angle(z),
        sc = math_sin(c),
        cc = math_cos(c);
    return [
      atan2(x * sc, z * cc),
      asin(z && y * sc / z)
    ];
  }
}

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/azimuthalEqualArea.js




var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) {
  return sqrt(2 / (1 + cxcy));
});

azimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) {
  return 2 * asin(z / 2);
});

/* harmony default export */ var azimuthalEqualArea = (function() {
  return projection_projection(azimuthalEqualAreaRaw)
      .scale(124.75)
      .clipAngle(180 - 1e-3);
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/azimuthalEquidistant.js




var azimuthalEquidistantRaw = azimuthalRaw(function(c) {
  return (c = acos(c)) && c / math_sin(c);
});

azimuthalEquidistantRaw.invert = azimuthalInvert(function(z) {
  return z;
});

/* harmony default export */ var azimuthalEquidistant = (function() {
  return projection_projection(azimuthalEquidistantRaw)
      .scale(79.4188)
      .clipAngle(180 - 1e-3);
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/mercator.js




function mercatorRaw(lambda, phi) {
  return [lambda, log(tan((src_math_halfPi + phi) / 2))];
}

mercatorRaw.invert = function(x, y) {
  return [x, 2 * atan(exp(y)) - src_math_halfPi];
};

/* harmony default export */ var mercator = (function() {
  return mercatorProjection(mercatorRaw)
      .scale(961 / src_math_tau);
});

function mercatorProjection(project) {
  var m = projection_projection(project),
      center = m.center,
      scale = m.scale,
      translate = m.translate,
      clipExtent = m.clipExtent,
      x0 = null, y0, x1, y1; // clip extent

  m.scale = function(_) {
    return arguments.length ? (scale(_), reclip()) : scale();
  };

  m.translate = function(_) {
    return arguments.length ? (translate(_), reclip()) : translate();
  };

  m.center = function(_) {
    return arguments.length ? (center(_), reclip()) : center();
  };

  m.clipExtent = function(_) {
    return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];
  };

  function reclip() {
    var k = src_math_pi * scale(),
        t = m(src_rotation(m.rotate()).invert([0, 0]));
    return clipExtent(x0 == null
        ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw
        ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]
        : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);
  }

  return reclip();
}

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/conicConformal.js




function tany(y) {
  return tan((src_math_halfPi + y) / 2);
}

function conicConformalRaw(y0, y1) {
  var cy0 = math_cos(y0),
      n = y0 === y1 ? math_sin(y0) : log(cy0 / math_cos(y1)) / log(tany(y1) / tany(y0)),
      f = cy0 * pow(tany(y0), n) / n;

  if (!n) return mercatorRaw;

  function project(x, y) {
    if (f > 0) { if (y < -src_math_halfPi + math_epsilon) y = -src_math_halfPi + math_epsilon; }
    else { if (y > src_math_halfPi - math_epsilon) y = src_math_halfPi - math_epsilon; }
    var r = f / pow(tany(y), n);
    return [r * math_sin(n * x), f - r * math_cos(n * x)];
  }

  project.invert = function(x, y) {
    var fy = f - y, r = math_sign(n) * sqrt(x * x + fy * fy);
    return [atan2(x, abs(fy)) / n * math_sign(fy), 2 * atan(pow(f / r, 1 / n)) - src_math_halfPi];
  };

  return project;
}

/* harmony default export */ var conicConformal = (function() {
  return conicProjection(conicConformalRaw)
      .scale(109.5)
      .parallels([30, 30]);
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/equirectangular.js


function equirectangularRaw(lambda, phi) {
  return [lambda, phi];
}

equirectangularRaw.invert = equirectangularRaw;

/* harmony default export */ var equirectangular = (function() {
  return projection_projection(equirectangularRaw)
      .scale(152.63);
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/conicEquidistant.js




function conicEquidistantRaw(y0, y1) {
  var cy0 = math_cos(y0),
      n = y0 === y1 ? math_sin(y0) : (cy0 - math_cos(y1)) / (y1 - y0),
      g = cy0 / n + y0;

  if (abs(n) < math_epsilon) return equirectangularRaw;

  function project(x, y) {
    var gy = g - y, nx = n * x;
    return [gy * math_sin(nx), g - gy * math_cos(nx)];
  }

  project.invert = function(x, y) {
    var gy = g - y;
    return [atan2(x, abs(gy)) / n * math_sign(gy), g - math_sign(n) * sqrt(x * x + gy * gy)];
  };

  return project;
}

/* harmony default export */ var conicEquidistant = (function() {
  return conicProjection(conicEquidistantRaw)
      .scale(131.154)
      .center([0, 13.9389]);
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/gnomonic.js




function gnomonicRaw(x, y) {
  var cy = math_cos(y), k = math_cos(x) * cy;
  return [cy * math_sin(x) / k, math_sin(y) / k];
}

gnomonicRaw.invert = azimuthalInvert(atan);

/* harmony default export */ var gnomonic = (function() {
  return projection_projection(gnomonicRaw)
      .scale(144.049)
      .clipAngle(60);
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/identity.js





function scaleTranslate(kx, ky, tx, ty) {
  return kx === 1 && ky === 1 && tx === 0 && ty === 0 ? d3_geo_src_identity : transformer({
    point: function(x, y) {
      this.stream.point(x * kx + tx, y * ky + ty);
    }
  });
}

/* harmony default export */ var projection_identity = (function() {
  var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, transform = d3_geo_src_identity, // scale, translate and reflect
      x0 = null, y0, x1, y1, // clip extent
      postclip = d3_geo_src_identity,
      cache,
      cacheStream,
      projection;

  function reset() {
    cache = cacheStream = null;
    return projection;
  }

  return projection = {
    stream: function(stream) {
      return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream));
    },
    postclip: function(_) {
      return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;
    },
    clipExtent: function(_) {
      return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, d3_geo_src_identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];
    },
    scale: function(_) {
      return arguments.length ? (transform = scaleTranslate((k = +_) * sx, k * sy, tx, ty), reset()) : k;
    },
    translate: function(_) {
      return arguments.length ? (transform = scaleTranslate(k * sx, k * sy, tx = +_[0], ty = +_[1]), reset()) : [tx, ty];
    },
    reflectX: function(_) {
      return arguments.length ? (transform = scaleTranslate(k * (sx = _ ? -1 : 1), k * sy, tx, ty), reset()) : sx < 0;
    },
    reflectY: function(_) {
      return arguments.length ? (transform = scaleTranslate(k * sx, k * (sy = _ ? -1 : 1), tx, ty), reset()) : sy < 0;
    },
    fitExtent: function(extent, object) {
      return fitExtent(projection, extent, object);
    },
    fitSize: function(size, object) {
      return fitSize(projection, size, object);
    },
    fitWidth: function(width, object) {
      return fitWidth(projection, width, object);
    },
    fitHeight: function(height, object) {
      return fitHeight(projection, height, object);
    }
  };
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/naturalEarth1.js



function naturalEarth1Raw(lambda, phi) {
  var phi2 = phi * phi, phi4 = phi2 * phi2;
  return [
    lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),
    phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))
  ];
}

naturalEarth1Raw.invert = function(x, y) {
  var phi = y, i = 25, delta;
  do {
    var phi2 = phi * phi, phi4 = phi2 * phi2;
    phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /
        (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));
  } while (abs(delta) > math_epsilon && --i > 0);
  return [
    x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),
    phi
  ];
};

/* harmony default export */ var naturalEarth1 = (function() {
  return projection_projection(naturalEarth1Raw)
      .scale(175.295);
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/orthographic.js




function orthographicRaw(x, y) {
  return [math_cos(y) * math_sin(x), math_sin(y)];
}

orthographicRaw.invert = azimuthalInvert(asin);

/* harmony default export */ var orthographic = (function() {
  return projection_projection(orthographicRaw)
      .scale(249.5)
      .clipAngle(90 + math_epsilon);
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/stereographic.js




function stereographicRaw(x, y) {
  var cy = math_cos(y), k = 1 + math_cos(x) * cy;
  return [cy * math_sin(x) / k, math_sin(y) / k];
}

stereographicRaw.invert = azimuthalInvert(function(z) {
  return 2 * atan(z);
});

/* harmony default export */ var stereographic = (function() {
  return projection_projection(stereographicRaw)
      .scale(250)
      .clipAngle(142);
});

// CONCATENATED MODULE: ./node_modules/d3-geo/src/projection/transverseMercator.js



function transverseMercatorRaw(lambda, phi) {
  return [log(tan((src_math_halfPi + phi) / 2)), -lambda];
}

transverseMercatorRaw.invert = function(x, y) {
  return [-y, 2 * atan(exp(x)) - src_math_halfPi];
};

/* harmony default export */ var transverseMercator = (function() {
  var m = mercatorProjection(transverseMercatorRaw),
      center = m.center,
      rotate = m.rotate;

  m.center = function(_) {
    return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);
  };

  m.rotate = function(_) {
    return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);
  };

  return rotate([0, 0, 90])
      .scale(159.155);
});

// CONCATENATED MODULE: ./node_modules/d3-geo/index.js






 // DEPRECATED! Use d3.geoIdentity().clipExtent(…).



























// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/cluster.js
function defaultSeparation(a, b) {
  return a.parent === b.parent ? 1 : 2;
}

function meanX(children) {
  return children.reduce(meanXReduce, 0) / children.length;
}

function meanXReduce(x, c) {
  return x + c.x;
}

function maxY(children) {
  return 1 + children.reduce(maxYReduce, 0);
}

function maxYReduce(y, c) {
  return Math.max(y, c.y);
}

function leafLeft(node) {
  var children;
  while (children = node.children) node = children[0];
  return node;
}

function leafRight(node) {
  var children;
  while (children = node.children) node = children[children.length - 1];
  return node;
}

/* harmony default export */ var cluster = (function() {
  var separation = defaultSeparation,
      dx = 1,
      dy = 1,
      nodeSize = false;

  function cluster(root) {
    var previousNode,
        x = 0;

    // First walk, computing the initial x & y values.
    root.eachAfter(function(node) {
      var children = node.children;
      if (children) {
        node.x = meanX(children);
        node.y = maxY(children);
      } else {
        node.x = previousNode ? x += separation(node, previousNode) : 0;
        node.y = 0;
        previousNode = node;
      }
    });

    var left = leafLeft(root),
        right = leafRight(root),
        x0 = left.x - separation(left, right) / 2,
        x1 = right.x + separation(right, left) / 2;

    // Second walk, normalizing x & y to the desired size.
    return root.eachAfter(nodeSize ? function(node) {
      node.x = (node.x - root.x) * dx;
      node.y = (root.y - node.y) * dy;
    } : function(node) {
      node.x = (node.x - x0) / (x1 - x0) * dx;
      node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;
    });
  }

  cluster.separation = function(x) {
    return arguments.length ? (separation = x, cluster) : separation;
  };

  cluster.size = function(x) {
    return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);
  };

  cluster.nodeSize = function(x) {
    return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);
  };

  return cluster;
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/count.js
function count_count(node) {
  var sum = 0,
      children = node.children,
      i = children && children.length;
  if (!i) sum = 1;
  else while (--i >= 0) sum += children[i].value;
  node.value = sum;
}

/* harmony default export */ var hierarchy_count = (function() {
  return this.eachAfter(count_count);
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/each.js
/* harmony default export */ var hierarchy_each = (function(callback) {
  var node = this, current, next = [node], children, i, n;
  do {
    current = next.reverse(), next = [];
    while (node = current.pop()) {
      callback(node), children = node.children;
      if (children) for (i = 0, n = children.length; i < n; ++i) {
        next.push(children[i]);
      }
    }
  } while (next.length);
  return this;
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js
/* harmony default export */ var eachBefore = (function(callback) {
  var node = this, nodes = [node], children, i;
  while (node = nodes.pop()) {
    callback(node), children = node.children;
    if (children) for (i = children.length - 1; i >= 0; --i) {
      nodes.push(children[i]);
    }
  }
  return this;
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js
/* harmony default export */ var eachAfter = (function(callback) {
  var node = this, nodes = [node], next = [], children, i, n;
  while (node = nodes.pop()) {
    next.push(node), children = node.children;
    if (children) for (i = 0, n = children.length; i < n; ++i) {
      nodes.push(children[i]);
    }
  }
  while (node = next.pop()) {
    callback(node);
  }
  return this;
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/sum.js
/* harmony default export */ var hierarchy_sum = (function(value) {
  return this.eachAfter(function(node) {
    var sum = +value(node.data) || 0,
        children = node.children,
        i = children && children.length;
    while (--i >= 0) sum += children[i].value;
    node.value = sum;
  });
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/sort.js
/* harmony default export */ var hierarchy_sort = (function(compare) {
  return this.eachBefore(function(node) {
    if (node.children) {
      node.children.sort(compare);
    }
  });
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/path.js
/* harmony default export */ var hierarchy_path = (function(end) {
  var start = this,
      ancestor = leastCommonAncestor(start, end),
      nodes = [start];
  while (start !== ancestor) {
    start = start.parent;
    nodes.push(start);
  }
  var k = nodes.length;
  while (end !== ancestor) {
    nodes.splice(k, 0, end);
    end = end.parent;
  }
  return nodes;
});

function leastCommonAncestor(a, b) {
  if (a === b) return a;
  var aNodes = a.ancestors(),
      bNodes = b.ancestors(),
      c = null;
  a = aNodes.pop();
  b = bNodes.pop();
  while (a === b) {
    c = a;
    a = aNodes.pop();
    b = bNodes.pop();
  }
  return c;
}

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/ancestors.js
/* harmony default export */ var ancestors = (function() {
  var node = this, nodes = [node];
  while (node = node.parent) {
    nodes.push(node);
  }
  return nodes;
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/descendants.js
/* harmony default export */ var descendants = (function() {
  var nodes = [];
  this.each(function(node) {
    nodes.push(node);
  });
  return nodes;
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/leaves.js
/* harmony default export */ var leaves = (function() {
  var leaves = [];
  this.eachBefore(function(node) {
    if (!node.children) {
      leaves.push(node);
    }
  });
  return leaves;
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/links.js
/* harmony default export */ var hierarchy_links = (function() {
  var root = this, links = [];
  root.each(function(node) {
    if (node !== root) { // Don’t include the root’s parent, if any.
      links.push({source: node.parent, target: node});
    }
  });
  return links;
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/index.js












function hierarchy(data, children) {
  var root = new Node(data),
      valued = +data.value && (root.value = data.value),
      node,
      nodes = [root],
      child,
      childs,
      i,
      n;

  if (children == null) children = defaultChildren;

  while (node = nodes.pop()) {
    if (valued) node.value = +node.data.value;
    if ((childs = children(node.data)) && (n = childs.length)) {
      node.children = new Array(n);
      for (i = n - 1; i >= 0; --i) {
        nodes.push(child = node.children[i] = new Node(childs[i]));
        child.parent = node;
        child.depth = node.depth + 1;
      }
    }
  }

  return root.eachBefore(computeHeight);
}

function node_copy() {
  return hierarchy(this).eachBefore(copyData);
}

function defaultChildren(d) {
  return d.children;
}

function copyData(node) {
  node.data = node.data.data;
}

function computeHeight(node) {
  var height = 0;
  do node.height = height;
  while ((node = node.parent) && (node.height < ++height));
}

function Node(data) {
  this.data = data;
  this.depth =
  this.height = 0;
  this.parent = null;
}

Node.prototype = hierarchy.prototype = {
  constructor: Node,
  count: hierarchy_count,
  each: hierarchy_each,
  eachAfter: eachAfter,
  eachBefore: eachBefore,
  sum: hierarchy_sum,
  sort: hierarchy_sort,
  path: hierarchy_path,
  ancestors: ancestors,
  descendants: descendants,
  leaves: leaves,
  links: hierarchy_links,
  copy: node_copy
};

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/array.js
var d3_hierarchy_src_array_slice = Array.prototype.slice;

function array_shuffle(array) {
  var m = array.length,
      t,
      i;

  while (m) {
    i = Math.random() * m-- | 0;
    t = array[m];
    array[m] = array[i];
    array[i] = t;
  }

  return array;
}

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/pack/enclose.js


/* harmony default export */ var enclose = (function(circles) {
  var i = 0, n = (circles = array_shuffle(d3_hierarchy_src_array_slice.call(circles))).length, B = [], p, e;

  while (i < n) {
    p = circles[i];
    if (e && enclosesWeak(e, p)) ++i;
    else e = encloseBasis(B = extendBasis(B, p)), i = 0;
  }

  return e;
});

function extendBasis(B, p) {
  var i, j;

  if (enclosesWeakAll(p, B)) return [p];

  // If we get here then B must have at least one element.
  for (i = 0; i < B.length; ++i) {
    if (enclosesNot(p, B[i])
        && enclosesWeakAll(encloseBasis2(B[i], p), B)) {
      return [B[i], p];
    }
  }

  // If we get here then B must have at least two elements.
  for (i = 0; i < B.length - 1; ++i) {
    for (j = i + 1; j < B.length; ++j) {
      if (enclosesNot(encloseBasis2(B[i], B[j]), p)
          && enclosesNot(encloseBasis2(B[i], p), B[j])
          && enclosesNot(encloseBasis2(B[j], p), B[i])
          && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {
        return [B[i], B[j], p];
      }
    }
  }

  // If we get here then something is very wrong.
  throw new Error;
}

function enclosesNot(a, b) {
  var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;
  return dr < 0 || dr * dr < dx * dx + dy * dy;
}

function enclosesWeak(a, b) {
  var dr = a.r - b.r + 1e-6, dx = b.x - a.x, dy = b.y - a.y;
  return dr > 0 && dr * dr > dx * dx + dy * dy;
}

function enclosesWeakAll(a, B) {
  for (var i = 0; i < B.length; ++i) {
    if (!enclosesWeak(a, B[i])) {
      return false;
    }
  }
  return true;
}

function encloseBasis(B) {
  switch (B.length) {
    case 1: return encloseBasis1(B[0]);
    case 2: return encloseBasis2(B[0], B[1]);
    case 3: return encloseBasis3(B[0], B[1], B[2]);
  }
}

function encloseBasis1(a) {
  return {
    x: a.x,
    y: a.y,
    r: a.r
  };
}

function encloseBasis2(a, b) {
  var x1 = a.x, y1 = a.y, r1 = a.r,
      x2 = b.x, y2 = b.y, r2 = b.r,
      x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,
      l = Math.sqrt(x21 * x21 + y21 * y21);
  return {
    x: (x1 + x2 + x21 / l * r21) / 2,
    y: (y1 + y2 + y21 / l * r21) / 2,
    r: (l + r1 + r2) / 2
  };
}

function encloseBasis3(a, b, c) {
  var x1 = a.x, y1 = a.y, r1 = a.r,
      x2 = b.x, y2 = b.y, r2 = b.r,
      x3 = c.x, y3 = c.y, r3 = c.r,
      a2 = x1 - x2,
      a3 = x1 - x3,
      b2 = y1 - y2,
      b3 = y1 - y3,
      c2 = r2 - r1,
      c3 = r3 - r1,
      d1 = x1 * x1 + y1 * y1 - r1 * r1,
      d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,
      d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,
      ab = a3 * b2 - a2 * b3,
      xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,
      xb = (b3 * c2 - b2 * c3) / ab,
      ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,
      yb = (a2 * c3 - a3 * c2) / ab,
      A = xb * xb + yb * yb - 1,
      B = 2 * (r1 + xa * xb + ya * yb),
      C = xa * xa + ya * ya - r1 * r1,
      r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);
  return {
    x: x1 + xa + xb * r,
    y: y1 + ya + yb * r,
    r: r
  };
}

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/pack/siblings.js


function place(a, b, c) {
  var ax = a.x,
      ay = a.y,
      da = b.r + c.r,
      db = a.r + c.r,
      dx = b.x - ax,
      dy = b.y - ay,
      dc = dx * dx + dy * dy;
  if (dc) {
    var x = 0.5 + ((db *= db) - (da *= da)) / (2 * dc),
        y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);
    c.x = ax + x * dx + y * dy;
    c.y = ay + x * dy - y * dx;
  } else {
    c.x = ax + db;
    c.y = ay;
  }
}

function intersects(a, b) {
  var dx = b.x - a.x,
      dy = b.y - a.y,
      dr = a.r + b.r;
  return dr * dr - 1e-6 > dx * dx + dy * dy;
}

function score(node) {
  var a = node._,
      b = node.next._,
      ab = a.r + b.r,
      dx = (a.x * b.r + b.x * a.r) / ab,
      dy = (a.y * b.r + b.y * a.r) / ab;
  return dx * dx + dy * dy;
}

function siblings_Node(circle) {
  this._ = circle;
  this.next = null;
  this.previous = null;
}

function packEnclose(circles) {
  if (!(n = circles.length)) return 0;

  var a, b, c, n, aa, ca, i, j, k, sj, sk;

  // Place the first circle.
  a = circles[0], a.x = 0, a.y = 0;
  if (!(n > 1)) return a.r;

  // Place the second circle.
  b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;
  if (!(n > 2)) return a.r + b.r;

  // Place the third circle.
  place(b, a, c = circles[2]);

  // Initialize the front-chain using the first three circles a, b and c.
  a = new siblings_Node(a), b = new siblings_Node(b), c = new siblings_Node(c);
  a.next = c.previous = b;
  b.next = a.previous = c;
  c.next = b.previous = a;

  // Attempt to place each remaining circle…
  pack: for (i = 3; i < n; ++i) {
    place(a._, b._, c = circles[i]), c = new siblings_Node(c);

    // Find the closest intersecting circle on the front-chain, if any.
    // “Closeness” is determined by linear distance along the front-chain.
    // “Ahead” or “behind” is likewise determined by linear distance.
    j = b.next, k = a.previous, sj = b._.r, sk = a._.r;
    do {
      if (sj <= sk) {
        if (intersects(j._, c._)) {
          b = j, a.next = b, b.previous = a, --i;
          continue pack;
        }
        sj += j._.r, j = j.next;
      } else {
        if (intersects(k._, c._)) {
          a = k, a.next = b, b.previous = a, --i;
          continue pack;
        }
        sk += k._.r, k = k.previous;
      }
    } while (j !== k.next);

    // Success! Insert the new circle c between a and b.
    c.previous = a, c.next = b, a.next = b.previous = b = c;

    // Compute the new closest circle pair to the centroid.
    aa = score(a);
    while ((c = c.next) !== b) {
      if ((ca = score(c)) < aa) {
        a = c, aa = ca;
      }
    }
    b = a.next;
  }

  // Compute the enclosing circle of the front chain.
  a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = enclose(a);

  // Translate the circles to put the enclosing circle around the origin.
  for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;

  return c.r;
}

/* harmony default export */ var siblings = (function(circles) {
  packEnclose(circles);
  return circles;
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/accessors.js
function optional(f) {
  return f == null ? null : required(f);
}

function required(f) {
  if (typeof f !== "function") throw new Error;
  return f;
}

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/constant.js
function constantZero() {
  return 0;
}

/* harmony default export */ var d3_hierarchy_src_constant = (function(x) {
  return function() {
    return x;
  };
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/pack/index.js




function pack_defaultRadius(d) {
  return Math.sqrt(d.value);
}

/* harmony default export */ var src_pack = (function() {
  var radius = null,
      dx = 1,
      dy = 1,
      padding = constantZero;

  function pack(root) {
    root.x = dx / 2, root.y = dy / 2;
    if (radius) {
      root.eachBefore(radiusLeaf(radius))
          .eachAfter(packChildren(padding, 0.5))
          .eachBefore(translateChild(1));
    } else {
      root.eachBefore(radiusLeaf(pack_defaultRadius))
          .eachAfter(packChildren(constantZero, 1))
          .eachAfter(packChildren(padding, root.r / Math.min(dx, dy)))
          .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));
    }
    return root;
  }

  pack.radius = function(x) {
    return arguments.length ? (radius = optional(x), pack) : radius;
  };

  pack.size = function(x) {
    return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];
  };

  pack.padding = function(x) {
    return arguments.length ? (padding = typeof x === "function" ? x : d3_hierarchy_src_constant(+x), pack) : padding;
  };

  return pack;
});

function radiusLeaf(radius) {
  return function(node) {
    if (!node.children) {
      node.r = Math.max(0, +radius(node) || 0);
    }
  };
}

function packChildren(padding, k) {
  return function(node) {
    if (children = node.children) {
      var children,
          i,
          n = children.length,
          r = padding(node) * k || 0,
          e;

      if (r) for (i = 0; i < n; ++i) children[i].r += r;
      e = packEnclose(children);
      if (r) for (i = 0; i < n; ++i) children[i].r -= r;
      node.r = e + r;
    }
  };
}

function translateChild(k) {
  return function(node) {
    var parent = node.parent;
    node.r *= k;
    if (parent) {
      node.x = parent.x + k * node.x;
      node.y = parent.y + k * node.y;
    }
  };
}

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/treemap/round.js
/* harmony default export */ var treemap_round = (function(node) {
  node.x0 = Math.round(node.x0);
  node.y0 = Math.round(node.y0);
  node.x1 = Math.round(node.x1);
  node.y1 = Math.round(node.y1);
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/treemap/dice.js
/* harmony default export */ var dice = (function(parent, x0, y0, x1, y1) {
  var nodes = parent.children,
      node,
      i = -1,
      n = nodes.length,
      k = parent.value && (x1 - x0) / parent.value;

  while (++i < n) {
    node = nodes[i], node.y0 = y0, node.y1 = y1;
    node.x0 = x0, node.x1 = x0 += node.value * k;
  }
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/partition.js



/* harmony default export */ var src_partition = (function() {
  var dx = 1,
      dy = 1,
      padding = 0,
      round = false;

  function partition(root) {
    var n = root.height + 1;
    root.x0 =
    root.y0 = padding;
    root.x1 = dx;
    root.y1 = dy / n;
    root.eachBefore(positionNode(dy, n));
    if (round) root.eachBefore(treemap_round);
    return root;
  }

  function positionNode(dy, n) {
    return function(node) {
      if (node.children) {
        dice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);
      }
      var x0 = node.x0,
          y0 = node.y0,
          x1 = node.x1 - padding,
          y1 = node.y1 - padding;
      if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
      if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
      node.x0 = x0;
      node.y0 = y0;
      node.x1 = x1;
      node.y1 = y1;
    };
  }

  partition.round = function(x) {
    return arguments.length ? (round = !!x, partition) : round;
  };

  partition.size = function(x) {
    return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];
  };

  partition.padding = function(x) {
    return arguments.length ? (padding = +x, partition) : padding;
  };

  return partition;
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/stratify.js



var stratify_keyPrefix = "$", // Protect against keys like “__proto__”.
    preroot = {depth: -1},
    ambiguous = {};

function defaultId(d) {
  return d.id;
}

function defaultParentId(d) {
  return d.parentId;
}

/* harmony default export */ var src_stratify = (function() {
  var id = defaultId,
      parentId = defaultParentId;

  function stratify(data) {
    var d,
        i,
        n = data.length,
        root,
        parent,
        node,
        nodes = new Array(n),
        nodeId,
        nodeKey,
        nodeByKey = {};

    for (i = 0; i < n; ++i) {
      d = data[i], node = nodes[i] = new Node(d);
      if ((nodeId = id(d, i, data)) != null && (nodeId += "")) {
        nodeKey = stratify_keyPrefix + (node.id = nodeId);
        nodeByKey[nodeKey] = nodeKey in nodeByKey ? ambiguous : node;
      }
    }

    for (i = 0; i < n; ++i) {
      node = nodes[i], nodeId = parentId(data[i], i, data);
      if (nodeId == null || !(nodeId += "")) {
        if (root) throw new Error("multiple roots");
        root = node;
      } else {
        parent = nodeByKey[stratify_keyPrefix + nodeId];
        if (!parent) throw new Error("missing: " + nodeId);
        if (parent === ambiguous) throw new Error("ambiguous: " + nodeId);
        if (parent.children) parent.children.push(node);
        else parent.children = [node];
        node.parent = parent;
      }
    }

    if (!root) throw new Error("no root");
    root.parent = preroot;
    root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight);
    root.parent = null;
    if (n > 0) throw new Error("cycle");

    return root;
  }

  stratify.id = function(x) {
    return arguments.length ? (id = required(x), stratify) : id;
  };

  stratify.parentId = function(x) {
    return arguments.length ? (parentId = required(x), stratify) : parentId;
  };

  return stratify;
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/tree.js


function tree_defaultSeparation(a, b) {
  return a.parent === b.parent ? 1 : 2;
}

// function radialSeparation(a, b) {
//   return (a.parent === b.parent ? 1 : 2) / a.depth;
// }

// This function is used to traverse the left contour of a subtree (or
// subforest). It returns the successor of v on this contour. This successor is
// either given by the leftmost child of v or by the thread of v. The function
// returns null if and only if v is on the highest level of its subtree.
function nextLeft(v) {
  var children = v.children;
  return children ? children[0] : v.t;
}

// This function works analogously to nextLeft.
function nextRight(v) {
  var children = v.children;
  return children ? children[children.length - 1] : v.t;
}

// Shifts the current subtree rooted at w+. This is done by increasing
// prelim(w+) and mod(w+) by shift.
function moveSubtree(wm, wp, shift) {
  var change = shift / (wp.i - wm.i);
  wp.c -= change;
  wp.s += shift;
  wm.c += change;
  wp.z += shift;
  wp.m += shift;
}

// All other shifts, applied to the smaller subtrees between w- and w+, are
// performed by this function. To prepare the shifts, we have to adjust
// change(w+), shift(w+), and change(w-).
function executeShifts(v) {
  var shift = 0,
      change = 0,
      children = v.children,
      i = children.length,
      w;
  while (--i >= 0) {
    w = children[i];
    w.z += shift;
    w.m += shift;
    shift += w.s + (change += w.c);
  }
}

// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,
// returns the specified (default) ancestor.
function nextAncestor(vim, v, ancestor) {
  return vim.a.parent === v.parent ? vim.a : ancestor;
}

function TreeNode(node, i) {
  this._ = node;
  this.parent = null;
  this.children = null;
  this.A = null; // default ancestor
  this.a = this; // ancestor
  this.z = 0; // prelim
  this.m = 0; // mod
  this.c = 0; // change
  this.s = 0; // shift
  this.t = null; // thread
  this.i = i; // number
}

TreeNode.prototype = Object.create(Node.prototype);

function treeRoot(root) {
  var tree = new TreeNode(root, 0),
      node,
      nodes = [tree],
      child,
      children,
      i,
      n;

  while (node = nodes.pop()) {
    if (children = node._.children) {
      node.children = new Array(n = children.length);
      for (i = n - 1; i >= 0; --i) {
        nodes.push(child = node.children[i] = new TreeNode(children[i], i));
        child.parent = node;
      }
    }
  }

  (tree.parent = new TreeNode(null, 0)).children = [tree];
  return tree;
}

// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm
/* harmony default export */ var src_tree = (function() {
  var separation = tree_defaultSeparation,
      dx = 1,
      dy = 1,
      nodeSize = null;

  function tree(root) {
    var t = treeRoot(root);

    // Compute the layout using Buchheim et al.’s algorithm.
    t.eachAfter(firstWalk), t.parent.m = -t.z;
    t.eachBefore(secondWalk);

    // If a fixed node size is specified, scale x and y.
    if (nodeSize) root.eachBefore(sizeNode);

    // If a fixed tree size is specified, scale x and y based on the extent.
    // Compute the left-most, right-most, and depth-most nodes for extents.
    else {
      var left = root,
          right = root,
          bottom = root;
      root.eachBefore(function(node) {
        if (node.x < left.x) left = node;
        if (node.x > right.x) right = node;
        if (node.depth > bottom.depth) bottom = node;
      });
      var s = left === right ? 1 : separation(left, right) / 2,
          tx = s - left.x,
          kx = dx / (right.x + s + tx),
          ky = dy / (bottom.depth || 1);
      root.eachBefore(function(node) {
        node.x = (node.x + tx) * kx;
        node.y = node.depth * ky;
      });
    }

    return root;
  }

  // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is
  // applied recursively to the children of v, as well as the function
  // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the
  // node v is placed to the midpoint of its outermost children.
  function firstWalk(v) {
    var children = v.children,
        siblings = v.parent.children,
        w = v.i ? siblings[v.i - 1] : null;
    if (children) {
      executeShifts(v);
      var midpoint = (children[0].z + children[children.length - 1].z) / 2;
      if (w) {
        v.z = w.z + separation(v._, w._);
        v.m = v.z - midpoint;
      } else {
        v.z = midpoint;
      }
    } else if (w) {
      v.z = w.z + separation(v._, w._);
    }
    v.parent.A = apportion(v, w, v.parent.A || siblings[0]);
  }

  // Computes all real x-coordinates by summing up the modifiers recursively.
  function secondWalk(v) {
    v._.x = v.z + v.parent.m;
    v.m += v.parent.m;
  }

  // The core of the algorithm. Here, a new subtree is combined with the
  // previous subtrees. Threads are used to traverse the inside and outside
  // contours of the left and right subtree up to the highest common level. The
  // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the
  // superscript o means outside and i means inside, the subscript - means left
  // subtree and + means right subtree. For summing up the modifiers along the
  // contour, we use respective variables si+, si-, so-, and so+. Whenever two
  // nodes of the inside contours conflict, we compute the left one of the
  // greatest uncommon ancestors using the function ANCESTOR and call MOVE
  // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.
  // Finally, we add a new thread (if necessary).
  function apportion(v, w, ancestor) {
    if (w) {
      var vip = v,
          vop = v,
          vim = w,
          vom = vip.parent.children[0],
          sip = vip.m,
          sop = vop.m,
          sim = vim.m,
          som = vom.m,
          shift;
      while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {
        vom = nextLeft(vom);
        vop = nextRight(vop);
        vop.a = v;
        shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);
        if (shift > 0) {
          moveSubtree(nextAncestor(vim, v, ancestor), v, shift);
          sip += shift;
          sop += shift;
        }
        sim += vim.m;
        sip += vip.m;
        som += vom.m;
        sop += vop.m;
      }
      if (vim && !nextRight(vop)) {
        vop.t = vim;
        vop.m += sim - sop;
      }
      if (vip && !nextLeft(vom)) {
        vom.t = vip;
        vom.m += sip - som;
        ancestor = v;
      }
    }
    return ancestor;
  }

  function sizeNode(node) {
    node.x *= dx;
    node.y = node.depth * dy;
  }

  tree.separation = function(x) {
    return arguments.length ? (separation = x, tree) : separation;
  };

  tree.size = function(x) {
    return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);
  };

  tree.nodeSize = function(x) {
    return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);
  };

  return tree;
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/treemap/slice.js
/* harmony default export */ var treemap_slice = (function(parent, x0, y0, x1, y1) {
  var nodes = parent.children,
      node,
      i = -1,
      n = nodes.length,
      k = parent.value && (y1 - y0) / parent.value;

  while (++i < n) {
    node = nodes[i], node.x0 = x0, node.x1 = x1;
    node.y0 = y0, node.y1 = y0 += node.value * k;
  }
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/treemap/squarify.js



var squarify_phi = (1 + Math.sqrt(5)) / 2;

function squarifyRatio(ratio, parent, x0, y0, x1, y1) {
  var rows = [],
      nodes = parent.children,
      row,
      nodeValue,
      i0 = 0,
      i1 = 0,
      n = nodes.length,
      dx, dy,
      value = parent.value,
      sumValue,
      minValue,
      maxValue,
      newRatio,
      minRatio,
      alpha,
      beta;

  while (i0 < n) {
    dx = x1 - x0, dy = y1 - y0;

    // Find the next non-empty node.
    do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);
    minValue = maxValue = sumValue;
    alpha = Math.max(dy / dx, dx / dy) / (value * ratio);
    beta = sumValue * sumValue * alpha;
    minRatio = Math.max(maxValue / beta, beta / minValue);

    // Keep adding nodes while the aspect ratio maintains or improves.
    for (; i1 < n; ++i1) {
      sumValue += nodeValue = nodes[i1].value;
      if (nodeValue < minValue) minValue = nodeValue;
      if (nodeValue > maxValue) maxValue = nodeValue;
      beta = sumValue * sumValue * alpha;
      newRatio = Math.max(maxValue / beta, beta / minValue);
      if (newRatio > minRatio) { sumValue -= nodeValue; break; }
      minRatio = newRatio;
    }

    // Position and record the row orientation.
    rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});
    if (row.dice) dice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);
    else treemap_slice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);
    value -= sumValue, i0 = i1;
  }

  return rows;
}

/* harmony default export */ var squarify = ((function custom(ratio) {

  function squarify(parent, x0, y0, x1, y1) {
    squarifyRatio(ratio, parent, x0, y0, x1, y1);
  }

  squarify.ratio = function(x) {
    return custom((x = +x) > 1 ? x : 1);
  };

  return squarify;
})(squarify_phi));

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/treemap/index.js





/* harmony default export */ var src_treemap = (function() {
  var tile = squarify,
      round = false,
      dx = 1,
      dy = 1,
      paddingStack = [0],
      paddingInner = constantZero,
      paddingTop = constantZero,
      paddingRight = constantZero,
      paddingBottom = constantZero,
      paddingLeft = constantZero;

  function treemap(root) {
    root.x0 =
    root.y0 = 0;
    root.x1 = dx;
    root.y1 = dy;
    root.eachBefore(positionNode);
    paddingStack = [0];
    if (round) root.eachBefore(treemap_round);
    return root;
  }

  function positionNode(node) {
    var p = paddingStack[node.depth],
        x0 = node.x0 + p,
        y0 = node.y0 + p,
        x1 = node.x1 - p,
        y1 = node.y1 - p;
    if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
    if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
    node.x0 = x0;
    node.y0 = y0;
    node.x1 = x1;
    node.y1 = y1;
    if (node.children) {
      p = paddingStack[node.depth + 1] = paddingInner(node) / 2;
      x0 += paddingLeft(node) - p;
      y0 += paddingTop(node) - p;
      x1 -= paddingRight(node) - p;
      y1 -= paddingBottom(node) - p;
      if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
      if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
      tile(node, x0, y0, x1, y1);
    }
  }

  treemap.round = function(x) {
    return arguments.length ? (round = !!x, treemap) : round;
  };

  treemap.size = function(x) {
    return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];
  };

  treemap.tile = function(x) {
    return arguments.length ? (tile = required(x), treemap) : tile;
  };

  treemap.padding = function(x) {
    return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();
  };

  treemap.paddingInner = function(x) {
    return arguments.length ? (paddingInner = typeof x === "function" ? x : d3_hierarchy_src_constant(+x), treemap) : paddingInner;
  };

  treemap.paddingOuter = function(x) {
    return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();
  };

  treemap.paddingTop = function(x) {
    return arguments.length ? (paddingTop = typeof x === "function" ? x : d3_hierarchy_src_constant(+x), treemap) : paddingTop;
  };

  treemap.paddingRight = function(x) {
    return arguments.length ? (paddingRight = typeof x === "function" ? x : d3_hierarchy_src_constant(+x), treemap) : paddingRight;
  };

  treemap.paddingBottom = function(x) {
    return arguments.length ? (paddingBottom = typeof x === "function" ? x : d3_hierarchy_src_constant(+x), treemap) : paddingBottom;
  };

  treemap.paddingLeft = function(x) {
    return arguments.length ? (paddingLeft = typeof x === "function" ? x : d3_hierarchy_src_constant(+x), treemap) : paddingLeft;
  };

  return treemap;
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/treemap/binary.js
/* harmony default export */ var binary = (function(parent, x0, y0, x1, y1) {
  var nodes = parent.children,
      i, n = nodes.length,
      sum, sums = new Array(n + 1);

  for (sums[0] = sum = i = 0; i < n; ++i) {
    sums[i + 1] = sum += nodes[i].value;
  }

  partition(0, n, parent.value, x0, y0, x1, y1);

  function partition(i, j, value, x0, y0, x1, y1) {
    if (i >= j - 1) {
      var node = nodes[i];
      node.x0 = x0, node.y0 = y0;
      node.x1 = x1, node.y1 = y1;
      return;
    }

    var valueOffset = sums[i],
        valueTarget = (value / 2) + valueOffset,
        k = i + 1,
        hi = j - 1;

    while (k < hi) {
      var mid = k + hi >>> 1;
      if (sums[mid] < valueTarget) k = mid + 1;
      else hi = mid;
    }

    if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;

    var valueLeft = sums[k] - valueOffset,
        valueRight = value - valueLeft;

    if ((x1 - x0) > (y1 - y0)) {
      var xk = (x0 * valueRight + x1 * valueLeft) / value;
      partition(i, k, valueLeft, x0, y0, xk, y1);
      partition(k, j, valueRight, xk, y0, x1, y1);
    } else {
      var yk = (y0 * valueRight + y1 * valueLeft) / value;
      partition(i, k, valueLeft, x0, y0, x1, yk);
      partition(k, j, valueRight, x0, yk, x1, y1);
    }
  }
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/treemap/sliceDice.js



/* harmony default export */ var sliceDice = (function(parent, x0, y0, x1, y1) {
  (parent.depth & 1 ? treemap_slice : dice)(parent, x0, y0, x1, y1);
});

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/treemap/resquarify.js




/* harmony default export */ var treemap_resquarify = ((function custom(ratio) {

  function resquarify(parent, x0, y0, x1, y1) {
    if ((rows = parent._squarify) && (rows.ratio === ratio)) {
      var rows,
          row,
          nodes,
          i,
          j = -1,
          n,
          m = rows.length,
          value = parent.value;

      while (++j < m) {
        row = rows[j], nodes = row.children;
        for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;
        if (row.dice) dice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);
        else treemap_slice(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);
        value -= row.value;
      }
    } else {
      parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);
      rows.ratio = ratio;
    }
  }

  resquarify.ratio = function(x) {
    return custom((x = +x) > 1 ? x : 1);
  };

  return resquarify;
})(squarify_phi));

// CONCATENATED MODULE: ./node_modules/d3-hierarchy/index.js
















// CONCATENATED MODULE: ./node_modules/d3-polygon/src/area.js
/* harmony default export */ var d3_polygon_src_area = (function(polygon) {
  var i = -1,
      n = polygon.length,
      a,
      b = polygon[n - 1],
      area = 0;

  while (++i < n) {
    a = b;
    b = polygon[i];
    area += a[1] * b[0] - a[0] * b[1];
  }

  return area / 2;
});

// CONCATENATED MODULE: ./node_modules/d3-polygon/src/centroid.js
/* harmony default export */ var d3_polygon_src_centroid = (function(polygon) {
  var i = -1,
      n = polygon.length,
      x = 0,
      y = 0,
      a,
      b = polygon[n - 1],
      c,
      k = 0;

  while (++i < n) {
    a = b;
    b = polygon[i];
    k += c = a[0] * b[1] - b[0] * a[1];
    x += (a[0] + b[0]) * c;
    y += (a[1] + b[1]) * c;
  }

  return k *= 3, [x / k, y / k];
});

// CONCATENATED MODULE: ./node_modules/d3-polygon/src/cross.js
// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of
// the 3D cross product in a quadrant I Cartesian coordinate system (+x is
// right, +y is up). Returns a positive value if ABC is counter-clockwise,
// negative if clockwise, and zero if the points are collinear.
/* harmony default export */ var src_cross = (function(a, b, c) {
  return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);
});

// CONCATENATED MODULE: ./node_modules/d3-polygon/src/hull.js


function lexicographicOrder(a, b) {
  return a[0] - b[0] || a[1] - b[1];
}

// Computes the upper convex hull per the monotone chain algorithm.
// Assumes points.length >= 3, is sorted by x, unique in y.
// Returns an array of indices into points in left-to-right order.
function computeUpperHullIndexes(points) {
  var n = points.length,
      indexes = [0, 1],
      size = 2;

  for (var i = 2; i < n; ++i) {
    while (size > 1 && src_cross(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size;
    indexes[size++] = i;
  }

  return indexes.slice(0, size); // remove popped points
}

/* harmony default export */ var hull = (function(points) {
  if ((n = points.length) < 3) return null;

  var i,
      n,
      sortedPoints = new Array(n),
      flippedPoints = new Array(n);

  for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i];
  sortedPoints.sort(lexicographicOrder);
  for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]];

  var upperIndexes = computeUpperHullIndexes(sortedPoints),
      lowerIndexes = computeUpperHullIndexes(flippedPoints);

  // Construct the hull polygon, removing possible duplicate endpoints.
  var skipLeft = lowerIndexes[0] === upperIndexes[0],
      skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1],
      hull = [];

  // Add upper hull in right-to-l order.
  // Then add lower hull in left-to-right order.
  for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]);
  for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]);

  return hull;
});

// CONCATENATED MODULE: ./node_modules/d3-polygon/src/contains.js
/* harmony default export */ var src_contains = (function(polygon, point) {
  var n = polygon.length,
      p = polygon[n - 1],
      x = point[0], y = point[1],
      x0 = p[0], y0 = p[1],
      x1, y1,
      inside = false;

  for (var i = 0; i < n; ++i) {
    p = polygon[i], x1 = p[0], y1 = p[1];
    if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside;
    x0 = x1, y0 = y1;
  }

  return inside;
});

// CONCATENATED MODULE: ./node_modules/d3-polygon/src/length.js
/* harmony default export */ var d3_polygon_src_length = (function(polygon) {
  var i = -1,
      n = polygon.length,
      b = polygon[n - 1],
      xa,
      ya,
      xb = b[0],
      yb = b[1],
      perimeter = 0;

  while (++i < n) {
    xa = xb;
    ya = yb;
    b = polygon[i];
    xb = b[0];
    yb = b[1];
    xa -= xb;
    ya -= yb;
    perimeter += Math.sqrt(xa * xa + ya * ya);
  }

  return perimeter;
});

// CONCATENATED MODULE: ./node_modules/d3-polygon/index.js






// CONCATENATED MODULE: ./node_modules/d3-queue/src/array.js
var d3_queue_src_array_slice = [].slice;

// CONCATENATED MODULE: ./node_modules/d3-queue/src/queue.js


var noabort = {};

function Queue(size) {
  this._size = size;
  this._call =
  this._error = null;
  this._tasks = [];
  this._data = [];
  this._waiting =
  this._active =
  this._ended =
  this._start = 0; // inside a synchronous task callback?
}

Queue.prototype = queue.prototype = {
  constructor: Queue,
  defer: function(callback) {
    if (typeof callback !== "function") throw new Error("invalid callback");
    if (this._call) throw new Error("defer after await");
    if (this._error != null) return this;
    var t = d3_queue_src_array_slice.call(arguments, 1);
    t.push(callback);
    ++this._waiting, this._tasks.push(t);
    queue_poke(this);
    return this;
  },
  abort: function() {
    if (this._error == null) abort(this, new Error("abort"));
    return this;
  },
  await: function(callback) {
    if (typeof callback !== "function") throw new Error("invalid callback");
    if (this._call) throw new Error("multiple await");
    this._call = function(error, results) { callback.apply(null, [error].concat(results)); };
    maybeNotify(this);
    return this;
  },
  awaitAll: function(callback) {
    if (typeof callback !== "function") throw new Error("invalid callback");
    if (this._call) throw new Error("multiple await");
    this._call = callback;
    maybeNotify(this);
    return this;
  }
};

function queue_poke(q) {
  if (!q._start) {
    try { queue_start(q); } // let the current task complete
    catch (e) {
      if (q._tasks[q._ended + q._active - 1]) abort(q, e); // task errored synchronously
      else if (!q._data) throw e; // await callback errored synchronously
    }
  }
}

function queue_start(q) {
  while (q._start = q._waiting && q._active < q._size) {
    var i = q._ended + q._active,
        t = q._tasks[i],
        j = t.length - 1,
        c = t[j];
    t[j] = queue_end(q, i);
    --q._waiting, ++q._active;
    t = c.apply(null, t);
    if (!q._tasks[i]) continue; // task finished synchronously
    q._tasks[i] = t || noabort;
  }
}

function queue_end(q, i) {
  return function(e, r) {
    if (!q._tasks[i]) return; // ignore multiple callbacks
    --q._active, ++q._ended;
    q._tasks[i] = null;
    if (q._error != null) return; // ignore secondary errors
    if (e != null) {
      abort(q, e);
    } else {
      q._data[i] = r;
      if (q._waiting) queue_poke(q);
      else maybeNotify(q);
    }
  };
}

function abort(q, e) {
  var i = q._tasks.length, t;
  q._error = e; // ignore active callbacks
  q._data = undefined; // allow gc
  q._waiting = NaN; // prevent starting

  while (--i >= 0) {
    if (t = q._tasks[i]) {
      q._tasks[i] = null;
      if (t.abort) {
        try { t.abort(); }
        catch (e) { /* ignore */ }
      }
    }
  }

  q._active = NaN; // allow notification
  maybeNotify(q);
}

function maybeNotify(q) {
  if (!q._active && q._call) {
    var d = q._data;
    q._data = undefined; // allow gc
    q._call(q._error, d);
  }
}

function queue(concurrency) {
  if (concurrency == null) concurrency = Infinity;
  else if (!((concurrency = +concurrency) >= 1)) throw new Error("invalid concurrency");
  return new Queue(concurrency);
}

// CONCATENATED MODULE: ./node_modules/d3-queue/index.js


// CONCATENATED MODULE: ./node_modules/d3-random/src/defaultSource.js
/* harmony default export */ var src_defaultSource = (function() {
  return Math.random();
});

// CONCATENATED MODULE: ./node_modules/d3-random/src/uniform.js


/* harmony default export */ var uniform = ((function sourceRandomUniform(source) {
  function randomUniform(min, max) {
    min = min == null ? 0 : +min;
    max = max == null ? 1 : +max;
    if (arguments.length === 1) max = min, min = 0;
    else max -= min;
    return function() {
      return source() * max + min;
    };
  }

  randomUniform.source = sourceRandomUniform;

  return randomUniform;
})(src_defaultSource));

// CONCATENATED MODULE: ./node_modules/d3-random/src/normal.js


/* harmony default export */ var src_normal = ((function sourceRandomNormal(source) {
  function randomNormal(mu, sigma) {
    var x, r;
    mu = mu == null ? 0 : +mu;
    sigma = sigma == null ? 1 : +sigma;
    return function() {
      var y;

      // If available, use the second previously-generated uniform random.
      if (x != null) y = x, x = null;

      // Otherwise, generate a new x and y.
      else do {
        x = source() * 2 - 1;
        y = source() * 2 - 1;
        r = x * x + y * y;
      } while (!r || r > 1);

      return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);
    };
  }

  randomNormal.source = sourceRandomNormal;

  return randomNormal;
})(src_defaultSource));

// CONCATENATED MODULE: ./node_modules/d3-random/src/logNormal.js



/* harmony default export */ var logNormal = ((function sourceRandomLogNormal(source) {
  function randomLogNormal() {
    var randomNormal = src_normal.source(source).apply(this, arguments);
    return function() {
      return Math.exp(randomNormal());
    };
  }

  randomLogNormal.source = sourceRandomLogNormal;

  return randomLogNormal;
})(src_defaultSource));

// CONCATENATED MODULE: ./node_modules/d3-random/src/irwinHall.js


/* harmony default export */ var irwinHall = ((function sourceRandomIrwinHall(source) {
  function randomIrwinHall(n) {
    return function() {
      for (var sum = 0, i = 0; i < n; ++i) sum += source();
      return sum;
    };
  }

  randomIrwinHall.source = sourceRandomIrwinHall;

  return randomIrwinHall;
})(src_defaultSource));

// CONCATENATED MODULE: ./node_modules/d3-random/src/bates.js



/* harmony default export */ var bates = ((function sourceRandomBates(source) {
  function randomBates(n) {
    var randomIrwinHall = irwinHall.source(source)(n);
    return function() {
      return randomIrwinHall() / n;
    };
  }

  randomBates.source = sourceRandomBates;

  return randomBates;
})(src_defaultSource));

// CONCATENATED MODULE: ./node_modules/d3-random/src/exponential.js


/* harmony default export */ var exponential = ((function sourceRandomExponential(source) {
  function randomExponential(lambda) {
    return function() {
      return -Math.log(1 - source()) / lambda;
    };
  }

  randomExponential.source = sourceRandomExponential;

  return randomExponential;
})(src_defaultSource));

// CONCATENATED MODULE: ./node_modules/d3-random/index.js







// CONCATENATED MODULE: ./node_modules/d3-request/src/request.js



/* harmony default export */ var src_request = (function(url, callback) {
  var request,
      event = src_dispatch("beforesend", "progress", "load", "error"),
      mimeType,
      headers = Object(d3_collection["c" /* map */])(),
      xhr = new XMLHttpRequest,
      user = null,
      password = null,
      response,
      responseType,
      timeout = 0;

  // If IE does not support CORS, use XDomainRequest.
  if (typeof XDomainRequest !== "undefined"
      && !("withCredentials" in xhr)
      && /^(http(s)?:)?\/\//.test(url)) xhr = new XDomainRequest;

  "onload" in xhr
      ? xhr.onload = xhr.onerror = xhr.ontimeout = respond
      : xhr.onreadystatechange = function(o) { xhr.readyState > 3 && respond(o); };

  function respond(o) {
    var status = xhr.status, result;
    if (!status && hasResponse(xhr)
        || status >= 200 && status < 300
        || status === 304) {
      if (response) {
        try {
          result = response.call(request, xhr);
        } catch (e) {
          event.call("error", request, e);
          return;
        }
      } else {
        result = xhr;
      }
      event.call("load", request, result);
    } else {
      event.call("error", request, o);
    }
  }

  xhr.onprogress = function(e) {
    event.call("progress", request, e);
  };

  request = {
    header: function(name, value) {
      name = (name + "").toLowerCase();
      if (arguments.length < 2) return headers.get(name);
      if (value == null) headers.remove(name);
      else headers.set(name, value + "");
      return request;
    },

    // If mimeType is non-null and no Accept header is set, a default is used.
    mimeType: function(value) {
      if (!arguments.length) return mimeType;
      mimeType = value == null ? null : value + "";
      return request;
    },

    // Specifies what type the response value should take;
    // for instance, arraybuffer, blob, document, or text.
    responseType: function(value) {
      if (!arguments.length) return responseType;
      responseType = value;
      return request;
    },

    timeout: function(value) {
      if (!arguments.length) return timeout;
      timeout = +value;
      return request;
    },

    user: function(value) {
      return arguments.length < 1 ? user : (user = value == null ? null : value + "", request);
    },

    password: function(value) {
      return arguments.length < 1 ? password : (password = value == null ? null : value + "", request);
    },

    // Specify how to convert the response content to a specific type;
    // changes the callback value on "load" events.
    response: function(value) {
      response = value;
      return request;
    },

    // Alias for send("GET", …).
    get: function(data, callback) {
      return request.send("GET", data, callback);
    },

    // Alias for send("POST", …).
    post: function(data, callback) {
      return request.send("POST", data, callback);
    },

    // If callback is non-null, it will be used for error and load events.
    send: function(method, data, callback) {
      xhr.open(method, url, true, user, password);
      if (mimeType != null && !headers.has("accept")) headers.set("accept", mimeType + ",*/*");
      if (xhr.setRequestHeader) headers.each(function(value, name) { xhr.setRequestHeader(name, value); });
      if (mimeType != null && xhr.overrideMimeType) xhr.overrideMimeType(mimeType);
      if (responseType != null) xhr.responseType = responseType;
      if (timeout > 0) xhr.timeout = timeout;
      if (callback == null && typeof data === "function") callback = data, data = null;
      if (callback != null && callback.length === 1) callback = fixCallback(callback);
      if (callback != null) request.on("error", callback).on("load", function(xhr) { callback(null, xhr); });
      event.call("beforesend", request, xhr);
      xhr.send(data == null ? null : data);
      return request;
    },

    abort: function() {
      xhr.abort();
      return request;
    },

    on: function() {
      var value = event.on.apply(event, arguments);
      return value === event ? request : value;
    }
  };

  if (callback != null) {
    if (typeof callback !== "function") throw new Error("invalid callback: " + callback);
    return request.get(callback);
  }

  return request;
});

function fixCallback(callback) {
  return function(error, xhr) {
    callback(error == null ? xhr : null);
  };
}

function hasResponse(xhr) {
  var type = xhr.responseType;
  return type && type !== "text"
      ? xhr.response // null on error
      : xhr.responseText; // "" on error
}

// CONCATENATED MODULE: ./node_modules/d3-request/src/type.js


/* harmony default export */ var src_type = (function(defaultMimeType, response) {
  return function(url, callback) {
    var r = src_request(url).mimeType(defaultMimeType).response(response);
    if (callback != null) {
      if (typeof callback !== "function") throw new Error("invalid callback: " + callback);
      return r.get(callback);
    }
    return r;
  };
});

// CONCATENATED MODULE: ./node_modules/d3-request/src/html.js


/* harmony default export */ var src_html = (src_type("text/html", function(xhr) {
  return document.createRange().createContextualFragment(xhr.responseText);
}));

// CONCATENATED MODULE: ./node_modules/d3-request/src/json.js


/* harmony default export */ var json = (src_type("application/json", function(xhr) {
  return JSON.parse(xhr.responseText);
}));

// CONCATENATED MODULE: ./node_modules/d3-request/src/text.js


/* harmony default export */ var src_text = (src_type("text/plain", function(xhr) {
  return xhr.responseText;
}));

// CONCATENATED MODULE: ./node_modules/d3-request/src/xml.js


/* harmony default export */ var xml = (src_type("application/xml", function(xhr) {
  var xml = xhr.responseXML;
  if (!xml) throw new Error("parse error");
  return xml;
}));

// CONCATENATED MODULE: ./node_modules/d3-request/src/dsv.js


/* harmony default export */ var src_dsv = (function(defaultMimeType, parse) {
  return function(url, row, callback) {
    if (arguments.length < 3) callback = row, row = null;
    var r = src_request(url).mimeType(defaultMimeType);
    r.row = function(_) { return arguments.length ? r.response(responseOf(parse, row = _)) : row; };
    r.row(row);
    return callback ? r.get(callback) : r;
  };
});

function responseOf(parse, row) {
  return function(request) {
    return parse(request.responseText, row);
  };
}

// CONCATENATED MODULE: ./node_modules/d3-request/src/csv.js



/* harmony default export */ var src_csv = (src_dsv("text/csv", csvParse));

// CONCATENATED MODULE: ./node_modules/d3-request/src/tsv.js



/* harmony default export */ var src_tsv = (src_dsv("text/tab-separated-values", tsvParse));

// CONCATENATED MODULE: ./node_modules/d3-request/index.js








// EXTERNAL MODULE: ./node_modules/d3-scale/index.js + 26 modules
var d3_scale = __webpack_require__(305);

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/constant.js
/* harmony default export */ var d3_shape_src_constant = (function(x) {
  return function constant() {
    return x;
  };
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/math.js
var math_abs = Math.abs;
var math_atan2 = Math.atan2;
var src_math_cos = Math.cos;
var src_math_max = Math.max;
var math_min = Math.min;
var src_math_sin = Math.sin;
var math_sqrt = Math.sqrt;

var src_math_epsilon = 1e-12;
var d3_shape_src_math_pi = Math.PI;
var d3_shape_src_math_halfPi = d3_shape_src_math_pi / 2;
var d3_shape_src_math_tau = 2 * d3_shape_src_math_pi;

function math_acos(x) {
  return x > 1 ? 0 : x < -1 ? d3_shape_src_math_pi : Math.acos(x);
}

function math_asin(x) {
  return x >= 1 ? d3_shape_src_math_halfPi : x <= -1 ? -d3_shape_src_math_halfPi : Math.asin(x);
}

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/arc.js




function arcInnerRadius(d) {
  return d.innerRadius;
}

function arcOuterRadius(d) {
  return d.outerRadius;
}

function arcStartAngle(d) {
  return d.startAngle;
}

function arcEndAngle(d) {
  return d.endAngle;
}

function arcPadAngle(d) {
  return d && d.padAngle; // Note: optional!
}

function arc_intersect(x0, y0, x1, y1, x2, y2, x3, y3) {
  var x10 = x1 - x0, y10 = y1 - y0,
      x32 = x3 - x2, y32 = y3 - y2,
      t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / (y32 * x10 - x32 * y10);
  return [x0 + t * x10, y0 + t * y10];
}

// Compute perpendicular offset line of length rc.
// http://mathworld.wolfram.com/Circle-LineIntersection.html
function cornerTangents(x0, y0, x1, y1, r1, rc, cw) {
  var x01 = x0 - x1,
      y01 = y0 - y1,
      lo = (cw ? rc : -rc) / math_sqrt(x01 * x01 + y01 * y01),
      ox = lo * y01,
      oy = -lo * x01,
      x11 = x0 + ox,
      y11 = y0 + oy,
      x10 = x1 + ox,
      y10 = y1 + oy,
      x00 = (x11 + x10) / 2,
      y00 = (y11 + y10) / 2,
      dx = x10 - x11,
      dy = y10 - y11,
      d2 = dx * dx + dy * dy,
      r = r1 - rc,
      D = x11 * y10 - x10 * y11,
      d = (dy < 0 ? -1 : 1) * math_sqrt(src_math_max(0, r * r * d2 - D * D)),
      cx0 = (D * dy - dx * d) / d2,
      cy0 = (-D * dx - dy * d) / d2,
      cx1 = (D * dy + dx * d) / d2,
      cy1 = (-D * dx + dy * d) / d2,
      dx0 = cx0 - x00,
      dy0 = cy0 - y00,
      dx1 = cx1 - x00,
      dy1 = cy1 - y00;

  // Pick the closer of the two intersection points.
  // TODO Is there a faster way to determine which intersection to use?
  if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;

  return {
    cx: cx0,
    cy: cy0,
    x01: -ox,
    y01: -oy,
    x11: cx0 * (r1 / r - 1),
    y11: cy0 * (r1 / r - 1)
  };
}

/* harmony default export */ var src_arc = (function() {
  var innerRadius = arcInnerRadius,
      outerRadius = arcOuterRadius,
      cornerRadius = d3_shape_src_constant(0),
      padRadius = null,
      startAngle = arcStartAngle,
      endAngle = arcEndAngle,
      padAngle = arcPadAngle,
      context = null;

  function arc() {
    var buffer,
        r,
        r0 = +innerRadius.apply(this, arguments),
        r1 = +outerRadius.apply(this, arguments),
        a0 = startAngle.apply(this, arguments) - d3_shape_src_math_halfPi,
        a1 = endAngle.apply(this, arguments) - d3_shape_src_math_halfPi,
        da = math_abs(a1 - a0),
        cw = a1 > a0;

    if (!context) context = buffer = Object(d3_path["a" /* path */])();

    // Ensure that the outer radius is always larger than the inner radius.
    if (r1 < r0) r = r1, r1 = r0, r0 = r;

    // Is it a point?
    if (!(r1 > src_math_epsilon)) context.moveTo(0, 0);

    // Or is it a circle or annulus?
    else if (da > d3_shape_src_math_tau - src_math_epsilon) {
      context.moveTo(r1 * src_math_cos(a0), r1 * src_math_sin(a0));
      context.arc(0, 0, r1, a0, a1, !cw);
      if (r0 > src_math_epsilon) {
        context.moveTo(r0 * src_math_cos(a1), r0 * src_math_sin(a1));
        context.arc(0, 0, r0, a1, a0, cw);
      }
    }

    // Or is it a circular or annular sector?
    else {
      var a01 = a0,
          a11 = a1,
          a00 = a0,
          a10 = a1,
          da0 = da,
          da1 = da,
          ap = padAngle.apply(this, arguments) / 2,
          rp = (ap > src_math_epsilon) && (padRadius ? +padRadius.apply(this, arguments) : math_sqrt(r0 * r0 + r1 * r1)),
          rc = math_min(math_abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),
          rc0 = rc,
          rc1 = rc,
          t0,
          t1;

      // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.
      if (rp > src_math_epsilon) {
        var p0 = math_asin(rp / r0 * src_math_sin(ap)),
            p1 = math_asin(rp / r1 * src_math_sin(ap));
        if ((da0 -= p0 * 2) > src_math_epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;
        else da0 = 0, a00 = a10 = (a0 + a1) / 2;
        if ((da1 -= p1 * 2) > src_math_epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;
        else da1 = 0, a01 = a11 = (a0 + a1) / 2;
      }

      var x01 = r1 * src_math_cos(a01),
          y01 = r1 * src_math_sin(a01),
          x10 = r0 * src_math_cos(a10),
          y10 = r0 * src_math_sin(a10);

      // Apply rounded corners?
      if (rc > src_math_epsilon) {
        var x11 = r1 * src_math_cos(a11),
            y11 = r1 * src_math_sin(a11),
            x00 = r0 * src_math_cos(a00),
            y00 = r0 * src_math_sin(a00);

        // Restrict the corner radius according to the sector angle.
        if (da < d3_shape_src_math_pi) {
          var oc = da0 > src_math_epsilon ? arc_intersect(x01, y01, x00, y00, x11, y11, x10, y10) : [x10, y10],
              ax = x01 - oc[0],
              ay = y01 - oc[1],
              bx = x11 - oc[0],
              by = y11 - oc[1],
              kc = 1 / src_math_sin(math_acos((ax * bx + ay * by) / (math_sqrt(ax * ax + ay * ay) * math_sqrt(bx * bx + by * by))) / 2),
              lc = math_sqrt(oc[0] * oc[0] + oc[1] * oc[1]);
          rc0 = math_min(rc, (r0 - lc) / (kc - 1));
          rc1 = math_min(rc, (r1 - lc) / (kc + 1));
        }
      }

      // Is the sector collapsed to a line?
      if (!(da1 > src_math_epsilon)) context.moveTo(x01, y01);

      // Does the sector’s outer ring have rounded corners?
      else if (rc1 > src_math_epsilon) {
        t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);
        t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);

        context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);

        // Have the corners merged?
        if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, math_atan2(t0.y01, t0.x01), math_atan2(t1.y01, t1.x01), !cw);

        // Otherwise, draw the two corners and the ring.
        else {
          context.arc(t0.cx, t0.cy, rc1, math_atan2(t0.y01, t0.x01), math_atan2(t0.y11, t0.x11), !cw);
          context.arc(0, 0, r1, math_atan2(t0.cy + t0.y11, t0.cx + t0.x11), math_atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);
          context.arc(t1.cx, t1.cy, rc1, math_atan2(t1.y11, t1.x11), math_atan2(t1.y01, t1.x01), !cw);
        }
      }

      // Or is the outer ring just a circular arc?
      else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);

      // Is there no inner ring, and it’s a circular sector?
      // Or perhaps it’s an annular sector collapsed due to padding?
      if (!(r0 > src_math_epsilon) || !(da0 > src_math_epsilon)) context.lineTo(x10, y10);

      // Does the sector’s inner ring (or point) have rounded corners?
      else if (rc0 > src_math_epsilon) {
        t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);
        t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);

        context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);

        // Have the corners merged?
        if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, math_atan2(t0.y01, t0.x01), math_atan2(t1.y01, t1.x01), !cw);

        // Otherwise, draw the two corners and the ring.
        else {
          context.arc(t0.cx, t0.cy, rc0, math_atan2(t0.y01, t0.x01), math_atan2(t0.y11, t0.x11), !cw);
          context.arc(0, 0, r0, math_atan2(t0.cy + t0.y11, t0.cx + t0.x11), math_atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);
          context.arc(t1.cx, t1.cy, rc0, math_atan2(t1.y11, t1.x11), math_atan2(t1.y01, t1.x01), !cw);
        }
      }

      // Or is the inner ring just a circular arc?
      else context.arc(0, 0, r0, a10, a00, cw);
    }

    context.closePath();

    if (buffer) return context = null, buffer + "" || null;
  }

  arc.centroid = function() {
    var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,
        a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - d3_shape_src_math_pi / 2;
    return [src_math_cos(a) * r, src_math_sin(a) * r];
  };

  arc.innerRadius = function(_) {
    return arguments.length ? (innerRadius = typeof _ === "function" ? _ : d3_shape_src_constant(+_), arc) : innerRadius;
  };

  arc.outerRadius = function(_) {
    return arguments.length ? (outerRadius = typeof _ === "function" ? _ : d3_shape_src_constant(+_), arc) : outerRadius;
  };

  arc.cornerRadius = function(_) {
    return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : d3_shape_src_constant(+_), arc) : cornerRadius;
  };

  arc.padRadius = function(_) {
    return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : d3_shape_src_constant(+_), arc) : padRadius;
  };

  arc.startAngle = function(_) {
    return arguments.length ? (startAngle = typeof _ === "function" ? _ : d3_shape_src_constant(+_), arc) : startAngle;
  };

  arc.endAngle = function(_) {
    return arguments.length ? (endAngle = typeof _ === "function" ? _ : d3_shape_src_constant(+_), arc) : endAngle;
  };

  arc.padAngle = function(_) {
    return arguments.length ? (padAngle = typeof _ === "function" ? _ : d3_shape_src_constant(+_), arc) : padAngle;
  };

  arc.context = function(_) {
    return arguments.length ? ((context = _ == null ? null : _), arc) : context;
  };

  return arc;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/curve/linear.js
function Linear(context) {
  this._context = context;
}

Linear.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._point = 0;
  },
  lineEnd: function() {
    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
    this._line = 1 - this._line;
  },
  point: function(x, y) {
    x = +x, y = +y;
    switch (this._point) {
      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
      case 1: this._point = 2; // proceed
      default: this._context.lineTo(x, y); break;
    }
  }
};

/* harmony default export */ var curve_linear = (function(context) {
  return new Linear(context);
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/point.js
function point_x(p) {
  return p[0];
}

function point_y(p) {
  return p[1];
}

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/line.js





/* harmony default export */ var src_line = (function() {
  var x = point_x,
      y = point_y,
      defined = d3_shape_src_constant(true),
      context = null,
      curve = curve_linear,
      output = null;

  function line(data) {
    var i,
        n = data.length,
        d,
        defined0 = false,
        buffer;

    if (context == null) output = curve(buffer = Object(d3_path["a" /* path */])());

    for (i = 0; i <= n; ++i) {
      if (!(i < n && defined(d = data[i], i, data)) === defined0) {
        if (defined0 = !defined0) output.lineStart();
        else output.lineEnd();
      }
      if (defined0) output.point(+x(d, i, data), +y(d, i, data));
    }

    if (buffer) return output = null, buffer + "" || null;
  }

  line.x = function(_) {
    return arguments.length ? (x = typeof _ === "function" ? _ : d3_shape_src_constant(+_), line) : x;
  };

  line.y = function(_) {
    return arguments.length ? (y = typeof _ === "function" ? _ : d3_shape_src_constant(+_), line) : y;
  };

  line.defined = function(_) {
    return arguments.length ? (defined = typeof _ === "function" ? _ : d3_shape_src_constant(!!_), line) : defined;
  };

  line.curve = function(_) {
    return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;
  };

  line.context = function(_) {
    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;
  };

  return line;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/area.js






/* harmony default export */ var d3_shape_src_area = (function() {
  var x0 = point_x,
      x1 = null,
      y0 = d3_shape_src_constant(0),
      y1 = point_y,
      defined = d3_shape_src_constant(true),
      context = null,
      curve = curve_linear,
      output = null;

  function area(data) {
    var i,
        j,
        k,
        n = data.length,
        d,
        defined0 = false,
        buffer,
        x0z = new Array(n),
        y0z = new Array(n);

    if (context == null) output = curve(buffer = Object(d3_path["a" /* path */])());

    for (i = 0; i <= n; ++i) {
      if (!(i < n && defined(d = data[i], i, data)) === defined0) {
        if (defined0 = !defined0) {
          j = i;
          output.areaStart();
          output.lineStart();
        } else {
          output.lineEnd();
          output.lineStart();
          for (k = i - 1; k >= j; --k) {
            output.point(x0z[k], y0z[k]);
          }
          output.lineEnd();
          output.areaEnd();
        }
      }
      if (defined0) {
        x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);
        output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);
      }
    }

    if (buffer) return output = null, buffer + "" || null;
  }

  function arealine() {
    return src_line().defined(defined).curve(curve).context(context);
  }

  area.x = function(_) {
    return arguments.length ? (x0 = typeof _ === "function" ? _ : d3_shape_src_constant(+_), x1 = null, area) : x0;
  };

  area.x0 = function(_) {
    return arguments.length ? (x0 = typeof _ === "function" ? _ : d3_shape_src_constant(+_), area) : x0;
  };

  area.x1 = function(_) {
    return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : d3_shape_src_constant(+_), area) : x1;
  };

  area.y = function(_) {
    return arguments.length ? (y0 = typeof _ === "function" ? _ : d3_shape_src_constant(+_), y1 = null, area) : y0;
  };

  area.y0 = function(_) {
    return arguments.length ? (y0 = typeof _ === "function" ? _ : d3_shape_src_constant(+_), area) : y0;
  };

  area.y1 = function(_) {
    return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : d3_shape_src_constant(+_), area) : y1;
  };

  area.lineX0 =
  area.lineY0 = function() {
    return arealine().x(x0).y(y0);
  };

  area.lineY1 = function() {
    return arealine().x(x0).y(y1);
  };

  area.lineX1 = function() {
    return arealine().x(x1).y(y0);
  };

  area.defined = function(_) {
    return arguments.length ? (defined = typeof _ === "function" ? _ : d3_shape_src_constant(!!_), area) : defined;
  };

  area.curve = function(_) {
    return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;
  };

  area.context = function(_) {
    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;
  };

  return area;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/descending.js
/* harmony default export */ var src_descending = (function(a, b) {
  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/identity.js
/* harmony default export */ var d3_shape_src_identity = (function(d) {
  return d;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/pie.js





/* harmony default export */ var src_pie = (function() {
  var value = d3_shape_src_identity,
      sortValues = src_descending,
      sort = null,
      startAngle = d3_shape_src_constant(0),
      endAngle = d3_shape_src_constant(d3_shape_src_math_tau),
      padAngle = d3_shape_src_constant(0);

  function pie(data) {
    var i,
        n = data.length,
        j,
        k,
        sum = 0,
        index = new Array(n),
        arcs = new Array(n),
        a0 = +startAngle.apply(this, arguments),
        da = Math.min(d3_shape_src_math_tau, Math.max(-d3_shape_src_math_tau, endAngle.apply(this, arguments) - a0)),
        a1,
        p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),
        pa = p * (da < 0 ? -1 : 1),
        v;

    for (i = 0; i < n; ++i) {
      if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {
        sum += v;
      }
    }

    // Optionally sort the arcs by previously-computed values or by data.
    if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });
    else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });

    // Compute the arcs! They are stored in the original data's order.
    for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {
      j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {
        data: data[j],
        index: i,
        value: v,
        startAngle: a0,
        endAngle: a1,
        padAngle: p
      };
    }

    return arcs;
  }

  pie.value = function(_) {
    return arguments.length ? (value = typeof _ === "function" ? _ : d3_shape_src_constant(+_), pie) : value;
  };

  pie.sortValues = function(_) {
    return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;
  };

  pie.sort = function(_) {
    return arguments.length ? (sort = _, sortValues = null, pie) : sort;
  };

  pie.startAngle = function(_) {
    return arguments.length ? (startAngle = typeof _ === "function" ? _ : d3_shape_src_constant(+_), pie) : startAngle;
  };

  pie.endAngle = function(_) {
    return arguments.length ? (endAngle = typeof _ === "function" ? _ : d3_shape_src_constant(+_), pie) : endAngle;
  };

  pie.padAngle = function(_) {
    return arguments.length ? (padAngle = typeof _ === "function" ? _ : d3_shape_src_constant(+_), pie) : padAngle;
  };

  return pie;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/curve/radial.js


var curveRadialLinear = curveRadial(curve_linear);

function Radial(curve) {
  this._curve = curve;
}

Radial.prototype = {
  areaStart: function() {
    this._curve.areaStart();
  },
  areaEnd: function() {
    this._curve.areaEnd();
  },
  lineStart: function() {
    this._curve.lineStart();
  },
  lineEnd: function() {
    this._curve.lineEnd();
  },
  point: function(a, r) {
    this._curve.point(r * Math.sin(a), r * -Math.cos(a));
  }
};

function curveRadial(curve) {

  function radial(context) {
    return new Radial(curve(context));
  }

  radial._curve = curve;

  return radial;
}

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/lineRadial.js



function lineRadial(l) {
  var c = l.curve;

  l.angle = l.x, delete l.x;
  l.radius = l.y, delete l.y;

  l.curve = function(_) {
    return arguments.length ? c(curveRadial(_)) : c()._curve;
  };

  return l;
}

/* harmony default export */ var src_lineRadial = (function() {
  return lineRadial(src_line().curve(curveRadialLinear));
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/areaRadial.js




/* harmony default export */ var areaRadial = (function() {
  var a = d3_shape_src_area().curve(curveRadialLinear),
      c = a.curve,
      x0 = a.lineX0,
      x1 = a.lineX1,
      y0 = a.lineY0,
      y1 = a.lineY1;

  a.angle = a.x, delete a.x;
  a.startAngle = a.x0, delete a.x0;
  a.endAngle = a.x1, delete a.x1;
  a.radius = a.y, delete a.y;
  a.innerRadius = a.y0, delete a.y0;
  a.outerRadius = a.y1, delete a.y1;
  a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;
  a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;
  a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;
  a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;

  a.curve = function(_) {
    return arguments.length ? c(curveRadial(_)) : c()._curve;
  };

  return a;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/pointRadial.js
/* harmony default export */ var pointRadial = (function(x, y) {
  return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/array.js
var d3_shape_src_array_slice = Array.prototype.slice;

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/link/index.js






function linkSource(d) {
  return d.source;
}

function linkTarget(d) {
  return d.target;
}

function link_link(curve) {
  var source = linkSource,
      target = linkTarget,
      x = point_x,
      y = point_y,
      context = null;

  function link() {
    var buffer, argv = d3_shape_src_array_slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);
    if (!context) context = buffer = Object(d3_path["a" /* path */])();
    curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));
    if (buffer) return context = null, buffer + "" || null;
  }

  link.source = function(_) {
    return arguments.length ? (source = _, link) : source;
  };

  link.target = function(_) {
    return arguments.length ? (target = _, link) : target;
  };

  link.x = function(_) {
    return arguments.length ? (x = typeof _ === "function" ? _ : d3_shape_src_constant(+_), link) : x;
  };

  link.y = function(_) {
    return arguments.length ? (y = typeof _ === "function" ? _ : d3_shape_src_constant(+_), link) : y;
  };

  link.context = function(_) {
    return arguments.length ? ((context = _ == null ? null : _), link) : context;
  };

  return link;
}

function curveHorizontal(context, x0, y0, x1, y1) {
  context.moveTo(x0, y0);
  context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);
}

function curveVertical(context, x0, y0, x1, y1) {
  context.moveTo(x0, y0);
  context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);
}

function link_curveRadial(context, x0, y0, x1, y1) {
  var p0 = pointRadial(x0, y0),
      p1 = pointRadial(x0, y0 = (y0 + y1) / 2),
      p2 = pointRadial(x1, y0),
      p3 = pointRadial(x1, y1);
  context.moveTo(p0[0], p0[1]);
  context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);
}

function linkHorizontal() {
  return link_link(curveHorizontal);
}

function linkVertical() {
  return link_link(curveVertical);
}

function linkRadial() {
  var l = link_link(link_curveRadial);
  l.angle = l.x, delete l.x;
  l.radius = l.y, delete l.y;
  return l;
}

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/symbol/circle.js


/* harmony default export */ var symbol_circle = ({
  draw: function(context, size) {
    var r = Math.sqrt(size / d3_shape_src_math_pi);
    context.moveTo(r, 0);
    context.arc(0, 0, r, 0, d3_shape_src_math_tau);
  }
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/symbol/cross.js
/* harmony default export */ var symbol_cross = ({
  draw: function(context, size) {
    var r = Math.sqrt(size / 5) / 2;
    context.moveTo(-3 * r, -r);
    context.lineTo(-r, -r);
    context.lineTo(-r, -3 * r);
    context.lineTo(r, -3 * r);
    context.lineTo(r, -r);
    context.lineTo(3 * r, -r);
    context.lineTo(3 * r, r);
    context.lineTo(r, r);
    context.lineTo(r, 3 * r);
    context.lineTo(-r, 3 * r);
    context.lineTo(-r, r);
    context.lineTo(-3 * r, r);
    context.closePath();
  }
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/symbol/diamond.js
var tan30 = Math.sqrt(1 / 3),
    tan30_2 = tan30 * 2;

/* harmony default export */ var diamond = ({
  draw: function(context, size) {
    var y = Math.sqrt(size / tan30_2),
        x = y * tan30;
    context.moveTo(0, -y);
    context.lineTo(x, 0);
    context.lineTo(0, y);
    context.lineTo(-x, 0);
    context.closePath();
  }
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/symbol/star.js


var ka = 0.89081309152928522810,
    kr = Math.sin(d3_shape_src_math_pi / 10) / Math.sin(7 * d3_shape_src_math_pi / 10),
    star_kx = Math.sin(d3_shape_src_math_tau / 10) * kr,
    star_ky = -Math.cos(d3_shape_src_math_tau / 10) * kr;

/* harmony default export */ var star = ({
  draw: function(context, size) {
    var r = Math.sqrt(size * ka),
        x = star_kx * r,
        y = star_ky * r;
    context.moveTo(0, -r);
    context.lineTo(x, y);
    for (var i = 1; i < 5; ++i) {
      var a = d3_shape_src_math_tau * i / 5,
          c = Math.cos(a),
          s = Math.sin(a);
      context.lineTo(s * r, -c * r);
      context.lineTo(c * x - s * y, s * x + c * y);
    }
    context.closePath();
  }
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/symbol/square.js
/* harmony default export */ var square = ({
  draw: function(context, size) {
    var w = Math.sqrt(size),
        x = -w / 2;
    context.rect(x, x, w, w);
  }
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/symbol/triangle.js
var sqrt3 = Math.sqrt(3);

/* harmony default export */ var triangle = ({
  draw: function(context, size) {
    var y = -Math.sqrt(size / (sqrt3 * 3));
    context.moveTo(0, y * 2);
    context.lineTo(-sqrt3 * y, -y);
    context.lineTo(sqrt3 * y, -y);
    context.closePath();
  }
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/symbol/wye.js
var wye_c = -0.5,
    wye_s = Math.sqrt(3) / 2,
    wye_k = 1 / Math.sqrt(12),
    wye_a = (wye_k / 2 + 1) * 3;

/* harmony default export */ var wye = ({
  draw: function(context, size) {
    var r = Math.sqrt(size / wye_a),
        x0 = r / 2,
        y0 = r * wye_k,
        x1 = x0,
        y1 = r * wye_k + r,
        x2 = -x1,
        y2 = y1;
    context.moveTo(x0, y0);
    context.lineTo(x1, y1);
    context.lineTo(x2, y2);
    context.lineTo(wye_c * x0 - wye_s * y0, wye_s * x0 + wye_c * y0);
    context.lineTo(wye_c * x1 - wye_s * y1, wye_s * x1 + wye_c * y1);
    context.lineTo(wye_c * x2 - wye_s * y2, wye_s * x2 + wye_c * y2);
    context.lineTo(wye_c * x0 + wye_s * y0, wye_c * y0 - wye_s * x0);
    context.lineTo(wye_c * x1 + wye_s * y1, wye_c * y1 - wye_s * x1);
    context.lineTo(wye_c * x2 + wye_s * y2, wye_c * y2 - wye_s * x2);
    context.closePath();
  }
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/symbol.js










var symbols = [
  symbol_circle,
  symbol_cross,
  diamond,
  square,
  star,
  triangle,
  wye
];

/* harmony default export */ var src_symbol = (function() {
  var type = d3_shape_src_constant(symbol_circle),
      size = d3_shape_src_constant(64),
      context = null;

  function symbol() {
    var buffer;
    if (!context) context = buffer = Object(d3_path["a" /* path */])();
    type.apply(this, arguments).draw(context, +size.apply(this, arguments));
    if (buffer) return context = null, buffer + "" || null;
  }

  symbol.type = function(_) {
    return arguments.length ? (type = typeof _ === "function" ? _ : d3_shape_src_constant(_), symbol) : type;
  };

  symbol.size = function(_) {
    return arguments.length ? (size = typeof _ === "function" ? _ : d3_shape_src_constant(+_), symbol) : size;
  };

  symbol.context = function(_) {
    return arguments.length ? (context = _ == null ? null : _, symbol) : context;
  };

  return symbol;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/noop.js
/* harmony default export */ var src_noop = (function() {});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/curve/basis.js
function basis_point(that, x, y) {
  that._context.bezierCurveTo(
    (2 * that._x0 + that._x1) / 3,
    (2 * that._y0 + that._y1) / 3,
    (that._x0 + 2 * that._x1) / 3,
    (that._y0 + 2 * that._y1) / 3,
    (that._x0 + 4 * that._x1 + x) / 6,
    (that._y0 + 4 * that._y1 + y) / 6
  );
}

function Basis(context) {
  this._context = context;
}

Basis.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x0 = this._x1 =
    this._y0 = this._y1 = NaN;
    this._point = 0;
  },
  lineEnd: function() {
    switch (this._point) {
      case 3: basis_point(this, this._x1, this._y1); // proceed
      case 2: this._context.lineTo(this._x1, this._y1); break;
    }
    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
    this._line = 1 - this._line;
  },
  point: function(x, y) {
    x = +x, y = +y;
    switch (this._point) {
      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
      case 1: this._point = 2; break;
      case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed
      default: basis_point(this, x, y); break;
    }
    this._x0 = this._x1, this._x1 = x;
    this._y0 = this._y1, this._y1 = y;
  }
};

/* harmony default export */ var basis = (function(context) {
  return new Basis(context);
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/curve/basisClosed.js



function BasisClosed(context) {
  this._context = context;
}

BasisClosed.prototype = {
  areaStart: src_noop,
  areaEnd: src_noop,
  lineStart: function() {
    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =
    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;
    this._point = 0;
  },
  lineEnd: function() {
    switch (this._point) {
      case 1: {
        this._context.moveTo(this._x2, this._y2);
        this._context.closePath();
        break;
      }
      case 2: {
        this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);
        this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);
        this._context.closePath();
        break;
      }
      case 3: {
        this.point(this._x2, this._y2);
        this.point(this._x3, this._y3);
        this.point(this._x4, this._y4);
        break;
      }
    }
  },
  point: function(x, y) {
    x = +x, y = +y;
    switch (this._point) {
      case 0: this._point = 1; this._x2 = x, this._y2 = y; break;
      case 1: this._point = 2; this._x3 = x, this._y3 = y; break;
      case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;
      default: basis_point(this, x, y); break;
    }
    this._x0 = this._x1, this._x1 = x;
    this._y0 = this._y1, this._y1 = y;
  }
};

/* harmony default export */ var basisClosed = (function(context) {
  return new BasisClosed(context);
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/curve/basisOpen.js


function BasisOpen(context) {
  this._context = context;
}

BasisOpen.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x0 = this._x1 =
    this._y0 = this._y1 = NaN;
    this._point = 0;
  },
  lineEnd: function() {
    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
    this._line = 1 - this._line;
  },
  point: function(x, y) {
    x = +x, y = +y;
    switch (this._point) {
      case 0: this._point = 1; break;
      case 1: this._point = 2; break;
      case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;
      case 3: this._point = 4; // proceed
      default: basis_point(this, x, y); break;
    }
    this._x0 = this._x1, this._x1 = x;
    this._y0 = this._y1, this._y1 = y;
  }
};

/* harmony default export */ var basisOpen = (function(context) {
  return new BasisOpen(context);
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/curve/bundle.js


function Bundle(context, beta) {
  this._basis = new Basis(context);
  this._beta = beta;
}

Bundle.prototype = {
  lineStart: function() {
    this._x = [];
    this._y = [];
    this._basis.lineStart();
  },
  lineEnd: function() {
    var x = this._x,
        y = this._y,
        j = x.length - 1;

    if (j > 0) {
      var x0 = x[0],
          y0 = y[0],
          dx = x[j] - x0,
          dy = y[j] - y0,
          i = -1,
          t;

      while (++i <= j) {
        t = i / j;
        this._basis.point(
          this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),
          this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)
        );
      }
    }

    this._x = this._y = null;
    this._basis.lineEnd();
  },
  point: function(x, y) {
    this._x.push(+x);
    this._y.push(+y);
  }
};

/* harmony default export */ var curve_bundle = ((function custom(beta) {

  function bundle(context) {
    return beta === 1 ? new Basis(context) : new Bundle(context, beta);
  }

  bundle.beta = function(beta) {
    return custom(+beta);
  };

  return bundle;
})(0.85));

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/curve/cardinal.js
function cardinal_point(that, x, y) {
  that._context.bezierCurveTo(
    that._x1 + that._k * (that._x2 - that._x0),
    that._y1 + that._k * (that._y2 - that._y0),
    that._x2 + that._k * (that._x1 - x),
    that._y2 + that._k * (that._y1 - y),
    that._x2,
    that._y2
  );
}

function Cardinal(context, tension) {
  this._context = context;
  this._k = (1 - tension) / 6;
}

Cardinal.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x0 = this._x1 = this._x2 =
    this._y0 = this._y1 = this._y2 = NaN;
    this._point = 0;
  },
  lineEnd: function() {
    switch (this._point) {
      case 2: this._context.lineTo(this._x2, this._y2); break;
      case 3: cardinal_point(this, this._x1, this._y1); break;
    }
    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
    this._line = 1 - this._line;
  },
  point: function(x, y) {
    x = +x, y = +y;
    switch (this._point) {
      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
      case 1: this._point = 2; this._x1 = x, this._y1 = y; break;
      case 2: this._point = 3; // proceed
      default: cardinal_point(this, x, y); break;
    }
    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
  }
};

/* harmony default export */ var cardinal = ((function custom(tension) {

  function cardinal(context) {
    return new Cardinal(context, tension);
  }

  cardinal.tension = function(tension) {
    return custom(+tension);
  };

  return cardinal;
})(0));

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/curve/cardinalClosed.js



function CardinalClosed(context, tension) {
  this._context = context;
  this._k = (1 - tension) / 6;
}

CardinalClosed.prototype = {
  areaStart: src_noop,
  areaEnd: src_noop,
  lineStart: function() {
    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =
    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
    this._point = 0;
  },
  lineEnd: function() {
    switch (this._point) {
      case 1: {
        this._context.moveTo(this._x3, this._y3);
        this._context.closePath();
        break;
      }
      case 2: {
        this._context.lineTo(this._x3, this._y3);
        this._context.closePath();
        break;
      }
      case 3: {
        this.point(this._x3, this._y3);
        this.point(this._x4, this._y4);
        this.point(this._x5, this._y5);
        break;
      }
    }
  },
  point: function(x, y) {
    x = +x, y = +y;
    switch (this._point) {
      case 0: this._point = 1; this._x3 = x, this._y3 = y; break;
      case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;
      case 2: this._point = 3; this._x5 = x, this._y5 = y; break;
      default: cardinal_point(this, x, y); break;
    }
    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
  }
};

/* harmony default export */ var cardinalClosed = ((function custom(tension) {

  function cardinal(context) {
    return new CardinalClosed(context, tension);
  }

  cardinal.tension = function(tension) {
    return custom(+tension);
  };

  return cardinal;
})(0));

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/curve/cardinalOpen.js


function CardinalOpen(context, tension) {
  this._context = context;
  this._k = (1 - tension) / 6;
}

CardinalOpen.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x0 = this._x1 = this._x2 =
    this._y0 = this._y1 = this._y2 = NaN;
    this._point = 0;
  },
  lineEnd: function() {
    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
    this._line = 1 - this._line;
  },
  point: function(x, y) {
    x = +x, y = +y;
    switch (this._point) {
      case 0: this._point = 1; break;
      case 1: this._point = 2; break;
      case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;
      case 3: this._point = 4; // proceed
      default: cardinal_point(this, x, y); break;
    }
    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
  }
};

/* harmony default export */ var cardinalOpen = ((function custom(tension) {

  function cardinal(context) {
    return new CardinalOpen(context, tension);
  }

  cardinal.tension = function(tension) {
    return custom(+tension);
  };

  return cardinal;
})(0));

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/curve/catmullRom.js



function catmullRom_point(that, x, y) {
  var x1 = that._x1,
      y1 = that._y1,
      x2 = that._x2,
      y2 = that._y2;

  if (that._l01_a > src_math_epsilon) {
    var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,
        n = 3 * that._l01_a * (that._l01_a + that._l12_a);
    x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;
    y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;
  }

  if (that._l23_a > src_math_epsilon) {
    var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,
        m = 3 * that._l23_a * (that._l23_a + that._l12_a);
    x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;
    y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;
  }

  that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);
}

function CatmullRom(context, alpha) {
  this._context = context;
  this._alpha = alpha;
}

CatmullRom.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x0 = this._x1 = this._x2 =
    this._y0 = this._y1 = this._y2 = NaN;
    this._l01_a = this._l12_a = this._l23_a =
    this._l01_2a = this._l12_2a = this._l23_2a =
    this._point = 0;
  },
  lineEnd: function() {
    switch (this._point) {
      case 2: this._context.lineTo(this._x2, this._y2); break;
      case 3: this.point(this._x2, this._y2); break;
    }
    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
    this._line = 1 - this._line;
  },
  point: function(x, y) {
    x = +x, y = +y;

    if (this._point) {
      var x23 = this._x2 - x,
          y23 = this._y2 - y;
      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
    }

    switch (this._point) {
      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
      case 1: this._point = 2; break;
      case 2: this._point = 3; // proceed
      default: catmullRom_point(this, x, y); break;
    }

    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
  }
};

/* harmony default export */ var curve_catmullRom = ((function custom(alpha) {

  function catmullRom(context) {
    return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);
  }

  catmullRom.alpha = function(alpha) {
    return custom(+alpha);
  };

  return catmullRom;
})(0.5));

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/curve/catmullRomClosed.js




function CatmullRomClosed(context, alpha) {
  this._context = context;
  this._alpha = alpha;
}

CatmullRomClosed.prototype = {
  areaStart: src_noop,
  areaEnd: src_noop,
  lineStart: function() {
    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =
    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
    this._l01_a = this._l12_a = this._l23_a =
    this._l01_2a = this._l12_2a = this._l23_2a =
    this._point = 0;
  },
  lineEnd: function() {
    switch (this._point) {
      case 1: {
        this._context.moveTo(this._x3, this._y3);
        this._context.closePath();
        break;
      }
      case 2: {
        this._context.lineTo(this._x3, this._y3);
        this._context.closePath();
        break;
      }
      case 3: {
        this.point(this._x3, this._y3);
        this.point(this._x4, this._y4);
        this.point(this._x5, this._y5);
        break;
      }
    }
  },
  point: function(x, y) {
    x = +x, y = +y;

    if (this._point) {
      var x23 = this._x2 - x,
          y23 = this._y2 - y;
      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
    }

    switch (this._point) {
      case 0: this._point = 1; this._x3 = x, this._y3 = y; break;
      case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;
      case 2: this._point = 3; this._x5 = x, this._y5 = y; break;
      default: catmullRom_point(this, x, y); break;
    }

    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
  }
};

/* harmony default export */ var catmullRomClosed = ((function custom(alpha) {

  function catmullRom(context) {
    return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);
  }

  catmullRom.alpha = function(alpha) {
    return custom(+alpha);
  };

  return catmullRom;
})(0.5));

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/curve/catmullRomOpen.js



function CatmullRomOpen(context, alpha) {
  this._context = context;
  this._alpha = alpha;
}

CatmullRomOpen.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x0 = this._x1 = this._x2 =
    this._y0 = this._y1 = this._y2 = NaN;
    this._l01_a = this._l12_a = this._l23_a =
    this._l01_2a = this._l12_2a = this._l23_2a =
    this._point = 0;
  },
  lineEnd: function() {
    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
    this._line = 1 - this._line;
  },
  point: function(x, y) {
    x = +x, y = +y;

    if (this._point) {
      var x23 = this._x2 - x,
          y23 = this._y2 - y;
      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
    }

    switch (this._point) {
      case 0: this._point = 1; break;
      case 1: this._point = 2; break;
      case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;
      case 3: this._point = 4; // proceed
      default: catmullRom_point(this, x, y); break;
    }

    this._l01_a = this._l12_a, this._l12_a = this._l23_a;
    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
  }
};

/* harmony default export */ var catmullRomOpen = ((function custom(alpha) {

  function catmullRom(context) {
    return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);
  }

  catmullRom.alpha = function(alpha) {
    return custom(+alpha);
  };

  return catmullRom;
})(0.5));

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/curve/linearClosed.js


function LinearClosed(context) {
  this._context = context;
}

LinearClosed.prototype = {
  areaStart: src_noop,
  areaEnd: src_noop,
  lineStart: function() {
    this._point = 0;
  },
  lineEnd: function() {
    if (this._point) this._context.closePath();
  },
  point: function(x, y) {
    x = +x, y = +y;
    if (this._point) this._context.lineTo(x, y);
    else this._point = 1, this._context.moveTo(x, y);
  }
};

/* harmony default export */ var linearClosed = (function(context) {
  return new LinearClosed(context);
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/curve/monotone.js
function monotone_sign(x) {
  return x < 0 ? -1 : 1;
}

// Calculate the slopes of the tangents (Hermite-type interpolation) based on
// the following paper: Steffen, M. 1990. A Simple Method for Monotonic
// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.
// NOV(II), P. 443, 1990.
function slope3(that, x2, y2) {
  var h0 = that._x1 - that._x0,
      h1 = x2 - that._x1,
      s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),
      s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),
      p = (s0 * h1 + s1 * h0) / (h0 + h1);
  return (monotone_sign(s0) + monotone_sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;
}

// Calculate a one-sided slope.
function slope2(that, t) {
  var h = that._x1 - that._x0;
  return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;
}

// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations
// "you can express cubic Hermite interpolation in terms of cubic Bézier curves
// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1".
function monotone_point(that, t0, t1) {
  var x0 = that._x0,
      y0 = that._y0,
      x1 = that._x1,
      y1 = that._y1,
      dx = (x1 - x0) / 3;
  that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);
}

function MonotoneX(context) {
  this._context = context;
}

MonotoneX.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x0 = this._x1 =
    this._y0 = this._y1 =
    this._t0 = NaN;
    this._point = 0;
  },
  lineEnd: function() {
    switch (this._point) {
      case 2: this._context.lineTo(this._x1, this._y1); break;
      case 3: monotone_point(this, this._t0, slope2(this, this._t0)); break;
    }
    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
    this._line = 1 - this._line;
  },
  point: function(x, y) {
    var t1 = NaN;

    x = +x, y = +y;
    if (x === this._x1 && y === this._y1) return; // Ignore coincident points.
    switch (this._point) {
      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
      case 1: this._point = 2; break;
      case 2: this._point = 3; monotone_point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;
      default: monotone_point(this, this._t0, t1 = slope3(this, x, y)); break;
    }

    this._x0 = this._x1, this._x1 = x;
    this._y0 = this._y1, this._y1 = y;
    this._t0 = t1;
  }
}

function MonotoneY(context) {
  this._context = new ReflectContext(context);
}

(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {
  MonotoneX.prototype.point.call(this, y, x);
};

function ReflectContext(context) {
  this._context = context;
}

ReflectContext.prototype = {
  moveTo: function(x, y) { this._context.moveTo(y, x); },
  closePath: function() { this._context.closePath(); },
  lineTo: function(x, y) { this._context.lineTo(y, x); },
  bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }
};

function monotoneX(context) {
  return new MonotoneX(context);
}

function monotoneY(context) {
  return new MonotoneY(context);
}

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/curve/natural.js
function Natural(context) {
  this._context = context;
}

Natural.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x = [];
    this._y = [];
  },
  lineEnd: function() {
    var x = this._x,
        y = this._y,
        n = x.length;

    if (n) {
      this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);
      if (n === 2) {
        this._context.lineTo(x[1], y[1]);
      } else {
        var px = controlPoints(x),
            py = controlPoints(y);
        for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {
          this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);
        }
      }
    }

    if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();
    this._line = 1 - this._line;
    this._x = this._y = null;
  },
  point: function(x, y) {
    this._x.push(+x);
    this._y.push(+y);
  }
};

// See https://www.particleincell.com/2012/bezier-splines/ for derivation.
function controlPoints(x) {
  var i,
      n = x.length - 1,
      m,
      a = new Array(n),
      b = new Array(n),
      r = new Array(n);
  a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];
  for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];
  a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];
  for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];
  a[n - 1] = r[n - 1] / b[n - 1];
  for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];
  b[n - 1] = (x[n] + a[n - 1]) / 2;
  for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];
  return [a, b];
}

/* harmony default export */ var natural = (function(context) {
  return new Natural(context);
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/curve/step.js
function Step(context, t) {
  this._context = context;
  this._t = t;
}

Step.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x = this._y = NaN;
    this._point = 0;
  },
  lineEnd: function() {
    if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);
    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
    if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;
  },
  point: function(x, y) {
    x = +x, y = +y;
    switch (this._point) {
      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
      case 1: this._point = 2; // proceed
      default: {
        if (this._t <= 0) {
          this._context.lineTo(this._x, y);
          this._context.lineTo(x, y);
        } else {
          var x1 = this._x * (1 - this._t) + x * this._t;
          this._context.lineTo(x1, this._y);
          this._context.lineTo(x1, y);
        }
        break;
      }
    }
    this._x = x, this._y = y;
  }
};

/* harmony default export */ var curve_step = (function(context) {
  return new Step(context, 0.5);
});

function stepBefore(context) {
  return new Step(context, 0);
}

function stepAfter(context) {
  return new Step(context, 1);
}

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/offset/none.js
/* harmony default export */ var offset_none = (function(series, order) {
  if (!((n = series.length) > 1)) return;
  for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {
    s0 = s1, s1 = series[order[i]];
    for (j = 0; j < m; ++j) {
      s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];
    }
  }
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/order/none.js
/* harmony default export */ var order_none = (function(series) {
  var n = series.length, o = new Array(n);
  while (--n >= 0) o[n] = n;
  return o;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/stack.js





function stackValue(d, key) {
  return d[key];
}

/* harmony default export */ var src_stack = (function() {
  var keys = d3_shape_src_constant([]),
      order = order_none,
      offset = offset_none,
      value = stackValue;

  function stack(data) {
    var kz = keys.apply(this, arguments),
        i,
        m = data.length,
        n = kz.length,
        sz = new Array(n),
        oz;

    for (i = 0; i < n; ++i) {
      for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {
        si[j] = sij = [0, +value(data[j], ki, j, data)];
        sij.data = data[j];
      }
      si.key = ki;
    }

    for (i = 0, oz = order(sz); i < n; ++i) {
      sz[oz[i]].index = i;
    }

    offset(sz, oz);
    return sz;
  }

  stack.keys = function(_) {
    return arguments.length ? (keys = typeof _ === "function" ? _ : d3_shape_src_constant(d3_shape_src_array_slice.call(_)), stack) : keys;
  };

  stack.value = function(_) {
    return arguments.length ? (value = typeof _ === "function" ? _ : d3_shape_src_constant(+_), stack) : value;
  };

  stack.order = function(_) {
    return arguments.length ? (order = _ == null ? order_none : typeof _ === "function" ? _ : d3_shape_src_constant(d3_shape_src_array_slice.call(_)), stack) : order;
  };

  stack.offset = function(_) {
    return arguments.length ? (offset = _ == null ? offset_none : _, stack) : offset;
  };

  return stack;
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/offset/expand.js


/* harmony default export */ var expand = (function(series, order) {
  if (!((n = series.length) > 0)) return;
  for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {
    for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;
    if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;
  }
  offset_none(series, order);
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/offset/diverging.js
/* harmony default export */ var diverging = (function(series, order) {
  if (!((n = series.length) > 1)) return;
  for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {
    for (yp = yn = 0, i = 0; i < n; ++i) {
      if ((dy = (d = series[order[i]][j])[1] - d[0]) >= 0) {
        d[0] = yp, d[1] = yp += dy;
      } else if (dy < 0) {
        d[1] = yn, d[0] = yn += dy;
      } else {
        d[0] = yp;
      }
    }
  }
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/offset/silhouette.js


/* harmony default export */ var silhouette = (function(series, order) {
  if (!((n = series.length) > 0)) return;
  for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {
    for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;
    s0[j][1] += s0[j][0] = -y / 2;
  }
  offset_none(series, order);
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/offset/wiggle.js


/* harmony default export */ var wiggle = (function(series, order) {
  if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;
  for (var y = 0, j = 1, s0, m, n; j < m; ++j) {
    for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {
      var si = series[order[i]],
          sij0 = si[j][1] || 0,
          sij1 = si[j - 1][1] || 0,
          s3 = (sij0 - sij1) / 2;
      for (var k = 0; k < i; ++k) {
        var sk = series[order[k]],
            skj0 = sk[j][1] || 0,
            skj1 = sk[j - 1][1] || 0;
        s3 += skj0 - skj1;
      }
      s1 += sij0, s2 += s3 * sij0;
    }
    s0[j - 1][1] += s0[j - 1][0] = y;
    if (s1) y -= s2 / s1;
  }
  s0[j - 1][1] += s0[j - 1][0] = y;
  offset_none(series, order);
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/order/ascending.js


/* harmony default export */ var order_ascending = (function(series) {
  var sums = series.map(ascending_sum);
  return order_none(series).sort(function(a, b) { return sums[a] - sums[b]; });
});

function ascending_sum(series) {
  var s = 0, i = -1, n = series.length, v;
  while (++i < n) if (v = +series[i][1]) s += v;
  return s;
}

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/order/descending.js


/* harmony default export */ var order_descending = (function(series) {
  return order_ascending(series).reverse();
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/order/insideOut.js



/* harmony default export */ var insideOut = (function(series) {
  var n = series.length,
      i,
      j,
      sums = series.map(ascending_sum),
      order = order_none(series).sort(function(a, b) { return sums[b] - sums[a]; }),
      top = 0,
      bottom = 0,
      tops = [],
      bottoms = [];

  for (i = 0; i < n; ++i) {
    j = order[i];
    if (top < bottom) {
      top += sums[j];
      tops.push(j);
    } else {
      bottom += sums[j];
      bottoms.push(j);
    }
  }

  return bottoms.reverse().concat(tops);
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/src/order/reverse.js


/* harmony default export */ var reverse = (function(series) {
  return order_none(series).reverse();
});

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-shape/index.js




 // Note: radialArea is deprecated!
 // Note: radialLine is deprecated!








































// EXTERNAL MODULE: ./node_modules/d3-time/index.js + 16 modules
var d3_time = __webpack_require__(54);

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-time-format/src/locale.js


function localDate(d) {
  if (0 <= d.y && d.y < 100) {
    var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
    date.setFullYear(d.y);
    return date;
  }
  return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);
}

function utcDate(d) {
  if (0 <= d.y && d.y < 100) {
    var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));
    date.setUTCFullYear(d.y);
    return date;
  }
  return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));
}

function newYear(y) {
  return {y: y, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0};
}

function formatLocale(locale) {
  var locale_dateTime = locale.dateTime,
      locale_date = locale.date,
      locale_time = locale.time,
      locale_periods = locale.periods,
      locale_weekdays = locale.days,
      locale_shortWeekdays = locale.shortDays,
      locale_months = locale.months,
      locale_shortMonths = locale.shortMonths;

  var periodRe = formatRe(locale_periods),
      periodLookup = formatLookup(locale_periods),
      weekdayRe = formatRe(locale_weekdays),
      weekdayLookup = formatLookup(locale_weekdays),
      shortWeekdayRe = formatRe(locale_shortWeekdays),
      shortWeekdayLookup = formatLookup(locale_shortWeekdays),
      monthRe = formatRe(locale_months),
      monthLookup = formatLookup(locale_months),
      shortMonthRe = formatRe(locale_shortMonths),
      shortMonthLookup = formatLookup(locale_shortMonths);

  var formats = {
    "a": formatShortWeekday,
    "A": formatWeekday,
    "b": formatShortMonth,
    "B": formatMonth,
    "c": null,
    "d": formatDayOfMonth,
    "e": formatDayOfMonth,
    "f": formatMicroseconds,
    "H": formatHour24,
    "I": formatHour12,
    "j": formatDayOfYear,
    "L": formatMilliseconds,
    "m": formatMonthNumber,
    "M": formatMinutes,
    "p": formatPeriod,
    "Q": formatUnixTimestamp,
    "s": formatUnixTimestampSeconds,
    "S": formatSeconds,
    "u": formatWeekdayNumberMonday,
    "U": formatWeekNumberSunday,
    "V": formatWeekNumberISO,
    "w": formatWeekdayNumberSunday,
    "W": formatWeekNumberMonday,
    "x": null,
    "X": null,
    "y": formatYear,
    "Y": formatFullYear,
    "Z": formatZone,
    "%": formatLiteralPercent
  };

  var utcFormats = {
    "a": formatUTCShortWeekday,
    "A": formatUTCWeekday,
    "b": formatUTCShortMonth,
    "B": formatUTCMonth,
    "c": null,
    "d": formatUTCDayOfMonth,
    "e": formatUTCDayOfMonth,
    "f": formatUTCMicroseconds,
    "H": formatUTCHour24,
    "I": formatUTCHour12,
    "j": formatUTCDayOfYear,
    "L": formatUTCMilliseconds,
    "m": formatUTCMonthNumber,
    "M": formatUTCMinutes,
    "p": formatUTCPeriod,
    "Q": formatUnixTimestamp,
    "s": formatUnixTimestampSeconds,
    "S": formatUTCSeconds,
    "u": formatUTCWeekdayNumberMonday,
    "U": formatUTCWeekNumberSunday,
    "V": formatUTCWeekNumberISO,
    "w": formatUTCWeekdayNumberSunday,
    "W": formatUTCWeekNumberMonday,
    "x": null,
    "X": null,
    "y": formatUTCYear,
    "Y": formatUTCFullYear,
    "Z": formatUTCZone,
    "%": formatLiteralPercent
  };

  var parses = {
    "a": parseShortWeekday,
    "A": parseWeekday,
    "b": parseShortMonth,
    "B": parseMonth,
    "c": parseLocaleDateTime,
    "d": parseDayOfMonth,
    "e": parseDayOfMonth,
    "f": parseMicroseconds,
    "H": parseHour24,
    "I": parseHour24,
    "j": parseDayOfYear,
    "L": parseMilliseconds,
    "m": parseMonthNumber,
    "M": parseMinutes,
    "p": parsePeriod,
    "Q": parseUnixTimestamp,
    "s": parseUnixTimestampSeconds,
    "S": parseSeconds,
    "u": parseWeekdayNumberMonday,
    "U": parseWeekNumberSunday,
    "V": parseWeekNumberISO,
    "w": parseWeekdayNumberSunday,
    "W": parseWeekNumberMonday,
    "x": parseLocaleDate,
    "X": parseLocaleTime,
    "y": parseYear,
    "Y": parseFullYear,
    "Z": parseZone,
    "%": parseLiteralPercent
  };

  // These recursive directive definitions must be deferred.
  formats.x = newFormat(locale_date, formats);
  formats.X = newFormat(locale_time, formats);
  formats.c = newFormat(locale_dateTime, formats);
  utcFormats.x = newFormat(locale_date, utcFormats);
  utcFormats.X = newFormat(locale_time, utcFormats);
  utcFormats.c = newFormat(locale_dateTime, utcFormats);

  function newFormat(specifier, formats) {
    return function(date) {
      var string = [],
          i = -1,
          j = 0,
          n = specifier.length,
          c,
          pad,
          format;

      if (!(date instanceof Date)) date = new Date(+date);

      while (++i < n) {
        if (specifier.charCodeAt(i) === 37) {
          string.push(specifier.slice(j, i));
          if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);
          else pad = c === "e" ? " " : "0";
          if (format = formats[c]) c = format(date, pad);
          string.push(c);
          j = i + 1;
        }
      }

      string.push(specifier.slice(j, i));
      return string.join("");
    };
  }

  function newParse(specifier, newDate) {
    return function(string) {
      var d = newYear(1900),
          i = parseSpecifier(d, specifier, string += "", 0),
          week, day;
      if (i != string.length) return null;

      // If a UNIX timestamp is specified, return it.
      if ("Q" in d) return new Date(d.Q);

      // The am-pm flag is 0 for AM, and 1 for PM.
      if ("p" in d) d.H = d.H % 12 + d.p * 12;

      // Convert day-of-week and week-of-year to day-of-year.
      if ("V" in d) {
        if (d.V < 1 || d.V > 53) return null;
        if (!("w" in d)) d.w = 1;
        if ("Z" in d) {
          week = utcDate(newYear(d.y)), day = week.getUTCDay();
          week = day > 4 || day === 0 ? d3_time["P" /* utcMonday */].ceil(week) : Object(d3_time["P" /* utcMonday */])(week);
          week = d3_time["F" /* utcDay */].offset(week, (d.V - 1) * 7);
          d.y = week.getUTCFullYear();
          d.m = week.getUTCMonth();
          d.d = week.getUTCDate() + (d.w + 6) % 7;
        } else {
          week = newDate(newYear(d.y)), day = week.getDay();
          week = day > 4 || day === 0 ? d3_time["l" /* timeMonday */].ceil(week) : Object(d3_time["l" /* timeMonday */])(week);
          week = d3_time["a" /* timeDay */].offset(week, (d.V - 1) * 7);
          d.y = week.getFullYear();
          d.m = week.getMonth();
          d.d = week.getDate() + (d.w + 6) % 7;
        }
      } else if ("W" in d || "U" in d) {
        if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
        day = "Z" in d ? utcDate(newYear(d.y)).getUTCDay() : newDate(newYear(d.y)).getDay();
        d.m = 0;
        d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;
      }

      // If a time zone is specified, all fields are interpreted as UTC and then
      // offset according to the specified time zone.
      if ("Z" in d) {
        d.H += d.Z / 100 | 0;
        d.M += d.Z % 100;
        return utcDate(d);
      }

      // Otherwise, all fields are in local time.
      return newDate(d);
    };
  }

  function parseSpecifier(d, specifier, string, j) {
    var i = 0,
        n = specifier.length,
        m = string.length,
        c,
        parse;

    while (i < n) {
      if (j >= m) return -1;
      c = specifier.charCodeAt(i++);
      if (c === 37) {
        c = specifier.charAt(i++);
        parse = parses[c in pads ? specifier.charAt(i++) : c];
        if (!parse || ((j = parse(d, string, j)) < 0)) return -1;
      } else if (c != string.charCodeAt(j++)) {
        return -1;
      }
    }

    return j;
  }

  function parsePeriod(d, string, i) {
    var n = periodRe.exec(string.slice(i));
    return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;
  }

  function parseShortWeekday(d, string, i) {
    var n = shortWeekdayRe.exec(string.slice(i));
    return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;
  }

  function parseWeekday(d, string, i) {
    var n = weekdayRe.exec(string.slice(i));
    return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;
  }

  function parseShortMonth(d, string, i) {
    var n = shortMonthRe.exec(string.slice(i));
    return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;
  }

  function parseMonth(d, string, i) {
    var n = monthRe.exec(string.slice(i));
    return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;
  }

  function parseLocaleDateTime(d, string, i) {
    return parseSpecifier(d, locale_dateTime, string, i);
  }

  function parseLocaleDate(d, string, i) {
    return parseSpecifier(d, locale_date, string, i);
  }

  function parseLocaleTime(d, string, i) {
    return parseSpecifier(d, locale_time, string, i);
  }

  function formatShortWeekday(d) {
    return locale_shortWeekdays[d.getDay()];
  }

  function formatWeekday(d) {
    return locale_weekdays[d.getDay()];
  }

  function formatShortMonth(d) {
    return locale_shortMonths[d.getMonth()];
  }

  function formatMonth(d) {
    return locale_months[d.getMonth()];
  }

  function formatPeriod(d) {
    return locale_periods[+(d.getHours() >= 12)];
  }

  function formatUTCShortWeekday(d) {
    return locale_shortWeekdays[d.getUTCDay()];
  }

  function formatUTCWeekday(d) {
    return locale_weekdays[d.getUTCDay()];
  }

  function formatUTCShortMonth(d) {
    return locale_shortMonths[d.getUTCMonth()];
  }

  function formatUTCMonth(d) {
    return locale_months[d.getUTCMonth()];
  }

  function formatUTCPeriod(d) {
    return locale_periods[+(d.getUTCHours() >= 12)];
  }

  return {
    format: function(specifier) {
      var f = newFormat(specifier += "", formats);
      f.toString = function() { return specifier; };
      return f;
    },
    parse: function(specifier) {
      var p = newParse(specifier += "", localDate);
      p.toString = function() { return specifier; };
      return p;
    },
    utcFormat: function(specifier) {
      var f = newFormat(specifier += "", utcFormats);
      f.toString = function() { return specifier; };
      return f;
    },
    utcParse: function(specifier) {
      var p = newParse(specifier, utcDate);
      p.toString = function() { return specifier; };
      return p;
    }
  };
}

var pads = {"-": "", "_": " ", "0": "0"},
    numberRe = /^\s*\d+/, // note: ignores next directive
    percentRe = /^%/,
    requoteRe = /[\\^$*+?|[\]().{}]/g;

function pad(value, fill, width) {
  var sign = value < 0 ? "-" : "",
      string = (sign ? -value : value) + "",
      length = string.length;
  return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);
}

function requote(s) {
  return s.replace(requoteRe, "\\$&");
}

function formatRe(names) {
  return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i");
}

function formatLookup(names) {
  var map = {}, i = -1, n = names.length;
  while (++i < n) map[names[i].toLowerCase()] = i;
  return map;
}

function parseWeekdayNumberSunday(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 1));
  return n ? (d.w = +n[0], i + n[0].length) : -1;
}

function parseWeekdayNumberMonday(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 1));
  return n ? (d.u = +n[0], i + n[0].length) : -1;
}

function parseWeekNumberSunday(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 2));
  return n ? (d.U = +n[0], i + n[0].length) : -1;
}

function parseWeekNumberISO(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 2));
  return n ? (d.V = +n[0], i + n[0].length) : -1;
}

function parseWeekNumberMonday(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 2));
  return n ? (d.W = +n[0], i + n[0].length) : -1;
}

function parseFullYear(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 4));
  return n ? (d.y = +n[0], i + n[0].length) : -1;
}

function parseYear(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 2));
  return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;
}

function parseZone(d, string, i) {
  var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6));
  return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1;
}

function parseMonthNumber(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 2));
  return n ? (d.m = n[0] - 1, i + n[0].length) : -1;
}

function parseDayOfMonth(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 2));
  return n ? (d.d = +n[0], i + n[0].length) : -1;
}

function parseDayOfYear(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 3));
  return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;
}

function parseHour24(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 2));
  return n ? (d.H = +n[0], i + n[0].length) : -1;
}

function parseMinutes(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 2));
  return n ? (d.M = +n[0], i + n[0].length) : -1;
}

function parseSeconds(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 2));
  return n ? (d.S = +n[0], i + n[0].length) : -1;
}

function parseMilliseconds(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 3));
  return n ? (d.L = +n[0], i + n[0].length) : -1;
}

function parseMicroseconds(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 6));
  return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;
}

function parseLiteralPercent(d, string, i) {
  var n = percentRe.exec(string.slice(i, i + 1));
  return n ? i + n[0].length : -1;
}

function parseUnixTimestamp(d, string, i) {
  var n = numberRe.exec(string.slice(i));
  return n ? (d.Q = +n[0], i + n[0].length) : -1;
}

function parseUnixTimestampSeconds(d, string, i) {
  var n = numberRe.exec(string.slice(i));
  return n ? (d.Q = (+n[0]) * 1000, i + n[0].length) : -1;
}

function formatDayOfMonth(d, p) {
  return pad(d.getDate(), p, 2);
}

function formatHour24(d, p) {
  return pad(d.getHours(), p, 2);
}

function formatHour12(d, p) {
  return pad(d.getHours() % 12 || 12, p, 2);
}

function formatDayOfYear(d, p) {
  return pad(1 + d3_time["a" /* timeDay */].count(Object(d3_time["D" /* timeYear */])(d), d), p, 3);
}

function formatMilliseconds(d, p) {
  return pad(d.getMilliseconds(), p, 3);
}

function formatMicroseconds(d, p) {
  return formatMilliseconds(d, p) + "000";
}

function formatMonthNumber(d, p) {
  return pad(d.getMonth() + 1, p, 2);
}

function formatMinutes(d, p) {
  return pad(d.getMinutes(), p, 2);
}

function formatSeconds(d, p) {
  return pad(d.getSeconds(), p, 2);
}

function formatWeekdayNumberMonday(d) {
  var day = d.getDay();
  return day === 0 ? 7 : day;
}

function formatWeekNumberSunday(d, p) {
  return pad(d3_time["t" /* timeSunday */].count(Object(d3_time["D" /* timeYear */])(d), d), p, 2);
}

function formatWeekNumberISO(d, p) {
  var day = d.getDay();
  d = (day >= 4 || day === 0) ? Object(d3_time["v" /* timeThursday */])(d) : d3_time["v" /* timeThursday */].ceil(d);
  return pad(d3_time["v" /* timeThursday */].count(Object(d3_time["D" /* timeYear */])(d), d) + (Object(d3_time["D" /* timeYear */])(d).getDay() === 4), p, 2);
}

function formatWeekdayNumberSunday(d) {
  return d.getDay();
}

function formatWeekNumberMonday(d, p) {
  return pad(d3_time["l" /* timeMonday */].count(Object(d3_time["D" /* timeYear */])(d), d), p, 2);
}

function formatYear(d, p) {
  return pad(d.getFullYear() % 100, p, 2);
}

function formatFullYear(d, p) {
  return pad(d.getFullYear() % 10000, p, 4);
}

function formatZone(d) {
  var z = d.getTimezoneOffset();
  return (z > 0 ? "-" : (z *= -1, "+"))
      + pad(z / 60 | 0, "0", 2)
      + pad(z % 60, "0", 2);
}

function formatUTCDayOfMonth(d, p) {
  return pad(d.getUTCDate(), p, 2);
}

function formatUTCHour24(d, p) {
  return pad(d.getUTCHours(), p, 2);
}

function formatUTCHour12(d, p) {
  return pad(d.getUTCHours() % 12 || 12, p, 2);
}

function formatUTCDayOfYear(d, p) {
  return pad(1 + d3_time["F" /* utcDay */].count(Object(d3_time["hb" /* utcYear */])(d), d), p, 3);
}

function formatUTCMilliseconds(d, p) {
  return pad(d.getUTCMilliseconds(), p, 3);
}

function formatUTCMicroseconds(d, p) {
  return formatUTCMilliseconds(d, p) + "000";
}

function formatUTCMonthNumber(d, p) {
  return pad(d.getUTCMonth() + 1, p, 2);
}

function formatUTCMinutes(d, p) {
  return pad(d.getUTCMinutes(), p, 2);
}

function formatUTCSeconds(d, p) {
  return pad(d.getUTCSeconds(), p, 2);
}

function formatUTCWeekdayNumberMonday(d) {
  var dow = d.getUTCDay();
  return dow === 0 ? 7 : dow;
}

function formatUTCWeekNumberSunday(d, p) {
  return pad(d3_time["X" /* utcSunday */].count(Object(d3_time["hb" /* utcYear */])(d), d), p, 2);
}

function formatUTCWeekNumberISO(d, p) {
  var day = d.getUTCDay();
  d = (day >= 4 || day === 0) ? Object(d3_time["Z" /* utcThursday */])(d) : d3_time["Z" /* utcThursday */].ceil(d);
  return pad(d3_time["Z" /* utcThursday */].count(Object(d3_time["hb" /* utcYear */])(d), d) + (Object(d3_time["hb" /* utcYear */])(d).getUTCDay() === 4), p, 2);
}

function formatUTCWeekdayNumberSunday(d) {
  return d.getUTCDay();
}

function formatUTCWeekNumberMonday(d, p) {
  return pad(d3_time["P" /* utcMonday */].count(Object(d3_time["hb" /* utcYear */])(d), d), p, 2);
}

function formatUTCYear(d, p) {
  return pad(d.getUTCFullYear() % 100, p, 2);
}

function formatUTCFullYear(d, p) {
  return pad(d.getUTCFullYear() % 10000, p, 4);
}

function formatUTCZone() {
  return "+0000";
}

function formatLiteralPercent() {
  return "%";
}

function formatUnixTimestamp(d) {
  return +d;
}

function formatUnixTimestampSeconds(d) {
  return Math.floor(+d / 1000);
}

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-time-format/src/defaultLocale.js


var defaultLocale_locale;
var timeFormat;
var timeParse;
var utcFormat;
var utcParse;

defaultLocale({
  dateTime: "%x, %X",
  date: "%-m/%-d/%Y",
  time: "%-I:%M:%S %p",
  periods: ["AM", "PM"],
  days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
  shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
  months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
  shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
});

function defaultLocale(definition) {
  defaultLocale_locale = formatLocale(definition);
  timeFormat = defaultLocale_locale.format;
  timeParse = defaultLocale_locale.parse;
  utcFormat = defaultLocale_locale.utcFormat;
  utcParse = defaultLocale_locale.utcParse;
  return defaultLocale_locale;
}

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-time-format/src/isoFormat.js


var isoSpecifier = "%Y-%m-%dT%H:%M:%S.%LZ";

function formatIsoNative(date) {
  return date.toISOString();
}

var formatIso = Date.prototype.toISOString
    ? formatIsoNative
    : utcFormat(isoSpecifier);

/* harmony default export */ var isoFormat = (formatIso);

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-time-format/src/isoParse.js



function parseIsoNative(string) {
  var date = new Date(string);
  return isNaN(date) ? null : date;
}

var parseIso = +new Date("2000-01-01T00:00:00.000Z")
    ? parseIsoNative
    : utcParse(isoSpecifier);

/* harmony default export */ var isoParse = (parseIso);

// CONCATENATED MODULE: ./node_modules/d3/node_modules/d3-time-format/index.js





// CONCATENATED MODULE: ./node_modules/d3-voronoi/src/constant.js
/* harmony default export */ var d3_voronoi_src_constant = (function(x) {
  return function() {
    return x;
  };
});

// CONCATENATED MODULE: ./node_modules/d3-voronoi/src/point.js
function src_point_x(d) {
  return d[0];
}

function src_point_y(d) {
  return d[1];
}

// CONCATENATED MODULE: ./node_modules/d3-voronoi/src/RedBlackTree.js
function RedBlackTree() {
  this._ = null; // root node
}

function RedBlackNode(node) {
  node.U = // parent node
  node.C = // color - true for red, false for black
  node.L = // left node
  node.R = // right node
  node.P = // previous node
  node.N = null; // next node
}

RedBlackTree.prototype = {
  constructor: RedBlackTree,

  insert: function(after, node) {
    var parent, grandpa, uncle;

    if (after) {
      node.P = after;
      node.N = after.N;
      if (after.N) after.N.P = node;
      after.N = node;
      if (after.R) {
        after = after.R;
        while (after.L) after = after.L;
        after.L = node;
      } else {
        after.R = node;
      }
      parent = after;
    } else if (this._) {
      after = RedBlackFirst(this._);
      node.P = null;
      node.N = after;
      after.P = after.L = node;
      parent = after;
    } else {
      node.P = node.N = null;
      this._ = node;
      parent = null;
    }
    node.L = node.R = null;
    node.U = parent;
    node.C = true;

    after = node;
    while (parent && parent.C) {
      grandpa = parent.U;
      if (parent === grandpa.L) {
        uncle = grandpa.R;
        if (uncle && uncle.C) {
          parent.C = uncle.C = false;
          grandpa.C = true;
          after = grandpa;
        } else {
          if (after === parent.R) {
            RedBlackRotateLeft(this, parent);
            after = parent;
            parent = after.U;
          }
          parent.C = false;
          grandpa.C = true;
          RedBlackRotateRight(this, grandpa);
        }
      } else {
        uncle = grandpa.L;
        if (uncle && uncle.C) {
          parent.C = uncle.C = false;
          grandpa.C = true;
          after = grandpa;
        } else {
          if (after === parent.L) {
            RedBlackRotateRight(this, parent);
            after = parent;
            parent = after.U;
          }
          parent.C = false;
          grandpa.C = true;
          RedBlackRotateLeft(this, grandpa);
        }
      }
      parent = after.U;
    }
    this._.C = false;
  },

  remove: function(node) {
    if (node.N) node.N.P = node.P;
    if (node.P) node.P.N = node.N;
    node.N = node.P = null;

    var parent = node.U,
        sibling,
        left = node.L,
        right = node.R,
        next,
        red;

    if (!left) next = right;
    else if (!right) next = left;
    else next = RedBlackFirst(right);

    if (parent) {
      if (parent.L === node) parent.L = next;
      else parent.R = next;
    } else {
      this._ = next;
    }

    if (left && right) {
      red = next.C;
      next.C = node.C;
      next.L = left;
      left.U = next;
      if (next !== right) {
        parent = next.U;
        next.U = node.U;
        node = next.R;
        parent.L = node;
        next.R = right;
        right.U = next;
      } else {
        next.U = parent;
        parent = next;
        node = next.R;
      }
    } else {
      red = node.C;
      node = next;
    }

    if (node) node.U = parent;
    if (red) return;
    if (node && node.C) { node.C = false; return; }

    do {
      if (node === this._) break;
      if (node === parent.L) {
        sibling = parent.R;
        if (sibling.C) {
          sibling.C = false;
          parent.C = true;
          RedBlackRotateLeft(this, parent);
          sibling = parent.R;
        }
        if ((sibling.L && sibling.L.C)
            || (sibling.R && sibling.R.C)) {
          if (!sibling.R || !sibling.R.C) {
            sibling.L.C = false;
            sibling.C = true;
            RedBlackRotateRight(this, sibling);
            sibling = parent.R;
          }
          sibling.C = parent.C;
          parent.C = sibling.R.C = false;
          RedBlackRotateLeft(this, parent);
          node = this._;
          break;
        }
      } else {
        sibling = parent.L;
        if (sibling.C) {
          sibling.C = false;
          parent.C = true;
          RedBlackRotateRight(this, parent);
          sibling = parent.L;
        }
        if ((sibling.L && sibling.L.C)
          || (sibling.R && sibling.R.C)) {
          if (!sibling.L || !sibling.L.C) {
            sibling.R.C = false;
            sibling.C = true;
            RedBlackRotateLeft(this, sibling);
            sibling = parent.L;
          }
          sibling.C = parent.C;
          parent.C = sibling.L.C = false;
          RedBlackRotateRight(this, parent);
          node = this._;
          break;
        }
      }
      sibling.C = true;
      node = parent;
      parent = parent.U;
    } while (!node.C);

    if (node) node.C = false;
  }
};

function RedBlackRotateLeft(tree, node) {
  var p = node,
      q = node.R,
      parent = p.U;

  if (parent) {
    if (parent.L === p) parent.L = q;
    else parent.R = q;
  } else {
    tree._ = q;
  }

  q.U = parent;
  p.U = q;
  p.R = q.L;
  if (p.R) p.R.U = p;
  q.L = p;
}

function RedBlackRotateRight(tree, node) {
  var p = node,
      q = node.L,
      parent = p.U;

  if (parent) {
    if (parent.L === p) parent.L = q;
    else parent.R = q;
  } else {
    tree._ = q;
  }

  q.U = parent;
  p.U = q;
  p.L = q.R;
  if (p.L) p.L.U = p;
  q.R = p;
}

function RedBlackFirst(node) {
  while (node.L) node = node.L;
  return node;
}

/* harmony default export */ var src_RedBlackTree = (RedBlackTree);

// CONCATENATED MODULE: ./node_modules/d3-voronoi/src/Edge.js


function createEdge(left, right, v0, v1) {
  var edge = [null, null],
      index = Diagram_edges.push(edge) - 1;
  edge.left = left;
  edge.right = right;
  if (v0) setEdgeEnd(edge, left, right, v0);
  if (v1) setEdgeEnd(edge, right, left, v1);
  cells[left.index].halfedges.push(index);
  cells[right.index].halfedges.push(index);
  return edge;
}

function createBorderEdge(left, v0, v1) {
  var edge = [v0, v1];
  edge.left = left;
  return edge;
}

function setEdgeEnd(edge, left, right, vertex) {
  if (!edge[0] && !edge[1]) {
    edge[0] = vertex;
    edge.left = left;
    edge.right = right;
  } else if (edge.left === right) {
    edge[1] = vertex;
  } else {
    edge[0] = vertex;
  }
}

// Liang–Barsky line clipping.
function clipEdge(edge, x0, y0, x1, y1) {
  var a = edge[0],
      b = edge[1],
      ax = a[0],
      ay = a[1],
      bx = b[0],
      by = b[1],
      t0 = 0,
      t1 = 1,
      dx = bx - ax,
      dy = by - ay,
      r;

  r = x0 - ax;
  if (!dx && r > 0) return;
  r /= dx;
  if (dx < 0) {
    if (r < t0) return;
    if (r < t1) t1 = r;
  } else if (dx > 0) {
    if (r > t1) return;
    if (r > t0) t0 = r;
  }

  r = x1 - ax;
  if (!dx && r < 0) return;
  r /= dx;
  if (dx < 0) {
    if (r > t1) return;
    if (r > t0) t0 = r;
  } else if (dx > 0) {
    if (r < t0) return;
    if (r < t1) t1 = r;
  }

  r = y0 - ay;
  if (!dy && r > 0) return;
  r /= dy;
  if (dy < 0) {
    if (r < t0) return;
    if (r < t1) t1 = r;
  } else if (dy > 0) {
    if (r > t1) return;
    if (r > t0) t0 = r;
  }

  r = y1 - ay;
  if (!dy && r < 0) return;
  r /= dy;
  if (dy < 0) {
    if (r > t1) return;
    if (r > t0) t0 = r;
  } else if (dy > 0) {
    if (r < t0) return;
    if (r < t1) t1 = r;
  }

  if (!(t0 > 0) && !(t1 < 1)) return true; // TODO Better check?

  if (t0 > 0) edge[0] = [ax + t0 * dx, ay + t0 * dy];
  if (t1 < 1) edge[1] = [ax + t1 * dx, ay + t1 * dy];
  return true;
}

function connectEdge(edge, x0, y0, x1, y1) {
  var v1 = edge[1];
  if (v1) return true;

  var v0 = edge[0],
      left = edge.left,
      right = edge.right,
      lx = left[0],
      ly = left[1],
      rx = right[0],
      ry = right[1],
      fx = (lx + rx) / 2,
      fy = (ly + ry) / 2,
      fm,
      fb;

  if (ry === ly) {
    if (fx < x0 || fx >= x1) return;
    if (lx > rx) {
      if (!v0) v0 = [fx, y0];
      else if (v0[1] >= y1) return;
      v1 = [fx, y1];
    } else {
      if (!v0) v0 = [fx, y1];
      else if (v0[1] < y0) return;
      v1 = [fx, y0];
    }
  } else {
    fm = (lx - rx) / (ry - ly);
    fb = fy - fm * fx;
    if (fm < -1 || fm > 1) {
      if (lx > rx) {
        if (!v0) v0 = [(y0 - fb) / fm, y0];
        else if (v0[1] >= y1) return;
        v1 = [(y1 - fb) / fm, y1];
      } else {
        if (!v0) v0 = [(y1 - fb) / fm, y1];
        else if (v0[1] < y0) return;
        v1 = [(y0 - fb) / fm, y0];
      }
    } else {
      if (ly < ry) {
        if (!v0) v0 = [x0, fm * x0 + fb];
        else if (v0[0] >= x1) return;
        v1 = [x1, fm * x1 + fb];
      } else {
        if (!v0) v0 = [x1, fm * x1 + fb];
        else if (v0[0] < x0) return;
        v1 = [x0, fm * x0 + fb];
      }
    }
  }

  edge[0] = v0;
  edge[1] = v1;
  return true;
}

function clipEdges(x0, y0, x1, y1) {
  var i = Diagram_edges.length,
      edge;

  while (i--) {
    if (!connectEdge(edge = Diagram_edges[i], x0, y0, x1, y1)
        || !clipEdge(edge, x0, y0, x1, y1)
        || !(Math.abs(edge[0][0] - edge[1][0]) > Diagram_epsilon
            || Math.abs(edge[0][1] - edge[1][1]) > Diagram_epsilon)) {
      delete Diagram_edges[i];
    }
  }
}

// CONCATENATED MODULE: ./node_modules/d3-voronoi/src/Cell.js



function createCell(site) {
  return cells[site.index] = {
    site: site,
    halfedges: []
  };
}

function cellHalfedgeAngle(cell, edge) {
  var site = cell.site,
      va = edge.left,
      vb = edge.right;
  if (site === vb) vb = va, va = site;
  if (vb) return Math.atan2(vb[1] - va[1], vb[0] - va[0]);
  if (site === va) va = edge[1], vb = edge[0];
  else va = edge[0], vb = edge[1];
  return Math.atan2(va[0] - vb[0], vb[1] - va[1]);
}

function cellHalfedgeStart(cell, edge) {
  return edge[+(edge.left !== cell.site)];
}

function cellHalfedgeEnd(cell, edge) {
  return edge[+(edge.left === cell.site)];
}

function sortCellHalfedges() {
  for (var i = 0, n = cells.length, cell, halfedges, j, m; i < n; ++i) {
    if ((cell = cells[i]) && (m = (halfedges = cell.halfedges).length)) {
      var index = new Array(m),
          array = new Array(m);
      for (j = 0; j < m; ++j) index[j] = j, array[j] = cellHalfedgeAngle(cell, Diagram_edges[halfedges[j]]);
      index.sort(function(i, j) { return array[j] - array[i]; });
      for (j = 0; j < m; ++j) array[j] = halfedges[index[j]];
      for (j = 0; j < m; ++j) halfedges[j] = array[j];
    }
  }
}

function clipCells(x0, y0, x1, y1) {
  var nCells = cells.length,
      iCell,
      cell,
      site,
      iHalfedge,
      halfedges,
      nHalfedges,
      start,
      startX,
      startY,
      end,
      endX,
      endY,
      cover = true;

  for (iCell = 0; iCell < nCells; ++iCell) {
    if (cell = cells[iCell]) {
      site = cell.site;
      halfedges = cell.halfedges;
      iHalfedge = halfedges.length;

      // Remove any dangling clipped edges.
      while (iHalfedge--) {
        if (!Diagram_edges[halfedges[iHalfedge]]) {
          halfedges.splice(iHalfedge, 1);
        }
      }

      // Insert any border edges as necessary.
      iHalfedge = 0, nHalfedges = halfedges.length;
      while (iHalfedge < nHalfedges) {
        end = cellHalfedgeEnd(cell, Diagram_edges[halfedges[iHalfedge]]), endX = end[0], endY = end[1];
        start = cellHalfedgeStart(cell, Diagram_edges[halfedges[++iHalfedge % nHalfedges]]), startX = start[0], startY = start[1];
        if (Math.abs(endX - startX) > Diagram_epsilon || Math.abs(endY - startY) > Diagram_epsilon) {
          halfedges.splice(iHalfedge, 0, Diagram_edges.push(createBorderEdge(site, end,
              Math.abs(endX - x0) < Diagram_epsilon && y1 - endY > Diagram_epsilon ? [x0, Math.abs(startX - x0) < Diagram_epsilon ? startY : y1]
              : Math.abs(endY - y1) < Diagram_epsilon && x1 - endX > Diagram_epsilon ? [Math.abs(startY - y1) < Diagram_epsilon ? startX : x1, y1]
              : Math.abs(endX - x1) < Diagram_epsilon && endY - y0 > Diagram_epsilon ? [x1, Math.abs(startX - x1) < Diagram_epsilon ? startY : y0]
              : Math.abs(endY - y0) < Diagram_epsilon && endX - x0 > Diagram_epsilon ? [Math.abs(startY - y0) < Diagram_epsilon ? startX : x0, y0]
              : null)) - 1);
          ++nHalfedges;
        }
      }

      if (nHalfedges) cover = false;
    }
  }

  // If there weren’t any edges, have the closest site cover the extent.
  // It doesn’t matter which corner of the extent we measure!
  if (cover) {
    var dx, dy, d2, dc = Infinity;

    for (iCell = 0, cover = null; iCell < nCells; ++iCell) {
      if (cell = cells[iCell]) {
        site = cell.site;
        dx = site[0] - x0;
        dy = site[1] - y0;
        d2 = dx * dx + dy * dy;
        if (d2 < dc) dc = d2, cover = cell;
      }
    }

    if (cover) {
      var v00 = [x0, y0], v01 = [x0, y1], v11 = [x1, y1], v10 = [x1, y0];
      cover.halfedges.push(
        Diagram_edges.push(createBorderEdge(site = cover.site, v00, v01)) - 1,
        Diagram_edges.push(createBorderEdge(site, v01, v11)) - 1,
        Diagram_edges.push(createBorderEdge(site, v11, v10)) - 1,
        Diagram_edges.push(createBorderEdge(site, v10, v00)) - 1
      );
    }
  }

  // Lastly delete any cells with no edges; these were entirely clipped.
  for (iCell = 0; iCell < nCells; ++iCell) {
    if (cell = cells[iCell]) {
      if (!cell.halfedges.length) {
        delete cells[iCell];
      }
    }
  }
}

// CONCATENATED MODULE: ./node_modules/d3-voronoi/src/Circle.js



var circlePool = [];

var firstCircle;

function Circle() {
  RedBlackNode(this);
  this.x =
  this.y =
  this.arc =
  this.site =
  this.cy = null;
}

function attachCircle(arc) {
  var lArc = arc.P,
      rArc = arc.N;

  if (!lArc || !rArc) return;

  var lSite = lArc.site,
      cSite = arc.site,
      rSite = rArc.site;

  if (lSite === rSite) return;

  var bx = cSite[0],
      by = cSite[1],
      ax = lSite[0] - bx,
      ay = lSite[1] - by,
      cx = rSite[0] - bx,
      cy = rSite[1] - by;

  var d = 2 * (ax * cy - ay * cx);
  if (d >= -Diagram_epsilon2) return;

  var ha = ax * ax + ay * ay,
      hc = cx * cx + cy * cy,
      x = (cy * ha - ay * hc) / d,
      y = (ax * hc - cx * ha) / d;

  var circle = circlePool.pop() || new Circle;
  circle.arc = arc;
  circle.site = cSite;
  circle.x = x + bx;
  circle.y = (circle.cy = y + by) + Math.sqrt(x * x + y * y); // y bottom

  arc.circle = circle;

  var before = null,
      node = Diagram_circles._;

  while (node) {
    if (circle.y < node.y || (circle.y === node.y && circle.x <= node.x)) {
      if (node.L) node = node.L;
      else { before = node.P; break; }
    } else {
      if (node.R) node = node.R;
      else { before = node; break; }
    }
  }

  Diagram_circles.insert(before, circle);
  if (!before) firstCircle = circle;
}

function detachCircle(arc) {
  var circle = arc.circle;
  if (circle) {
    if (!circle.P) firstCircle = circle.N;
    Diagram_circles.remove(circle);
    circlePool.push(circle);
    RedBlackNode(circle);
    arc.circle = null;
  }
}

// CONCATENATED MODULE: ./node_modules/d3-voronoi/src/Beach.js






var beachPool = [];

function Beach() {
  RedBlackNode(this);
  this.edge =
  this.site =
  this.circle = null;
}

function createBeach(site) {
  var beach = beachPool.pop() || new Beach;
  beach.site = site;
  return beach;
}

function detachBeach(beach) {
  detachCircle(beach);
  beaches.remove(beach);
  beachPool.push(beach);
  RedBlackNode(beach);
}

function removeBeach(beach) {
  var circle = beach.circle,
      x = circle.x,
      y = circle.cy,
      vertex = [x, y],
      previous = beach.P,
      next = beach.N,
      disappearing = [beach];

  detachBeach(beach);

  var lArc = previous;
  while (lArc.circle
      && Math.abs(x - lArc.circle.x) < Diagram_epsilon
      && Math.abs(y - lArc.circle.cy) < Diagram_epsilon) {
    previous = lArc.P;
    disappearing.unshift(lArc);
    detachBeach(lArc);
    lArc = previous;
  }

  disappearing.unshift(lArc);
  detachCircle(lArc);

  var rArc = next;
  while (rArc.circle
      && Math.abs(x - rArc.circle.x) < Diagram_epsilon
      && Math.abs(y - rArc.circle.cy) < Diagram_epsilon) {
    next = rArc.N;
    disappearing.push(rArc);
    detachBeach(rArc);
    rArc = next;
  }

  disappearing.push(rArc);
  detachCircle(rArc);

  var nArcs = disappearing.length,
      iArc;
  for (iArc = 1; iArc < nArcs; ++iArc) {
    rArc = disappearing[iArc];
    lArc = disappearing[iArc - 1];
    setEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);
  }

  lArc = disappearing[0];
  rArc = disappearing[nArcs - 1];
  rArc.edge = createEdge(lArc.site, rArc.site, null, vertex);

  attachCircle(lArc);
  attachCircle(rArc);
}

function addBeach(site) {
  var x = site[0],
      directrix = site[1],
      lArc,
      rArc,
      dxl,
      dxr,
      node = beaches._;

  while (node) {
    dxl = leftBreakPoint(node, directrix) - x;
    if (dxl > Diagram_epsilon) node = node.L; else {
      dxr = x - rightBreakPoint(node, directrix);
      if (dxr > Diagram_epsilon) {
        if (!node.R) {
          lArc = node;
          break;
        }
        node = node.R;
      } else {
        if (dxl > -Diagram_epsilon) {
          lArc = node.P;
          rArc = node;
        } else if (dxr > -Diagram_epsilon) {
          lArc = node;
          rArc = node.N;
        } else {
          lArc = rArc = node;
        }
        break;
      }
    }
  }

  createCell(site);
  var newArc = createBeach(site);
  beaches.insert(lArc, newArc);

  if (!lArc && !rArc) return;

  if (lArc === rArc) {
    detachCircle(lArc);
    rArc = createBeach(lArc.site);
    beaches.insert(newArc, rArc);
    newArc.edge = rArc.edge = createEdge(lArc.site, newArc.site);
    attachCircle(lArc);
    attachCircle(rArc);
    return;
  }

  if (!rArc) { // && lArc
    newArc.edge = createEdge(lArc.site, newArc.site);
    return;
  }

  // else lArc !== rArc
  detachCircle(lArc);
  detachCircle(rArc);

  var lSite = lArc.site,
      ax = lSite[0],
      ay = lSite[1],
      bx = site[0] - ax,
      by = site[1] - ay,
      rSite = rArc.site,
      cx = rSite[0] - ax,
      cy = rSite[1] - ay,
      d = 2 * (bx * cy - by * cx),
      hb = bx * bx + by * by,
      hc = cx * cx + cy * cy,
      vertex = [(cy * hb - by * hc) / d + ax, (bx * hc - cx * hb) / d + ay];

  setEdgeEnd(rArc.edge, lSite, rSite, vertex);
  newArc.edge = createEdge(lSite, site, null, vertex);
  rArc.edge = createEdge(site, rSite, null, vertex);
  attachCircle(lArc);
  attachCircle(rArc);
}

function leftBreakPoint(arc, directrix) {
  var site = arc.site,
      rfocx = site[0],
      rfocy = site[1],
      pby2 = rfocy - directrix;

  if (!pby2) return rfocx;

  var lArc = arc.P;
  if (!lArc) return -Infinity;

  site = lArc.site;
  var lfocx = site[0],
      lfocy = site[1],
      plby2 = lfocy - directrix;

  if (!plby2) return lfocx;

  var hl = lfocx - rfocx,
      aby2 = 1 / pby2 - 1 / plby2,
      b = hl / plby2;

  if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;

  return (rfocx + lfocx) / 2;
}

function rightBreakPoint(arc, directrix) {
  var rArc = arc.N;
  if (rArc) return leftBreakPoint(rArc, directrix);
  var site = arc.site;
  return site[1] === directrix ? site[0] : Infinity;
}

// CONCATENATED MODULE: ./node_modules/d3-voronoi/src/Diagram.js






var Diagram_epsilon = 1e-6;
var Diagram_epsilon2 = 1e-12;
var beaches;
var cells;
var Diagram_circles;
var Diagram_edges;

function triangleArea(a, b, c) {
  return (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]);
}

function lexicographic(a, b) {
  return b[1] - a[1]
      || b[0] - a[0];
}

function Diagram(sites, extent) {
  var site = sites.sort(lexicographic).pop(),
      x,
      y,
      circle;

  Diagram_edges = [];
  cells = new Array(sites.length);
  beaches = new src_RedBlackTree;
  Diagram_circles = new src_RedBlackTree;

  while (true) {
    circle = firstCircle;
    if (site && (!circle || site[1] < circle.y || (site[1] === circle.y && site[0] < circle.x))) {
      if (site[0] !== x || site[1] !== y) {
        addBeach(site);
        x = site[0], y = site[1];
      }
      site = sites.pop();
    } else if (circle) {
      removeBeach(circle.arc);
    } else {
      break;
    }
  }

  sortCellHalfedges();

  if (extent) {
    var x0 = +extent[0][0],
        y0 = +extent[0][1],
        x1 = +extent[1][0],
        y1 = +extent[1][1];
    clipEdges(x0, y0, x1, y1);
    clipCells(x0, y0, x1, y1);
  }

  this.edges = Diagram_edges;
  this.cells = cells;

  beaches =
  Diagram_circles =
  Diagram_edges =
  cells = null;
}

Diagram.prototype = {
  constructor: Diagram,

  polygons: function() {
    var edges = this.edges;

    return this.cells.map(function(cell) {
      var polygon = cell.halfedges.map(function(i) { return cellHalfedgeStart(cell, edges[i]); });
      polygon.data = cell.site.data;
      return polygon;
    });
  },

  triangles: function() {
    var triangles = [],
        edges = this.edges;

    this.cells.forEach(function(cell, i) {
      if (!(m = (halfedges = cell.halfedges).length)) return;
      var site = cell.site,
          halfedges,
          j = -1,
          m,
          s0,
          e1 = edges[halfedges[m - 1]],
          s1 = e1.left === site ? e1.right : e1.left;

      while (++j < m) {
        s0 = s1;
        e1 = edges[halfedges[j]];
        s1 = e1.left === site ? e1.right : e1.left;
        if (s0 && s1 && i < s0.index && i < s1.index && triangleArea(site, s0, s1) < 0) {
          triangles.push([site.data, s0.data, s1.data]);
        }
      }
    });

    return triangles;
  },

  links: function() {
    return this.edges.filter(function(edge) {
      return edge.right;
    }).map(function(edge) {
      return {
        source: edge.left.data,
        target: edge.right.data
      };
    });
  },

  find: function(x, y, radius) {
    var that = this, i0, i1 = that._found || 0, n = that.cells.length, cell;

    // Use the previously-found cell, or start with an arbitrary one.
    while (!(cell = that.cells[i1])) if (++i1 >= n) return null;
    var dx = x - cell.site[0], dy = y - cell.site[1], d2 = dx * dx + dy * dy;

    // Traverse the half-edges to find a closer cell, if any.
    do {
      cell = that.cells[i0 = i1], i1 = null;
      cell.halfedges.forEach(function(e) {
        var edge = that.edges[e], v = edge.left;
        if ((v === cell.site || !v) && !(v = edge.right)) return;
        var vx = x - v[0], vy = y - v[1], v2 = vx * vx + vy * vy;
        if (v2 < d2) d2 = v2, i1 = v.index;
      });
    } while (i1 !== null);

    that._found = i0;

    return radius == null || d2 <= radius * radius ? cell.site : null;
  }
}

// CONCATENATED MODULE: ./node_modules/d3-voronoi/src/voronoi.js




/* harmony default export */ var src_voronoi = (function() {
  var x = src_point_x,
      y = src_point_y,
      extent = null;

  function voronoi(data) {
    return new Diagram(data.map(function(d, i) {
      var s = [Math.round(x(d, i, data) / Diagram_epsilon) * Diagram_epsilon, Math.round(y(d, i, data) / Diagram_epsilon) * Diagram_epsilon];
      s.index = i;
      s.data = d;
      return s;
    }), extent);
  }

  voronoi.polygons = function(data) {
    return voronoi(data).polygons();
  };

  voronoi.links = function(data) {
    return voronoi(data).links();
  };

  voronoi.triangles = function(data) {
    return voronoi(data).triangles();
  };

  voronoi.x = function(_) {
    return arguments.length ? (x = typeof _ === "function" ? _ : d3_voronoi_src_constant(+_), voronoi) : x;
  };

  voronoi.y = function(_) {
    return arguments.length ? (y = typeof _ === "function" ? _ : d3_voronoi_src_constant(+_), voronoi) : y;
  };

  voronoi.extent = function(_) {
    return arguments.length ? (extent = _ == null ? null : [[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]], voronoi) : extent && [[extent[0][0], extent[0][1]], [extent[1][0], extent[1][1]]];
  };

  voronoi.size = function(_) {
    return arguments.length ? (extent = _ == null ? null : [[0, 0], [+_[0], +_[1]]], voronoi) : extent && [extent[1][0] - extent[0][0], extent[1][1] - extent[0][1]];
  };

  return voronoi;
});

// CONCATENATED MODULE: ./node_modules/d3-voronoi/index.js


// CONCATENATED MODULE: ./node_modules/d3-zoom/src/constant.js
/* harmony default export */ var d3_zoom_src_constant = (function(x) {
  return function() {
    return x;
  };
});

// CONCATENATED MODULE: ./node_modules/d3-zoom/src/event.js
function ZoomEvent(target, type, transform) {
  this.target = target;
  this.type = type;
  this.transform = transform;
}

// CONCATENATED MODULE: ./node_modules/d3-zoom/src/transform.js
function Transform(k, x, y) {
  this.k = k;
  this.x = x;
  this.y = y;
}

Transform.prototype = {
  constructor: Transform,
  scale: function(k) {
    return k === 1 ? this : new Transform(this.k * k, this.x, this.y);
  },
  translate: function(x, y) {
    return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);
  },
  apply: function(point) {
    return [point[0] * this.k + this.x, point[1] * this.k + this.y];
  },
  applyX: function(x) {
    return x * this.k + this.x;
  },
  applyY: function(y) {
    return y * this.k + this.y;
  },
  invert: function(location) {
    return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];
  },
  invertX: function(x) {
    return (x - this.x) / this.k;
  },
  invertY: function(y) {
    return (y - this.y) / this.k;
  },
  rescaleX: function(x) {
    return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));
  },
  rescaleY: function(y) {
    return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));
  },
  toString: function() {
    return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")";
  }
};

var transform_identity = new Transform(1, 0, 0);

transform_transform.prototype = Transform.prototype;

function transform_transform(node) {
  return node.__zoom || transform_identity;
}

// CONCATENATED MODULE: ./node_modules/d3-zoom/src/noevent.js


function src_noevent_nopropagation() {
  on_event.stopImmediatePropagation();
}

/* harmony default export */ var d3_zoom_src_noevent = (function() {
  on_event.preventDefault();
  on_event.stopImmediatePropagation();
});

// CONCATENATED MODULE: ./node_modules/d3-zoom/src/zoom.js










// Ignore right-click, since that should open the context menu.
function zoom_defaultFilter() {
  return !on_event.button;
}

function zoom_defaultExtent() {
  var e = this, w, h;
  if (e instanceof SVGElement) {
    e = e.ownerSVGElement || e;
    w = e.width.baseVal.value;
    h = e.height.baseVal.value;
  } else {
    w = e.clientWidth;
    h = e.clientHeight;
  }
  return [[0, 0], [w, h]];
}

function defaultTransform() {
  return this.__zoom || transform_identity;
}

function defaultWheelDelta() {
  return -on_event.deltaY * (on_event.deltaMode ? 120 : 1) / 500;
}

function zoom_defaultTouchable() {
  return "ontouchstart" in this;
}

function defaultConstrain(transform, extent, translateExtent) {
  var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],
      dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],
      dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],
      dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];
  return transform.translate(
    dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),
    dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)
  );
}

/* harmony default export */ var src_zoom = (function() {
  var filter = zoom_defaultFilter,
      extent = zoom_defaultExtent,
      constrain = defaultConstrain,
      wheelDelta = defaultWheelDelta,
      touchable = zoom_defaultTouchable,
      scaleExtent = [0, Infinity],
      translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],
      duration = 250,
      interpolate = d3_interpolate["v" /* interpolateZoom */],
      gestures = [],
      listeners = src_dispatch("start", "zoom", "end"),
      touchstarting,
      touchending,
      touchDelay = 500,
      wheelDelay = 150,
      clickDistance2 = 0;

  function zoom(selection) {
    selection
        .property("__zoom", defaultTransform)
        .on("wheel.zoom", wheeled)
        .on("mousedown.zoom", mousedowned)
        .on("dblclick.zoom", dblclicked)
      .filter(touchable)
        .on("touchstart.zoom", touchstarted)
        .on("touchmove.zoom", touchmoved)
        .on("touchend.zoom touchcancel.zoom", touchended)
        .style("touch-action", "none")
        .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
  }

  zoom.transform = function(collection, transform) {
    var selection = collection.selection ? collection.selection() : collection;
    selection.property("__zoom", defaultTransform);
    if (collection !== selection) {
      schedule(collection, transform);
    } else {
      selection.interrupt().each(function() {
        gesture(this, arguments)
            .start()
            .zoom(null, typeof transform === "function" ? transform.apply(this, arguments) : transform)
            .end();
      });
    }
  };

  zoom.scaleBy = function(selection, k) {
    zoom.scaleTo(selection, function() {
      var k0 = this.__zoom.k,
          k1 = typeof k === "function" ? k.apply(this, arguments) : k;
      return k0 * k1;
    });
  };

  zoom.scaleTo = function(selection, k) {
    zoom.transform(selection, function() {
      var e = extent.apply(this, arguments),
          t0 = this.__zoom,
          p0 = centroid(e),
          p1 = t0.invert(p0),
          k1 = typeof k === "function" ? k.apply(this, arguments) : k;
      return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);
    });
  };

  zoom.translateBy = function(selection, x, y) {
    zoom.transform(selection, function() {
      return constrain(this.__zoom.translate(
        typeof x === "function" ? x.apply(this, arguments) : x,
        typeof y === "function" ? y.apply(this, arguments) : y
      ), extent.apply(this, arguments), translateExtent);
    });
  };

  zoom.translateTo = function(selection, x, y) {
    zoom.transform(selection, function() {
      var e = extent.apply(this, arguments),
          t = this.__zoom,
          p = centroid(e);
      return constrain(transform_identity.translate(p[0], p[1]).scale(t.k).translate(
        typeof x === "function" ? -x.apply(this, arguments) : -x,
        typeof y === "function" ? -y.apply(this, arguments) : -y
      ), e, translateExtent);
    });
  };

  function scale(transform, k) {
    k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));
    return k === transform.k ? transform : new Transform(k, transform.x, transform.y);
  }

  function translate(transform, p0, p1) {
    var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;
    return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);
  }

  function centroid(extent) {
    return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];
  }

  function schedule(transition, transform, center) {
    transition
        .on("start.zoom", function() { gesture(this, arguments).start(); })
        .on("interrupt.zoom end.zoom", function() { gesture(this, arguments).end(); })
        .tween("zoom", function() {
          var that = this,
              args = arguments,
              g = gesture(that, args),
              e = extent.apply(that, args),
              p = center || centroid(e),
              w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),
              a = that.__zoom,
              b = typeof transform === "function" ? transform.apply(that, args) : transform,
              i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));
          return function(t) {
            if (t === 1) t = b; // Avoid rounding error on end.
            else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }
            g.zoom(null, t);
          };
        });
  }

  function gesture(that, args) {
    for (var i = 0, n = gestures.length, g; i < n; ++i) {
      if ((g = gestures[i]).that === that) {
        return g;
      }
    }
    return new Gesture(that, args);
  }

  function Gesture(that, args) {
    this.that = that;
    this.args = args;
    this.index = -1;
    this.active = 0;
    this.extent = extent.apply(that, args);
  }

  Gesture.prototype = {
    start: function() {
      if (++this.active === 1) {
        this.index = gestures.push(this) - 1;
        this.emit("start");
      }
      return this;
    },
    zoom: function(key, transform) {
      if (this.mouse && key !== "mouse") this.mouse[1] = transform.invert(this.mouse[0]);
      if (this.touch0 && key !== "touch") this.touch0[1] = transform.invert(this.touch0[0]);
      if (this.touch1 && key !== "touch") this.touch1[1] = transform.invert(this.touch1[0]);
      this.that.__zoom = transform;
      this.emit("zoom");
      return this;
    },
    end: function() {
      if (--this.active === 0) {
        gestures.splice(this.index, 1);
        this.index = -1;
        this.emit("end");
      }
      return this;
    },
    emit: function(type) {
      customEvent(new ZoomEvent(zoom, type, this.that.__zoom), listeners.apply, listeners, [type, this.that, this.args]);
    }
  };

  function wheeled() {
    if (!filter.apply(this, arguments)) return;
    var g = gesture(this, arguments),
        t = this.__zoom,
        k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),
        p = mouse(this);

    // If the mouse is in the same location as before, reuse it.
    // If there were recent wheel events, reset the wheel idle timeout.
    if (g.wheel) {
      if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {
        g.mouse[1] = t.invert(g.mouse[0] = p);
      }
      clearTimeout(g.wheel);
    }

    // If this wheel event won’t trigger a transform change, ignore it.
    else if (t.k === k) return;

    // Otherwise, capture the mouse point and location at the start.
    else {
      g.mouse = [p, t.invert(p)];
      interrupt(this);
      g.start();
    }

    d3_zoom_src_noevent();
    g.wheel = setTimeout(wheelidled, wheelDelay);
    g.zoom("mouse", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));

    function wheelidled() {
      g.wheel = null;
      g.end();
    }
  }

  function mousedowned() {
    if (touchending || !filter.apply(this, arguments)) return;
    var g = gesture(this, arguments),
        v = src_select(on_event.view).on("mousemove.zoom", mousemoved, true).on("mouseup.zoom", mouseupped, true),
        p = mouse(this),
        x0 = on_event.clientX,
        y0 = on_event.clientY;

    nodrag(on_event.view);
    src_noevent_nopropagation();
    g.mouse = [p, this.__zoom.invert(p)];
    interrupt(this);
    g.start();

    function mousemoved() {
      d3_zoom_src_noevent();
      if (!g.moved) {
        var dx = on_event.clientX - x0, dy = on_event.clientY - y0;
        g.moved = dx * dx + dy * dy > clickDistance2;
      }
      g.zoom("mouse", constrain(translate(g.that.__zoom, g.mouse[0] = mouse(g.that), g.mouse[1]), g.extent, translateExtent));
    }

    function mouseupped() {
      v.on("mousemove.zoom mouseup.zoom", null);
      yesdrag(on_event.view, g.moved);
      d3_zoom_src_noevent();
      g.end();
    }
  }

  function dblclicked() {
    if (!filter.apply(this, arguments)) return;
    var t0 = this.__zoom,
        p0 = mouse(this),
        p1 = t0.invert(p0),
        k1 = t0.k * (on_event.shiftKey ? 0.5 : 2),
        t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, arguments), translateExtent);

    d3_zoom_src_noevent();
    if (duration > 0) src_select(this).transition().duration(duration).call(schedule, t1, p0);
    else src_select(this).call(zoom.transform, t1);
  }

  function touchstarted() {
    if (!filter.apply(this, arguments)) return;
    var g = gesture(this, arguments),
        touches = on_event.changedTouches,
        started,
        n = touches.length, i, t, p;

    src_noevent_nopropagation();
    for (i = 0; i < n; ++i) {
      t = touches[i], p = src_touch(this, touches, t.identifier);
      p = [p, this.__zoom.invert(p), t.identifier];
      if (!g.touch0) g.touch0 = p, started = true;
      else if (!g.touch1) g.touch1 = p;
    }

    // If this is a dbltap, reroute to the (optional) dblclick.zoom handler.
    if (touchstarting) {
      touchstarting = clearTimeout(touchstarting);
      if (!g.touch1) {
        g.end();
        p = src_select(this).on("dblclick.zoom");
        if (p) p.apply(this, arguments);
        return;
      }
    }

    if (started) {
      touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);
      interrupt(this);
      g.start();
    }
  }

  function touchmoved() {
    var g = gesture(this, arguments),
        touches = on_event.changedTouches,
        n = touches.length, i, t, p, l;

    d3_zoom_src_noevent();
    if (touchstarting) touchstarting = clearTimeout(touchstarting);
    for (i = 0; i < n; ++i) {
      t = touches[i], p = src_touch(this, touches, t.identifier);
      if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;
      else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;
    }
    t = g.that.__zoom;
    if (g.touch1) {
      var p0 = g.touch0[0], l0 = g.touch0[1],
          p1 = g.touch1[0], l1 = g.touch1[1],
          dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,
          dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;
      t = scale(t, Math.sqrt(dp / dl));
      p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];
      l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];
    }
    else if (g.touch0) p = g.touch0[0], l = g.touch0[1];
    else return;
    g.zoom("touch", constrain(translate(t, p, l), g.extent, translateExtent));
  }

  function touchended() {
    var g = gesture(this, arguments),
        touches = on_event.changedTouches,
        n = touches.length, i, t;

    src_noevent_nopropagation();
    if (touchending) clearTimeout(touchending);
    touchending = setTimeout(function() { touchending = null; }, touchDelay);
    for (i = 0; i < n; ++i) {
      t = touches[i];
      if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;
      else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;
    }
    if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;
    if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);
    else g.end();
  }

  zoom.wheelDelta = function(_) {
    return arguments.length ? (wheelDelta = typeof _ === "function" ? _ : d3_zoom_src_constant(+_), zoom) : wheelDelta;
  };

  zoom.filter = function(_) {
    return arguments.length ? (filter = typeof _ === "function" ? _ : d3_zoom_src_constant(!!_), zoom) : filter;
  };

  zoom.touchable = function(_) {
    return arguments.length ? (touchable = typeof _ === "function" ? _ : d3_zoom_src_constant(!!_), zoom) : touchable;
  };

  zoom.extent = function(_) {
    return arguments.length ? (extent = typeof _ === "function" ? _ : d3_zoom_src_constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;
  };

  zoom.scaleExtent = function(_) {
    return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];
  };

  zoom.translateExtent = function(_) {
    return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];
  };

  zoom.constrain = function(_) {
    return arguments.length ? (constrain = _, zoom) : constrain;
  };

  zoom.duration = function(_) {
    return arguments.length ? (duration = +_, zoom) : duration;
  };

  zoom.interpolate = function(_) {
    return arguments.length ? (interpolate = _, zoom) : interpolate;
  };

  zoom.on = function() {
    var value = listeners.on.apply(listeners, arguments);
    return value === listeners ? zoom : value;
  };

  zoom.clickDistance = function(_) {
    return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);
  };

  return zoom;
});

// CONCATENATED MODULE: ./node_modules/d3-zoom/index.js



// CONCATENATED MODULE: ./node_modules/d3/index.js































// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "default", function() { return /* reexport */ pages_DiscoverAndList_DiscoverAndList; });

// EXTERNAL MODULE: ./node_modules/antd/lib/popover/style/index.js
var style = __webpack_require__(95);

// EXTERNAL MODULE: ./node_modules/antd/lib/popover/index.js
var popover = __webpack_require__(44);
var popover_default = /*#__PURE__*/__webpack_require__.n(popover);

// EXTERNAL MODULE: ./node_modules/antd/lib/progress/style/index.js
var progress_style = __webpack_require__(361);

// EXTERNAL MODULE: ./node_modules/antd/lib/progress/index.js
var progress = __webpack_require__(204);
var progress_default = /*#__PURE__*/__webpack_require__.n(progress);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
var classCallCheck = __webpack_require__(9);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js
var createClass = __webpack_require__(10);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__(11);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
var getPrototypeOf = __webpack_require__(12);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
var inherits = __webpack_require__(13);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
var assertThisInitialized = __webpack_require__(16);

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__(7);

// EXTERNAL MODULE: ./node_modules/react-document-title/index.js
var react_document_title = __webpack_require__(98);
var react_document_title_default = /*#__PURE__*/__webpack_require__.n(react_document_title);

// EXTERNAL MODULE: ./node_modules/react-intl/lib/index.es.js
var index_es = __webpack_require__(4);

// EXTERNAL MODULE: ./node_modules/react-transition-group/index.js
var react_transition_group = __webpack_require__(264);

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__(38);

// EXTERNAL MODULE: ./node_modules/react-breakpoints/lib/index.js
var lib = __webpack_require__(65);

// EXTERNAL MODULE: ./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js + 3 modules
var styled_base_browser_esm = __webpack_require__(6);

// CONCATENATED MODULE: ./src/js/pages/DiscoverAndList/styled.js
var DiscoverAndListWrapper=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"enob0dg0",label:"DiscoverAndListWrapper"})( true?"":undefined);//   height: ${props => (props.pathname === '/discover/singleResult' ? 'unset' : '90vh')};
//   overflow-y: ${props => (props.pathname === '/discover/singleResult' ? 'unset' : 'hidden')};
// `;
// EXTERNAL MODULE: ./src/js/utils/eNumsConverters.js
var eNumsConverters = __webpack_require__(126);

// EXTERNAL MODULE: ./src/js/constants/index.js + 1 modules
var constants = __webpack_require__(15);

// EXTERNAL MODULE: ./src/js/components/common/FlexStyle/index.js + 1 modules
var FlexStyle = __webpack_require__(45);

// EXTERNAL MODULE: ./src/js/components/common/WideButton/index.js + 1 modules
var WideButton = __webpack_require__(209);

// EXTERNAL MODULE: ./src/js/components/common/Button/index.js
var Button = __webpack_require__(30);

// EXTERNAL MODULE: ./node_modules/antd/lib/modal/style/index.js
var modal_style = __webpack_require__(88);

// EXTERNAL MODULE: ./node_modules/antd/lib/modal/index.js
var modal = __webpack_require__(55);
var modal_default = /*#__PURE__*/__webpack_require__.n(modal);

// EXTERNAL MODULE: ./node_modules/antd/lib/button/style/index.js
var button_style = __webpack_require__(66);

// EXTERNAL MODULE: ./node_modules/antd/lib/button/index.js
var lib_button = __webpack_require__(39);
var button_default = /*#__PURE__*/__webpack_require__.n(lib_button);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js
var defineProperty = __webpack_require__(122);

// EXTERNAL MODULE: ./node_modules/antd/lib/form/style/index.js
var form_style = __webpack_require__(120);

// EXTERNAL MODULE: ./node_modules/antd/lib/form/index.js
var lib_form = __webpack_require__(43);
var form_default = /*#__PURE__*/__webpack_require__.n(lib_form);

// EXTERNAL MODULE: ./node_modules/lodash/kebabCase.js
var kebabCase = __webpack_require__(410);
var kebabCase_default = /*#__PURE__*/__webpack_require__.n(kebabCase);

// EXTERNAL MODULE: ./node_modules/lodash/forEach.js
var forEach = __webpack_require__(207);
var forEach_default = /*#__PURE__*/__webpack_require__.n(forEach);

// EXTERNAL MODULE: ./node_modules/lodash/startCase.js
var startCase = __webpack_require__(227);
var startCase_default = /*#__PURE__*/__webpack_require__.n(startCase);

// EXTERNAL MODULE: ./node_modules/react-datepicker/es/index.js + 6 modules
var es = __webpack_require__(421);

// EXTERNAL MODULE: ./node_modules/moment/moment.js
var moment = __webpack_require__(23);
var moment_default = /*#__PURE__*/__webpack_require__.n(moment);

// EXTERNAL MODULE: ./src/js/components/common/Input/index.js
var Input = __webpack_require__(46);

// EXTERNAL MODULE: ./src/js/components/common/Dropdown/index.js + 1 modules
var Dropdown = __webpack_require__(47);

// EXTERNAL MODULE: ./src/js/constants/themes.js
var themes = __webpack_require__(18);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/extends.js
var esm_extends = __webpack_require__(33);

// CONCATENATED MODULE: ./src/js/components/singleItemStrategies/FixedProfits/styled.js
var DataContainer=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"epmanng0",label:"DataContainer"})( true?{name:"jy2h9k",styles:"display:flex;flex-direction:column;width:70%;"}:undefined);
// EXTERNAL MODULE: ./node_modules/antd/lib/radio/style/index.js
var radio_style = __webpack_require__(160);

// EXTERNAL MODULE: ./node_modules/antd/lib/radio/index.js
var lib_radio = __webpack_require__(59);
var radio_default = /*#__PURE__*/__webpack_require__.n(lib_radio);

// EXTERNAL MODULE: ./src/js/utils/parsers.js
var parsers = __webpack_require__(93);

// CONCATENATED MODULE: ./src/js/components/singleItemStrategies/ProfitRow/styled.js
var KeyText=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"e1cjkcyj0",label:"KeyText"})( true?{name:"itc0wz",styles:"width:190px;height:21px;font-family:Stolzl-Medium;font-size:14px;font-weight:500;font-style:normal;font-stretch:normal;line-height:2;letter-spacing:normal;text-align:left;padding-right:15px;cursor:default;"}:undefined);var InputRow=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"e1cjkcyj1",label:"InputRow"})( true?{name:"1sjrh9",styles:"height:38px;display:flex;margin-left:25px;"}:undefined);var ValueField=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"e1cjkcyj2",label:"ValueField"})( true?{name:"1ans4bg",styles:"width:12%;line-height:39px;font-family:Stolzl;font-size:14px;font-weight:normal;font-style:normal;font-stretch:normal;letter-spacing:normal;text-align:left;"}:undefined);var ValueSign=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('span',{target:"e1cjkcyj3",label:"ValueSign"})( true?{name:"x6tl5d",styles:"padding-right:8px;width:23px;line-height:39px;"}:undefined);var InputContainer=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"e1cjkcyj4",label:"InputContainer"})( true?{name:"hboir5",styles:"display:flex;width:100%;"}:undefined);
// CONCATENATED MODULE: ./src/js/components/singleItemStrategies/ProfitRow/ProfitRow.js
var FormItem=form_default.a.Item;var RadioGroup=radio_default.a.Group;var ProfitRow_ref= true?{name:"gecxke-ProfitRow",styles:"display:inline;label:ProfitRow;"}:undefined;var ProfitRow_ProfitRow=function ProfitRow(props){var labelKey=props.labelKey,Valuekey=props.Valuekey,readOnly=props.readOnly,isConnectedToType=props.isConnectedToType,forcePercent=props.forcePercent,isDirectRadioButtons=props.isDirectRadioButtons,children=props.children,currentItem=props.currentItem,currentDiscovery=props.currentDiscovery,handleStrategyChange=props.handleStrategyChange,form=props.form,formatMessage=props.formatMessage,setProfitType=props.setProfitType,enums=props.enums,settingsStore=props.settingsStore,updateLastEdit=props.updateLastEdit,disabled=props.disabled;var getFieldDecorator=form.getFieldDecorator;var renderMainRadioButtons=function renderMainRadioButtons(profitType){return Object(core_browser_esm["c" /* jsx */])("div",{style:{display:'flex',alignItems:'center',marginLeft:'30px'}},Object(core_browser_esm["c" /* jsx */])(RadioGroup,{onChange:setProfitType,defaultValue:profitType},Object(core_browser_esm["c" /* jsx */])(radio_default.a,{value:enums.TYPE_OF_DISCOVERY_PROFIT_TYPE.CURRENCY_UNITS},Object(parsers["c" /* getSignByProfitType */])(2,currentDiscovery.pricingStrategy.currency)),Object(core_browser_esm["c" /* jsx */])(radio_default.a,{value:enums.TYPE_OF_DISCOVERY_PROFIT_TYPE.PERCENT},"%")));};var getValueType=function getValueType(){if(Valuekey==='penetrationDownDays'||Valuekey==='penetrationUpSalesCount'){return null;}if(isConnectedToType){return Object(parsers["c" /* getSignByProfitType */])(currentDiscovery.pricingStrategy.profitType,settingsStore.userProfile.defaultCurrencyId);}else if(forcePercent){return'%';}return Object(parsers["c" /* getSignByProfitType */])(2,currentDiscovery.pricingStrategy.currency);};var profitKeys={'1':'profitPercent','2':'profitValue'};var realKeyValue=isConnectedToType?currentItem.pricingStrategy[profitKeys[currentDiscovery.pricingStrategy.profitType]]:currentItem.pricingStrategy[Valuekey];return Object(core_browser_esm["c" /* jsx */])(InputContainer,null,Object(core_browser_esm["c" /* jsx */])(KeyText,null,formatMessage({id:labelKey})),Object(core_browser_esm["c" /* jsx */])(InputRow,null,Object(core_browser_esm["c" /* jsx */])(ValueSign,null,getValueType(Valuekey,isConnectedToType,forcePercent)),!readOnly?Object(core_browser_esm["c" /* jsx */])(FormItem,null,getFieldDecorator(Valuekey,{initialValue:realKeyValue,rules:[{pattern:/^-?[0-9]\d*(\.\d+)?$/g,message:'Please input your number!'}]})(Object(core_browser_esm["c" /* jsx */])(Input["a" /* default */],{width:"85px",onBlur:handleStrategyChange,onChange:function onChange(e,itemid){return updateLastEdit(e,itemid,handleStrategyChange);},onPressEnter:handleStrategyChange,disabled:disabled})),children):Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(ValueField,{css:ProfitRow_ref},currentItem.pricingStrategy[Valuekey]," ",children))),isDirectRadioButtons&&renderMainRadioButtons(currentDiscovery.pricingStrategy.profitType));};/* harmony default export */ var singleItemStrategies_ProfitRow_ProfitRow = (ProfitRow_ProfitRow);
// CONCATENATED MODULE: ./src/js/components/singleItemStrategies/ProfitRow/index.js

// CONCATENATED MODULE: ./src/js/components/singleItemStrategies/FixedProfits/FixedProfits.js
var FixedProfits_FixedProfits=function FixedProfits(props){var currentItem=props.currentItem,currentDiscovery=props.currentDiscovery,handleStrategyChange=props.handleStrategyChange,form=props.form,formatMessage=props.formatMessage,setProfitType=props.setProfitType,enums=props.enums,enumsReverse=props.enumsReverse,settingsStore=props.settingsStore,updateLastEdit=props.updateLastEdit;var commonProps={currentItem:currentItem,currentDiscovery:currentDiscovery,handleStrategyChange:handleStrategyChange,form:form,formatMessage:formatMessage,setProfitType:setProfitType,enums:enums,enumsReverse:enumsReverse,settingsStore:settingsStore,updateLastEdit:updateLastEdit};return Object(core_browser_esm["c" /* jsx */])(DataContainer,null,Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_ProfitRow_ProfitRow,Object(esm_extends["a" /* default */])({},commonProps,{labelKey:"common.sourcePrice",Valuekey:"sourcePrice",readOnly:true})),Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_ProfitRow_ProfitRow,Object(esm_extends["a" /* default */])({},commonProps,{labelKey:"common.destinationPrice",Valuekey:"salePrice"})),Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_ProfitRow_ProfitRow,Object(esm_extends["a" /* default */])({},commonProps,{labelKey:"common.breakEven",Valuekey:"breakEven",forcePercent:true})),Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_ProfitRow_ProfitRow,Object(esm_extends["a" /* default */])({},commonProps,{labelKey:"common.profit",Valuekey:"profit",isConnectedToType:true,isDirectRadioButtons:true})));};/* harmony default export */ var singleItemStrategies_FixedProfits_FixedProfits = (FixedProfits_FixedProfits);
// CONCATENATED MODULE: ./src/js/components/singleItemStrategies/FixedProfits/index.js

// CONCATENATED MODULE: ./src/js/components/singleItemStrategies/Competition/styled.js
var styled_DataContainer=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"e1b5lj850",label:"DataContainer"})( true?{name:"jy2h9k",styles:"display:flex;flex-direction:column;width:70%;"}:undefined);var Separator=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"e1b5lj851",label:"Separator"})( true?{name:"5rnpki",styles:"width:100%;height:1px;border-bottom:solid 1px #ebebeb;margin-bottom:10px;margin-top:10px;"}:undefined);
// CONCATENATED MODULE: ./src/js/components/singleItemStrategies/Competition/Competition.js
var Competition_Competition=function Competition(props){var currentItem=props.currentItem,currentDiscovery=props.currentDiscovery,handleStrategyChange=props.handleStrategyChange,form=props.form,formatMessage=props.formatMessage,setProfitType=props.setProfitType,enums=props.enums,enumsReverse=props.enumsReverse;var commonProps={currentItem:currentItem,currentDiscovery:currentDiscovery,handleStrategyChange:handleStrategyChange,form:form,formatMessage:formatMessage,setProfitType:setProfitType,enums:enums,enumsReverse:enumsReverse};return Object(core_browser_esm["c" /* jsx */])(styled_DataContainer,null,Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_ProfitRow_ProfitRow,Object(esm_extends["a" /* default */])({},commonProps,{labelKey:"common.sourcePrice",Valuekey:"sourcePrice",readOnly:true})),Object(core_browser_esm["c" /* jsx */])(Separator,null),Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_ProfitRow_ProfitRow,Object(esm_extends["a" /* default */])({},commonProps,{labelKey:"common.destinationPrice",Valuekey:"destinationPrice"})),Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_ProfitRow_ProfitRow,Object(esm_extends["a" /* default */])({},commonProps,{labelKey:"common.breakEven",Valuekey:"breakEven",forcePercent:true})),Object(core_browser_esm["c" /* jsx */])(Separator,null),Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_ProfitRow_ProfitRow,Object(esm_extends["a" /* default */])({},commonProps,{labelKey:"discover.minimalProfit",Valuekey:"minimalProfit",isConnectedToType:true})),Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_ProfitRow_ProfitRow,Object(esm_extends["a" /* default */])({},commonProps,{labelKey:"discover.optimalProfit",Valuekey:"optimalProfit",isConnectedToType:true})),Object(core_browser_esm["c" /* jsx */])(Separator,null),Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_ProfitRow_ProfitRow,Object(esm_extends["a" /* default */])({},commonProps,{labelKey:"discover.assumedProfit",Valuekey:"profitPercent",readOnly:true,forcePercent:true})),Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_ProfitRow_ProfitRow,Object(esm_extends["a" /* default */])({},commonProps,{labelKey:"discover.assumedProfit",Valuekey:"assumedProfitCurrencyUnits",readOnly:true})));};/* harmony default export */ var singleItemStrategies_Competition_Competition = (Competition_Competition);
// CONCATENATED MODULE: ./src/js/components/singleItemStrategies/Competition/index.js

// CONCATENATED MODULE: ./src/js/components/singleItemStrategies/Penetration/styled.js
var Penetration_styled_DataContainer=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ea6opuc0",label:"DataContainer"})( true?{name:"jy2h9k",styles:"display:flex;flex-direction:column;width:70%;"}:undefined);var styled_Separator=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ea6opuc1",label:"Separator"})( true?{name:"5rnpki",styles:"width:100%;height:1px;border-bottom:solid 1px #ebebeb;margin-bottom:10px;margin-top:10px;"}:undefined);var AdditionalText=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('span',{target:"ea6opuc2",label:"AdditionalText"})( true?{name:"37owli",styles:"font-size:14px;font-weight:300;line-height:39px;padding-left:13px;"}:undefined);
// CONCATENATED MODULE: ./src/js/components/singleItemStrategies/Penetration/Penetration.js
var Penetration_Penetration=function Penetration(props){var currentItem=props.currentItem,currentDiscovery=props.currentDiscovery,handleStrategyChange=props.handleStrategyChange,form=props.form,formatMessage=props.formatMessage,setProfitType=props.setProfitType,enums=props.enums,enumsReverse=props.enumsReverse,settingsStore=props.settingsStore,updateLastEdit=props.updateLastEdit;var commonProps={currentItem:currentItem,currentDiscovery:currentDiscovery,handleStrategyChange:handleStrategyChange,form:form,formatMessage:formatMessage,setProfitType:setProfitType,enums:enums,enumsReverse:enumsReverse,settingsStore:settingsStore,updateLastEdit:updateLastEdit};return Object(core_browser_esm["c" /* jsx */])(Penetration_styled_DataContainer,null,Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_ProfitRow_ProfitRow,Object(esm_extends["a" /* default */])({},commonProps,{labelKey:"common.sourcePrice",Valuekey:"sourcePrice",readOnly:true})),Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_ProfitRow_ProfitRow,Object(esm_extends["a" /* default */])({},commonProps,{labelKey:"common.destinationPrice",Valuekey:"salePrice"})),Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_ProfitRow_ProfitRow,Object(esm_extends["a" /* default */])({},commonProps,{labelKey:"common.breakEven",Valuekey:"breakEven",forcePercent:true})),Object(core_browser_esm["c" /* jsx */])(styled_Separator,null),Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_ProfitRow_ProfitRow,Object(esm_extends["a" /* default */])({},commonProps,{labelKey:"discover.itemWasSold",Valuekey:"penetrationUpSalesCount",readOnly:true}),Object(core_browser_esm["c" /* jsx */])(AdditionalText,null,formatMessage({id:'pricing.time'}))),Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_ProfitRow_ProfitRow,Object(esm_extends["a" /* default */])({},commonProps,{labelKey:"discover.timesRaisePriceBy$",Valuekey:"penetrationUpCurrencyUnits",readOnly:true})),Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_ProfitRow_ProfitRow,Object(esm_extends["a" /* default */])({},commonProps,{labelKey:"discover.toAMaxof",Valuekey:"penetrationMaximalProfitPercentOrCurrencyUnits",readOnly:true// isConnectedToType
// isDirectRadioButtons
})),Object(core_browser_esm["c" /* jsx */])(styled_Separator,null),Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_ProfitRow_ProfitRow,Object(esm_extends["a" /* default */])({},commonProps,{labelKey:"discover.daysDrop",Valuekey:"penetrationDownDays",readOnly:true}),Object(core_browser_esm["c" /* jsx */])(AdditionalText,null,formatMessage({id:'pricing.days'}))),Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_ProfitRow_ProfitRow,Object(esm_extends["a" /* default */])({},commonProps,{labelKey:"discover.DropPriceBy",Valuekey:"penetrationDownCurrencyUnits",readOnly:true})),Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_ProfitRow_ProfitRow,Object(esm_extends["a" /* default */])({},commonProps,{labelKey:"discover.toAMinOf",Valuekey:"minimalProfitPercentOrUnit",readOnly:true})));};/* harmony default export */ var singleItemStrategies_Penetration_Penetration = (Penetration_Penetration);
// CONCATENATED MODULE: ./src/js/components/singleItemStrategies/Penetration/index.js

// EXTERNAL MODULE: ./node_modules/antd/lib/icon/style/index.js
var icon_style = __webpack_require__(276);

// EXTERNAL MODULE: ./node_modules/antd/lib/icon/index.js
var lib_icon = __webpack_require__(104);
var icon_default = /*#__PURE__*/__webpack_require__.n(lib_icon);

// CONCATENATED MODULE: ./src/js/components/common/LabelsSection/styled.js
// import { themeColors } from '../../../constants/themes';
var styled_InputRow=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"e16fxq8g0",label:"InputRow"})("font-size:14px;font-weight:300;margin-left:",function(props){return props.inline?0:'215px';},";width:",function(props){return props.inline?'215px':'70%';},";"+( true?"":undefined));var Container=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"e16fxq8g1",label:"Container"})("width:",function(props){return props.inline?'215px':'90%';},";overflow-x:",function(props){return props.inline?'scroll':'unset';},";display:flex;flex-direction:",function(props){return props.inline?'row':'column';},";"+( true?"":undefined));var styled_KeyText=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"e16fxq8g2",label:"KeyText"})( true?{name:"3t990k",styles:"width:30%;height:38px;"}:undefined);
// EXTERNAL MODULE: ./node_modules/antd/lib/tag/style/index.js
var tag_style = __webpack_require__(218);

// EXTERNAL MODULE: ./node_modules/antd/lib/tag/index.js
var lib_tag = __webpack_require__(130);
var tag_default = /*#__PURE__*/__webpack_require__.n(lib_tag);

// CONCATENATED MODULE: ./src/js/components/common/Tag/index.js
var CustomInput=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])(tag_default.a,{target:"eec5qqp0",label:"CustomInput"})("border-radius:15px;border-color:",function(_ref){var theme=_ref.theme;return theme.colors.greyMid;},";color:",function(_ref2){var theme=_ref2.theme;return theme.colors.greySecondary;},";font-size:",function(_ref3){var theme=_ref3.theme,small=_ref3.small;return small?theme.fontSize.small:theme.fontSize.medium;},";line-height:",function(_ref4){var theme=_ref4.theme;return theme.lineHeight.big;},";height:",function(_ref5){var height=_ref5.height;return height||'22px';},";border-color:",function(_ref6){var theme=_ref6.theme;return theme.colors.greyMid;},";background-color:transparent;:hover{border-color:",function(_ref7){var theme=_ref7.theme;return theme.colors.blueMed;},";border-right-width:1px !important;}i{float:left;line-height:1.8;margin-right:3px;}"+( true?"":undefined));/* harmony default export */ var Tag = (CustomInput);
// CONCATENATED MODULE: ./src/js/components/common/LabelsSection/LabelsSection.js
var LabelsSection_LabelsSection=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(LabelsSection,_Component);function LabelsSection(props){var _this;Object(classCallCheck["a" /* default */])(this,LabelsSection);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(LabelsSection).call(this,props));_this.deleteLabel=function(labelId){if(_this.props.disabled)return;var _this$props=_this.props,removeLabel=_this$props.removeLabel,discoveryParams=_this$props.discoveryParams,currentItem=_this$props.currentItem;removeLabel(labelId,Number(discoveryParams['discovery-id']),currentItem.id);};_this.saveInputRef=function(input){_this.input=input;};_this.handleInputChange=function(e){if(_this.props.disabled)return;_this.setState({labelsInputValue:e.target.value});};_this.handleLabelsChange=function(){if(_this.props.disabled)return;var _this$props2=_this.props,addLabel=_this$props2.addLabel,discoveryParams=_this$props2.discoveryParams,currentItem=_this$props2.currentItem;var labelsInputValue=_this.state.labelsInputValue;if((currentItem.itemLabels||[]).every(function(label){return label.name!==labelsInputValue;})&&labelsInputValue.trim().length>0){addLabel({discoveryId:Number(discoveryParams['discovery-id']),discoveryItemId:currentItem.id,name:labelsInputValue}).then(function(){_this.setState({labelsInputVisible:false,labelsInputValue:''});}).catch(function(){_this.setState({labelsInputVisible:false,labelsInputValue:''});// TODO show toast
});}else{_this.setState({labelsInputVisible:false,labelsInputValue:''});}};_this.showInput=function(){if(_this.props.disabled)return;_this.setState({labelsInputVisible:true},function(){return _this.input.focus();});};_this.state={labelsInputVisible:false,labelsInputValue:''};return _this;}Object(createClass["a" /* default */])(LabelsSection,[{key:"render",value:function render(){var _this2=this;var _this$props3=this.props,currentItem=_this$props3.currentItem,isTitleShown=_this$props3.isTitleShown,isInline=_this$props3.isInline;var _this$state=this.state,labelsInputValue=_this$state.labelsInputValue,labelsInputVisible=_this$state.labelsInputVisible;return Object(core_browser_esm["c" /* jsx */])(Container,{inline:isInline,className:"scroll-1"},Object(core_browser_esm["c" /* jsx */])("div",null,isTitleShown&&Object(core_browser_esm["c" /* jsx */])(styled_KeyText,{style:{width:'190px',display:'inline-block',fontWeight:'500'}},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.labels"})),labelsInputVisible?Object(core_browser_esm["c" /* jsx */])(Input["a" /* default */],{className:this.props.disabled?'disable-events':'',ref:this.saveInputRef,type:"text",size:"small",style:{width:'100px',height:'22px',borderRadius:'10px',marginBottom:'7px',marginLeft:'25px'},maxLength:15,value:labelsInputValue,onChange:this.handleInputChange,onBlur:this.handleLabelsChange,onPressEnter:this.handleLabelsChange}):Object(core_browser_esm["c" /* jsx */])(Tag,{className:this.props.disabled?'disable-events':'',onClick:this.showInput,style:{marginBottom:isInline?'0px':'10px',marginLeft:'24px'}},Object(core_browser_esm["c" /* jsx */])(icon_default.a,{type:"plus"}),isInline?'':Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"discover.newLabel"}))),Object(core_browser_esm["c" /* jsx */])(styled_InputRow,{inline:isInline},currentItem.itemLabels&&currentItem.itemLabels.map(function(label){return Object(core_browser_esm["c" /* jsx */])(Tag,{className:_this2.props.disabled?'disable-events':'',style:{marginBottom:isInline?'0px':'13px'},key:label.id,closable:true,onClose:function onClose(){return _this2.deleteLabel(label.id);}},label.name);})));}}]);return LabelsSection;}(react["Component"]);/* harmony default export */ var common_LabelsSection_LabelsSection = (LabelsSection_LabelsSection);
// CONCATENATED MODULE: ./src/js/components/common/LabelsSection/index.js

// EXTERNAL MODULE: ./src/js/components/common/ItemSpecifics/index.js + 2 modules
var ItemSpecifics = __webpack_require__(457);

// EXTERNAL MODULE: ./src/js/utils/Discover.js
var Discover = __webpack_require__(83);

// EXTERNAL MODULE: ./src/js/constants/classes/typography.js
var typography = __webpack_require__(241);

// EXTERNAL MODULE: ./src/js/constants/enums.js
var constants_enums = __webpack_require__(17);

// EXTERNAL MODULE: ./node_modules/lodash/isEqual.js
var isEqual = __webpack_require__(147);
var isEqual_default = /*#__PURE__*/__webpack_require__.n(isEqual);

// EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/SaveOutlined.js + 1 modules
var SaveOutlined = __webpack_require__(1604);

// EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/SaveTwoTone.js + 1 modules
var SaveTwoTone = __webpack_require__(1605);

// CONCATENATED MODULE: ./src/js/components/common/HTMLEditor/EditorStyleWrapper.js
/* harmony default export */ var EditorStyleWrapper = (Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1s8xeeg0"})( true?{name:"rfpe6r",styles:"background-color:#fff;border:1px solid #d9d9d9;border-radius:15px;padding:15px 40px 40px 15px;line-height:1.4;font-size:initial;position:relative;word-break:break-word;h1{display:block;font-size:2em;margin-top:0.67em;margin-bottom:0.67em;margin-left:0;margin-right:0;font-weight:bold;line-height:unset;}h2{display:block;font-size:1.5em;margin-top:0.83em;margin-bottom:0.83em;margin-left:0;margin-right:0;font-weight:bold;line-height:unset;}ul,ol{margin-left:1em;}input,textarea{font-family:'Roboto',sans-serif;line-height:1.4;background:#eee;}body{margin:0;}p{margin:0;}pre{padding:10px;background-color:#eee;white-space:pre-wrap;}code{font-family:monospace;background-color:#eee;padding:3px;}img{max-width:100%;max-height:20em;}blockquote{border-left:2px solid #ddd;margin-left:0;margin-right:0;padding-left:10px;color:#aaa;font-style:italic;}blockquote[dir='rtl']{border-left:none;padding-left:0;padding-right:10px;border-right:2px solid #ddd;}table{border-collapse:collapse;}td{padding:10px;border:2px solid #ddd;}input{box-sizing:border-box;font-size:0.85em;width:100%;padding:0.5em;border:2px solid #ddd;background:#fafafa;}input:focus{outline:0;border-color:blue;}[data-slate-editor] > * + *{margin-top:1em;}"}:undefined));
// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 3 modules
var slicedToArray = __webpack_require__(64);

// EXTERNAL MODULE: ./node_modules/slate/dist/index.es.js + 2 modules
var dist_index_es = __webpack_require__(29);

// EXTERNAL MODULE: ./node_modules/slate-react/dist/index.es.js + 2 modules
var slate_react_dist_index_es = __webpack_require__(351);

// EXTERNAL MODULE: ./node_modules/slate-history/dist/index.es.js + 2 modules
var slate_history_dist_index_es = __webpack_require__(685);

// EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/BoldOutlined.js + 1 modules
var BoldOutlined = __webpack_require__(1599);

// EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/ItalicOutlined.js + 1 modules
var ItalicOutlined = __webpack_require__(1600);

// EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/UnderlineOutlined.js + 1 modules
var UnderlineOutlined = __webpack_require__(1601);

// EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/OrderedListOutlined.js + 1 modules
var OrderedListOutlined = __webpack_require__(1602);

// EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/icons/UnorderedListOutlined.js + 1 modules
var UnorderedListOutlined = __webpack_require__(1603);

// EXTERNAL MODULE: ./node_modules/is-hotkey/lib/index.js
var is_hotkey_lib = __webpack_require__(292);
var is_hotkey_lib_default = /*#__PURE__*/__webpack_require__.n(is_hotkey_lib);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js + 1 modules
var objectWithoutProperties = __webpack_require__(125);

// EXTERNAL MODULE: ./node_modules/emotion/dist/emotion.esm.js + 6 modules
var emotion_esm = __webpack_require__(127);

// CONCATENATED MODULE: ./src/js/components/common/HTMLEditor/styled.js
var styled_Button=react_default.a.forwardRef(function(_ref,ref){var className=_ref.className,active=_ref.active,reversed=_ref.reversed,props=Object(objectWithoutProperties["a" /* default */])(_ref,["className","active","reversed"]);return Object(core_browser_esm["c" /* jsx */])("span",Object(esm_extends["a" /* default */])({},props,{ref:ref,className:Object(emotion_esm["b" /* cx */])(className,/*#__PURE__*/Object(emotion_esm["a" /* css */])("cursor:pointer;color:",// eslint-disable-next-line no-nested-ternary
reversed?active?'white':'#aaa':active?'black':'#ccc',";label:Button;"+( true?"":undefined)))}));});// eslint-disable-next-line react/no-multi-comp
var Menu=react_default.a.forwardRef(function(_ref2,ref){var className=_ref2.className,props=Object(objectWithoutProperties["a" /* default */])(_ref2,["className"]);return Object(core_browser_esm["c" /* jsx */])("div",Object(esm_extends["a" /* default */])({},props,{ref:ref,className:Object(emotion_esm["b" /* cx */])(className,/*#__PURE__*/Object(emotion_esm["a" /* css */])( true?{name:"28818h-Menu",styles:"& > *{display:inline-block;}& > * + *{margin-left:15px;}label:Menu;"}:undefined))}));});// eslint-disable-next-line react/no-multi-comp
var Toolbar=react_default.a.forwardRef(function(_ref3,ref){var className=_ref3.className,props=Object(objectWithoutProperties["a" /* default */])(_ref3,["className"]);return Object(core_browser_esm["c" /* jsx */])(Menu,Object(esm_extends["a" /* default */])({},props,{ref:ref,className:Object(emotion_esm["b" /* cx */])(className,/*#__PURE__*/Object(emotion_esm["a" /* css */])( true?{name:"n6q33u-Toolbar",styles:"position:relative;padding:1px 18px 10px;margin:0 -15px;border-bottom:2px solid #eee;margin-bottom:15px;label:Toolbar;"}:undefined))}));});
// EXTERNAL MODULE: ./src/js/components/common/HTMLEditor/serializerRules.js + 3 modules
var serializerRules = __webpack_require__(336);

// CONCATENATED MODULE: ./src/js/components/common/HTMLEditor/Editor.js
var HOTKEYS={'mod+b':'bold','mod+i':'italic','mod+u':'underline'// 'mod+`': 'code',
};var LIST_TYPES=['numbered-list','bulleted-list'];var Editor_isBlockActive=function isBlockActive(editor,format){var _Editor$nodes=dist_index_es["a" /* Editor */].nodes(editor,{match:function match(n){return n.type===format;}}),_Editor$nodes2=Object(slicedToArray["a" /* default */])(_Editor$nodes,1),match=_Editor$nodes2[0];return!!match;};var Editor_isMarkActive=function isMarkActive(editor,format){var marks=dist_index_es["a" /* Editor */].marks(editor);return marks?marks[format]===true:false;};var Editor_toggleBlock=function toggleBlock(editor,format){var isActive=Editor_isBlockActive(editor,format);var isList=LIST_TYPES.includes(format);dist_index_es["h" /* Transforms */].unwrapNodes(editor,{match:function match(n){return LIST_TYPES.includes(n.type);},split:true});dist_index_es["h" /* Transforms */].setNodes(editor,{// eslint-disable-next-line no-nested-ternary
type:isActive?'paragraph':isList?'list-item':format});if(!isActive&&isList){var block={type:format,children:[]};dist_index_es["h" /* Transforms */].wrapNodes(editor,block);}};var Editor_toggleMark=function toggleMark(editor,format){var isActive=Editor_isMarkActive(editor,format);try{if(isActive){dist_index_es["a" /* Editor */].removeMark(editor,format);}else{dist_index_es["a" /* Editor */].addMark(editor,format,true);}}catch(err){console.error(err);}};var Editor_Element=function Element(props){var attributes=props.attributes,children=props.children,element=props.element;switch(element.type){default:return Object(core_browser_esm["c" /* jsx */])("p",attributes,children);case'quote':case'block-quote':return Object(core_browser_esm["c" /* jsx */])("blockquote",attributes,children);// case 'code':
//   return (
//     <pre>
//       <code {...attributes}>{children}</code>
//     </pre>
//   );
case'bulleted-list':return Object(core_browser_esm["c" /* jsx */])("ul",attributes,children);case'heading-one':return Object(core_browser_esm["c" /* jsx */])("h1",attributes,children);case'heading-two':return Object(core_browser_esm["c" /* jsx */])("h2",attributes,children);case'list-item':return Object(core_browser_esm["c" /* jsx */])("li",attributes,children);case'numbered-list':return Object(core_browser_esm["c" /* jsx */])("ol",attributes,children);case'link':return Object(core_browser_esm["c" /* jsx */])("a",Object(esm_extends["a" /* default */])({href:element.url},attributes),children);}};var Editor_Leaf=function Leaf(_ref5){var attributes=_ref5.attributes,children=_ref5.children,leaf=_ref5.leaf;if(leaf.bold){children=Object(core_browser_esm["c" /* jsx */])("strong",null,children);}if(leaf.code){children=Object(core_browser_esm["c" /* jsx */])("code",null,children);}if(leaf.italic){children=Object(core_browser_esm["c" /* jsx */])("em",null,children);}if(leaf.underline){children=Object(core_browser_esm["c" /* jsx */])("u",null,children);}return Object(core_browser_esm["c" /* jsx */])("span",attributes,children);};var Editor_BlockButton=function BlockButton(_ref6){var format=_ref6.format,icon=_ref6.icon;var editor=Object(slate_react_dist_index_es["c" /* useSlate */])();return Object(core_browser_esm["c" /* jsx */])(styled_Button,{active:Editor_isBlockActive(editor,format),onMouseDown:function onMouseDown(event){event.preventDefault();Editor_toggleBlock(editor,format);}},icon);};var Editor_MarkButton=function MarkButton(_ref7){var format=_ref7.format,icon=_ref7.icon;var editor=Object(slate_react_dist_index_es["c" /* useSlate */])();return Object(core_browser_esm["c" /* jsx */])(styled_Button,{active:Editor_isMarkActive(editor,format),onMouseDown:function onMouseDown(event){event.preventDefault();Editor_toggleMark(editor,format);}},icon);};var Editor_withHtml=function withHtml(editor){var insertData=editor.insertData,isInline=editor.isInline,isVoid=editor.isVoid;editor.isInline=function(element){return element.type==='link'?true:isInline(element);};editor.isVoid=function(element){return element.type==='image'?true:isVoid(element);};editor.insertData=function(data){var html=data.getData('text/html');if(html){var parsed=new DOMParser().parseFromString(html,'text/html');var fragment=Object(serializerRules["a" /* deserialize */])(parsed.body);dist_index_es["h" /* Transforms */].insertFragment(editor,fragment);return;}insertData(data);};return editor;};var Editor_ref= true?{name:"145ghd4-CustomEditor",styles:"user-select:none;font-size:30px;line-height:0;color:#d9d9d9;font-family:Stolzl-Thin;label:CustomEditor;"}:undefined;var Editor_ref2= true?{name:"11u0omv-CustomEditor",styles:"user-select:none;font-size:0.8em;max-height:16px;overflow:hidden;label:CustomEditor;"}:undefined;var Editor_ref3= true?{name:"11u0omv-CustomEditor",styles:"user-select:none;font-size:0.8em;max-height:16px;overflow:hidden;label:CustomEditor;"}:undefined;var Editor_ref4= true?{name:"bf9bmq-CustomEditor",styles:"user-select:none;font-size:2em;max-height:16px;overflow:hidden;line-height:1;label:CustomEditor;"}:undefined;var Editor_CustomEditor=function CustomEditor(_ref8){var value=_ref8.value,setValue=_ref8.setValue,editorid=_ref8.editorid;var editor=Object(react["useMemo"])(function(){return Editor_withHtml(Object(slate_history_dist_index_es["a" /* withHistory */])(Object(slate_react_dist_index_es["d" /* withReact */])(Object(dist_index_es["i" /* createEditor */])())));},[]);var renderElement=Object(react["useCallback"])(function(props){return Object(core_browser_esm["c" /* jsx */])(Editor_Element,props);},[]);var renderLeaf=Object(react["useCallback"])(function(props){return Object(core_browser_esm["c" /* jsx */])(Editor_Leaf,props);},[]);return Object(core_browser_esm["c" /* jsx */])(slate_react_dist_index_es["b" /* Slate */],{editor:editor,value:value,onChange:setValue},Object(core_browser_esm["c" /* jsx */])(Toolbar,null,Object(core_browser_esm["c" /* jsx */])(Editor_MarkButton,{format:"bold",icon:Object(core_browser_esm["c" /* jsx */])(BoldOutlined["a" /* default */],null)}),Object(core_browser_esm["c" /* jsx */])(Editor_MarkButton,{format:"italic",icon:Object(core_browser_esm["c" /* jsx */])(ItalicOutlined["a" /* default */],null)}),Object(core_browser_esm["c" /* jsx */])(Editor_MarkButton,{format:"underline",icon:Object(core_browser_esm["c" /* jsx */])(UnderlineOutlined["a" /* default */],null)}),Object(core_browser_esm["c" /* jsx */])("div",{css:Editor_ref},"|"),Object(core_browser_esm["c" /* jsx */])(Editor_BlockButton,{format:"heading-one",icon:Object(core_browser_esm["c" /* jsx */])("div",{css:Editor_ref2},'<H1>')}),Object(core_browser_esm["c" /* jsx */])(Editor_BlockButton,{format:"heading-two",icon:Object(core_browser_esm["c" /* jsx */])("div",{css:Editor_ref3},'<H2>')}),Object(core_browser_esm["c" /* jsx */])(Editor_BlockButton,{format:"block-quote",icon:Object(core_browser_esm["c" /* jsx */])("div",{css:Editor_ref4},"\u201D")}),Object(core_browser_esm["c" /* jsx */])(Editor_BlockButton,{format:"numbered-list",icon:Object(core_browser_esm["c" /* jsx */])(OrderedListOutlined["a" /* default */],null)}),Object(core_browser_esm["c" /* jsx */])(Editor_BlockButton,{format:"bulleted-list",icon:Object(core_browser_esm["c" /* jsx */])(UnorderedListOutlined["a" /* default */],null)})),Object(core_browser_esm["c" /* jsx */])(slate_react_dist_index_es["a" /* Editable */],{id:editorid,renderElement:renderElement,renderLeaf:renderLeaf,placeholder:"Enter some text\u2026",spellCheck:true,autoFocus:true,onKeyDown:function onKeyDown(event){Object.keys(HOTKEYS).forEach(function(hotkey){if(is_hotkey_lib_default()(hotkey,event)){event.preventDefault();var mark=HOTKEYS[hotkey];Editor_toggleMark(editor,mark);}});if(is_hotkey_lib_default()('shift+return',event)){event.preventDefault();editor.insertText('\n');}}}));};/* harmony default export */ var Editor = (Editor_CustomEditor);
// CONCATENATED MODULE: ./src/js/components/common/HTMLEditor/HtmlEditor.js
var _class;var HtmlEditor_ref= true?{name:"madpqp-HtmlEditor",styles:"position:absolute;bottom:10px;right:10px;&:before{display:none;}height:40px !important;width:40px !important;label:HtmlEditor;"}:undefined;var HtmlEditor_ref2= true?{name:"c4m69z-HtmlEditor",styles:"display:block;&:before{display:none;}label:HtmlEditor;"}:undefined;var HtmlEditor_ref3= true?{name:"c4m69z-HtmlEditor",styles:"display:block;&:before{display:none;}label:HtmlEditor;"}:undefined;var HtmlEditor_HtmlEditor=Object(index_module["c" /* observer */])(_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(HtmlEditor,_Component);function HtmlEditor(props){var _this;Object(classCallCheck["a" /* default */])(this,HtmlEditor);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(HtmlEditor).call(this,props));_this.setValue=function(value){_this.setState({value:value});};var saveDisabled;var _value=props.value;if(props.value.length===1&&!props.value[0].type){_value=[{type:'paragraph',children:props.value}];saveDisabled=false;}else{saveDisabled=true;}_this.state={value:_value,saveDisabled:saveDisabled};return _this;}Object(createClass["a" /* default */])(HtmlEditor,[{key:"render",value:function render(){var _this$state=this.state,value=_this$state.value,saveDisabled=_this$state.saveDisabled;var _this$props=this.props,editorid=_this$props.editorid,save=_this$props.save;return Object(core_browser_esm["c" /* jsx */])(EditorStyleWrapper,null,Object(core_browser_esm["c" /* jsx */])(Editor,{value:value,setValue:this.setValue,editorid:editorid}),Object(core_browser_esm["c" /* jsx */])(button_default.a,{disabled:saveDisabled,onClick:function onClick(){save(Object(serializerRules["b" /* serialize */])());},css:HtmlEditor_ref,type:"ghost",shape:"circle"},saveDisabled?Object(core_browser_esm["c" /* jsx */])(SaveOutlined["a" /* default */],{css:HtmlEditor_ref2,style:{fontSize:'20px'}}):Object(core_browser_esm["c" /* jsx */])(SaveTwoTone["a" /* default */],{css:HtmlEditor_ref3,style:{fontSize:'20px'}})));}}],[{key:"getDerivedStateFromProps",value:function getDerivedStateFromProps(props,state){state.saveDisabled=isEqual_default()(state.value,props.value);}}]);return HtmlEditor;}(react["Component"]))||_class;/* harmony default export */ var HTMLEditor_HtmlEditor = (HtmlEditor_HtmlEditor);
// CONCATENATED MODULE: ./src/js/components/common/HTMLEditor/index.js

// EXTERNAL MODULE: ./src/js/components/common/Checkbox/index.js
var Checkbox = __webpack_require__(114);

// EXTERNAL MODULE: ./src/js/components/common/TmModal/index.js
var TmModal = __webpack_require__(112);

// EXTERNAL MODULE: ./src/js/components/common/NavButtonGroup/index.js + 2 modules
var NavButtonGroup = __webpack_require__(341);

// EXTERNAL MODULE: ./src/js/components/common/styled.js
var styled = __webpack_require__(35);

// EXTERNAL MODULE: ./src/js/utils/formatMarketsUrl.js
var formatMarketsUrl = __webpack_require__(189);

// CONCATENATED MODULE: ./src/js/components/SingleItemEdit/styled.js
var ContentContainer=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu0",label:"ContentContainer"})( true?{name:"1age63q",styles:"width:100%;display:flex;"}:undefined);var MainContainer=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu1",label:"MainContainer"})( true?{name:"4rmlxi",styles:"width:100%;display:flex;flex-direction:column;"}:undefined);var ImageSection=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu2",label:"ImageSection"})("width:387px;display:flex;flex-direction:column;padding-left:86px;background-color:",themes["d" /* themeColors */].backgroundLightBlue,";position:relative;padding-top:17px;overflow:hidden;"+( true?"":undefined));var MainImage=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('img',{target:"etnk5bu3",label:"MainImage"})( true?{name:"1bktgdq",styles:"height:300px;width:282px;z-index:10;padding:10px;border-radius:4px;background-color:#ffffff;box-shadow:0px 1px 7px 0 #0069fa26;margin-bottom:15px;object-fit:contain;"}:undefined);var SmallImagesContainer=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu4",label:"SmallImagesContainer"})( true?{name:"1vkgatm",styles:"width:282px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;z-index:10;"}:undefined);var SmallImage=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('img',{target:"etnk5bu5",label:"SmallImage"})("margin:0 15px 15px 0;&:nth-of-type(3n){margin-right:0;}height:79px;width:84px;padding:10px;border-radius:4px;background-color:#ffffff;box-shadow:0px 1px 7px 0 #0069fa26;object-fit:contain;",function(_ref){var isMain=_ref.isMain,theme=_ref.theme;return isMain?"border-top: 3px solid ".concat(theme.colors.blue,";"):'';}," &:hover{cursor:pointer;}"+( true?"":undefined));var SmallImageWrapper=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu6",label:"SmallImageWrapper"})("margin:0 15px 15px 0;&:nth-of-type(3n){margin-right:0;}height:79px;width:84px;padding:",function(_ref2){var noPadding=_ref2.noPadding;return noPadding?'0':'10px';},";border-radius:4px;",function(_ref3){var noBG=_ref3.noBG;return noBG?'':'background-color: #ffffff; box-shadow: 0px 1px 7px 0 #0069fa26;';}," object-fit:contain;",function(_ref4){var isMain=_ref4.isMain,theme=_ref4.theme;return isMain?"border-top: 3px solid ".concat(theme.colors.blue,";"):'';}," ",function(_ref5){var borderColor=_ref5.borderColor;return borderColor?"border: 3px solid ".concat(borderColor,";"):'';}," ",function(_ref6){var dotted=_ref6.dotted;return dotted?"border-style: dotted;":'';}," position:relative;&:hover{cursor:pointer;}>img{max-width:100%;max-height:100%;height:auto;width:auto;vertical-align:center;}.inputfile{width:0.1px;height:0.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1;}.inputfile + label{cursor:pointer;}"+( true?"":undefined));var TitleContainer=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu7",label:"TitleContainer"})( true?{name:"1tz8kqi",styles:"width:100%;height:38px;display:flex;flex-direction:row;align-items:baseline;border-bottom:solid 1px #ebebeb;padding-bottom:8px;margin-top:20px;margin-bottom:10px;position:relative;"}:undefined);var IdentifyContainer=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu8",label:"IdentifyContainer"})( true?{name:"l7wfil",styles:"width:430px;display:flex;flex-wrap:wrap;"}:undefined);var IdentifyRow=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu9",label:"IdentifyRow"})( true?{name:"1e0jhvq",styles:"height:38px;width:212px;display:flex;flex-wrap:nowrap;"}:undefined);var SingleItemEdit_styled_DataContainer=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu10",label:"DataContainer"})( true?{name:"jy2h9k",styles:"display:flex;flex-direction:column;width:70%;"}:undefined);var DataTitlesColumn=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu11",label:"DataTitlesColumn"})( true?{name:"1ybt718",styles:"display:flex;flex-direction:column;font-size:14px;font-weight:500;"}:undefined);var DataInputsColumn=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu12",label:"DataInputsColumn"})( true?{name:"1po663p",styles:"display:flex;flex-direction:column;width:9%;font-size:14px;font-weight:1000;"}:undefined);var SingleItemEdit_styled_KeyText=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu13",label:"KeyText"})( true?{name:"14ifcny",styles:"width:190px;height:21px;font-family:Stolzl-Medium;font-size:14px;font-weight:500;font-style:normal;font-stretch:normal;line-height:2;letter-spacing:normal;text-align:left;padding-right:15px;"}:undefined);var KeyTextCodes=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu14",label:"KeyTextCodes"})( true?{name:"jm4yvj",styles:"margin-right:5%;"}:undefined);var ValueTextCodes=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu15",label:"ValueTextCodes"})( true?{name:"1vj8zx5",styles:"font-size:14px;font-weight:300;"}:undefined);var ValueText=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu16",label:"ValueText"})( true?{name:"1xev4bl",styles:"font-size:14px;font-weight:300;width:30%;"}:undefined);var styled_AdditionalText=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('span',{target:"etnk5bu17",label:"AdditionalText"})( true?{name:"37owli",styles:"font-size:14px;font-weight:300;line-height:39px;padding-left:13px;"}:undefined);var RadioContainer=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu18",label:"RadioContainer"})( true?{name:"w56oqh",styles:"width:15%;"}:undefined);var SingleItemEdit_styled_InputRow=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu19",label:"InputRow"})( true?{name:"13tty3c",styles:"font-size:14px;height:38px;font-weight:300;display:flex;"}:undefined);var styled_LabelsSection=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu20",label:"LabelsSection"})( true?{name:"187q8kx",styles:"min-height:108px;width:90%;display:flex;flex-direction:column;"}:undefined);var ListButtons=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu21",label:"ListButtons"})( true?{name:"1o13frr",styles:"height:auto;width:320px;display:flex;margin-top:25px;margin-bottom:25px;justify-content:space-between;margin-left:455px;"}:undefined);var ListButtonsRight=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu22",label:"ListButtonsRight"})( true?{name:"azlw8e",styles:"height:auto;width:320px;display:flex;margin-top:25px;margin-bottom:25px;justify-content:space-between;margin-left:90px;"}:undefined);var InfoSection=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu23",label:"InfoSection"})("width:791px;height:100%;display:flex;flex-direction:column;padding-left:17px;background-color:#fafbfe;color:",themes["d" /* themeColors */].dirtyBlue,";"+( true?"":undefined));var styled_ValueField=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu24",label:"ValueField"})( true?{name:"4j7lkr",styles:"padding-right:5%;width:12%;line-height:39px;"}:undefined);var styled_ValueSign=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('span',{target:"etnk5bu25",label:"ValueSign"})( true?{name:"4j7lkr",styles:"padding-right:5%;width:12%;line-height:39px;"}:undefined);var styled_InputContainer=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu26",label:"InputContainer"})( true?{name:"k008qs",styles:"display:flex;"}:undefined);var OptimizationContainer=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu27",label:"OptimizationContainer"})( true?{name:"1tgn2ek",styles:"display:flex;width:330px;"}:undefined);var MoreLink=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu28",label:"MoreLink"})("color:",themes["d" /* themeColors */].blue,";margin-bottom:7px;cursor:pointer;>span{height:14px;line-height:11px;border-bottom:1px solid ",themes["d" /* themeColors */].blue,";}"+( true?"":undefined));var MoreOptionsContainer=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"etnk5bu29",label:"MoreOptionsContainer"})( true?{name:"8atqhb",styles:"width:100%;"}:undefined);var textAreaStyle={minHeight:'100px',boxShadow:'none',borderRadius:'15px',border:'1px solid #919db4',color:'#586784',fontSize:'14px',width:'565px'};var textAreaContainerStyle={minHeight:'100px',height:'unset',marginLeft:'22px',width:'500px'};
// EXTERNAL MODULE: ./src/js/components/common/IconSvg/index.js
var IconSvg = __webpack_require__(14);

// CONCATENATED MODULE: ./src/js/components/SingleItemEdit/SingleItemEdit.js
var _dec,_dec2,_dec3,_dec4,_dec5,_dec6,_dec7,_dec8,SingleItemEdit_class;var SingleItemEdit_FormItem=form_default.a.Item;var Option=Dropdown["a" /* default */].Option;var SingleItemEdit_ref= true?{name:"1oons1s-renderNavigationButtons",styles:"margin-bottom:14px;label:renderNavigationButtons;"}:undefined;var SingleItemEdit_ref2= true?{name:"h5bbvd-renderToolTipButton",styles:"margin-top:-6px;label:renderToolTipButton;"}:undefined;var SingleItemEdit_ref3= true?{name:"18thra7-renderVeroToolTipButton",styles:"margin-top:-6px;label:renderVeroToolTipButton;"}:undefined;var SingleItemEdit_ref4= true?{name:"17xp3n2-SingleItemEdit",styles:"position:absolute;cursor:pointer;top:0;right:0;background-color:red;border-radius:10px;width:20px;color:white;text-align:center;height:20px;font-size:20px;border:0;outline:0;line-height:1;label:SingleItemEdit;"}:undefined;var SingleItemEdit_ref5= true?{name:"cdqq02-SingleItemEdit",styles:"width:100% !important;label:SingleItemEdit;"}:undefined;var SingleItemEdit_ref6= true?{name:"1fi7sv-SingleItemEdit",styles:"width:100%;height:600px;overflow:scroll;overflow-x:hidden;.container{width:100%;}.total_body{width:100%;}img{max-width:100%;}.contentor{overflow:hidden;}.content .container .content-inner .product-slider .frame{top:45px;}label:SingleItemEdit;"}:undefined;var SingleItemEdit_ref7= true?{name:"1s9rwhp-SingleItemEdit",styles:"display:flex;justify-content:center;align-items:center;flex-direction:column;.react-datepicker__header--time{height:63px;}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{padding:5px 10px;width:70px;}label:SingleItemEdit;"}:undefined;var SingleItemEdit_ref8= true?{name:"p25dno-SingleItemEdit",styles:"margin-bottom:10px;margin-top:0px;label:SingleItemEdit;"}:undefined;var _ref9= true?{name:"712lpa-SingleItemEdit",styles:"display:flex;justify-content:center;label:SingleItemEdit;"}:undefined;var SingleItemEdit_ref10= true?{name:"ai27f4-SingleItemEdit",styles:"justify-content:space-between;label:SingleItemEdit;"}:undefined;var _ref12= true?{name:"ai27f4-SingleItemEdit",styles:"justify-content:space-between;label:SingleItemEdit;"}:undefined;var SingleItemEdit_SingleItemEdit=(_dec=form_default.a.create(),_dec2=Object(index_module["b" /* inject */])('enumsStore'),_dec3=Object(index_module["b" /* inject */])('settingsStore'),_dec4=Object(index_module["b" /* inject */])('discoveryStore'),_dec5=Object(index_module["b" /* inject */])('routingStore'),_dec6=Object(index_module["b" /* inject */])('listingsPageStore'),_dec7=Object(index_module["b" /* inject */])('sessionStore'),_dec8=Object(index_module["b" /* inject */])('toastsStore'),_dec(SingleItemEdit_class=_dec2(SingleItemEdit_class=_dec3(SingleItemEdit_class=_dec4(SingleItemEdit_class=_dec5(SingleItemEdit_class=_dec6(SingleItemEdit_class=_dec7(SingleItemEdit_class=_dec8(SingleItemEdit_class=Object(index_module["c" /* observer */])(SingleItemEdit_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(SingleItemEdit,_Component);function SingleItemEdit(props){var _this;Object(classCallCheck["a" /* default */])(this,SingleItemEdit);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(SingleItemEdit).call(this,props));_this.onSpecificChanges=function(id,value){var _this$props=_this.props,discoveryStore=_this$props.discoveryStore,discoveryParams=_this$props.discoveryParams;return discoveryStore.updateSpecific(Number(discoveryParams['discovery-id']),_this.getCurrentItem().id,id,value);};_this.setHtmlPreview=function(value){var description=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;var mainImageUrl=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;var regex=/{\d+}/g;var currItem=_this.getCurrentItem();if(!currItem)return;var imagesArr=currItem.images.toJSON().map(function(item){return item.url;});var obj={'{0}':currItem.title,'{1}':imagesArr[0],'{2}':imagesArr[1],'{3}':imagesArr[2],'{4}':imagesArr[3],'{5}':description||currItem.description,'{6}':mainImageUrl||currItem.mainImageUrl};var arr=value.match(regex);for(var i=0;i<arr.length;i++){value=value.replace(arr[i],obj[arr[i]]);}value=value.replace('data:image/jpeg;base64,','');_this.setState({htmlPreview:value});};_this.setupOptimizationButtons=function(){var currentItem=_this.getCurrentItem();if(currentItem)_this.setState({optimizeButtonShown:!currentItem.isOptimized&&!currentItem.areOptimizedValuesShown,revertSaveButtonsShown:!currentItem.isOptimized&&currentItem.areOptimizedValuesShown});};_this.setupTitle=function(){var currentItem=_this.getCurrentItem();if(currentItem)_this.setState({titleValue:currentItem.title});};_this.setStateOfTitleLength=function(e,idParam){e.persist();_this.setState({titleLength:e.target.value.length,lastEdit:{e:e,idParam:idParam},titleValue:e.target.value});};_this.getCurrentItem=function(){var _this$props2=_this.props,discoveryParams=_this$props2.discoveryParams,discoveryStore=_this$props2.discoveryStore;var currentDiscovery=discoveryStore.discoveries.get(Number(discoveryParams['discovery-id']));if(currentDiscovery){var current=discoveryParams['item-id']?discoveryStore.discoveries.get(Number(discoveryParams['discovery-id'])).discoveryItems.filter(function(item){return item.id===Number(discoveryParams['item-id']);})[0]:discoveryStore.discoveries.get(Number(discoveryParams['discovery-id'])).discoveryItems[0];return current;}return null;};_this.getCurrentDiscovery=function(){var _this$props3=_this.props,discoveryStore=_this$props3.discoveryStore,discoveryParams=_this$props3.discoveryParams;var discoveryId=Number(discoveryParams['discovery-id']);return discoveryStore.discoveries.get(discoveryId);};_this.setProfitType=function(e){var _this$props4=_this.props,discoveryStore=_this$props4.discoveryStore,discoveryParams=_this$props4.discoveryParams;var discoveryId=Number(discoveryParams['discovery-id']);var currentDiscovery=discoveryStore.discoveries.get(discoveryId);currentDiscovery.setProfitType(e.target.value);_this.getCurrentItem().setProfitType(e.target.value);_this.forceUpdate();};_this.getDefaultValue=function(key){switch(key){case'policies':return _this.getCurrentItem().selectedBusinessPolicyId;case'templates':return _this.getCurrentItem().htmlTemplateSystemId;case'categories':return _this.getCurrentItem().selectedDestinationCategoryId;case'condition':return _this.getCurrentItem().conditionId;case'amazonListingFlow':return _this.getCurrentItem().amazonListingFlow;default:return null;}};_this.getConditionsFromEnums=function(){var enumsStore=_this.props.enumsStore;var enums=enumsStore.enums;var arrayStructureResult=[];forEach_default()(enums.CONDITION,function(val,key){if(val!==0){arrayStructureResult.push({id:val,name:startCase_default()(kebabCase_default()(key))});}});return arrayStructureResult;};_this.getIndexOfItem=function(){var _this$props5=_this.props,discoveryParams=_this$props5.discoveryParams,discoveryStore=_this$props5.discoveryStore;var currentItemId=Number(discoveryParams['item-id']);var currentDiscoveryItems=discoveryStore.discoveries.get(Number(discoveryParams['discovery-id'])).discoveryItems;var indexOfCurrentItem=currentDiscoveryItems.findIndex(function(item){return item.id===currentItemId;});return indexOfCurrentItem;};_this.setMain=function(url){var _this$getCurrentItem;var listing=_this.props.settingsStore.listing;var _this$props6=_this.props,discoveryStore=_this$props6.discoveryStore,discoveryParams=_this$props6.discoveryParams,setSpinner=_this$props6.setSpinner;var currentItem=_this.getCurrentItem();currentItem.setMainImage(url);setSpinner(true);var defaultTemplateId=(_this$getCurrentItem=_this.getCurrentItem())===null||_this$getCurrentItem===void 0?void 0:_this$getCurrentItem.htmlTemplateSystemId;listing.fetchTemplateById(defaultTemplateId).then(function(data){return _this.setHtmlPreview(data,null,url);});discoveryStore.updateDiscoveryItems(Number(discoveryParams['discovery-id']),_this.getCurrentItem().id,Object(defineProperty["a" /* default */])({},Object(Discover["b" /* convertApiCallKeys */])('mainImageUrl'),"".concat(url))).then(function(){setSpinner(false);});};_this.setDescription=function(description,cb){var _this$getCurrentItem2;var listing=_this.props.settingsStore.listing;var _this$props7=_this.props,discoveryStore=_this$props7.discoveryStore,discoveryParams=_this$props7.discoveryParams,setSpinner=_this$props7.setSpinner;setSpinner(true);var defaultTemplateId=(_this$getCurrentItem2=_this.getCurrentItem())===null||_this$getCurrentItem2===void 0?void 0:_this$getCurrentItem2.htmlTemplateSystemId;listing.fetchTemplateById(defaultTemplateId).then(function(data){return _this.setHtmlPreview(data,description);});discoveryStore.updateDiscoveryItems(Number(discoveryParams['discovery-id']),_this.getCurrentItem().id,{description:description}).then(function(){if(cb){cb();}_this.props.setSpinner(false);});};_this.propertyWasOptimized=function(property){var isItemSpecific=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var _this$props8=_this.props,discoveryStore=_this$props8.discoveryStore,discoveryParams=_this$props8.discoveryParams;var currentDiscovery=discoveryStore.discoveries.get(Number(discoveryParams['discovery-id']));var currentItem=_this.getCurrentItem();if(!currentDiscovery.discoveryItemsBeforeOptimization)return false;var initialPropValue=null;var currentPropValue=null;var oldProp=null;var initialItem=currentDiscovery.discoveryItemsBeforeOptimization.find(function(di){return di.id===currentItem.id;});if(isItemSpecific){oldProp=initialItem?initialItem.itemSpecifics.find(function(is){return is.key===property;}):null;if(!oldProp&&initialItem)return true;initialPropValue=oldProp?oldProp.value:null;currentPropValue=currentItem.itemSpecifics.find(function(is){return is.key===property;}).value;}else{initialPropValue=initialItem?currentDiscovery.discoveryItemsBeforeOptimization.find(function(di){return di.id===currentItem.id;})[property]:null;currentPropValue=currentItem[property];}if(!initialPropValue||initialPropValue===currentPropValue)return false;return true;};_this.propertyIsVero=function(property){var _currentItem$titleFai;var currentItem=_this.getCurrentItem();switch(property){case'title':return(_currentItem$titleFai=currentItem.titleFailedWords)===null||_currentItem$titleFai===void 0?void 0:_currentItem$titleFai.some(function(word){return currentItem.title.toLowerCase().includes(word.toLowerCase());});break;case'brand':// eslint-disable-next-line no-case-declarations
var brandItemSpecific=currentItem.itemSpecifics.find(function(is){return is.key===property;});if(brandItemSpecific==null)return false;return currentItem.brandFailedWords.some(function(word){return brandItemSpecific.value.toLowerCase().includes(word.toLowerCase());});break;case'description':return currentItem.descriptionFailedWords.some(function(word){return currentItem.description.toLowerCase().includes(word.toLowerCase());});break;default:return false;break;}};_this.toggleView=function(){_this.setState({isMoreOptionsShown:!_this.state.isMoreOptionsShown});var listing=_this.props.settingsStore.listing;if(!_this.state.isMoreOptionsShown){var _this$getCurrentItem3;var defaultTemplateId=(_this$getCurrentItem3=_this.getCurrentItem())===null||_this$getCurrentItem3===void 0?void 0:_this$getCurrentItem3.htmlTemplateSystemId;listing.fetchTemplateById(defaultTemplateId).then(function(data){return _this.setHtmlPreview(data);});}};_this.handleStrategyChange=function(e){var _this$props9=_this.props,discoveryStore=_this$props9.discoveryStore,discoveryParams=_this$props9.discoveryParams,form=_this$props9.form,setSpinner=_this$props9.setSpinner;var validateFields=form.validateFields;var _e$target=e.target,value=_e$target.value,id=_e$target.id;validateFields(function(err,values){if(err){console.error(err);}else{var strategyObject=null;var _this$getCurrentDisco=_this.getCurrentDiscovery().pricingStrategy,strategyType=_this$getCurrentDisco.strategyType,profitType=_this$getCurrentDisco.profitType;var strategyId=_this.getCurrentItem().id;var profit=values.profit,salePrice=values.salePrice,breakEven=values.breakEven;if(_this.isValueEqualToPrevState(id,value,true,profitType))return;setSpinner(true);switch(strategyType){case 1:strategyObject={profitType:Number(profitType),profit:Number(profit),strategyId:strategyId,strategyType:strategyType,breakEven:Number(breakEven),salePrice:Number(salePrice)};break;case 2:strategyObject={profitType:profitType,strategyId:strategyId,strategyType:strategyType,breakEven:breakEven,salePrice:salePrice};break;case 3:strategyObject={profitType:Number(profitType),strategyId:strategyId,strategyType:strategyType,breakEven:Number(breakEven),salePrice:Number(salePrice)};break;default:break;}console.log(strategyObject);discoveryStore.setSingleItemStrategies(_this.getCurrentItem().id,strategyObject,Number(discoveryParams['discovery-id'])).then(function(){form.resetFields();_this.props.setSpinner(false);});}});};_this.isValueEqualToPrevState=function(property,value,isProfit,profitType){var enums=_this.props.enumsStore.enums;var currentItem=_this.getCurrentItem();if(isProfit){var actualProperty=property;if(property==='profit'&&profitType===enums.TYPE_OF_DISCOVERY_PROFIT_TYPE.PERCENT){actualProperty="".concat(property,"Percent");}else if(property==='profit'&&profitType===enums.TYPE_OF_DISCOVERY_PROFIT_TYPE.CURRENCY_UNITS){actualProperty="".concat(property,"CurrencyUnits");}return currentItem.pricingStrategy[actualProperty]===Number(value);}return currentItem[property]===value;};_this.handleCommonChanges=function(e,idParam){_this.updateLastEdit(null,null);var listing=_this.props.settingsStore.listing;if(idParam==='templates'){listing.fetchTemplateById(e).then(function(data){return _this.setHtmlPreview(data);});}var value=null;var id=null;/* eslint-disable */if(e.target){value=e.target.value;id=e.target.id;}else{value=e;id=idParam;}/* eslint-enable */var _this$props10=_this.props,discoveryStore=_this$props10.discoveryStore,discoveryParams=_this$props10.discoveryParams,form=_this$props10.form;var isQtyBtn=false;switch(id){case'quantity':value=Number(value);break;case'qty-plus':case'qty-minus':isQtyBtn=true;id='quantity';break;default:break;}form.validateFields(function(err,values){if(id==='title')_this.setState({isTitleLengthShown:false});if(err){console.log(err);}else{var valueToSend=null;isQtyBtn?valueToSend=Number(values.quantity)+Number(value):valueToSend=value;if(!isNaN(valueToSend)&&valueToSend<1){return;}if(_this.isValueEqualToPrevState(id,value))return;_this.props.setSpinner(true);discoveryStore.updateDiscoveryItems(Number(discoveryParams['discovery-id']),_this.getCurrentItem().id,Object(defineProperty["a" /* default */])({},Object(Discover["b" /* convertApiCallKeys */])(id),valueToSend)).then(function(response){if(response.config){var parsedData=JSON.parse(response.config.data);form.setFieldsValue(Object(defineProperty["a" /* default */])({},Object.keys(Object(Discover["c" /* convertApiCallKeysReverse */])(parsedData.propsToUpdate)[0]),_this.getCurrentItem()[Object.keys(Object(Discover["c" /* convertApiCallKeysReverse */])(parsedData.propsToUpdate)[0])]));}else if(Object.keys(response)[0]!=='title'){form.setFieldsValue(Object(defineProperty["a" /* default */])({},Object.keys(response)[0],Object.values(response)[0]));}_this.props.setSpinner(false);});}});};_this.initLabels=function(){var _this$getCurrentItem4=_this.getCurrentItem(),labels=_this$getCurrentItem4.labels;return labels;};_this.initStoreAndRedirectToQ=function(){var _this$props11=_this.props,discoveryStore=_this$props11.discoveryStore,browserHistory=_this$props11.browserHistory;discoveryStore.initStore();browserHistory.push('/discover');};_this.deleteLabel=function(labelId){var _this$props12=_this.props,discoveryStore=_this$props12.discoveryStore,discoveryParams=_this$props12.discoveryParams;discoveryStore.removeLabel(labelId,Number(discoveryParams['discovery-id']),_this.getCurrentItem().id);};_this.initItemData=function(){};_this.handleScheduleLater=function(date){var _this$props13=_this.props,scheduleList=_this$props13.discoveryStore.scheduleList,showToast=_this$props13.toastsStore.showToast;var item=_this.getCurrentItem();scheduleList(date,item.discoveryId).then(function(resp){if(!resp){showToast({type:constants_enums["a" /* default */].TOAST_TYPES.WARNING,message:'Could not schedule listing.'});}});};_this.listDiscovery=function(){var lastEdit=_this.state.lastEdit;if(lastEdit){var _lastEdit$e=lastEdit.e,e=_lastEdit$e===void 0?null:_lastEdit$e,_lastEdit$idParam=lastEdit.idParam,idParam=_lastEdit$idParam===void 0?null:_lastEdit$idParam,_lastEdit$applyChange=lastEdit.applyChanges,applyChanges=_lastEdit$applyChange===void 0?null:_lastEdit$applyChange;if(applyChanges){applyChanges(e,idParam);}else if(e!==null){_this.handleCommonChanges(e,idParam);}}var _this$props14=_this.props,discoveryStore=_this$props14.discoveryStore,discoveryParams=_this$props14.discoveryParams,setSpinner=_this$props14.setSpinner;var _this$getCurrentItem5=_this.getCurrentItem(),id=_this$getCurrentItem5.id,isVariationsIncluded=_this$getCurrentItem5.isVariationsIncluded;var reqBody={discoveryId:Number(discoveryParams['discovery-id']),discoveryItemId:id,includeVariations:isVariationsIncluded};setSpinner(true);discoveryStore.listSingleDiscovery(reqBody).then(function(response){if(response){_this.setState({isListingSuccessModalVisible:true,isListingFailureModalVisible:false});}else{_this.setState({isListingSuccessModalVisible:false,isListingFailureModalVisible:true});}setSpinner(false);});};_this.optimizeNow=function(){var _this$props15=_this.props,discoveryStore=_this$props15.discoveryStore,discoveryParams=_this$props15.discoveryParams;_this.props.setSpinner(true);var currentItem=_this.getCurrentItem();discoveryStore.getOptimizedValues(Number(discoveryParams['discovery-id']),currentItem.id).then(function(response){var currentImages=JSON.parse(JSON.stringify(currentItem.images));if(response.mainImage)currentImages.push(response.mainImage);discoveryStore.updateDiscoveryItemsInternal(Number(discoveryParams['discovery-id']),[currentItem],{title:response.title,description:response.description,itemSpecifics:response.itemSpecifics,areOptimizedValuesShown:true,mainImageUrl:response.mainImage?response.mainImage.url:currentItem.mainImageUrl,images:currentImages});_this.setState({titleValue:response.title,showImageOptimization:false});_this.props.setSpinner(false);_this.setupOptimizationButtons();});};_this.revertToOriginal=function(){var _this$props16=_this.props,discoveryStore=_this$props16.discoveryStore,discoveryParams=_this$props16.discoveryParams;var currentItem=_this.getCurrentItem();var currentDiscovery=discoveryStore.discoveries.get(Number(discoveryParams['discovery-id']));var initialItemValue=currentDiscovery.discoveryItemsBeforeOptimization.find(function(di){return di.id===currentItem.id;});discoveryStore.updateDiscoveryItemsInternal(Number(discoveryParams['discovery-id']),[currentItem],{title:initialItemValue.title,description:initialItemValue.description,itemSpecifics:initialItemValue.itemSpecifics,mainImageUrl:initialItemValue.mainImageUrl,images:initialItemValue.images,areOptimizedValuesShown:false});discoveryStore.setRotateOptimization(false);discoveryStore.setCollageOptimization(false);var newDiscoveryItemsBeforeOptimization=currentDiscovery.discoveryItemsBeforeOptimization.filter(function(item){return item.id!==initialItemValue.id;});currentDiscovery.setDiscoveryItemsBeforeOptimization(newDiscoveryItemsBeforeOptimization);_this.setupOptimizationButtons();_this.setupTitle();};_this.saveOptimization=function(){var _this$props17=_this.props,discoveryStore=_this$props17.discoveryStore,discoveryParams=_this$props17.discoveryParams;_this.props.setSpinner(true);var currentItem=_this.getCurrentItem();discoveryStore.saveOptimization(currentItem.id).then(function(response){_this.props.setSpinner(false);if(!response.isSuccessful)self.showToast({type:self.enums.TOAST_TYPES.WARNING,message:'Item failed to be optimized'});else{discoveryStore.updateDiscoveryItemsInternal(Number(discoveryParams['discovery-id']),[currentItem],{isOptimized:true});_this.setupOptimizationButtons();}});};_this.switcherForProfitsInputs=function(){var _this$props18=_this.props,form=_this$props18.form,formatMessage=_this$props18.formatMessage,enumsStore=_this$props18.enumsStore,settingsStore=_this$props18.settingsStore,setSpinner=_this$props18.setSpinner;switch(_this.getCurrentDiscovery().pricingStrategy.strategyType){case enumsStore.enums.STRATEGY.FIXED_PROFIT:return Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_FixedProfits_FixedProfits,{handleStrategyChange:_this.handleStrategyChange,updateLastEdit:_this.updateLastEdit,currentDiscovery:_this.getCurrentDiscovery(),currentItem:_this.getCurrentItem(),form:form,formatMessage:formatMessage,setProfitType:_this.setProfitType,enums:enumsStore.enums,enumsReverse:enumsStore.enumsReverse,settingsStore:settingsStore,setSpinner:setSpinner});case enumsStore.enums.STRATEGY.COMPETITION:return Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_Competition_Competition,{handleStrategyChange:_this.handleStrategyChange,currentDiscovery:_this.getCurrentDiscovery(),currentItem:_this.getCurrentItem(),form:form,formatMessage:formatMessage,setProfitType:_this.setProfitType,enums:enumsStore.enums,enumsReverse:enumsStore.enumsReverse,setSpinner:setSpinner});case enumsStore.enums.STRATEGY.PENETRATION:return Object(core_browser_esm["c" /* jsx */])(singleItemStrategies_Penetration_Penetration,{handleStrategyChange:_this.handleStrategyChange,currentDiscovery:_this.getCurrentDiscovery(),updateLastEdit:_this.updateLastEdit,currentItem:_this.getCurrentItem(),form:form,formatMessage:formatMessage,setProfitType:_this.setProfitType,enums:enumsStore.enums,enumsReverse:enumsStore.enumsReverse,setSpinner:setSpinner,settingsStore:settingsStore});default:return null;}};_this.goToTable=function(){var _this$props19=_this.props,discoveryParams=_this$props19.discoveryParams,routingStore=_this$props19.routingStore;routingStore.browserHistory.push("/discover/multiResult?discovery-id=".concat(discoveryParams['discovery-id']));};_this.goToItem=function(mathSign){var _this$props20=_this.props,discoveryParams=_this$props20.discoveryParams,discoveryStore=_this$props20.discoveryStore,routingStore=_this$props20.routingStore,fetchPaginationItems=_this$props20.fetchPaginationItems;var currentDiscoveryItems=discoveryStore.discoveries.get(Number(discoveryParams['discovery-id'])).discoveryItems;var nextItemId=currentDiscoveryItems[_this.indexOfItem+mathSign].id;_this.indexOfItem+=mathSign;if(currentDiscoveryItems.length-_this.indexOfItem<10){fetchPaginationItems(Number(discoveryParams['discovery-id']));}routingStore.browserHistory.push("/discover/singleResult?item-id=".concat(nextItemId,"&discovery-id=").concat(discoveryParams['discovery-id']));};_this.listingSuccessHandlerListMore=function(){var _this$props21=_this.props,discoveryStore=_this$props21.discoveryStore,routingStore=_this$props21.routingStore;_this.setState({isListingSuccessModalVisible:false});discoveryStore.initStore();routingStore.browserHistory.push('/discover/express');// routingStore.browserHistory.push('/discover/source');
};_this.listingSuccessHandlerSeeListing=function(){_this.setState({isListingSuccessModalVisible:false});var _this$props22=_this.props,_this$props22$discove=_this$props22.discoveryStore,findItemId=_this$props22$discove.findItemId,discoveries=_this$props22$discove.discoveries,browserHistory=_this$props22.routingStore.browserHistory,discoveryParams=_this$props22.discoveryParams,setShowNavButtons=_this$props22.listingsPageStore.setShowNavButtons;var discoveryId=discoveryParams['discovery-id'];findItemId(discoveryId).then(function(itemId){if(itemId!==null){if(itemId.length===1){setShowNavButtons(false);browserHistory.push("/listings/single-item/".concat(itemId));}else{browserHistory.push("/listings/multiResult?discovery-id=".concat(discoveryId));}discoveries.delete(discoveryId);}}).catch(function(err){return console.error(err);});};_this.listingFailureStartOverHandler=function(){var _this$props23=_this.props,discoveryStore=_this$props23.discoveryStore,routingStore=_this$props23.routingStore;_this.setState({isListingFailureModalVisible:false});discoveryStore.initStore();routingStore.browserHistory.push('/discover/source');};_this.listingFailureTryAgainHandler=function(){_this.setState({isListingFailureModalVisible:false});};_this.updateLastEdit=function(e,idParam){var applyChanges=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;if(e!==null){e.persist();}_this.setState({lastEdit:{e:e,idParam:idParam,applyChanges:applyChanges}});};_this.closeSeeOptimizedValues=function(){_this.setState({showOptimizedValuesModal:false});};_this.showImageOptimizationModal=function(){_this.setState({showImageOptimization:true});};_this.showOptimizationModal=function(property,isItemSpecific){var _this$props24=_this.props,discoveryStore=_this$props24.discoveryStore,discoveryParams=_this$props24.discoveryParams;var currentDiscovery=discoveryStore.discoveries.get(Number(discoveryParams['discovery-id']));var currentItem=_this.getCurrentItem();if(!currentDiscovery.discoveryItemsBeforeOptimization)return false;var oldPropValue=null;var newPropValue=null;var oldProp=null;var initialItem=currentDiscovery.discoveryItemsBeforeOptimization.find(function(di){return di.id===currentItem.id;});if(isItemSpecific){oldProp=initialItem?initialItem.itemSpecifics.find(function(is){return is.key===property;}):null;oldPropValue=oldProp?oldProp.value:null;newPropValue=currentItem.itemSpecifics.find(function(is){return is.key===property;}).value;}else{oldPropValue=initialItem?currentDiscovery.discoveryItemsBeforeOptimization.find(function(di){return di.id===currentItem.id;})[property]:null;newPropValue=currentItem[property];}if(oldPropValue&&oldPropValue!==newPropValue||oldProp==null&&initialItem){_this.setState({showOptimizedValuesModal:true,oldValue:oldPropValue,newValue:newPropValue});_this.updateValuesVisually(oldPropValue,newPropValue);}};_this.updateValuesVisually=function(oldVal,newVal){var oldValueArray=oldVal?oldVal.split(' '):[];var newValueArray=newVal.split(' ');var _loop=function _loop(index){if(!newValueArray.find(function(x){return x===oldValueArray[index];})){var regex=_this.validateForRegex(oldValueArray[index]);var startIndex=oldVal.search(regex);oldVal=_this.replaceAt(oldVal,startIndex,oldValueArray[index],"<span style=\"font-weight: bold;color: ".concat(themes["d" /* themeColors */].red,";\">").concat(oldValueArray[index],"</span>"));}};for(var index=0;index<oldValueArray.length;index++){_loop(index);}var _loop2=function _loop2(index){if(!oldValueArray.find(function(x){return x===newValueArray[index];})){var regex=_this.validateForRegex(newValueArray[index]);var startIndex=newVal.search(regex);newVal=_this.replaceAt(newVal,startIndex,newValueArray[index],"<span style=\"font-weight: bold;color: ".concat(themes["d" /* themeColors */].green,";\">").concat(newValueArray[index],"</span>"));}};for(var index=0;index<newValueArray.length;index++){_loop2(index);}_this.setState({oldValue:oldVal,newValue:newVal});};_this.replaceAt=function(value,index,oldValue,replacement){if(index>value.length-1)return value;return value.substring(0,index)+replacement+value.substring(index+oldValue.length);};_this.validateForRegex=function(value){value=value.replace(/[|\\{}()[\]^$+*?.]/g,'\\$&');return value;};_this.renderDropDown=function(intlLabel,key){var dataArray=arguments.length>2&&arguments[2]!==undefined?arguments[2]:[];var type=arguments.length>3?arguments[3]:undefined;var valuePropName=arguments.length>4&&arguments[4]!==undefined?arguments[4]:'code';var _this$props25=_this.props,formatMessage=_this$props25.formatMessage,form=_this$props25.form;var getFieldDecorator=form.getFieldDecorator;return Object(core_browser_esm["c" /* jsx */])(styled_InputContainer,{style:{display:'flex',justifyContent:'space-between',width:'376px'}},Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_styled_KeyText,null,formatMessage({id:intlLabel})),Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_styled_InputRow,null,Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_FormItem,null,getFieldDecorator(key,{initialValue:_this.getDefaultValue(key)})(Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{width:"162px",css:SingleItemEdit_ref10,onSelect:function onSelect(value){return _this.handleCommonChanges(value,key);},dropdownMatchSelectWidth:false},dataArray.map(function(dataArrayItem,i){return Object(core_browser_esm["c" /* jsx */])(Option,{key:"single-".concat(dataArrayItem[valuePropName],"-").concat(i),value:dataArrayItem[valuePropName]},dataArrayItem.name);}))))));};_this.renderNavigationButtons=function(){var _this$props26=_this.props,discoveryParams=_this$props26.discoveryParams,discoveryStore=_this$props26.discoveryStore;var lengthOfItems=discoveryStore.discoveries.get(Number(discoveryParams['discovery-id'])).discoveryItems.length;_this.indexOfItem=_this.indexOfItem?_this.indexOfItem:_this.getIndexOfItem();return Object(core_browser_esm["c" /* jsx */])(NavButtonGroup["a" /* default */],{disabledPrevious:_this.indexOfItem===0,previousAction:function previousAction(){return _this.goToItem(-1);},returnAction:_this.goToTable,disabledNext:_this.indexOfItem===lengthOfItems-1,nextAction:function nextAction(){return _this.goToItem(1);},css:SingleItemEdit_ref});};_this.renderToolTipButton=function(position,property){var isItemSpecific=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;return Object(core_browser_esm["c" /* jsx */])(popover_default.a,{content:Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"discover.valueOptimized",style:{lineHeight:2}}),title:"",trigger:"hover",placement:position?"".concat(position):'left'},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"warning",width:40,height:20,css:SingleItemEdit_ref2,onClick:function onClick(){return _this.showOptimizationModal(property,isItemSpecific);}}));};_this.renderVeroToolTipButton=function(position,property){var formatMessage=_this.props.formatMessage;var currentItem=_this.getCurrentItem();var failedWords=function(givenProperty){switch(givenProperty){case'title':return currentItem.titleFailedWords;case'description':return currentItem.descriptionFailedWords;case'brand':return currentItem.brandFailedWords;default:return[];}}(property);return Object(core_browser_esm["c" /* jsx */])(popover_default.a,{content:Object(core_browser_esm["c" /* jsx */])("p",null,"".concat(formatMessage({id:'discover.valueVero'})," because of the words: \n ").concat(failedWords.join('/'))),title:"",trigger:"hover",placement:position?"".concat(position):'left'},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"warning",width:40,height:20,css:SingleItemEdit_ref3}));};_this.renderTextDiff=function(value){return Object(core_browser_esm["c" /* jsx */])("p",{dangerouslySetInnerHTML:{__html:value}});};_this.onFileChange=function(event){// Update the state
_this.setState({selectedFile:event.target.files[0]},_this.onFileUpload);};_this.onFileUpload=function(){var _ref11,_this$getCurrentItem6;var formData=new FormData();var _this$props27=_this.props,uploadImages=_this$props27.discoveryStore.uploadImages,setSpinner=_this$props27.setSpinner,getDiscoverFromQMany=_this$props27.getDiscoverFromQMany,discoveryParams=_this$props27.discoveryParams;var selectedFile=_this.state.selectedFile;formData.set('discoveryItemId',(_ref11=(_this$getCurrentItem6=_this.getCurrentItem())===null||_this$getCurrentItem6===void 0?void 0:_this$getCurrentItem6.id)!==null&&_ref11!==void 0?_ref11:'');formData.append('myFile',selectedFile,selectedFile.name);console.log(_this.state.selectedFile);setSpinner(true);uploadImages(formData).then(function(){getDiscoverFromQMany(Number(discoveryParams['discovery-id']),true,discoveryParams['item-id']);_this.setState({selectedFile:null});setSpinner(false);}).catch(function(){return setSpinner(false);});};_this.deleteImage=function(id){var _this$props28=_this.props,deleteImage=_this$props28.discoveryStore.deleteImage,setSpinner=_this$props28.setSpinner,getDiscoverFromQMany=_this$props28.getDiscoverFromQMany,discoveryParams=_this$props28.discoveryParams;setSpinner(true);deleteImage(id).then(function(){return getDiscoverFromQMany(Number(discoveryParams['discovery-id']),true,discoveryParams['item-id']).then(function(){return setSpinner(false);});}).catch(function(){return setSpinner(false);});};_this.handleMouseOver=function(idx){var visibleX=_this.state.visibleX;visibleX[idx]=true;_this.setState({visibleX:visibleX});};_this.handleMouseOut=function(idx){var visibleX=_this.state.visibleX;visibleX[idx]=false;_this.setState({visibleX:visibleX});};_this.listButtonMessage=function(){var _this$props29=_this.props,isUp=_this$props29.listingsPageStore.isUp,isNonApi=_this$props29.sessionStore.isNonApi,formatMessage=_this$props29.formatMessage;if(!isUp){return formatMessage({id:'common.notAvailable'});}else if(isNonApi){return formatMessage({id:'discover.listNonApi'});}return formatMessage({id:'discover.list'});};_this.indexOfItem=null;_this.state={isDatePickerOpen:false,scheduleDate:null,flickList:false,titleLength:0,isTitleLengthShown:false,isMoreOptionsShown:false,isListingSuccessModalVisible:false,isListingFailureModalVisible:false,lastEdit:null,optimizeButtonShown:true,revertSaveButtonsShown:false,titleValue:'',showOptimizedValuesModal:false,oldValue:null,newValue:null,showImageOptimization:false,selectedFile:null,visibleX:{},htmlPreview:''};_this.updateLastEdit=_this.updateLastEdit.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));_this.showOptimizationModal=_this.showOptimizationModal.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));return _this;}Object(createClass["a" /* default */])(SingleItemEdit,[{key:"componentDidMount",value:function componentDidMount(){var _this$props30=this.props,discoveryParams=_this$props30.discoveryParams,discoveryStore=_this$props30.discoveryStore,getDiscoverFromQMany=_this$props30.getDiscoverFromQMany;var currentDiscovery=discoveryStore.discoveries.get(Number(discoveryParams['discovery-id']));if(!currentDiscovery){getDiscoverFromQMany(Number(discoveryParams['discovery-id']),true,discoveryParams['item-id']);}else{this.indexOfItem=this.getIndexOfItem();}this.setupOptimizationButtons();this.setupTitle();}},{key:"render",value:function render(){var _this2=this;var _this$props31=this.props,formatMessage=_this$props31.formatMessage,discoveryParams=_this$props31.discoveryParams,discoveryStore=_this$props31.discoveryStore,form=_this$props31.form,templates=_this$props31.templates,isUp=_this$props31.listingsPageStore.isUp,enums=_this$props31.enumsStore.enums,isNonApi=_this$props31.sessionStore.isNonApi,browserHistory=_this$props31.browserHistory,setSpinner=_this$props31.setSpinner;var _this$state=this.state,titleLength=_this$state.titleLength,isMoreOptionsShown=_this$state.isMoreOptionsShown,isListingSuccessModalVisible=_this$state.isListingSuccessModalVisible,isListingFailureModalVisible=_this$state.isListingFailureModalVisible,isTitleLengthShown=_this$state.isTitleLengthShown,isDatePickerOpen=_this$state.isDatePickerOpen,flickList=_this$state.flickList,revertSaveButtonsShown=_this$state.revertSaveButtonsShown,optimizeButtonShown=_this$state.optimizeButtonShown,titleValue=_this$state.titleValue,showOptimizedValuesModal=_this$state.showOptimizedValuesModal,oldValue=_this$state.oldValue,newValue=_this$state.newValue,showImageOptimization=_this$state.showImageOptimization,visibleX=_this$state.visibleX,htmlPreview=_this$state.htmlPreview;var getFieldDecorator=form.getFieldDecorator;var currentItem=this.getCurrentItem();if(!titleValue&&currentItem)this.setState({titleValue:currentItem.title});if(currentItem){var sourceItemUrl=Object(formatMarketsUrl["a" /* formatItemUrl */])(currentItem.sourceItemId,currentItem.sourceMarketplaceId);return Object(core_browser_esm["c" /* jsx */])(MainContainer,null,Object(core_browser_esm["c" /* jsx */])(TmModal["a" /* default */],{type:this.getCurrentDiscovery().listStatus==='Pending'?'info':'success',title:formatMessage({id:this.getCurrentDiscovery().listStatus==='Pending'?'common.pending':'common.success'}),visible:isListingSuccessModalVisible,secondaryActionBtn:{text:"".concat(formatMessage({id:'common.cancel'})),clickHandler:function clickHandler(){browserHistory.push('/discover/main');discoveryStore.getQList();}},mainActionBtn:{text:"".concat(formatMessage({id:'discover.ListMore'})),clickHandler:function clickHandler(){_this2.listingSuccessHandlerListMore();}}},Object(core_browser_esm["c" /* jsx */])("h3",null,formatMessage({id:this.getCurrentDiscovery().listStatus==='Pending'?'discover.singleItemListPending':'discover.singleItemListed'}))),Object(core_browser_esm["c" /* jsx */])(TmModal["a" /* default */],{type:"warning",title:formatMessage({id:'discover.listingFailed'}),visible:isListingFailureModalVisible,mainActionBtn:{text:"".concat(formatMessage({id:'discover.editListing'})),clickHandler:function clickHandler(){_this2.listingFailureTryAgainHandler();}},secondaryActionBtn:{text:"".concat(formatMessage({id:'discover.startOver'})),clickHandler:function clickHandler(){_this2.listingFailureStartOverHandler();}}},Object(core_browser_esm["c" /* jsx */])("h3",null,formatMessage({id:'discover.singleItemListingFailed'})),this.getCurrentDiscovery().listServerErrors&&Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])("h5",null,"Server Errors:"),Object(core_browser_esm["c" /* jsx */])("div",null,this.getCurrentDiscovery().listServerErrors.map(function(error){return Object(core_browser_esm["c" /* jsx */])("div",{key:error},error);})))),Object(core_browser_esm["c" /* jsx */])(TmModal["a" /* default */],{type:"info",title:formatMessage({id:'common.success'}),visible:showOptimizedValuesModal,mainActionBtn:{text:"".concat(formatMessage({id:'common.dismiss'})),clickHandler:function clickHandler(){_this2.closeSeeOptimizedValues();}}},Object(core_browser_esm["c" /* jsx */])("h3",null,Object(core_browser_esm["c" /* jsx */])("span",{style:{fontWeight:'bold'}},"Old Value:"),' '),this.renderTextDiff(oldValue),Object(core_browser_esm["c" /* jsx */])("h3",null,Object(core_browser_esm["c" /* jsx */])("span",{style:{fontWeight:'bold'}},"New Value:"),' '),this.renderTextDiff(newValue)),Object(core_browser_esm["c" /* jsx */])(TmModal["a" /* default */],{type:"info",title:formatMessage({id:'discovery.imageOptimization'}),visible:showImageOptimization,mainActionBtn:{text:"".concat(formatMessage({id:'common.continue'})),clickHandler:function clickHandler(){_this2.optimizeNow();}}},Object(core_browser_esm["c" /* jsx */])(styled_InputContainer,null,Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_styled_KeyText,null,formatMessage({id:'discover.rotateOptimization'})),Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_styled_InputRow,null,Object(core_browser_esm["c" /* jsx */])(Checkbox["a" /* default */],{checked:discoveryStore.rotateImageOptimization,onChange:function onChange(e){return discoveryStore.setRotateOptimization(e.target.checked);}}))),Object(core_browser_esm["c" /* jsx */])(styled_InputContainer,null,Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_styled_KeyText,null,formatMessage({id:'discover.collageOptimization'})),Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_styled_InputRow,null,Object(core_browser_esm["c" /* jsx */])(Checkbox["a" /* default */],{checked:discoveryStore.collageImageOptimization,onChange:function onChange(e){return discoveryStore.setCollageOptimization(e.target.checked);}})))),discoveryParams['item-id']&&this.renderNavigationButtons(),Object(core_browser_esm["c" /* jsx */])(ContentContainer,{className:"single-edit title3"},Object(core_browser_esm["c" /* jsx */])(ImageSection,null,Object(core_browser_esm["c" /* jsx */])(FlexStyle["a" /* Circle */],{style:{position:'absolute',top:'-5px',left:'-231px',minWidth:'356px',height:'356px'}}),Object(core_browser_esm["c" /* jsx */])(MainImage,{src:currentItem.mainImageUrl}),Object(core_browser_esm["c" /* jsx */])(SmallImagesContainer,null,currentItem.images.length>0?currentItem.images.map(function(image){return Object(core_browser_esm["c" /* jsx */])(popover_default.a,{key:"single-small-".concat(image.id),content:Object(core_browser_esm["c" /* jsx */])("a",{onClick:function onClick(){return _this2.setMain(image.url);}},"Set Main Image"),title:"",trigger:"hover"},Object(core_browser_esm["c" /* jsx */])(SmallImageWrapper// onClick={()=> this.setMain(image.url)}
,{isMain:image.url===currentItem.mainImageUrl,onMouseEnter:function onMouseEnter(){return _this2.handleMouseOver(image.id);},onMouseLeave:function onMouseLeave(){return _this2.handleMouseOut(image.id);},onFocus:function onFocus(){},onBlur:function onBlur(){}},Object(core_browser_esm["c" /* jsx */])("img",{src:image.url}),visibleX[image.id]&&Object(core_browser_esm["c" /* jsx */])("button",{onClick:function onClick(){return _this2.deleteImage(image.id);},css:SingleItemEdit_ref4},"x")));}):Object(core_browser_esm["c" /* jsx */])(SmallImageWrapper,{isMain:true},Object(core_browser_esm["c" /* jsx */])("img",{src:currentItem.mainImageUrl})),Object(core_browser_esm["c" /* jsx */])(SmallImageWrapper,{noBG:true,noPadding:true,borderColor:"#69c970",dotted:true},Object(core_browser_esm["c" /* jsx */])("input",{type:"file",name:"file",accept:"image/*",id:"file",className:"inputfile",onChange:this.onFileChange}),Object(core_browser_esm["c" /* jsx */])(popover_default.a,{key:"upload",content:Object(core_browser_esm["c" /* jsx */])("a",{onClick:this.onFileChange},"Upload new Image"),title:"",trigger:"hover"},Object(core_browser_esm["c" /* jsx */])("label",{htmlFor:"file"},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"positive",width:78,height:73})))))),Object(core_browser_esm["c" /* jsx */])(InfoSection,null,Object(core_browser_esm["c" /* jsx */])(TitleContainer,null,Object(core_browser_esm["c" /* jsx */])(Input["a" /* default */],{value:titleValue,maxLength:80,css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(typography["c" /* text2Medium */],";width:668px;height:30px;border-radius:20px;margin-left:-13px;label:SingleItemEdit;"+( true?"":undefined)),onBlur:this.handleCommonChanges,onPressEnter:this.handleCommonChanges,onFocus:function onFocus(){_this2.setState({isTitleLengthShown:true,titleLength:_this2.getCurrentItem().title.length});},onChange:this.setStateOfTitleLength,id:"title"}),isTitleLengthShown&&Object(core_browser_esm["c" /* jsx */])("div",{style:{width:'30%',color:'#a2adc4',paddingLeft:'1.7%'}},"(",titleLength,"/80 Characters)"),this.propertyWasOptimized('title')&&Object(core_browser_esm["c" /* jsx */])("div",null,this.renderToolTipButton('top','title')),this.propertyIsVero('title')&&Object(core_browser_esm["c" /* jsx */])("div",null,this.renderVeroToolTipButton('top','title'))),Object(core_browser_esm["c" /* jsx */])(FlexStyle["e" /* RowFlex */],{style:{justifyContent:'space-between'}},Object(core_browser_esm["c" /* jsx */])(IdentifyContainer,null,Object(core_browser_esm["c" /* jsx */])(IdentifyRow,{css:SingleItemEdit_ref5},Object(core_browser_esm["c" /* jsx */])(KeyTextCodes,{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(typography["c" /* text2Medium */],",label:SingleItemEdit;"+( true?"":undefined))},Object(eNumsConverters["a" /* eNumToIntel */])('codes',currentItem.codeType)),Object(core_browser_esm["c" /* jsx */])("a",{rel:"noopener noreferrer",target:"_blank",href:sourceItemUrl,css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(typography["b" /* text2 */]," &,&:hover,&:active{text-decoration:underline;}label:SingleItemEdit;"+( true?"":undefined))},currentItem.sourceItemId))),Object(core_browser_esm["c" /* jsx */])(OptimizationContainer,null,currentItem.failedValidations&&currentItem.failedValidations.length&&currentItem.failedValidations.some(function(validation){return validation.text;})&&Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_styled_KeyText,{style:{color:themes["d" /* themeColors */].pink,fontWeight:'bold'}},formatMessage({id:'discover.veroWarning'})),optimizeButtonShown&&Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:this.showImageOptimizationModal,cssProps:{width:'155px',marginLeft:'90px',float:'right'}},formatMessage({id:'discover.optimizeNow'})),revertSaveButtonsShown&&Object(core_browser_esm["c" /* jsx */])(ListButtonsRight,null,Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:this.revertToOriginal,cssProps:{width:'155px'}},formatMessage({id:'discover.revertNow'})),Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:this.saveOptimization,cssProps:{width:'155px'}},formatMessage({id:'discover.saveOptimization'}))))),Object(core_browser_esm["c" /* jsx */])(form_default.a,null,this.switcherForProfitsInputs()),Object(core_browser_esm["c" /* jsx */])(styled["p" /* Separator */],null),Object(core_browser_esm["c" /* jsx */])(styled_InputContainer,null,Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_styled_KeyText,null,formatMessage({id:'common.quantity'})),Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_styled_InputRow,{style:{width:'95px',marginLeft:'25px'}},Object(core_browser_esm["c" /* jsx */])(button_default.a,{type:"default",shape:"circle",icon:"minus",width:5,height:5,style:{alignSelf:'center'},id:"qty-minus",value:-1,onClick:this.handleCommonChanges}),Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_FormItem,{style:{width:'47px',marginLeft:'5%'}},getFieldDecorator('quantity',{initialValue:currentItem.pricingStrategy.quantity,rules:[{pattern:/^-?[0-9]\d*(\.\d+)?$/g,message:'Please input your number!'}]})(Object(core_browser_esm["c" /* jsx */])(Input["a" /* default */],{width:"42px",onBlur:this.handleCommonChanges,onChange:function onChange(e,idParam){return _this2.updateLastEdit(e,idParam);},onPressEnter:this.handleCommonChanges}))),Object(core_browser_esm["c" /* jsx */])(button_default.a,{type:"default",shape:"circle",icon:"plus",width:5,height:5,style:{alignSelf:'center'},id:"qty-plus",value:1,onClick:this.handleCommonChanges}))),currentItem.variations.length>0&&!isNonApi&&Object(core_browser_esm["c" /* jsx */])(styled_InputContainer,null,Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_styled_KeyText,null,formatMessage({id:'discover.includeVariations'})),Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_styled_InputRow,{style:{marginLeft:'27px'}},Object(core_browser_esm["c" /* jsx */])(Checkbox["a" /* default */],{checked:currentItem.isVariationsIncluded,onChange:function onChange(e){return currentItem.setVariationsIncluded(e.target.checked);}}))),discoveryStore.listingMarket===5?Object(core_browser_esm["c" /* jsx */])(styled["p" /* Separator */],null):null,discoveryStore.listingMarket===5?Object(core_browser_esm["c" /* jsx */])(styled_InputContainer,{style:{display:'flex',justifyContent:'space-between',width:'376px'}},Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_styled_KeyText,null,formatMessage({id:'discover.listingFlow'})),Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_styled_InputRow,null,Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_FormItem,null,getFieldDecorator('amazonListingFlow',{initialValue:this.getDefaultValue('amazonListingFlow')})(Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{width:"162px",css:_ref12,onSelect:function onSelect(value){return _this2.handleCommonChanges(value,'amazonListingFlow');},dropdownMatchSelectWidth:false},Object.keys(enums.AZ_LISTING_FLOW).map(function(k){return Object(core_browser_esm["c" /* jsx */])(Option,{key:"single-".concat(k),value:enums.AZ_LISTING_FLOW[k]},formatMessage({id:"discover.listingFlow.".concat(k)}));})))))):null,Object(core_browser_esm["c" /* jsx */])(styled["p" /* Separator */],null),Object(core_browser_esm["c" /* jsx */])(common_LabelsSection_LabelsSection,{removeLabel:discoveryStore.removeLabel,addLabel:discoveryStore.addLabel,currentItem:this.getCurrentItem(),discoveryParams:discoveryParams,isTitleShown:true,isInline:false}),!isMoreOptionsShown&&Object(core_browser_esm["c" /* jsx */])(MoreLink,{onClick:this.toggleView},Object(core_browser_esm["c" /* jsx */])("span",null,formatMessage({id:'common.showMore'})),Object(core_browser_esm["c" /* jsx */])("span",null,"\xA0",Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"more-arrow",color:themes["d" /* themeColors */].blue,width:11,height:6}))),Object(core_browser_esm["c" /* jsx */])(styled["p" /* Separator */],null),isMoreOptionsShown&&Object(core_browser_esm["c" /* jsx */])(MoreOptionsContainer,null,this.renderDropDown('discover.destinationCategories','categories',this.getCurrentItem().itemCategories,'string','destinationCategoryId'),this.renderDropDown('common.condition','condition',this.getConditionsFromEnums(),'string','id'),Object(core_browser_esm["c" /* jsx */])(styled["p" /* Separator */],null),Object(core_browser_esm["c" /* jsx */])(ItemSpecifics["a" /* default */],{formatMessage:formatMessage,specificsData:currentItem.itemSpecifics,itemId:this.getCurrentItem().id,updateSpecifics:this.getCurrentItem().updateSpecifics,setSpinner:setSpinner,onChange:this.onSpecificChanges,updateLastEdit:this.updateLastEdit,renderToolTipButton:this.renderToolTipButton,propertyWasOptimized:this.propertyWasOptimized,renderVeroToolTipButton:this.renderVeroToolTipButton,propertyIsVero:this.propertyIsVero}),Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_styled_KeyText,null,formatMessage({id:'discover.productDescription'})),Object(core_browser_esm["c" /* jsx */])(styled_InputContainer,{style:{width:'770px',marginTop:'10px'}},this.propertyWasOptimized('description')&&Object(core_browser_esm["c" /* jsx */])("div",null,this.renderToolTipButton('left','description')),this.propertyIsVero('description')&&Object(core_browser_esm["c" /* jsx */])("div",null,this.renderVeroToolTipButton('left','description')),Object(core_browser_esm["c" /* jsx */])(HTMLEditor_HtmlEditor,{value:this.getCurrentItem().deserializedDescription,save:this.setDescription,editorid:"tm-app-desc-editor"})),Object(core_browser_esm["c" /* jsx */])(styled["p" /* Separator */],null),currentItem.pricingStrategy.destinationMarketplaceId!=='SPFD_US'&&this.renderDropDown('discover.templates','templates',templates,'number','id'),// @todo: Removed for multiregion launch. Waiting for backend update.
currentItem.pricingStrategy.destinationMarketplaceId!=='SPFD_US'&&Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_styled_KeyText,{style:{marginBottom:'10px'}},"Template Preview"),Object(core_browser_esm["c" /* jsx */])("div",{css:SingleItemEdit_ref6,dangerouslySetInnerHTML:{__html:htmlPreview}})),!isNonApi&&this.renderDropDown('listing.businessPolicy','policies',discoveryStore.sellerAccountPolicies,'string')),isMoreOptionsShown&&Object(core_browser_esm["c" /* jsx */])(MoreLink,{onClick:this.toggleView},Object(core_browser_esm["c" /* jsx */])("span",null,formatMessage({id:'common.showLess'})),Object(core_browser_esm["c" /* jsx */])("span",null,"\xA0",Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"more-arrow",color:themes["d" /* themeColors */].blue,width:11,height:6,rotate:"180deg"}))),!this.props.discoveryParams['item-id']&&Object(core_browser_esm["c" /* jsx */])(ListButtons,null,this.state.isDatePickerOpen&&Object(core_browser_esm["c" /* jsx */])(modal_default.a,{visible:this.state.isDatePickerOpen,onCancel:function onCancel(){_this2.setState({isDatePickerOpen:false});},title:"Schedule Your List"// onOk={this.handleScheduleLater}
,css:SingleItemEdit_ref7,footer:null,bodyStyle:{padding:'25px'}},Object(core_browser_esm["c" /* jsx */])("h1",{css:SingleItemEdit_ref8},"Please select a date and time"),Object(core_browser_esm["c" /* jsx */])(es["a" /* default */],{onChange:function onChange(e){_this2.setState({scheduleDate:e,flickList:true});},selected:this.state.scheduleDate,showTimeSelect:true,inline:true,minDate:moment_default()(),maxDat:moment_default()().add(30,'days')}),Object(core_browser_esm["c" /* jsx */])("div",{css:_ref9},Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:function clickHandler(){_this2.setState({isDatePickerOpen:!isDatePickerOpen});_this2.handleScheduleLater(_this2.state.scheduleDate);},cssProps:{width:'155px',marginTop:'10px;'}},"Save"))),!isNonApi?Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{type:"secondary",clickHandler:function clickHandler(){return _this2.setState({isDatePickerOpen:!isDatePickerOpen});},cssProps:{width:'155px'},disabled:false},'Schedule List'):null,Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{cssProps:{width:'155px',backgroundColor:flickList?'#0070ba ':''},clickHandler:this.listDiscovery,disabled:!isUp},this.listButtonMessage())))));}return null;}}]);return SingleItemEdit;}(react["Component"]))||SingleItemEdit_class)||SingleItemEdit_class)||SingleItemEdit_class)||SingleItemEdit_class)||SingleItemEdit_class)||SingleItemEdit_class)||SingleItemEdit_class)||SingleItemEdit_class)||SingleItemEdit_class);/* harmony default export */ var components_SingleItemEdit_SingleItemEdit = (SingleItemEdit_SingleItemEdit);
// CONCATENATED MODULE: ./src/js/components/SingleItemEdit/index.js

// EXTERNAL MODULE: ./node_modules/antd/lib/switch/style/index.js
var switch_style = __webpack_require__(253);

// EXTERNAL MODULE: ./node_modules/antd/lib/switch/index.js
var lib_switch = __webpack_require__(136);
var switch_default = /*#__PURE__*/__webpack_require__.n(lib_switch);

// EXTERNAL MODULE: ./node_modules/antd/lib/badge/style/index.js
var badge_style = __webpack_require__(653);

// EXTERNAL MODULE: ./node_modules/antd/lib/badge/index.js
var badge = __webpack_require__(453);
var badge_default = /*#__PURE__*/__webpack_require__.n(badge);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 3 modules
var toConsumableArray = __webpack_require__(53);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread.js
var objectSpread = __webpack_require__(27);

// EXTERNAL MODULE: ./node_modules/react-data-grid-addons/index.js
var react_data_grid_addons = __webpack_require__(674);

// EXTERNAL MODULE: ./src/js/components/common/Table/index.js + 1 modules
var Table = __webpack_require__(219);

// EXTERNAL MODULE: ./src/js/constants/theme.js
var theme = __webpack_require__(28);

// CONCATENATED MODULE: ./src/js/components/DiscoverResultsTable/styled.js
var styled_SmallImage=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"elhgi8d0",label:"SmallImage"})("width:32px;height:32px;background:url(",function(_ref){var url=_ref.url;return url||'/assets/icons/no-logo.jpg';},") no-repeat center/contain;"+( true?"":undefined));var MainHeader=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"elhgi8d1",label:"MainHeader"})( true?{name:"eno2q1",styles:"height:50px;background-color:#fff;display:flex;justify-content:space-between;"}:undefined);var Wrapper=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"elhgi8d2",label:"Wrapper"})( true?{name:"vvmhu7",styles:"border-radius:3px;background-color:#ffffff;box-shadow:0px 1px 7px 0 #0069fa12;margin:0;"}:undefined);var HeaderCell=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"elhgi8d3",label:"HeaderCell"})("display:flex;font-family:Stolzl;font-size:12px;font-weight:normal;font-style:normal;font-stretch:normal;letter-spacing:0.1px;color:",theme["a" /* colors */].tableHeaderFont,";"+( true?"":undefined));var HeaderSorting=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('span',{target:"elhgi8d4",label:"HeaderSorting"})( true?{name:"nwrkrd",styles:"width:16px;margin-right:3px;padding-top:15px;float:right;"}:undefined);var HeaderTitle=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('span',{target:"elhgi8d5",label:"HeaderTitle"})( true?"":undefined);var styled_Container=Object(styled_base_browser_esm["a" /* default */])("div",{target:"elhgi8d6",label:"Container"})( true?{name:"1b3isq8",styles:"margin-left:30px;margin-right:15px;display:flex;align-items:center;width:100%;"}:undefined);var List=Object(styled_base_browser_esm["a" /* default */])("ul",{target:"elhgi8d7",label:"List"})( true?{name:"1l6xijh",styles:"list-style:none;margin-bottom:0;li{display:inline-block;}"}:undefined);var styled_Tag=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])(tag_default.a,{target:"elhgi8d8",label:"Tag"})("&&{border-color:",function(_ref2){var theme=_ref2.theme;return theme.colors.greyLight;},";display:flex;align-items:center;}"+( true?"":undefined));var TagIcon=Object(styled_base_browser_esm["a" /* default */])("span",{target:"elhgi8d9",label:"TagIcon"})( true?{name:"1k2uhnz",styles:"&&&&{margin-left:-7px;margin-right:5px;background-color:#e4edf7;border-radius:9px 0 0 9px;padding:1px 1px 1px 2px;color:#9da9bd;font-size:19px;font-weight:100;}"}:undefined);var ClearFiltersBtn=Object(styled_base_browser_esm["a" /* default */])("button",{target:"elhgi8d10",label:"ClearFiltersBtn"})("border:none;line-height:2.33;font-size:",function(_ref3){var theme=_ref3.theme;return theme.fontSize.small;},";color:",function(_ref4){var theme=_ref4.theme;return theme.colors.blueMed;},";text-decoration:underline;margin-left:auto;background:transparent;cursor:pointer;"+( true?"":undefined));
// CONCATENATED MODULE: ./src/js/components/DiscoverResultsTable/TagBar.js
var TagBar_TagBar=function TagBar(_ref){var filters=_ref.discoveryStore.filters,intl=_ref.intl,filterDiscovery=_ref.filterDiscovery;return Object(core_browser_esm["c" /* jsx */])(styled_Container,null,Object(core_browser_esm["c" /* jsx */])(List,null,filters.isFiltered&&filters.getFiltersAsArray.map(function(tag){return Object(core_browser_esm["c" /* jsx */])("li",{key:tag.key},Object(core_browser_esm["c" /* jsx */])(styled_Tag,null,Object(core_browser_esm["c" /* jsx */])(TagIcon,{className:"anticon anticon-cross",onClick:function onClick(e){e.stopPropagation();filters.InitFilterValue(tag.key);filterDiscovery();}}),"".concat(intl.formatMessage({id:"discover.".concat(tag.key)})," - ").concat(tag.val)));})),Object(core_browser_esm["c" /* jsx */])(ClearFiltersBtn,{onClick:function onClick(e){e.stopPropagation();filters.InitFilters();filterDiscovery();}},intl.formatMessage({id:'orders.clearFilters'})));};/* harmony default export */ var DiscoverResultsTable_TagBar = (Object(index_es["d" /* injectIntl */])(Object(index_module["b" /* inject */])('discoveryStore')(Object(index_module["c" /* observer */])(TagBar_TagBar))));
// EXTERNAL MODULE: ./src/js/components/common/CollapseBar/index.js + 1 modules
var CollapseBar = __webpack_require__(170);

// EXTERNAL MODULE: ./src/js/constants/classes/index.js
var classes = __webpack_require__(32);

// EXTERNAL MODULE: ./src/js/components/common/Filters/index.js + 1 modules
var Filters = __webpack_require__(31);

// CONCATENATED MODULE: ./src/js/components/DiscoverResultsTable/DiscoverResultsTable.js
var DiscoverResultsTable_dec,DiscoverResultsTable_dec2,DiscoverResultsTable_dec3,DiscoverResultsTable_dec4,DiscoverResultsTable_dec5,DiscoverResultsTable_dec6,DiscoverResultsTable_class;var InputsStyle={borderRadius:'10px',height:'22px'};var defaultColumnProperties={minColumnWidth:300};var DiscoverResultsTable_FormItem=form_default.a.Item;var DiscoverResultsTable_Option=Dropdown["a" /* default */].Option;var DiscoverResultsTable_RadioGroup=radio_default.a.Group;var DiscoverResultsTable_ref= true?{name:"6k3xds-DiscoverResultsTable",styles:"display:flex;justify-content:center;align-items:center;flex-direction:column;.react-datepicker__header--time{height:63px;}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{padding:5px 10px;width:70px;}label:DiscoverResultsTable;"}:undefined;var DiscoverResultsTable_ref2= true?{name:"10jdb4f-DiscoverResultsTable",styles:"margin-bottom:10px;margin-top:0px;label:DiscoverResultsTable;"}:undefined;var DiscoverResultsTable_ref3= true?{name:"s4r2zz-DiscoverResultsTable",styles:"display:flex;justify-content:center;label:DiscoverResultsTable;"}:undefined;var DiscoverResultsTable_DiscoverResultsTable=(DiscoverResultsTable_dec=form_default.a.create(),DiscoverResultsTable_dec2=Object(index_module["b" /* inject */])('enumsStore'),DiscoverResultsTable_dec3=Object(index_module["b" /* inject */])('toastsStore'),DiscoverResultsTable_dec4=Object(index_module["b" /* inject */])('sessionStore'),DiscoverResultsTable_dec5=Object(index_module["b" /* inject */])('routingStore'),DiscoverResultsTable_dec6=Object(index_module["b" /* inject */])('settingsStore'),DiscoverResultsTable_dec(DiscoverResultsTable_class=DiscoverResultsTable_dec2(DiscoverResultsTable_class=DiscoverResultsTable_dec3(DiscoverResultsTable_class=DiscoverResultsTable_dec4(DiscoverResultsTable_class=DiscoverResultsTable_dec5(DiscoverResultsTable_class=DiscoverResultsTable_dec6(DiscoverResultsTable_class=Object(index_es["d" /* injectIntl */])(DiscoverResultsTable_class=Object(index_module["c" /* observer */])(DiscoverResultsTable_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(DiscoverResultsTable,_Component);function DiscoverResultsTable(props){var _this;Object(classCallCheck["a" /* default */])(this,DiscoverResultsTable);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(DiscoverResultsTable).call(this,props));_this.componentDidMount=function(){var _this$props=_this.props,discoveryParams=_this$props.discoveryParams,discoveryStore=_this$props.discoveryStore,setSpinner=_this$props.setSpinner;var currentDiscover=_this.getCurrentDiscovery();if(discoveryParams&&discoveryParams['discovery-id']&&!currentDiscover){discoveryStore.filters.InitFilters();setSpinner(true);_this.fetchDiscovery(false).then(function(){_this.getCurrentDiscovery().toggleSelectAll();setSpinner(false);});}else{_this.getCurrentDiscovery().toggleSelectAll();}};_this.onGridRowsUpdated=function(_ref4){var rowIds=_ref4.rowIds,updated=_ref4.updated,fromRowData=_ref4.fromRowData;var _this$props2=_this.props,discoveryStore=_this$props2.discoveryStore,discoveryParams=_this$props2.discoveryParams;var UpdatesKey=Object.keys(updated)[0];switch(UpdatesKey){case'title':case'quantity':discoveryStore.updateDiscoveryItems(Number(discoveryParams['discovery-id']),rowIds[0],Object(objectSpread["a" /* default */])({},updated,{profitType:'2',profit:fromRowData.profitValue||0})).then(function(response){console.log(response);_this.forceUpdate();});break;case'profitPercent':if(parseFloat(updated[UpdatesKey])===fromRowData[UpdatesKey]||updated[UpdatesKey].trim()===''){return;}discoveryStore.setSingleItemStrategies(rowIds[0],{profitType:'1',profit:updated[UpdatesKey],breakEven:fromRowData.breakEven||0},Number(discoveryParams['discovery-id'])).then(function(response){console.log(response);_this.forceUpdate();});break;case'profitValue':if(parseFloat(updated[UpdatesKey])===fromRowData[UpdatesKey]||updated[UpdatesKey].trim()===''){return;}discoveryStore.setSingleItemStrategies(rowIds[0],{profitType:'2',profit:updated[UpdatesKey],breakEven:fromRowData.breakEven||0},Number(discoveryParams['discovery-id'])).then(function(response){console.log(response);_this.forceUpdate();});break;case'salePrice':if(parseFloat(updated[UpdatesKey])===fromRowData[UpdatesKey]||updated[UpdatesKey].trim()===''){return;}discoveryStore.setSingleItemStrategies(rowIds[0],Object(objectSpread["a" /* default */])({},updated,{profitType:'2',profit:fromRowData.profitValue||0,breakEven:fromRowData.breakEven||0}),Number(discoveryParams['discovery-id'])).then(function(response){console.log(response);_this.forceUpdate();});break;case'breakEven':if(parseFloat(updated[UpdatesKey])===fromRowData[UpdatesKey]||updated[UpdatesKey].trim()===''){return;}discoveryStore.setSingleItemStrategies(rowIds[0],Object(objectSpread["a" /* default */])({},updated,{profitType:'2',profit:fromRowData.profitValue||0}),Number(discoveryParams['discovery-id'])).then(function(response){console.log(response);_this.forceUpdate();});break;default:break;}};_this.onCellExpand=function(args){return function(_ref5){var rows=_ref5.rows,expandedRows=_ref5.expandedRows;var rowKey=args.rowData.id;var rowIndex=rows.indexOf(args.rowData);var subRows=args.expandArgs.children;if(expandedRows&&!expandedRows[rowKey]){expandedRows[rowKey]=true;rows.splice.apply(rows,[rowIndex+1,0].concat(Object(toConsumableArray["a" /* default */])(subRows)));}else if(expandedRows[rowKey]){expandedRows[rowKey]=false;rows.splice(rowIndex+1,subRows.length);}return{expandedRows:expandedRows,rows:rows};};};_this.getTitleCurrency=function(region){if(region==='USD')return'$';if(region==='GBP')return'£';if(region==='CAD')return'C$';};_this.getCurrentDiscovery=function(){var _this$props3=_this.props,discoveryStore=_this$props3.discoveryStore,discoveryParams=_this$props3.discoveryParams;return discoveryStore.discoveries.get(Number(discoveryParams['discovery-id']));};_this.getSubRowDetails=function(expandedRows){return function(rowItem){var isExpanded=expandedRows&&rowItem&&expandedRows[rowItem.id]?expandedRows[rowItem.id]:false;return{group:rowItem.variations&&rowItem.variations.length>0,expanded:isExpanded,children:rowItem.variations,field:'title',treeDepth:rowItem.treeDepth||0,siblingIndex:rowItem.variations?null:rowItem.id// numberSiblings: rowItem.variations ? null : 33,
};};};_this.getColumns=function(currentDiscover){var _this$props4=_this.props,discoveryParams=_this$props4.discoveryParams,enumsStore=_this$props4.enumsStore,templates=_this$props4.templates,browserHistory=_this$props4.browserHistory,formatMessage=_this$props4.formatMessage,updateDiscoveryItems=_this$props4.discoveryStore.updateDiscoveryItems;var DISCOVERY_SORT_BY=enumsStore.enums.DISCOVERY_SORT_BY;return[{key:'id',name:'ID',width:0},{key:'checkbox',name:'',width:50,headerRenderer:_this.renderMainSelectionCheckbox,formatter:Object(index_module["c" /* observer */])(_this.renderRowCheckbox)},{key:'',name:'',formatter:_this.renderImage,width:60,events:{onClick:function onClick(ev,args){if(args.rowId){browserHistory.push("/discover/singleResult?item-id=".concat(args.rowId,"&discovery-id=").concat(discoveryParams['discovery-id']));}}}},{key:'title',name:formatMessage({id:'discover.tableTitle'},{selected:_this.getCurrentDiscovery().rowsSelected.length}),formatter:function formatter(_ref6){var value=_ref6.value;return Object(core_browser_esm["c" /* jsx */])("div",{style:{textAlign:'left'}},value||'-- Missing Title --');},editable:_this.state.editMode,width:574},{key:'titleLength',name:formatMessage({id:'common.titleLength'}),formatter:function formatter(data){var _ref7,_data$row$title;return Object(core_browser_esm["c" /* jsx */])("div",{style:{textAlign:'center'}},"(".concat((_ref7=(_data$row$title=data.row.title)===null||_data$row$title===void 0?void 0:_data$row$title.length)!==null&&_ref7!==void 0?_ref7:0,"/80)"));},editable:false,width:90},{key:'pricingStrategy.sourcePrice',headerRenderer:function headerRenderer(){return _this.renderTitleWithSort('common.sourcePrice',DISCOVERY_SORT_BY.SOURCE_PRICE);},width:90,formatter:function formatter(data){return Object(core_browser_esm["c" /* jsx */])("span",{style:{marginRight:'19px'}},data.row.pricingStrategy.sourcePrice);}},{key:'salePrice',editable:_this.state.editMode,headerRenderer:function headerRenderer(){return _this.renderTitleWithSort('common.destinationPrice',DISCOVERY_SORT_BY.DESTINATION_PRICE);},width:90,formatter:function formatter(data){return Object(core_browser_esm["c" /* jsx */])("span",{style:{marginRight:'19px'}},data.row.pricingStrategy.salePrice);}},{key:'profitValue',editable:_this.state.editMode,headerRenderer:function headerRenderer(){return _this.renderTitleWithSort('discover.profitInDollars',DISCOVERY_SORT_BY.PROFIT_CURRENCY_UNITS);},width:80,formatter:function formatter(data){return Object(core_browser_esm["c" /* jsx */])("span",{style:{marginRight:'19px'}},data.row.pricingStrategy.profitValue);}},{key:'profitPercent',editable:_this.state.editMode,headerRenderer:function headerRenderer(){return _this.renderTitleWithSort('discover.profitInPercent',DISCOVERY_SORT_BY.PROFIT_PERCENT);},width:80,formatter:function formatter(data){return Object(core_browser_esm["c" /* jsx */])("span",{style:{marginRight:'19px'}},data.row.pricingStrategy.profitPercent);}},// {
//   key: 'tripleMarsRank',
//   name: formatMessage({ id: 'discover.tripleMarsRank' }),
//   editable: false,
//   width: 72,
// },
{key:'breakEven',name:formatMessage({id:'common.breakEven'}),editable:_this.state.editMode,width:80,formatter:function formatter(data){return Object(core_browser_esm["c" /* jsx */])("span",{style:{marginRight:'19px'}},data.row.pricingStrategy.breakEven);}},{key:'quantity',name:formatMessage({id:'common.quantity'}),width:60,editable:_this.state.editMode,formatter:function formatter(data){return Object(core_browser_esm["c" /* jsx */])("span",null,data.row.pricingStrategy.quantity);}},// {
//   key: 'labels',
//   name: formatMessage({ id: 'common.labels' }),
//   width: 220,
//   formatter: this.renderLabels,
// },
{key:'htmlTemplateSystemId',name:formatMessage({id:'discover.templates'}),width:160,formatter:function formatter(data){if(data.row.variations){return Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{className:!_this.state.editMode?'disable-events':'',width:"120px",defaultValue:data.row.htmlTemplateSystemId,onChange:function onChange(value){updateDiscoveryItems(Number(discoveryParams['discovery-id']),data.row.id,{htmlTemplateSystemId:value});}},templates.map(function(single){return Object(core_browser_esm["c" /* jsx */])(DiscoverResultsTable_Option,{key:"table-row-".concat(data.row.id,"-template-").concat(single.id),value:single.id},single.name);}));}return null;}}].map(function(c){return Object(objectSpread["a" /* default */])({},c,{},defaultColumnProperties);});};_this.getCellActions=function(column,row){var cellActions={title:function title(data){return[{icon:Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"clone",color:theme["a" /* colors */].greyMid,size:15,hoverColor:theme["a" /* colors */].blueMed}),callback:function callback(){if(data.row.id){_this.props.browserHistory.push("/discover/singleResult?item-id=".concat(data.row.id,"&discovery-id=").concat(_this.props.discoveryParams['discovery-id']));}}}];}};return column.key==='title'&&row.variations?cellActions[column.key]({column:column,row:row}):null;};_this.setSort=function(eNum){var _this$props$discovery=_this.props.discoveryStore,sortIsAscending=_this$props$discovery.sortIsAscending,sortType=_this$props$discovery.sortType,setSortIsAscending=_this$props$discovery.setSortIsAscending,setSortType=_this$props$discovery.setSortType;if(sortType===eNum){_this.setState({rows:[]},function(){setSortIsAscending(!sortIsAscending);_this.fetchDiscovery(true);});}else{_this.setState({rows:[]},function(){setSortIsAscending(true);setSortType(eNum);_this.fetchDiscovery(true);});}};_this.getTableHeight=function(){var _this$state=_this.state,isCollapseBarOpen=_this$state.isCollapseBarOpen,isFiltersBarOpen=_this$state.isFiltersBarOpen;if(isCollapseBarOpen&&!isFiltersBarOpen){return 405;}else if(!isCollapseBarOpen&&isFiltersBarOpen){return 330;}else if(isCollapseBarOpen&&isFiltersBarOpen){return 285;}return 450;};_this.fetchDiscovery=function(isDiscoveredByFilter){var _this$props5=_this.props,discoveryStore=_this$props5.discoveryStore,discoveryParams=_this$props5.discoveryParams,setSpinner=_this$props5.setSpinner,toastsStore=_this$props5.toastsStore;var discoveryId=Number(discoveryParams['discovery-id']);setSpinner(true);return discoveryStore.fetchByDiscoveryId(discoveryId,isDiscoveredByFilter).then(function(response){if(isDiscoveredByFilter&&!response){setSpinner(false);toastsStore.showToast({type:constants_enums["a" /* default */].TOAST_TYPES.INFO,message:'0 Filtered Items'});return;}if(!response||!response.discoveryItems){setSpinner(false);toastsStore.showToast({type:constants_enums["a" /* default */].TOAST_TYPES.WARNING,message:'discover failed'});return;}setSpinner(false);var _this$getCurrentDisco=_this.getCurrentDiscovery(),discoveryItems=_this$getCurrentDisco.discoveryItems;if(discoveryItems){_this.setState({rows:discoveryItems.toJSON()});}discoveryStore.getPoliciesForSellerAccount(response.sellerAccountCode,response.sourceMarketplaceId);});};_this.handleOnSelectAll=function(isSelect,rows){var ids=rows.map(function(r){return r.id;});if(isSelect){_this.setState(function(){return{selected:ids};});}else{_this.setState(function(){return{selected:[]};});}};_this.handleCommonChanges=function(e){var _this$props6=_this.props,discoveryParams=_this$props6.discoveryParams,toastsStore=_this$props6.toastsStore,form=_this$props6.form;var showToast=toastsStore.showToast;e.preventDefault();_this.props.form.validateFields(function(err,values){if(!err){var changedValues=Object(Discover["i" /* filterUndefinedValues */])(values);_this.props.discoveryStore.updateDiscoveryItemsMulti(Number(discoveryParams['discovery-id']),changedValues,345).then(function(){form.resetFields();showToast({type:constants_enums["a" /* default */].TOAST_TYPES.INFO,message:'discover.updateItemsSuccessful'});});}});};_this.toggleCollapseBar=function(){if(!_this.state.editMode){_this.setState({editMode:true,isCollapseBarOpen:!_this.state.isCollapseBarOpen});}else{_this.setState({isCollapseBarOpen:!_this.state.isCollapseBarOpen});}};_this.editToggle=function(bool){_this.setState({editMode:bool});};_this.redirectToSingleItem=function(id){if(id){_this.props.browserHistory.push("/discover/singleResult?item-id=".concat(id,"&discovery-id=").concat(_this.props.discoveryParams['discovery-id']));}};_this.handleScheduleLater=function(date){var _this$props7=_this.props,discoveryStore=_this$props7.discoveryStore,scheduleList=_this$props7.discoveryStore.scheduleList,discoveryParams=_this$props7.discoveryParams,showToast=_this$props7.toastsStore.showToast;var discoveryId=discoveryStore.discoveries.get(Number(discoveryParams['discovery-id'])).id;scheduleList(date,discoveryId).then(function(resp){if(!resp){showToast({type:constants_enums["a" /* default */].TOAST_TYPES.WARNING,message:'Could not schedule listing.'});}});};_this.listDiscovery=function(){var _this$props8=_this.props,toastsStore=_this$props8.toastsStore,discoveryStore=_this$props8.discoveryStore,discoveryParams=_this$props8.discoveryParams,setSpinner=_this$props8.setSpinner;if(!_this.getCurrentDiscovery().rowsSelected.length){toastsStore.showToast({type:constants_enums["a" /* default */].TOAST_TYPES.WARNING,message:'discover.haveToSelectAtLeastOne'});return;}setSpinner(true);_this.setState({waitingForResponse:true});discoveryStore.listBulkDiscovery(Number(discoveryParams['discovery-id'])).then(function(response){if(response){_this.setState({isListingFailureModalVisible:false});_this.setState({isListingSuccessModalVisible:true});toastsStore.showToast({type:constants_enums["a" /* default */].TOAST_TYPES.INFO,message:'discover.listRequestSuccessful'});// getQList().then(() => browserHistory.push('/discover'));
}else{_this.setState({isListingFailureModalVisible:true});_this.setState({isListingSuccessModalVisible:false});_this.setState({waitingForResponse:false});}setSpinner(false);});};_this.optimizeItems=function(){var _this$props9=_this.props,discoveryStore=_this$props9.discoveryStore,discoveryParams=_this$props9.discoveryParams,setSpinner=_this$props9.setSpinner;setSpinner(true);_this.setState({rowsBeforeOptimization:_this.state.rows});discoveryStore.getBulkOptimizedValues(Number(discoveryParams['discovery-id'])).then(function(response){var discovery=_this.getCurrentDiscovery();var _loop=function _loop(index){var row=response.find(function(x){return x.id===discovery.discoveryItems[index].id;});if(row){var currentImages=JSON.parse(JSON.stringify(discovery.discoveryItems[index].images));if(row.mainImage)currentImages.push(row.mainImage);discoveryStore.updateDiscoveryItemsInternal(Number(discoveryParams['discovery-id']),[discovery.discoveryItems[index]],{title:row.title,description:row.description,itemSpecifics:row.itemSpecifics,mainImageUrl:row.mainImage?row.mainImage.url:discovery.discoveryItems[index].mainImageUrl,images:currentImages,areOptimizedValuesShown:true});}};for(var index=0;index<discovery.discoveryItems.length;index++){_loop(index);}_this.setState({showOptimizeButton:false,showRevertSaveButtons:true,showImageOptimization:false});setSpinner(false);});};_this.revertToOriginal=function(){var _this$props10=_this.props,discoveryStore=_this$props10.discoveryStore,discoveryParams=_this$props10.discoveryParams;var rowsBeforeOptimization=_this.state.rowsBeforeOptimization;discoveryStore.revertBulkToOriginal(Number(discoveryParams['discovery-id']),rowsBeforeOptimization);_this.setState({showOptimizeButton:true,showRevertSaveButtons:false});};_this.saveOptimization=function(){var _this$props11=_this.props,discoveryStore=_this$props11.discoveryStore,discoveryParams=_this$props11.discoveryParams,setSpinner=_this$props11.setSpinner;setSpinner(true);discoveryStore.saveBulkOptimization(Number(discoveryParams['discovery-id'])).then(function(response){setSpinner(false);if(!response.isSuccessful)self.showToast({type:self.enums.TOAST_TYPES.WARNING,message:'Items failed to be optimized'});else{_this.setState({showOptimizeButton:false,showRevertSaveButtons:false});discoveryStore.setAsOptimizedBulkItems(Number(discoveryParams['discovery-id']));}});};_this.scrollHandler=function(data){if(data.scrollDirection==='downwards'&&data.rowVisibleEndIdx===data.rowOverscanEndIdx){var _ref8,_currentDiscover$stat;var _this$props12=_this.props,setSpinner=_this$props12.setSpinner,discoveryStore=_this$props12.discoveryStore,discoveryParams=_this$props12.discoveryParams;var currentDiscover=discoveryStore.discoveries.get(Number(discoveryParams['discovery-id']));if((_ref8=!_this.state.isFetchOnProgress&&currentDiscover.discoveryItems.length<(currentDiscover===null||currentDiscover===void 0?void 0:(_currentDiscover$stat=currentDiscover.statistics)===null||_currentDiscover$stat===void 0?void 0:_currentDiscover$stat.discoveredItemsCount))!==null&&_ref8!==void 0?_ref8:0){setSpinner(true);_this.setState({isFetchOnProgress:true});discoveryStore.fetchPaginationItems(Number(discoveryParams['discovery-id']),discoveryStore.filters.isFiltered).then(function(response){if(response){setSpinner(false);_this.setState({isFetchOnProgress:false,rows:_this.getCurrentDiscovery().discoveryItems.toJSON()});}});}}};_this.showImageOptimizationModal=function(){_this.setState({showImageOptimization:true});};_this.renderTitleWithSort=function(title,eNum){var _this$props13=_this.props,formatMessage=_this$props13.formatMessage,discoveryStore=_this$props13.discoveryStore,defaultCurrencyId=_this$props13.settingsStore.markets.defaultCurrencyId;var sortIsAscending=discoveryStore.sortIsAscending,sortType=discoveryStore.sortType;var currency=_this.getTitleCurrency(defaultCurrencyId);var message=title==='discover.profitInDollars'?Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"discover.profitInDollars",values:{region:currency}}):formatMessage({id:title});return Object(core_browser_esm["c" /* jsx */])(HeaderCell,{onClick:function onClick(){_this.setSort(eNum);}},Object(core_browser_esm["c" /* jsx */])(HeaderTitle,null,message),Object(core_browser_esm["c" /* jsx */])(HeaderSorting,null,sortType===eNum?Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"sort-arrow",size:14,rotate:sortIsAscending?'90deg':'270deg'}):Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"sort-arrow",size:14,rotate:'90deg',style:{filter:'opacity(0.5)'}})));};_this.isCheckboxChecked=function(id,mainItemId){var _this$props14=_this.props,discoveryStore=_this$props14.discoveryStore,discoveryParams=_this$props14.discoveryParams;var _discoveryStore$disco=discoveryStore.discoveries.get(Number(discoveryParams['discovery-id'])),rowsSelected=_discoveryStore$disco.rowsSelected,variationsSelected=_discoveryStore$disco.variationsSelected;if(mainItemId){return variationsSelected.get(mainItemId)&&variationsSelected.get(mainItemId).includes(id);}else{return rowsSelected.includes(id);}};_this.renderRowCheckbox=function(data){if(data.isScrolling){return null;}var _this$props15=_this.props,discoveryStore=_this$props15.discoveryStore,discoveryParams=_this$props15.discoveryParams;var _discoveryStore$disco2=discoveryStore.discoveries.get(Number(discoveryParams['discovery-id'])),toggleSelectRow=_discoveryStore$disco2.toggleSelectRow;var _data$row=data.row,id=_data$row.id,mainItemId=_data$row.mainItemId;return Object(core_browser_esm["c" /* jsx */])(Checkbox["a" /* default */],{"data-variation":mainItemId?"".concat(mainItemId,"_").concat(id):null,style:{marginLeft:'8px'},checked:_this.isCheckboxChecked(id,mainItemId),onChange:function onChange(e){return toggleSelectRow(e,id);},table:true});};_this.renderMainSelectionCheckbox=function(){var _this$props16=_this.props,discoveryStore=_this$props16.discoveryStore,discoveryParams=_this$props16.discoveryParams,setSpinner=_this$props16.setSpinner;var currentDiscover=discoveryStore.discoveries.get(Number(discoveryParams['discovery-id']));var isMainSelected=currentDiscover.isMainSelected,toggleSelectAll=currentDiscover.toggleSelectAll;return Object(core_browser_esm["c" /* jsx */])(Checkbox["a" /* default */],{style:{marginLeft:'8px'},checked:isMainSelected,onChange:function onChange(){if(!isMainSelected){var _ref9,_currentDiscover$stat2;if((_ref9=!_this.state.isFetchOnProgress&&currentDiscover.discoveryItems.length<(currentDiscover===null||currentDiscover===void 0?void 0:(_currentDiscover$stat2=currentDiscover.statistics)===null||_currentDiscover$stat2===void 0?void 0:_currentDiscover$stat2.discoveredItemsCount))!==null&&_ref9!==void 0?_ref9:0){setSpinner(true);_this.setState({isFetchOnProgress:true});discoveryStore.fetchPaginationItems(Number(discoveryParams['discovery-id']),discoveryStore.filters.isFiltered,true).then(function(response){if(response){setSpinner(false);_this.setState({isFetchOnProgress:false,rows:_this.getCurrentDiscovery().discoveryItems.toJSON()});}toggleSelectAll();});}else{toggleSelectAll();}}else{toggleSelectAll();}},table:true});};_this.renderImage=function(data){// if(data.isScrolling) {
//   return null;
// }
if(data.row.images){return Object(core_browser_esm["c" /* jsx */])(popover_default.a,{content:Object(core_browser_esm["c" /* jsx */])("img",{src:data.row.mainImageUrl,alt:"description",width:214,height:214}),title:"",trigger:"hover",placement:"top"},Object(core_browser_esm["c" /* jsx */])(styled_SmallImage,{url:data.row.mainImageUrl,style:{cursor:'pointer'}},Object(core_browser_esm["c" /* jsx */])(badge_default.a,{offset:['20px','8px'],style:{width:'12px',height:'12px',fontSize:'8px',backgroundColor:themes["d" /* themeColors */].blue,padding:'0 0 18px 0'},count:data.row.images.length})));}return null;};_this.renderLabels=function(data){if(data.isScrolling){return null;}var _this$props17=_this.props,formatMessage=_this$props17.formatMessage,discoveryStore=_this$props17.discoveryStore,discoveryParams=_this$props17.discoveryParams;if(data.row.variations){return Object(core_browser_esm["c" /* jsx */])(common_LabelsSection_LabelsSection,{formatMessage:formatMessage,removeLabel:discoveryStore.removeLabel,addLabel:discoveryStore.addLabel,currentItem:data.row,discoveryParams:discoveryParams,isTitleShown:false,isInline:true,disabled:!_this.state.editMode});}return null;};_this.renderToolbarInfo=function(key,intlKey){var _ref10,_this$getCurrentDisco2,_this$getCurrentDisco3;return Object(core_browser_esm["c" /* jsx */])(FlexStyle["e" /* RowFlex */],null,Object(core_browser_esm["c" /* jsx */])("div",{style:{fontSize:'32px',fontFamily:'Stolzl-Thin'}},(_ref10=(_this$getCurrentDisco2=_this.getCurrentDiscovery())===null||_this$getCurrentDisco2===void 0?void 0:(_this$getCurrentDisco3=_this$getCurrentDisco2.statistics)===null||_this$getCurrentDisco3===void 0?void 0:_this$getCurrentDisco3[key])!==null&&_ref10!==void 0?_ref10:''),Object(core_browser_esm["c" /* jsx */])("div",{className:"title2",style:{lineHeight:'57px',marginLeft:'5px'}},_this.props.formatMessage({id:"discover.".concat(intlKey)})));};_this.renderResults=function(){var currentDiscovery=_this.getCurrentDiscovery();return Object(core_browser_esm["c" /* jsx */])(FlexStyle["e" /* RowFlex */],null,Object(core_browser_esm["c" /* jsx */])("div",{style:{fontSize:'32px',fontFamily:'Stolzl-Thin'}},"".concat(currentDiscovery.itemsDiscovered,"/").concat(currentDiscovery.itemsCount)),Object(core_browser_esm["c" /* jsx */])("div",{className:"title2",style:{lineHeight:'57px',marginLeft:'5px'}},_this.props.formatMessage({id:'discover.results'})));};_this.filterDiscovery=function(clearFilters){var _this$props18=_this.props,discoveryStore=_this$props18.discoveryStore,toastsStore=_this$props18.toastsStore;if(clearFilters||discoveryStore.filters.getFiltersAsArray.some(function(filter){return filter;})){_this.setState({rows:[]},function(){_this.fetchDiscovery(true);});}else{discoveryStore.filters.InitFilters();_this.setState({rows:[]},function(){_this.fetchDiscovery(true);});toastsStore.showToast({type:constants_enums["a" /* default */].TOAST_TYPES.INFO,message:'No filters applied'});}};_this.listingFailureStartOverHandler=function(){var _this$props19=_this.props,discoveryStore=_this$props19.discoveryStore,browserHistory=_this$props19.browserHistory;_this.setState({isListingFailureModalVisible:false});discoveryStore.initStore();browserHistory.push('/discover/source');};_this.listingFailureTryAgainHandler=function(){_this.setState({isListingFailureModalVisible:false});};_this.listingSuccessHandlerListMore=function(){var _this$props20=_this.props,discoveryStore=_this$props20.discoveryStore,routingStore=_this$props20.routingStore;_this.setState({isListingSuccessModalVisible:false});discoveryStore.initStore();routingStore.browserHistory.push('/discover/express');};_this.renderModals=function(){var _this$props21=_this.props,formatMessage=_this$props21.intl.formatMessage,discoveryStore=_this$props21.discoveryStore,browserHistory=_this$props21.browserHistory;var _this$state2=_this.state,isListingSuccessModalVisible=_this$state2.isListingSuccessModalVisible,isListingFailureModalVisible=_this$state2.isListingFailureModalVisible,showImageOptimization=_this$state2.showImageOptimization;return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(TmModal["a" /* default */],{type:"info",title:formatMessage({id:'common.pending'}),visible:isListingSuccessModalVisible,secondaryActionBtn:{text:"".concat(formatMessage({id:'common.cancel'})),clickHandler:function clickHandler(){browserHistory.push('/discover/main');discoveryStore.getQList();}},mainActionBtn:{text:"".concat(formatMessage({id:'discover.ListMore'})),clickHandler:function clickHandler(){_this.listingSuccessHandlerListMore();}}},Object(core_browser_esm["c" /* jsx */])("h3",null,formatMessage({id:'discover.listRequestSuccessful'}))),Object(core_browser_esm["c" /* jsx */])(TmModal["a" /* default */],{type:"warning",title:formatMessage({id:'discover.listingFailed'}),visible:isListingFailureModalVisible,mainActionBtn:{text:"".concat(formatMessage({id:'discover.editListing'})),clickHandler:function clickHandler(){_this.listingFailureTryAgainHandler();}},secondaryActionBtn:{text:"".concat(formatMessage({id:'discover.startOver'})),clickHandler:function clickHandler(){_this.listingFailureStartOverHandler();}}},Object(core_browser_esm["c" /* jsx */])("h3",null,formatMessage({id:'discover.singleItemListingFailed'})),_this.getCurrentDiscovery().listServerErrors&&Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])("h5",null,"Server Errors"),Object(core_browser_esm["c" /* jsx */])("div",null,_this.getCurrentDiscovery().listServerErrors.map(function(error){return Object(core_browser_esm["c" /* jsx */])("div",{key:"".concat(error.errorCode,"-").concat(error.message)},error.message," (",formatMessage({id:'common.errorCode'}),": ",error.errorCode,")");})))),Object(core_browser_esm["c" /* jsx */])(TmModal["a" /* default */],{type:"info",title:formatMessage({id:'discovery.imageOptimization'}),visible:showImageOptimization,mainActionBtn:{text:"".concat(formatMessage({id:'common.continue'})),clickHandler:function clickHandler(){_this.optimizeItems();}}},Object(core_browser_esm["c" /* jsx */])(styled_InputContainer,null,Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_styled_KeyText,null,formatMessage({id:'discover.rotateOptimization'})),Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_styled_InputRow,null,Object(core_browser_esm["c" /* jsx */])(Checkbox["a" /* default */],{checked:discoveryStore.rotateImageOptimization,onChange:function onChange(e){return discoveryStore.setRotateOptimization(e.target.checked);}}))),Object(core_browser_esm["c" /* jsx */])(styled_InputContainer,null,Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_styled_KeyText,null,formatMessage({id:'discover.collageOptimization'})),Object(core_browser_esm["c" /* jsx */])(SingleItemEdit_styled_InputRow,null,Object(core_browser_esm["c" /* jsx */])(Checkbox["a" /* default */],{checked:discoveryStore.collageImageOptimization,onChange:function onChange(e){return discoveryStore.setCollageOptimization(e.target.checked);}})))));};_this.state={selected:[],editMode:false,isDatePickerOpen:false,scheduleDate:null,flickList:false,expandedRows:{},isCollapseBarOpen:false,isFiltersBarOpen:false,isFetchOnProgress:false,rows:_this.getCurrentDiscovery()?_this.getCurrentDiscovery().discoveryItems.toJSON():[],isListingFailureModalVisible:false,isListingSuccessModalVisible:false,waitingForResponse:false,showOptimizeButton:true,showRevertSaveButtons:false,rowsBeforeOptimization:null,showImageOptimization:false};return _this;}Object(createClass["a" /* default */])(DiscoverResultsTable,[{key:"render",value:function render(){var _this2=this;var _this$props22=this.props,form=_this$props22.form,formatMessage=_this$props22.formatMessage,discoveryStore=_this$props22.discoveryStore,enumsStore=_this$props22.enumsStore,listingServiceUp=_this$props22.listingServiceUp,isNonApi=_this$props22.sessionStore.isNonApi;var _discoveryStore$filte=discoveryStore.filters,profitType=_discoveryStore$filte.profitType,minPrice=_discoveryStore$filte.minPrice,maxPrice=_discoveryStore$filte.maxPrice,minProfit=_discoveryStore$filte.minProfit,maxProfit=_discoveryStore$filte.maxProfit,setMinPrice=_discoveryStore$filte.setMinPrice,setMaxPrice=_discoveryStore$filte.setMaxPrice,setMinProfit=_discoveryStore$filte.setMinProfit,setMaxProfit=_discoveryStore$filte.setMaxProfit,setProfitType=_discoveryStore$filte.setProfitType;var _enumsStore$enums$TYP=enumsStore.enums.TYPE_OF_DISCOVERY_PROFIT_TYPE,CURRENCY_UNITS=_enumsStore$enums$TYP.CURRENCY_UNITS,PERCENT=_enumsStore$enums$TYP.PERCENT;var getFieldDecorator=form.getFieldDecorator;var _this$state3=this.state,isDatePickerOpen=_this$state3.isDatePickerOpen,scheduleDate=_this$state3.scheduleDate;var currentDiscover=this.getCurrentDiscovery();var visibleRows=react_data_grid_addons["Data"].Selectors.getRows(this.state);console.log(currentDiscover?currentDiscover.isMainSelected:'');var mainButtonMessage='';if(currentDiscover){if(currentDiscover.rowsSelected.length===0){mainButtonMessage='0 Items Selected';}else if(!listingServiceUp){mainButtonMessage=formatMessage({id:'common.notAvailable'});}else if(isNonApi){mainButtonMessage=formatMessage({id:'discover.listNonApi'});}else{mainButtonMessage=formatMessage({id:'discover.list'});}}return currentDiscover?Object(core_browser_esm["c" /* jsx */])("div",{style:{paddingTop:'18px',height:'100%'}},this.renderModals(),Object(core_browser_esm["c" /* jsx */])(Wrapper,null,Object(core_browser_esm["c" /* jsx */])(CollapseBar["a" /* default */],{titleId:"discover.filters",toogleBar:function toogleBar(){_this2.setState({isFiltersBarOpen:!_this2.state.isFiltersBarOpen});},open:this.state.isFiltersBarOpen,as:"h2",style:{padding:'5px 15px',fontFamily:'Stolzl-Medium'},titleElements:Object(core_browser_esm["c" /* jsx */])(DiscoverResultsTable_TagBar,{filterDiscovery:this.filterDiscovery})},Object(core_browser_esm["c" /* jsx */])(Filters["a" /* BarContainer */],{css:Filters["f" /* formStyle */]},Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"orders.destinationPriceRange"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],{style:{marginRight:'25px'}},Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"number",value:minPrice||'',onPressEnter:this.filterDiscovery,onChange:function onChange(e){setMinPrice(e.target.value!==''?Number(e.target.value):null);},width:"70px"}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},formatMessage({id:'common.to'})),Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"number",value:maxPrice||'',onPressEnter:this.filterDiscovery,onChange:function onChange(e){setMaxPrice(e.target.value!==''?Number(e.target.value):null);},width:"70px"}))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"common.profit"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"number",value:minProfit||'',onPressEnter:this.filterDiscovery,onChange:function onChange(e){setMinProfit(e.target.value!==''?Number(e.target.value):null);},width:"70px"}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},formatMessage({id:'common.to'})),Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"number",value:maxProfit||'',onPressEnter:this.filterDiscovery,onChange:function onChange(e){setMaxProfit(e.target.value!==''?Number(e.target.value):null);},width:"70px"}))),Object(core_browser_esm["c" /* jsx */])("div",{style:{display:'flex',alignItems:'center',paddingTop:'18px'}},Object(core_browser_esm["c" /* jsx */])(DiscoverResultsTable_RadioGroup,{onChange:function onChange(e){setProfitType(Number(e.target.value));},defaultValue:profitType},Object(core_browser_esm["c" /* jsx */])(radio_default.a,{value:CURRENCY_UNITS},"$"),Object(core_browser_esm["c" /* jsx */])(radio_default.a,{value:PERCENT},"%"))),Object(core_browser_esm["c" /* jsx */])(Filters["b" /* Button */],{type:"primary",clickHandler:this.filterDiscovery,cssProps:Filters["g" /* submitButtonStyle */]},formatMessage({id:'common.search'})))),Object(core_browser_esm["c" /* jsx */])(CollapseBar["a" /* default */],{titleId:"common.actions",toogleBar:this.toggleCollapseBar,open:this.state.isCollapseBarOpen,as:"h2",style:{padding:'5px 15px',fontFamily:'Stolzl-Medium'}},Object(core_browser_esm["c" /* jsx */])("div",{style:{display:'flex'}},Object(core_browser_esm["c" /* jsx */])(form_default.a,{layout:"inline",onSubmit:this.handleCommonChanges,style:{width:'100%',padding:'3px 15px'}},Object(core_browser_esm["c" /* jsx */])(DiscoverResultsTable_FormItem,{label:"Quantity"},getFieldDecorator('quantity',{rules:[{type:'string',message:'The input is not valid'}]})(Object(core_browser_esm["c" /* jsx */])(Input["a" /* default */],{min:1,type:"number",css:InputsStyle}))),Object(core_browser_esm["c" /* jsx */])(DiscoverResultsTable_FormItem,{label:"Labels"},getFieldDecorator('labels',{rules:[{type:'string',message:'The input is not valid'}]})(Object(core_browser_esm["c" /* jsx */])(Input["a" /* default */],{type:"string",css:InputsStyle}))),Object(core_browser_esm["c" /* jsx */])(DiscoverResultsTable_FormItem,{label:"Template"},getFieldDecorator('templates')(Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{width:"140px"},this.props.templates.map(function(single,i){return Object(core_browser_esm["c" /* jsx */])(DiscoverResultsTable_Option,{key:"table-template-".concat(single.name,"-").concat(i),value:single.id},single.name);})))),Object(core_browser_esm["c" /* jsx */])(DiscoverResultsTable_FormItem,{style:{float:'right',marginTop:'8px'}},Object(core_browser_esm["c" /* jsx */])(button_default.a,{type:"default",style:{float:'right',width:'100px',height:'25px'},htmlType:"submit"},formatMessage({id:'common.apply'})))))),Object(core_browser_esm["c" /* jsx */])(MainHeader,{style:{justifyContent:'space-between',padding:'0 15px'}},this.renderResults(),this.renderToolbarInfo('failedVeroCount','vero'),this.renderToolbarInfo('failedBlackListCount','blackList'),Object(core_browser_esm["c" /* jsx */])("div",{style:{lineHeight:'57px'}},Object(core_browser_esm["c" /* jsx */])("span",{style:{marginRight:'15px'}},formatMessage({id:'common.editMode'})),Object(core_browser_esm["c" /* jsx */])(switch_default.a,{onChange:this.editToggle,checked:this.state.editMode}))),Object(core_browser_esm["c" /* jsx */])(Table["a" /* default */],{columns:this.getColumns(currentDiscover),rowGetter:function rowGetter(i){return visibleRows[i];},rowsCount:visibleRows.length,onGridRowsUpdated:this.onGridRowsUpdated,enableCellSelect:true,onScroll:this.scrollHandler,getCellActions:this.getCellActions// minColumnWidth={100}
,headerRowHeight:40// minHeight={this.getTableHeight()}
,getSubRowDetails:this.getSubRowDetails(this.state.expandedRows),onCellExpand:function onCellExpand(args){return _this2.setState(_this2.onCellExpand(args));}})),Object(core_browser_esm["c" /* jsx */])("div",{style:{width:'100%',display:'flex',justifyContent:'flex-end',padding:'10px 87px 10px'}},isDatePickerOpen&&Object(core_browser_esm["c" /* jsx */])(modal_default.a,{visible:isDatePickerOpen,onCancel:function onCancel(){_this2.setState({isDatePickerOpen:false});},title:"Schedule Your List"// onOk={this.handleScheduleLater}
,css:DiscoverResultsTable_ref,footer:null,bodyStyle:{padding:'25px'}},Object(core_browser_esm["c" /* jsx */])("h1",{css:DiscoverResultsTable_ref2},"Please select a date and time"),Object(core_browser_esm["c" /* jsx */])(es["a" /* default */],{onChange:function onChange(e){_this2.setState({scheduleDate:e,flickList:true});},selected:scheduleDate,showTimeSelect:true,inline:true,minDate:moment_default()(),maxDat:moment_default()().add(30,'days')}),Object(core_browser_esm["c" /* jsx */])("div",{css:DiscoverResultsTable_ref3},Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:function clickHandler(){_this2.setState({isDatePickerOpen:!isDatePickerOpen});_this2.handleScheduleLater(scheduleDate);},cssProps:{width:'155px',marginTop:'10px;'}},"Save"))),!isNonApi?Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{type:"secondary",clickHandler:function clickHandler(){return _this2.setState({isDatePickerOpen:!isDatePickerOpen});},cssProps:{width:'155px'},disabled:false},'Schedule List'):null,Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{type:"secondary",cssProps:{width:'160px',marginLeft:'3%',backgroundColor:this.state.flickList?'#0070ba ':'',display:this.state.showOptimizeButton?'':'none'},disabled:currentDiscover.rowsSelected.length===0||this.state.waitingForResponse||!listingServiceUp,clickHandler:this.showImageOptimizationModal},Object(core_browser_esm["c" /* jsx */])("div",null,"Optimize")),Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:this.revertToOriginal,cssProps:{width:'160px',marginLeft:'3%',backgroundColor:this.state.flickList?'#0070ba ':'',display:this.state.showRevertSaveButtons?'':'none'},disabled:currentDiscover.rowsSelected.length===0||this.state.waitingForResponse||!listingServiceUp},formatMessage({id:'discover.revertNow'})),Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:this.saveOptimization,cssProps:{width:'160px',marginLeft:'3%',backgroundColor:this.state.flickList?'#0070ba ':'',display:this.state.showRevertSaveButtons?'':'none'},disabled:currentDiscover.rowsSelected.length===0||this.state.waitingForResponse||!listingServiceUp},formatMessage({id:'discover.saveOptimization'})),Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{cssProps:{width:'160px',marginLeft:'3%',backgroundColor:this.state.flickList?'#0070ba ':''},disabled:currentDiscover.rowsSelected.length===0||this.state.waitingForResponse||!listingServiceUp,clickHandler:this.listDiscovery},Object(core_browser_esm["c" /* jsx */])("div",null,mainButtonMessage)))):null;}}]);return DiscoverResultsTable;}(react["Component"]))||DiscoverResultsTable_class)||DiscoverResultsTable_class)||DiscoverResultsTable_class)||DiscoverResultsTable_class)||DiscoverResultsTable_class)||DiscoverResultsTable_class)||DiscoverResultsTable_class)||DiscoverResultsTable_class);/* harmony default export */ var components_DiscoverResultsTable_DiscoverResultsTable = (DiscoverResultsTable_DiscoverResultsTable);
// CONCATENATED MODULE: ./src/js/components/DiscoverResultsTable/index.js

// CONCATENATED MODULE: ./src/js/components/MarketLargeButton/MarketLargeButton.js
var MarketLargeButtonStyled=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"e1w8jcs80",label:"MarketLargeButtonStyled"})("min-width:237px;height:120px;border-radius:4px;box-shadow:0px 1px 7px 0 rgba(0,105,250,0.15);background-color:#ffffff;border:solid 1px rgba(223,223,223,0.48);display:flex;flex-direction:column-reverse;justify-content:space-between;cursor:pointer;margin-right:35px;position:relative;border-top:",function(_ref){var borderTop=_ref.borderTop;return borderTop?'none':'solid 1px rgba(223, 223, 223, 0.48)';},";"+( true?"":undefined));/* eslint-disable no-confusing-arrow */var Icon=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"e1w8jcs81",label:"Icon"})("width:58%;height:",function(_ref2){var iconHeight=_ref2.iconHeight;return iconHeight?"".concat(iconHeight,"px"):'31px';},";margin-bottom:",function(_ref3){var iconMarginBottom=_ref3.iconMarginBottom;return iconMarginBottom?"".concat(iconMarginBottom,"px"):'44px';},";margin-left:21%;margin-right:21%;background:url(",function(_ref4){var type=_ref4.type;return type?"/assets/icons/".concat(type,".png"):'/assets/icons/no-logo.png';},") no-repeat center/contain;"+( true?"":undefined));var SelectedBottom=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"e1w8jcs82",label:"SelectedBottom"})( true?{name:"180z0bg",styles:"width:100%;height:4px;background-color:#233b69;border-radius:4px 4px 0 0;"}:undefined);var CountryName=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"e1w8jcs83",label:"CountryName"})( true?{name:"xj5qpp",styles:"position:absolute;bottom:5px;right:5px;"}:undefined);var MarketLargeButton_MarketLargeButton=function MarketLargeButton(props){var clickHandler=props.clickHandler,type=props.type,selected=props.selected,isDisabledByStep=props.isDisabledByStep,path=props.path;var countryName=type&&Object(eNumsConverters["b" /* enumToCountryName */])(path,type);var iconHeight=31;var iconMarginBottom=44;if(type===4){iconHeight=55;iconMarginBottom=30;}// console.log(enumToType(path, type))
// console.log(countryName);
var marketName=type&&Object(eNumsConverters["c" /* enumToType */])(path,type);return Object(core_browser_esm["c" /* jsx */])(MarketLargeButtonStyled,{onClick:function onClick(){return clickHandler(type);},borderTop:selected===type,className:marketName},isDisabledByStep&&Object(core_browser_esm["c" /* jsx */])(FlexStyle["c" /* DisableMask */],{border:4}),Object(core_browser_esm["c" /* jsx */])(Icon,{type:marketName,iconHeight:iconHeight,iconMarginBottom:iconMarginBottom}),selected===type&&Object(core_browser_esm["c" /* jsx */])(SelectedBottom,null),countryName&&Object(core_browser_esm["c" /* jsx */])(CountryName,null,countryName));};/* harmony default export */ var components_MarketLargeButton_MarketLargeButton = (MarketLargeButton_MarketLargeButton);
// CONCATENATED MODULE: ./src/js/components/MarketLargeButton/index.js

// CONCATENATED MODULE: ./src/js/components/MarketSelect/MarketSelect.js
var MarketSelect_class;var MarketSelect_Container=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"e1hjqgb70",label:"Container"})( true?{name:"cncrmx",styles:"width:80%;min-width:min(925px,100%);align-self:center;display:flex;justify-content:flex-start;top:-15px;position:relative;"}:undefined);var MarketSelect_ref= true?{name:"1tuvryw-MarketSelect",styles:"overflow-x:auto;display:flex;margin-left:0px;@media only screen and (min-width:820px){margin-left:90px;}label:MarketSelect;"}:undefined;var MarketSelect_MarketSelect=Object(index_es["d" /* injectIntl */])(MarketSelect_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(MarketSelect,_Component);function MarketSelect(){Object(classCallCheck["a" /* default */])(this,MarketSelect);return Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(MarketSelect).apply(this,arguments));}Object(createClass["a" /* default */])(MarketSelect,[{key:"render",value:function render(){var _this$props=this.props,markets=_this$props.markets,clickHandler=_this$props.clickHandler,selected=_this$props.selected,isDisabled=_this$props.isDisabled,path=_this$props.path;return Object(core_browser_esm["c" /* jsx */])("div",{css:MarketSelect_ref},Object(core_browser_esm["c" /* jsx */])(MarketSelect_Container,{className:"price-reference-buttons"},markets.map(function(market){return Object(core_browser_esm["c" /* jsx */])(components_MarketLargeButton_MarketLargeButton,{type:market,selected:selected,clickHandler:clickHandler,key:"discover-".concat(market),isDisabledByStep:isDisabled,path:path});})));}}]);return MarketSelect;}(react["Component"]))||MarketSelect_class;/* harmony default export */ var components_MarketSelect_MarketSelect = (MarketSelect_MarketSelect);
// CONCATENATED MODULE: ./src/js/components/MarketSelect/index.js

// EXTERNAL MODULE: ./src/js/components/DiscoverySectionInfo/index.js + 1 modules
var DiscoverySectionInfo = __webpack_require__(226);

// CONCATENATED MODULE: ./src/js/components/DiscoverMarkets/DiscoverMarkets.js
var DiscoverMarkets_ref= true?{name:"iza2io-MobileSectionInfo",styles:"position:absolute;height:40px;margin-top:30px;margin-left:10px;font-family:Stolzl-Thin;font-size:22px;font-weight:100;font-style:normal;font-stretch:normal;line-height:0.21;letter-spacing:normal;text-align:left;color:#233b69;label:MobileSectionInfo;"}:undefined;var DiscoverMarkets_ref2= true?{name:"12v2h6v-MobileSectionInfo",styles:"font-size:30px;font-weight:bold;label:MobileSectionInfo;"}:undefined;var DiscoverMarkets_MobileSectionInfo=function MobileSectionInfo(_ref3){var formatMessage=_ref3.formatMessage;return Object(core_browser_esm["c" /* jsx */])("div",{css:DiscoverMarkets_ref},Object(core_browser_esm["c" /* jsx */])("span",{css:DiscoverMarkets_ref2},'1. '),formatMessage({id:'discover.selectPriceReferenceSite'})||'');};var DiscoverMarkets_DiscoverMarkets=function DiscoverMarkets(props){var markets=props.markets,getDiscoverMarket=props.getDiscoverMarket,setDiscoverMarket=props.setDiscoverMarket,formatMessage=props.formatMessage,isDisabled=props.isDisabled,path=props.path;var breakpoints=props.breakpoints,currentBreakpoint=props.currentBreakpoint;return Object(core_browser_esm["c" /* jsx */])(FlexStyle["d" /* DiscoverSection */],{isDisabled:isDisabled,style:{overflow:'hidden'},css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(breakpoints[currentBreakpoint]<breakpoints.tablet&&'padding: 0px 10px;',"label:DiscoverMarkets;"+( true?"":undefined))},breakpoints[currentBreakpoint]>=breakpoints.tablet&&Object(core_browser_esm["c" /* jsx */])(DiscoverySectionInfo["a" /* default */],{qNumber:1,content:formatMessage({id:'discover.selectPriceReferenceSite'})}),breakpoints[currentBreakpoint]<breakpoints.tablet&&Object(core_browser_esm["c" /* jsx */])(DiscoverMarkets_MobileSectionInfo,{formatMessage:formatMessage}),Object(core_browser_esm["c" /* jsx */])(components_MarketSelect_MarketSelect,{selected:getDiscoverMarket,markets:markets,clickHandler:setDiscoverMarket,path:path}));};/* harmony default export */ var components_DiscoverMarkets_DiscoverMarkets = (Object(lib["withBreakpoints"])(DiscoverMarkets_DiscoverMarkets));
// CONCATENATED MODULE: ./src/js/components/DiscoverMarkets/index.js

// CONCATENATED MODULE: ./src/js/components/ListingMarkets/ListingMarkets.js
var ListingMarkets_ref= true?{name:"1k0buug-MobileSectionInfo",styles:"position:absolute;height:40px;margin-top:30px;margin-left:10px;font-family:Stolzl-Thin;font-size:20px;font-weight:100;font-style:normal;font-stretch:normal;line-height:0.21;letter-spacing:normal;text-align:left;color:#233b69;label:MobileSectionInfo;"}:undefined;var ListingMarkets_ref2= true?{name:"12v2h6v-MobileSectionInfo",styles:"font-size:30px;font-weight:bold;label:MobileSectionInfo;"}:undefined;var ListingMarkets_MobileSectionInfo=function MobileSectionInfo(_ref3){var formatMessage=_ref3.formatMessage;return Object(core_browser_esm["c" /* jsx */])("div",{css:ListingMarkets_ref},Object(core_browser_esm["c" /* jsx */])("span",{css:ListingMarkets_ref2},"3. "),formatMessage({id:'discover.selectMarketplaceDestination'}));};var ListingMarkets_ListingMarkets=function ListingMarkets(props){var markets=props.markets,getDiscoverMarket=props.getDiscoverMarket,setListingMarket=props.setListingMarket,formatMessage=props.formatMessage,getListingMarket=props.getListingMarket,isDisabled=props.isDisabled,path=props.path;var breakpoints=props.breakpoints,currentBreakpoint=props.currentBreakpoint;return Object(core_browser_esm["c" /* jsx */])(FlexStyle["d" /* DiscoverSection */],{isDisabled:isDisabled,css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(breakpoints[currentBreakpoint]<breakpoints.tablet&&'padding: 0px 10px;',"label:ListingMarkets;"+( true?"":undefined))},breakpoints[currentBreakpoint]>=breakpoints.tablet&&Object(core_browser_esm["c" /* jsx */])(DiscoverySectionInfo["a" /* default */],{qNumber:3,content:formatMessage({id:'discover.selectMarketplaceDestination'}),isDisabledByStep:isDisabled}),breakpoints[currentBreakpoint]<breakpoints.tablet&&!isDisabled&&Object(core_browser_esm["c" /* jsx */])(ListingMarkets_MobileSectionInfo,{formatMessage:formatMessage}),Object(core_browser_esm["c" /* jsx */])(components_MarketSelect_MarketSelect,{selected:getListingMarket,discoverMarket:getDiscoverMarket,markets:markets,clickHandler:setListingMarket,isDisabled:isDisabled,path:path}));};/* harmony default export */ var components_ListingMarkets_ListingMarkets = (Object(lib["withBreakpoints"])(ListingMarkets_ListingMarkets));
// CONCATENATED MODULE: ./src/js/components/ListingMarkets/index.js

// EXTERNAL MODULE: ./src/js/components/DiscoveryInputsWrapper/index.js + 7 modules
var DiscoveryInputsWrapper = __webpack_require__(387);

// CONCATENATED MODULE: ./src/js/components/StrategySelect/styled.js
var StrategySelect_styled_Container=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ejttaf80",label:"Container"})( true?{name:"v8le8a",styles:"width:782px;margin-left:105px;display:flex;align-items:center;justify-content:space-between;"}:undefined);var SingleStrategy=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ejttaf81",label:"SingleStrategy"})("width:237px;font-family:Stolzl;color:",theme["a" /* colors */].greyMid,";font-size:14px;z-index:11;"+( true?"":undefined));var StrategyButton=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ejttaf82",label:"StrategyButton"})("width:100%;height:176px;display:flex;flex-direction:column;justify-content:space-around;padding:0 15px 15px 15px;cursor:pointer;background-color:rgb(249,249,249);border-radius:4px;box-shadow:0px 1px 7px 0 ",theme["a" /* colors */].BlueBoxShadow,";position:relative;&:hover{ box-shadow:0px 1px 7px 0 ",theme["a" /* colors */].blueMed,";}"+( true?"":undefined));var StrategyTitle=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ejttaf83",label:"StrategyTitle"})("color:",theme["a" /* colors */].blueDark,";font-family:Stolzl-Medium;font-size:18px;font-weight:500;padding-bottom:15px;border-bottom:1px solid ",theme["a" /* colors */].disabledBorder,";"+( true?"":undefined));var StrategyDescription=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ejttaf84",label:"StrategyDescription"})( true?{name:"1qxtz39",styles:"font-size:12px;"}:undefined);var ActiveHeading=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ejttaf85",label:"ActiveHeading"})("width:100%;height:4px;background-color:",theme["a" /* colors */].blueDark,";border-radius:4px 4px 0 0;position:absolute;top:0;left:0;"+( true?"":undefined));
// EXTERNAL MODULE: ./node_modules/antd/lib/checkbox/style/index.js
var checkbox_style = __webpack_require__(134);

// EXTERNAL MODULE: ./node_modules/antd/lib/checkbox/index.js
var lib_checkbox = __webpack_require__(61);
var checkbox_default = /*#__PURE__*/__webpack_require__.n(lib_checkbox);

// EXTERNAL MODULE: ./node_modules/mobx-state-tree/dist/mobx-state-tree.module.js
var mobx_state_tree_module = __webpack_require__(1);

// CONCATENATED MODULE: ./src/js/components/StrategyModal/styled.js
var StrategyWrapper=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ejdz0rn0",label:"StrategyWrapper"})("width:100%;border-radius:4px;background-color:#ffffff;z-index:10;display:flex;flex-direction:column;padding:15px;font-family:Stolzl;font-size:12px;box-shadow:0px 1px 7px 0 ",theme["a" /* colors */].blueMed,";"+( true?"":undefined));var Header=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ejdz0rn1",label:"Header"})("width:100%;height:35px;margin-bottom:7px;border-bottom:solid 1px #ebebeb;font-family:Stolzl-Medium;font-size:18px;font-weight:500;color:",theme["a" /* colors */].blueDark,";display:flex;justify-content:space-between;"+( true?"":undefined));var Body=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ejdz0rn2",label:"Body"})( true?{name:"j7qwjs",styles:"display:flex;flex-direction:column;"}:undefined);var Footer=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ejdz0rn3",label:"Footer"})( true?{name:"gg4vpm",styles:"display:flex;justify-content:space-between;"}:undefined);var StrategyModal_styled_Separator=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ejdz0rn4",label:"Separator"})( true?{name:"vwtm8d",styles:"height:1px;margin-bottom:8px;border-bottom:solid 1px #ebebeb;"}:undefined);
// CONCATENATED MODULE: ./src/js/components/StrategyModal/StrategyModal.js
var StrategyModal_dec,StrategyModal_dec2,StrategyModal_dec3,StrategyModal_class;var StrategyModal_FormItem=form_default.a.Item;var StrategyModal_RadioGroup=radio_default.a.Group;var StrategyModal_StrategyModal=(StrategyModal_dec=Object(index_module["b" /* inject */])('enumsStore'),StrategyModal_dec2=Object(index_module["b" /* inject */])('toastsStore'),StrategyModal_dec3=form_default.a.create(),StrategyModal_dec(StrategyModal_class=StrategyModal_dec2(StrategyModal_class=StrategyModal_dec3(StrategyModal_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(StrategyModal,_Component);function StrategyModal(props){var _this;Object(classCallCheck["a" /* default */])(this,StrategyModal);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(StrategyModal).call(this,props));_this.setSaveAsTemplate=function(e){_this.setState({saveAsTemplate:e.target.checked});};_this.getLabel=function(property,isTypeShown,isConnectedToType,showTitle){var _this$props=_this.props,intl=_this$props.intl,strategyType=_this$props.strategyType,enumsStore=_this$props.enumsStore;var strategiesClone=_this.state.strategiesClone;if(showTitle){if(property==='breakEven'||property==='fixedFee')return"".concat(intl.formatMessage({id:"common.".concat(property)}),":");if(isConnectedToType){return"".concat(intl.formatMessage({id:"pricing.".concat(property)})," ").concat(isTypeShown?Object(parsers["c" /* getSignByProfitType */])(strategiesClone.get(strategyType).properties.profitType):'',":");}return"".concat(intl.formatMessage({id:"pricing.".concat(property)})," ").concat(isTypeShown?enumsStore.enumsReverse.TYPE_OF_DISCOVERY_PROFIT_TYPE[2]:''," :");}return null;};_this.generateReqBody=function(values){var _this$props2=_this.props,strategyType=_this$props2.strategyType,enumsStore=_this$props2.enumsStore;var FIXED_PROFIT=enumsStore.enums.STRATEGY.FIXED_PROFIT;var breakEven=values.breakEven,profit=values.profit,profitType=values.profitType;switch(Number(strategyType)){case FIXED_PROFIT:return{profit:Number(profit),breakEven:Number(breakEven),currency:'USD',// TODO hard coded for now
inPercents:profitType===enumsStore.enums.TYPE_OF_DISCOVERY_PROFIT_TYPE.PERCENT};default:return null;}};_this.handleSubmit=function(e){var _this$props3=_this.props,strategies=_this$props3.strategies,setDefaultStrategyValues=_this$props3.setDefaultStrategyValues,strategyType=_this$props3.strategyType,setSpinner=_this$props3.setSpinner,toastsStore=_this$props3.toastsStore,onClose=_this$props3.onClose;e.preventDefault();e.stopPropagation();_this.props.form.validateFields(function(err,values){if(!err){if(_this.state.saveAsTemplate){setSpinner(true);setDefaultStrategyValues({strategyType:strategyType,reqBody:_this.generateReqBody(values)}).then(function(response){if(response){setSpinner(false);}else{toastsStore.showToast({type:constants_enums["a" /* default */].TOAST_TYPES.WARNING,message:'errors.serverError'});}});Object(mobx_state_tree_module["applySnapshot"])(strategies,Object(mobx_state_tree_module["getSnapshot"])(_this.state.strategiesClone));}else{Object(mobx_state_tree_module["applySnapshot"])(strategies,Object(mobx_state_tree_module["getSnapshot"])(_this.state.strategiesClone));}}});onClose(e);};_this.handleValuesChange=function(e,property){var strategyType=_this.props.strategyType;var strategiesClone=_this.state.strategiesClone;strategiesClone.get(strategyType).setProperties(strategyType,property,Number(e.target.value));_this.setState({strategiesClone:strategiesClone});};_this.renderMainRadioButtons=function(renderText){var _this$props4=_this.props,intl=_this$props4.intl,strategyType=_this$props4.strategyType,form=_this$props4.form;var strategiesClone=_this.state.strategiesClone;var getFieldDecorator=form.getFieldDecorator;return Object(core_browser_esm["c" /* jsx */])("div",{style:{display:'flex',justifyContent:'space-between',lineHeight:'37px'}},renderText?Object(core_browser_esm["c" /* jsx */])("span",null,"".concat(intl.formatMessage({id:'common.profit'}),":")):null,Object(core_browser_esm["c" /* jsx */])(StrategyModal_FormItem,null,getFieldDecorator('profitType',{initialValue:strategiesClone.get(strategyType).properties.profitType})(Object(core_browser_esm["c" /* jsx */])(StrategyModal_RadioGroup,{onChange:function onChange(e){return _this.handleValuesChange(e,'profitType');}},Object(core_browser_esm["c" /* jsx */])(radio_default.a,{value:constants_enums["a" /* default */].TYPE_OF_DISCOVERY_PROFIT_TYPE.CURRENCY_UNITS},"$"),Object(core_browser_esm["c" /* jsx */])(radio_default.a,{value:constants_enums["a" /* default */].TYPE_OF_DISCOVERY_PROFIT_TYPE.PERCENT},"%")))));};_this.renderFormItem=function(property){var isTypeShown=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var isConnectedToType=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;var isInline=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;var children=arguments.length>4?arguments[4]:undefined;var showTitle=arguments.length>5&&arguments[5]!==undefined?arguments[5]:true;var _this$props5=_this.props,form=_this$props5.form,strategyType=_this$props5.strategyType;var strategiesClone=_this.state.strategiesClone;var getFieldDecorator=form.getFieldDecorator;return Object(core_browser_esm["c" /* jsx */])(StrategyModal_FormItem,{className:isInline?'inline-form-item normal-font':'normal-font',colon:false,label:_this.getLabel(property,isTypeShown,isConnectedToType,showTitle)},getFieldDecorator(property,{initialValue:strategiesClone.get(strategyType).properties[property],rules:[{pattern:/^[0-9]*$/g,message:'Please input valid number'}]})(Object(core_browser_esm["c" /* jsx */])(Input["a" /* default */],{style:{marginRight:'5px'},onChange:function onChange(e){return _this.handleValuesChange(e,property);}})),children);};_this.renderDynamicForm=function(){var strategyType=_this.props.strategyType;var strategiesClone=_this.state.strategiesClone;switch(strategiesClone.get(strategyType).properties.strategyType){case"".concat(constants_enums["a" /* default */].STRATEGY.FIXED_PROFIT):return Object(core_browser_esm["c" /* jsx */])("div",null,_this.renderFormItem('breakEven'),Object(core_browser_esm["c" /* jsx */])(StrategyModal_styled_Separator,null),_this.renderMainRadioButtons(true),_this.renderFormItem('profit',true,true,false,null,false));default:return null;}};_this.state={strategiesClone:Object(mobx_state_tree_module["clone"])(props.strategies),saveAsTemplate:false};return _this;}Object(createClass["a" /* default */])(StrategyModal,[{key:"render",value:function render(){var _this$props6=this.props,onClose=_this$props6.onClose,title=_this$props6.title,intl=_this$props6.intl;return Object(core_browser_esm["c" /* jsx */])(StrategyWrapper,{className:"strategy-modal"},Object(core_browser_esm["c" /* jsx */])(Header,null,title,Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"x",size:8,onClick:onClose})),Object(core_browser_esm["c" /* jsx */])(Body,null,Object(core_browser_esm["c" /* jsx */])(form_default.a,{onSubmit:this.handleSubmit},this.renderDynamicForm(),Object(core_browser_esm["c" /* jsx */])(Footer,null,Object(core_browser_esm["c" /* jsx */])(checkbox_default.a,{className:"title2",style:{lineHeight:'30px'},onChange:this.setSaveAsTemplate,checked:this.state.saveAsTemplate},intl.formatMessage({id:'pricing.saveAsDefault'})),Object(core_browser_esm["c" /* jsx */])(button_default.a,{htmlType:"submit",type:"default"},intl.formatMessage({id:'common.save'}))))));}}]);return StrategyModal;}(react["Component"]))||StrategyModal_class)||StrategyModal_class)||StrategyModal_class);/* harmony default export */ var components_StrategyModal_StrategyModal = (StrategyModal_StrategyModal);
// CONCATENATED MODULE: ./src/js/components/StrategyModal/index.js

// CONCATENATED MODULE: ./src/js/components/StrategySelect/StrategySelect.js
var StrategySelect_dec,StrategySelect_dec2,StrategySelect_dec3,StrategySelect_class;/* eslint-disable jsx-a11y/mouse-events-have-key-events */var StrategySelect_ref= true?{name:"1iorrcv-MarketSelect",styles:"margin-bottom:10px;label:MarketSelect;"}:undefined;var StrategySelect_ref2= true?{name:"1iorrcv-MarketSelect",styles:"margin-bottom:10px;label:MarketSelect;"}:undefined;var StrategySelect_ref3= true?{name:"1iorrcv-MarketSelect",styles:"margin-bottom:10px;label:MarketSelect;"}:undefined;var StrategySelect_MarketSelect=(StrategySelect_dec=Object(index_module["b" /* inject */])('routingStore'),StrategySelect_dec2=Object(index_module["b" /* inject */])('enumsStore'),StrategySelect_dec3=Object(index_module["b" /* inject */])('settingsStore'),StrategySelect_dec(StrategySelect_class=StrategySelect_dec2(StrategySelect_class=StrategySelect_dec3(StrategySelect_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(MarketSelect,_Component);function MarketSelect(props){var _this;Object(classCallCheck["a" /* default */])(this,MarketSelect);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(MarketSelect).call(this,props));_this.handleStrategySelect=function(e,strategy){if(e){e.stopPropagation();}_this.setState({isShownModal:null});_this.props.selectStrategy(strategy);};_this.handleCloseModal=function(e){e.stopPropagation();_this.setState({isShownModal:null});};_this.handleOpenModal=function(e,strategy){e.stopPropagation();_this.setState({isShownModal:strategy});_this.props.selectStrategy(strategy);};_this.state={isHovered:null,isShownModal:null};_this.strategies=[props.enumsStore.enums.STRATEGY.FIXED_PROFIT,props.enumsStore.enums.STRATEGY.PENETRATION,props.enumsStore.enums.STRATEGY.COMPETITION];return _this;}Object(createClass["a" /* default */])(MarketSelect,[{key:"componentDidMount",value:function componentDidMount(){var _this$props=this.props,isDisabledByStep=_this$props.isDisabledByStep,selected=_this$props.selected;if(isDisabledByStep){this.handleStrategySelect(null,selected);}}},{key:"render",value:function render(){var _this2=this;var _this$props2=this.props,selected=_this$props2.selected,isDisabledByStep=_this$props2.isDisabledByStep,strategies=_this$props2.strategies,intl=_this$props2.intl,setDefaultStrategyValues=_this$props2.setDefaultStrategyValues,setSpinner=_this$props2.setSpinner,enumsStore=_this$props2.enumsStore,toggleSettings=_this$props2.settingsStore.toggleSettings,browserHistory=_this$props2.routingStore.browserHistory;var _this$props3=this.props,breakpoints=_this$props3.breakpoints,currentBreakpoint=_this$props3.currentBreakpoint;var CurrentStrategies=isDisabledByStep?this.strategies[0]:Object.keys(strategies.toJSON())[0];// Version 0.1 Only fixed
if(!CurrentStrategies){browserHistory.push('/discover');return null;}var penetration=Number(enumsStore.enums.STRATEGY.PENETRATION);return Object(core_browser_esm["c" /* jsx */])(StrategySelect_styled_Container,{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("justify-content:space-evenly;flex-wrap:wrap;",breakpoints[currentBreakpoint]<breakpoints.tablet&&'margin-left: 0px; width: min(782px, 100%); margin-top: 80px; ',"label:MarketSelect;"+( true?"":undefined))},[CurrentStrategies].map(function(strategyString){var strategy=Number(strategyString);return Object(core_browser_esm["c" /* jsx */])(SingleStrategy,{key:"strategy-modal-".concat(strategy),css:StrategySelect_ref},_this2.state.isShownModal===strategy?Object(core_browser_esm["c" /* jsx */])(components_StrategyModal_StrategyModal,{onClose:function onClose(e){return _this2.handleCloseModal(e);},title:Object(eNumsConverters["a" /* eNumToIntel */])('pricingStrategies',strategy),strategyType:strategyString,strategies:strategies,intl:intl,setDefaultStrategyValues:setDefaultStrategyValues,setSpinner:setSpinner}):Object(core_browser_esm["c" /* jsx */])(StrategyButton,{onClick:function onClick(e){return _this2.handleStrategySelect(e,strategy);},onMouseEnter:function onMouseEnter(){return _this2.setState({isHovered:strategy});},onMouseLeave:function onMouseLeave(){return _this2.setState({isHovered:null});},selected:selected,value:strategy},isDisabledByStep&&Object(core_browser_esm["c" /* jsx */])(FlexStyle["c" /* DisableMask */],{border:5}),strategy===selected&&Object(core_browser_esm["c" /* jsx */])(ActiveHeading,null),_this2.state.isHovered===strategy&&Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"pencil",size:20,style:{position:'absolute',top:'10px',right:'10px'},onClick:function onClick(e){return _this2.handleOpenModal(e,strategy);}}),Object(core_browser_esm["c" /* jsx */])(StrategyTitle,{className:"mainTitle"},Object(eNumsConverters["a" /* eNumToIntel */])('pricingStrategies',strategy)),Object(core_browser_esm["c" /* jsx */])(StrategyDescription,null,'Set item/s price according to fixed profit margins')));}),Object(core_browser_esm["c" /* jsx */])(SingleStrategy,{css:StrategySelect_ref2},Object(core_browser_esm["c" /* jsx */])(StrategyButton,{onClick:function onClick(e){return _this2.handleStrategySelect(e,'ranged');},onMouseEnter:function onMouseEnter(){return _this2.setState({isHovered:'ranged'});},onMouseLeave:function onMouseLeave(){return _this2.setState({isHovered:null});},value:"ranged"},isDisabledByStep&&Object(core_browser_esm["c" /* jsx */])(FlexStyle["c" /* DisableMask */],{border:5}),selected==='ranged'&&Object(core_browser_esm["c" /* jsx */])(ActiveHeading,null),this.state.isHovered==='ranged'&&Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"pencil",size:20,style:{position:'absolute',top:'10px',right:'10px'},onClick:function onClick(){return toggleSettings(enumsStore.enums.SETTINGS_TABS.PRICING);}}),Object(core_browser_esm["c" /* jsx */])(StrategyTitle,{className:"mainTitle"},intl.formatMessage({id:'pricing.rangedProfit'})),Object(core_browser_esm["c" /* jsx */])(StrategyDescription,null,'Set item/s price according to the corresponding price range strategy'))),Object(core_browser_esm["c" /* jsx */])(SingleStrategy,{css:StrategySelect_ref3},Object(core_browser_esm["c" /* jsx */])(StrategyButton,{onClick:function onClick(e){return _this2.handleStrategySelect(e,penetration);},onMouseEnter:function onMouseEnter(){return _this2.setState({isHovered:penetration});},onMouseLeave:function onMouseLeave(){return _this2.setState({isHovered:null});},value:penetration},isDisabledByStep&&Object(core_browser_esm["c" /* jsx */])(FlexStyle["c" /* DisableMask */],{border:5}),selected===penetration&&Object(core_browser_esm["c" /* jsx */])(ActiveHeading,null),this.state.isHovered===penetration&&Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"pencil",size:20,style:{position:'absolute',top:'10px',right:'10px'},onClick:function onClick(){return toggleSettings(enumsStore.enums.SETTINGS_TABS.PRICING);}}),Object(core_browser_esm["c" /* jsx */])(StrategyTitle,{className:"mainTitle"},"Penetration Profit"),Object(core_browser_esm["c" /* jsx */])(StrategyDescription,null,'Set item/s price according to penetration profit margins'))));}}]);return MarketSelect;}(react["Component"]))||StrategySelect_class)||StrategySelect_class)||StrategySelect_class);/* harmony default export */ var StrategySelect = (Object(lib["withBreakpoints"])(StrategySelect_MarketSelect));
// CONCATENATED MODULE: ./src/js/components/StrategySelect/index.js

// CONCATENATED MODULE: ./src/js/components/StrategySelectWrapper/StrategySelectWrapper.js
var StrategySelectWrapper_ref= true?{name:"1k0buug-MobileSectionInfo",styles:"position:absolute;height:40px;margin-top:30px;margin-left:10px;font-family:Stolzl-Thin;font-size:20px;font-weight:100;font-style:normal;font-stretch:normal;line-height:0.21;letter-spacing:normal;text-align:left;color:#233b69;label:MobileSectionInfo;"}:undefined;var StrategySelectWrapper_ref2= true?{name:"12v2h6v-MobileSectionInfo",styles:"font-size:30px;font-weight:bold;label:MobileSectionInfo;"}:undefined;var StrategySelectWrapper_MobileSectionInfo=function MobileSectionInfo(_ref3){var formatMessage=_ref3.formatMessage;return Object(core_browser_esm["c" /* jsx */])("div",{css:StrategySelectWrapper_ref},Object(core_browser_esm["c" /* jsx */])("span",{css:StrategySelectWrapper_ref2},"5. "),formatMessage({id:'discover.selectYourStrategyType'}));};var StrategySelectWrapper_StrategySelectWrapper=function StrategySelectWrapper(props){var isDisabled=props.isDisabled,clickHandler=props.clickHandler,value=props.value,selected=props.selected,strategies=props.strategies,intl=props.intl,setDefaultStrategyValues=props.setDefaultStrategyValues,setSpinner=props.setSpinner;var breakpoints=props.breakpoints,currentBreakpoint=props.currentBreakpoint;return Object(core_browser_esm["c" /* jsx */])(FlexStyle["d" /* DiscoverSection */],{isDisabled:isDisabled},breakpoints[currentBreakpoint]>=breakpoints.tablet&&Object(core_browser_esm["c" /* jsx */])(DiscoverySectionInfo["a" /* default */],{qNumber:5,content:intl.formatMessage({id:'discover.selectYourStrategyType'}),isDisabledByStep:isDisabled}),breakpoints[currentBreakpoint]<breakpoints.tablet&&!isDisabled&&Object(core_browser_esm["c" /* jsx */])(StrategySelectWrapper_MobileSectionInfo,{formatMessage:intl.formatMessage}),Object(core_browser_esm["c" /* jsx */])(StrategySelect,{selectStrategy:clickHandler,value:value,intl:intl,selected:selected,isDisabledByStep:isDisabled,strategies:strategies,setDefaultStrategyValues:setDefaultStrategyValues,setSpinner:setSpinner}));};/* harmony default export */ var components_StrategySelectWrapper_StrategySelectWrapper = (Object(lib["withBreakpoints"])(StrategySelectWrapper_StrategySelectWrapper));
// CONCATENATED MODULE: ./src/js/components/StrategySelectWrapper/index.js

// EXTERNAL MODULE: ./src/js/components/common/spinner/index.js + 1 modules
var spinner = __webpack_require__(74);

// CONCATENATED MODULE: ./src/js/components/DiscoveryAccountSelect/DiscoveryAccountSelect.js
var DiscoveryAccountSelect_Option=Dropdown["a" /* default */].Option;var DiscoveryAccountSelect_ref= true?{name:"1k0buug-MobileSectionInfo",styles:"position:absolute;height:40px;margin-top:30px;margin-left:10px;font-family:Stolzl-Thin;font-size:20px;font-weight:100;font-style:normal;font-stretch:normal;line-height:0.21;letter-spacing:normal;text-align:left;color:#233b69;label:MobileSectionInfo;"}:undefined;var DiscoveryAccountSelect_ref2= true?{name:"12v2h6v-MobileSectionInfo",styles:"font-size:30px;font-weight:bold;label:MobileSectionInfo;"}:undefined;var DiscoveryAccountSelect_MobileSectionInfo=function MobileSectionInfo(_ref3){var formatMessage=_ref3.formatMessage;return Object(core_browser_esm["c" /* jsx */])("div",{css:DiscoveryAccountSelect_ref},Object(core_browser_esm["c" /* jsx */])("span",{css:DiscoveryAccountSelect_ref2},"4. "),formatMessage({id:'discover.selectAccount'}));};var DiscoveryAccountSelect_DiscoveryAccountSelect=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(DiscoveryAccountSelect,_Component);function DiscoveryAccountSelect(props){var _this;Object(classCallCheck["a" /* default */])(this,DiscoveryAccountSelect);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(DiscoveryAccountSelect).call(this,props));_this.setAccount=function(value){_this.setState({account:value});};_this.state={account:props.sellersAccounts&&props.sellersAccounts.length?JSON.stringify({id:props.sellersAccounts[0].id,name:props.sellersAccounts[0].name}):''};return _this;}Object(createClass["a" /* default */])(DiscoveryAccountSelect,[{key:"render",value:function render(){var _this2=this;var _this$props=this.props,handleAccountSelect=_this$props.handleAccountSelect,sellersAccounts=_this$props.sellersAccounts,isDisabled=_this$props.isDisabled,intl=_this$props.intl;var _this$props2=this.props,breakpoints=_this$props2.breakpoints,currentBreakpoint=_this$props2.currentBreakpoint;return Object(core_browser_esm["c" /* jsx */])(FlexStyle["d" /* DiscoverSection */],{isDisabled:isDisabled},breakpoints[currentBreakpoint]>=breakpoints.tablet&&Object(core_browser_esm["c" /* jsx */])(DiscoverySectionInfo["a" /* default */],{qNumber:4,content:intl.formatMessage({id:'discover.selectAccount'}),isDisabledByStep:isDisabled}),breakpoints[currentBreakpoint]<breakpoints.tablet&&!isDisabled&&Object(core_browser_esm["c" /* jsx */])(DiscoveryAccountSelect_MobileSectionInfo,{formatMessage:intl.formatMessage}),Object(core_browser_esm["c" /* jsx */])("div",{style:{margin:'160px 50px 0 50px'}},Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{showSearch:true// style={{ margin: '160px 50px 0 50px' }}
,style:{marginRight:'50px',marginBottom:'15px'},width:"200px",onChange:this.setAccount,disabled:isDisabled,defaultValue:isDisabled||!sellersAccounts?'':this.state.account},isDisabled||!sellersAccounts?Object(core_browser_esm["c" /* jsx */])(DiscoveryAccountSelect_Option,{value:""},"----"):sellersAccounts.map(function(account){return Object(core_browser_esm["c" /* jsx */])(DiscoveryAccountSelect_Option,{value:JSON.stringify({id:account.id,name:account.name}),key:"sellers-account-".concat(account.id)},account.name);})),Object(core_browser_esm["c" /* jsx */])(button_default.a,{onClick:function onClick(){handleAccountSelect(_this2.state.account);}},"Next")));}}]);return DiscoveryAccountSelect;}(react["Component"]);/* harmony default export */ var components_DiscoveryAccountSelect_DiscoveryAccountSelect = (Object(lib["withBreakpoints"])(DiscoveryAccountSelect_DiscoveryAccountSelect));
// CONCATENATED MODULE: ./src/js/components/DiscoveryAccountSelect/index.js

// CONCATENATED MODULE: ./src/js/components/QList/styled.js
var MainArea=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"eutg4z0",label:"MainArea"})( true?{name:"4o45hx",styles:"margin-top:2%;width:100%;"}:undefined);var styled_Header=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"eutg4z1",label:"Header"})( true?{name:"l540re",styles:"width:100%;height:18px;font-family:Stolzl-Medium;font-size:12px;font-weight:500;font-style:normal;font-stretch:normal;line-height:1.12;letter-spacing:normal;text-align:left;color:#3f435c;margin-top:10px;padding-left:3px;"}:undefined);var styled_Body=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"eutg4z2",label:"Body"})( true?{name:"ndfgjt",styles:"width:100%;height:80vh;display:flex;justify-content:flex-start;"}:undefined);var Column=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"eutg4z3",label:"Column"})( true?{name:"pcioin",styles:"width:257px;height:80vh;display:flex;flex-direction:column;margin:0 0.6% 0 0.6%;"}:undefined);var ColumnBody=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"eutg4z4",label:"ColumnBody"})( true?{name:"1ks773p",styles:"width:92%;padding-top:10px;height:100%;display:flex;flex-direction:column;"}:undefined);var ColumnBodyWrapper=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"eutg4z5",label:"ColumnBodyWrapper"})("border-radius:4px;background-color:",themes["d" /* themeColors */].backgroundLightBlue,";width:100%;height:100%;display:flex;justify-content:center;overflow-y:scroll;"+( true?"":undefined));var BlankQ=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"eutg4z6",label:"BlankQ"})( true?{name:"1cv64ht",styles:"font-size:48px;width:100%;height:100%;text-align:center;margin:0 auto;"}:undefined);var FlexWrapper=Object(styled_base_browser_esm["a" /* default */])("div",{target:"eutg4z7",label:"FlexWrapper"})("display:flex;align-items:start;position:fixed;bottom:0;width:1073.28px;justify-content:center;transition:max-height 0.2s ease-out ",function(_ref){var sanityCheckOpen=_ref.sanityCheckOpen;return sanityCheckOpen?'':'0.2s';},";@media (min-height:800px){flex-direction:column-reverse;align-items:center;justify-content:space-between;height:calc(100% - 140px);max-height:",function(_ref2){var sanityCheckOpen=_ref2.sanityCheckOpen;return sanityCheckOpen?'calc(100% - 200px)':'100%';},";}"+( true?"":undefined));var FirstLine=Object(styled_base_browser_esm["a" /* default */])("h1",{target:"eutg4z8",label:"FirstLine"})( true?{name:"in3yi3",styles:"font-weight:bold;"}:undefined);var TextWrapper=Object(styled_base_browser_esm["a" /* default */])("div",{target:"eutg4z9",label:"TextWrapper"})( true?{name:"cr9gg2",styles:"margin-left:-10em;max-width:400px;@media (min-height:800px){max-width:1248px;margin-left:0;}"}:undefined);
// CONCATENATED MODULE: ./src/js/components/QCard/styled.js
var Card=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ewsghx90",label:"Card"})("width:100%;padding:10px 15px 15px 8px;border-radius:3px;margin-bottom:10px;background-color:",theme["a" /* colors */].whiteLightBackground,";box-shadow:0px 3px 29px 0 #3b5dc012;transition:opacity 0.2s ease-in,max-height 0.5s linear 0.2s,margin 0.1s linear 0.2s,padding 0.1s linear 0.2s;",function(_ref){var closing=_ref.closing;return closing&&"\n    max-height: 0;\n    opacity: 0;\n    margin:0;\n    padding:0;\n  ";}, true?"":undefined);var QCard_styled_Header=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ewsghx91",label:"Header"})("display:flex;flex-direction:column;padding-bottom:10px;margin-bottom:10px;border-bottom:solid 1px ",theme["a" /* colors */].borderLight,";",function(_ref2){var isListed=_ref2.isListed;return isListed?'cursor: pointer;':'';}, true?"":undefined);var QCard_styled_Body=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ewsghx92",label:"Body"})( true?{name:"j7qwjs",styles:"display:flex;flex-direction:column;"}:undefined);var styled_Footer=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ewsghx93",label:"Footer"})( true?{name:"j7qwjs",styles:"display:flex;flex-direction:column;"}:undefined);var Buttons=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ewsghx94",label:"Buttons"})( true?{name:"wfxdg",styles:"margin-top:32px;display:flex;flex-direction:row-reverse;"}:undefined);var SpreadButtons=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ewsghx95",label:"SpreadButtons"})( true?{name:"1yquqls",styles:"margin-top:32px;display:flex;justify-content:space-between;"}:undefined);var Status=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ewsghx96",label:"Status"})( true?{name:"1badijy",styles:"display:flex;align-items:center;justify-content:left;"}:undefined);var StatusText=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('span',{target:"ewsghx97",label:"StatusText"})(function(_ref3){var height=_ref3.height;return height?"height: ".concat(height,";"):'';}," font-size:",function(_ref4){var size=_ref4.size;return size||'14px';},";font-weight:normal;font-style:normal;font-stretch:normal;letter-spacing:normal;text-align:left;margin-left:6%;color:",function(_ref5){var color=_ref5.color;return color;},";"+( true?"":undefined));var ItemsCount=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ewsghx98",label:"ItemsCount"})( true?{name:"vq0ifu",styles:"font-family:Stolzl;font-size:14px;font-weight:normal;font-style:normal;font-stretch:normal;line-height:1.43;letter-spacing:normal;text-align:left;"}:undefined);var ItemsCountNumber=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('span',{target:"ewsghx99",label:"ItemsCountNumber"})( true?"":undefined);var TimeLeft=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ewsghx910",label:"TimeLeft"})( true?{name:"k008qs",styles:"display:flex;"}:undefined);var AccountListing=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ewsghx911",label:"AccountListing"})("margin-top:16px;border-radius:4px;box-shadow:0px 1px 7px 0 ",theme["a" /* colors */].BlueBoxShadow,";background-color:",theme["a" /* colors */].whiteBackground,";padding:5px 5px 5px 10px;cursor:pointer;"+( true?"":undefined));var ListingStatus=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ewsghx912",label:"ListingStatus"})("margin:8px 0;border-radius:4px;box-shadow:0px 1px 7px 0 ",theme["a" /* colors */].BlueBoxShadow,";background-color:",theme["a" /* colors */].whiteBackground,";padding:5px 5px 5px 10px;"+( true?"":undefined));var AccountData=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"ewsghx913",label:"AccountData"})("font-family:Stolzl;font-size:12px;font-weight:normal;font-style:normal;font-stretch:normal;letter-spacing:normal;color:",theme["a" /* colors */].greySecondary,";"+( true?"":undefined));var AccountName=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('span',{target:"ewsghx914",label:"AccountName"})("font-family:Stolzl-Bold;font-size:12px;color:",theme["a" /* colors */].greySecondary,";"+( true?"":undefined));
// EXTERNAL MODULE: ./src/js/constants/discover.js
var discover = __webpack_require__(154);

// CONCATENATED MODULE: ./src/js/components/common/PaddedProgress/PaddedProgress.js
var PaddedProgress=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])(progress_default.a,{target:"e15e7b7r0",label:"PaddedProgress"})( true?{name:"15g3q49",styles:"div.ant-progress-inner{padding:4px;}div.ant-progress-bg{transition:2s;margin:0;}div.ant-progress-success-bg,div.ant-progress-inner::after{transition:2s;}"}:undefined);/* harmony default export */ var PaddedProgress_PaddedProgress = (PaddedProgress);
// CONCATENATED MODULE: ./src/js/components/common/PaddedProgress/index.js

// EXTERNAL MODULE: ./src/js/utils/downloadFile.js
var downloadFile = __webpack_require__(139);

// CONCATENATED MODULE: ./src/js/components/QCard/QCard.js
var QCard_class;var QCard_ref= true?{name:"asbmzj-renderActionsButtons",styles:"white-space:pre-line;font-size:10px;padding:0 10px;label:renderActionsButtons;"}:undefined;var QCard_ref2= true?{name:"asbmzj-renderActionsButtons",styles:"white-space:pre-line;font-size:10px;padding:0 10px;label:renderActionsButtons;"}:undefined;var QCard_ref3= true?{name:"asbmzj-renderActionsButtons",styles:"white-space:pre-line;font-size:10px;padding:0 10px;label:renderActionsButtons;"}:undefined;var QCard_QCard=Object(index_module["c" /* observer */])(QCard_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(QCard,_Component);function QCard(props){var _this;Object(classCallCheck["a" /* default */])(this,QCard);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(QCard).call(this,props));_this.getLastListing=function(accountsDetails){var dates=accountsDetails.map(function(detail){return detail.time;});return Math.max.apply(Math,Object(toConsumableArray["a" /* default */])(dates));};_this.handleStopProgress=function(){var _this$props=_this.props,mainAction=_this$props.mainAction,id=_this$props.id;_this.setState({stopWaiter:true});mainAction(id).then(function(data){if(data)_this.setState({stopWaiter:false});console.log('card',data);});};_this.startClosing=function(){_this.setState({closing:true});};_this.newRenderAccountListing=function(){var _this$props2=_this.props,itemsFailed=_this$props2.itemsFailed,itemsListed=_this$props2.itemsListed,intl=_this$props2.intl;return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(ListingStatus,null,Object(core_browser_esm["c" /* jsx */])(Status,{style:{marginBottom:'8px'}},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"v-green",size:16}),Object(core_browser_esm["c" /* jsx */])(StatusText,{size:"15px",color:themes["d" /* themeColors */].successFont},"".concat(itemsListed||0," ").concat(intl.formatMessage({id:'qList.listedItems'})))),Object(core_browser_esm["c" /* jsx */])(Status,null,Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"x-pink",size:16}),Object(core_browser_esm["c" /* jsx */])(StatusText,{size:"15px",color:themes["d" /* themeColors */].pink},"".concat(itemsFailed||0," ").concat(intl.formatMessage({id:'qList.failedItems'}))))));};_this.renderTimeLeft=function(cardType){var _this$props3=_this.props,intl=_this$props3.intl,date=_this$props3.date,accountsDetails=_this$props3.accountsDetails;var duration=0;switch(cardType){case constants_enums["a" /* default */].Q_LIST.COMPLETED_DISCOVERIES:case constants_enums["a" /* default */].Q_LIST.FAILED_DISCOVERIES:duration=Object(parsers["b" /* getEstimationTimeForQCard */])(date,discover["a" /* ESTIMATIONS */].LISTING);break;case constants_enums["a" /* default */].Q_LIST.LISTED_DISCOVERIES:duration=Object(parsers["b" /* getEstimationTimeForQCard */])(_this.getLastListing(accountsDetails),discover["a" /* ESTIMATIONS */].LISTING);break;default:duration=0;break;}return Object(core_browser_esm["c" /* jsx */])(TimeLeft,null,Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"clock",size:16,style:{marginTop:'5px'}}),Object(core_browser_esm["c" /* jsx */])("div",{style:{marginLeft:'7%',lineHeight:'1.3'},className:"title3"},intl.formatMessage({id:'qList.timeLeftToUseDiscovery'})," ",Object(core_browser_esm["c" /* jsx */])("br",null)," ",duration));};_this.renderStatus=function(){var errorMessage=arguments.length>0&&arguments[0]!==undefined?arguments[0]:'';var _this$props4=_this.props,type=_this$props4.type,intl=_this$props4.intl,isOnListingProgress=_this$props4.isOnListingProgress;switch(type){case constants_enums["a" /* default */].Q_LIST.COMPLETED_DISCOVERIES:return isOnListingProgress?Object(core_browser_esm["c" /* jsx */])(Status,null,Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"onboarding-min",size:24}),Object(core_browser_esm["c" /* jsx */])(StatusText,null,intl.formatMessage({id:'qList.listInProgress'}))):Object(core_browser_esm["c" /* jsx */])(Status,null,Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"v-green",size:16}),Object(core_browser_esm["c" /* jsx */])(StatusText,{color:themes["d" /* themeColors */].successFont},intl.formatMessage({id:'qList.discoveryCompleted'})));case constants_enums["a" /* default */].Q_LIST.FAILED_DISCOVERIES:return Object(core_browser_esm["c" /* jsx */])(Status,null,Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"x-pink",size:16}),Object(core_browser_esm["c" /* jsx */])(StatusText,{color:themes["d" /* themeColors */].pink,height:"auto"},"".concat(intl.formatMessage({id:'qList.discoveryFailed'})," - ").concat(errorMessage)));default:return null;}};_this.renderItemsDiscovered=function(){var _this$props5=_this.props,type=_this$props5.type,processedItemsCount=_this$props5.processedItemsCount,totalItemsCount=_this$props5.totalItemsCount,intl=_this$props5.intl,discoveredItemsCount=_this$props5.statistics.discoveredItemsCount;var inProgress=type===constants_enums["a" /* default */].Q_LIST.DISCOVERIES_IN_PROGRESS;var itemsCount=inProgress?totalItemsCount:null;return Object(core_browser_esm["c" /* jsx */])(ItemsCount,null,Object(core_browser_esm["c" /* jsx */])("span",{style:{fontSize:'32px',fontFamily:'Stolzl-Thin'}},type===constants_enums["a" /* default */].Q_LIST.LISTED_DISCOVERIES?discoveredItemsCount:processedItemsCount,itemsCount!==null&&"/".concat(itemsCount)),Object(core_browser_esm["c" /* jsx */])("span",{className:"title3",style:{lineHeight:'1.3'}},' ',intl.formatMessage({id:'qList.itemsDiscovered'})));};_this.renderCompletedErrors=function(){var _this$props6=_this.props,intl=_this$props6.intl,statistics=_this$props6.statistics;var errorList=[];statistics.failedBlackListCount&&errorList.push(['blackList',statistics.failedBlackListCount]);statistics.failedVeroCount&&errorList.push(['failedVero',statistics.failedVeroCount]);return Object(core_browser_esm["c" /* jsx */])(ItemsCount,null,Object(core_browser_esm["c" /* jsx */])("span",{style:{fontSize:'32px',fontFamily:'Stolzl-Thin'}},statistics.failedItemsCount,' '),Object(core_browser_esm["c" /* jsx */])("span",{className:"title3",style:{lineHeight:'1.3'}},' ',intl.formatMessage({id:'qList.itemsFailed'})),errorList.map(function(fail){return fail[1]&&Object(core_browser_esm["c" /* jsx */])("div",{key:fail[0],style:{color:themes["d" /* themeColors */].pink}},intl.formatMessage({id:"qList.".concat(fail[0])})," : ",fail[1]);}));};_this.renderProgress=function(){var _this$props7=_this.props,_this$props7$totalIte=_this$props7.totalItemsCount,totalItemsCount=_this$props7$totalIte===void 0?1:_this$props7$totalIte,_this$props7$processe=_this$props7.processedItemsCount,processedItemsCount=_this$props7$processe===void 0?0:_this$props7$processe;var processed=processedItemsCount;var percent=processed*100/totalItemsCount;return Object(core_browser_esm["c" /* jsx */])(PaddedProgress_PaddedProgress,{percent:percent,showInfo:false,style:{width:'95%',margin:'10px auto'}});};_this.renderAccountListing=function(){var _this$props8=_this.props,accountsDetails=_this$props8.accountsDetails,intl=_this$props8.intl,listRedirectAction=_this$props8.listRedirectAction,id=_this$props8.id,getSellerAccountName=_this$props8.getSellerAccountName;var qCardAccountDetails=accountsDetails.map(function(itemDetails,indx){var detailsCard=Object(core_browser_esm["c" /* jsx */])(AccountListing,{onClick:function onClick(){return listRedirectAction!==null&&listRedirectAction(id);}},itemDetails.itemsListed?Object(core_browser_esm["c" /* jsx */])(FlexStyle["e" /* RowFlex */],{style:{justifyContent:'space-between'}},Object(core_browser_esm["c" /* jsx */])(ItemsCount,{style:{fontSize:'32px',fontFamily:'Stolzl-Thin'}},itemDetails.itemsListed)):Object(core_browser_esm["c" /* jsx */])(ItemsCount,null,Object(core_browser_esm["c" /* jsx */])("div",{style:{color:themes["d" /* themeColors */].pink}},intl.formatMessage({id:'qList.zeroItemsListed'}))),itemDetails.itemsListed?Object(core_browser_esm["c" /* jsx */])(Status,null,Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"v-green",size:12}),Object(core_browser_esm["c" /* jsx */])(StatusText,{color:themes["d" /* themeColors */].successFont,size:"12px"},intl.formatMessage({id:'qList.itemsListedTo'}),Object(core_browser_esm["c" /* jsx */])("span",null,' ',Object(eNumsConverters["a" /* eNumToIntel */])('DESTINATION_MARKETPLACE',constants_enums["a" /* default */].NEW_DISCOVERY_DESTINATION_NAMES[itemDetails.destination])))):null,Object(core_browser_esm["c" /* jsx */])(AccountData,null,Object(core_browser_esm["c" /* jsx */])(AccountName,null,getSellerAccountName(itemDetails.accountName)),Object(core_browser_esm["c" /* jsx */])("div",null,moment_default()(itemDetails.time).format('MMMM Do YYYY, h:mm:ss a'))));var onlyErrors=itemDetails.errors.filter(function(_ref4){var severity=_ref4.severity;return severity==='Error';});if(onlyErrors&&onlyErrors.length!==0){return Object(core_browser_esm["c" /* jsx */])(popover_default.a,{key:"qlisting-".concat(indx,"-").concat(itemDetails.time),placement:"top",title:null,content:Object(core_browser_esm["c" /* jsx */])("div",{style:{maxHeight:'200px',overflowY:'auto'}},onlyErrors.map(function(_ref5){var message=_ref5.message,count=_ref5.count;return Object(core_browser_esm["c" /* jsx */])("div",{key:"".concat(itemDetails.accountName,"_").concat(message),style:{color:themes["d" /* themeColors */].pink}},message,"(",count,")");})),trigger:"hover"},detailsCard);}return Object(core_browser_esm["c" /* jsx */])("div",{key:"qListing-".concat(indx,"-").concat(itemDetails.time)},detailsCard);});// return type === ENUMS.Q_LIST.LISTED_DISCOVERIES && statistics && statistics.length ? (
return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,qCardAccountDetails);};_this.renderActionsButtons=function(){var _this$props9=_this.props,intl=_this$props9.intl,type=_this$props9.type,mainAction=_this$props9.mainAction,secondaryAction=_this$props9.secondaryAction,id=_this$props9.id,isImported=_this$props9.isImported,disableButton=_this$props9.disableButton,instantList=_this$props9.instantList,wideTranslation=_this$props9.wideTranslation,automaticallyListed=_this$props9.automaticallyListed;switch(type){case constants_enums["a" /* default */].Q_LIST.FAILED_DISCOVERIES:return Object(core_browser_esm["c" /* jsx */])(Buttons,null,Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:function clickHandler(){return mainAction(id);},size:"small",type:"default",cssProps:{backgroundColor:themes["d" /* themeColors */].backgroundLightBlue}},intl.formatMessage({id:'common.tryAgain'})));case constants_enums["a" /* default */].Q_LIST.DISCOVERIES_IN_PROGRESS:return Object(core_browser_esm["c" /* jsx */])(Buttons,null,Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:_this.handleStopProgress,size:"small",type:"default",cssProps:{backgroundColor:themes["d" /* themeColors */].backgroundLightBlue}},intl.formatMessage({id:'qList.stopDiscovery'})));case constants_enums["a" /* default */].Q_LIST.COMPLETED_DISCOVERIES:return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,isImported?Object(core_browser_esm["c" /* jsx */])(Buttons,null,Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:function clickHandler(){mainAction(id).then(function(resp){if(resp){Object(downloadFile["a" /* default */])(resp,"Import Report ".concat(id,".csv"),'text/csv');}});},size:wideTranslation?'large':'small',css:wideTranslation?QCard_ref:null,type:"default",cssProps:{backgroundColor:themes["d" /* themeColors */].backgroundLightBlue}},intl.formatMessage({id:'qList.importReport'}))):!automaticallyListed&&Object(core_browser_esm["c" /* jsx */])(SpreadButtons,null,Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:function clickHandler(){return mainAction(id,false);},size:wideTranslation?'large':'small',css:wideTranslation?QCard_ref2:null,type:"default",cssProps:{backgroundColor:themes["d" /* themeColors */].backgroundLightBlue,marginLeft:'5px'},disabled:disableButton},disableButton?intl.formatMessage({id:'common.notAvailable'}):intl.formatMessage({id:'qList.continueToList'})),Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:function clickHandler(){return instantList(id);},size:wideTranslation?'large':'small',css:wideTranslation?QCard_ref3:null,type:"primary",disabled:disableButton},disableButton?intl.formatMessage({id:'common.notAvailable'}):intl.formatMessage({id:'qList.instantList'}))));case constants_enums["a" /* default */].Q_LIST.LISTED_DISCOVERIES:return Object(core_browser_esm["c" /* jsx */])(Buttons,null,isImported&&mainAction&&Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:function clickHandler(){mainAction(id).then(function(resp){if(resp){Object(downloadFile["a" /* default */])(resp,"Import Report ".concat(id,".csv"),'text/csv');}});},size:"small",type:"default",cssProps:{backgroundColor:themes["d" /* themeColors */].backgroundLightBlue}},intl.formatMessage({id:'qList.importReport'})));default:return null;}};_this.renderStopWaiter=function(){return Object(core_browser_esm["c" /* jsx */])("div",null,"Stopping");};_this.state={stopWaiter:false,closing:false};return _this;}Object(createClass["a" /* default */])(QCard,[{key:"render",value:function render(){var _this2=this;var _this$props10=this.props,title=_this$props10.title,date=_this$props10.date,type=_this$props10.type,errorMessage=_this$props10.errorMessage,closeAction=_this$props10.closeAction,id=_this$props10.id,statistics=_this$props10.statistics,storeName=_this$props10.storeName,intl=_this$props10.intl;var closing=this.state.closing;return Object(core_browser_esm["c" /* jsx */])(Card,{closing:closing},Object(core_browser_esm["c" /* jsx */])(QCard_styled_Header,null,Object(core_browser_esm["c" /* jsx */])(FlexStyle["e" /* RowFlex */],{style:{justifyContent:'space-between'}},Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(typography["b" /* text2 */],";font-family:'Stolzl-Medium';label:QCard;"+( true?"":undefined))},title),Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(typography["e" /* text4 */],";label:QCard;"+( true?"":undefined))},"(",id,")"),Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"x",size:8,onClick:function onClick(){return closeAction(id,_this2.startClosing,700);}})),Object(core_browser_esm["c" /* jsx */])("div",null,intl.formatMessage({id:'discover.qCardStoreName'})," ",Object(core_browser_esm["c" /* jsx */])("span",{style:{fontWeight:'bold'}},storeName)),Object(core_browser_esm["c" /* jsx */])("div",null,moment_default()(date).format('MMMM Do YYYY, h:mm:ss A'))),Object(core_browser_esm["c" /* jsx */])(QCard_styled_Body,null,this.renderStatus(errorMessage),type!==constants_enums["a" /* default */].Q_LIST.FAILED_DISCOVERIES&&this.renderItemsDiscovered(),type===constants_enums["a" /* default */].Q_LIST.DISCOVERIES_IN_PROGRESS&&this.renderProgress(),type!==constants_enums["a" /* default */].Q_LIST.DISCOVERIES_IN_PROGRESS&&this.renderTimeLeft(type),type===constants_enums["a" /* default */].Q_LIST.LISTED_DISCOVERIES&&this.newRenderAccountListing(),(type===constants_enums["a" /* default */].Q_LIST.COMPLETED_DISCOVERIES||type===constants_enums["a" /* default */].Q_LIST.FAILED_DISCOVERIES)&&statistics&&statistics.failedItemsCount?this.renderCompletedErrors():null,this.state.stopWaiter&&this.renderStopWaiter()),Object(core_browser_esm["c" /* jsx */])(styled_Footer,null,this.renderActionsButtons()));}}]);return QCard;}(react["Component"]))||QCard_class;/* harmony default export */ var components_QCard_QCard = (QCard_QCard);
// CONCATENATED MODULE: ./src/js/components/QCard/index.js

// EXTERNAL MODULE: ./src/js/components/common/PopUpVideoLink/PopUpVideoLink.js
var PopUpVideoLink = __webpack_require__(138);

// CONCATENATED MODULE: ./src/js/components/QList/QList.js
var QList_dec,QList_dec2,QList_dec3,QList_class;var QList_confirm=modal_default.a.confirm;var QList_ref= true?{name:"1i9c6tu-QList",styles:"margin-top:15px;width:100%;label:QList;"}:undefined;var QList_QList=(QList_dec=Object(index_module["b" /* inject */])('onboardingStore'),QList_dec2=Object(index_module["b" /* inject */])('dashboardStore'),QList_dec3=Object(index_module["b" /* inject */])('localeStore'),Object(index_es["d" /* injectIntl */])(QList_class=QList_dec(QList_class=QList_dec2(QList_class=QList_dec3(QList_class=Object(index_module["c" /* observer */])(QList_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(QList,_Component);function QList(){var _getPrototypeOf2;var _this;Object(classCallCheck["a" /* default */])(this,QList);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=Object(possibleConstructorReturn["a" /* default */])(this,(_getPrototypeOf2=Object(getPrototypeOf["a" /* default */])(QList)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.showConfirmToDelete=function(id){var callback=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(){};var closeAfter=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;var _this$props=_this.props,deleteDiscovery=_this$props.deleteDiscovery,intl=_this$props.intl;QList_confirm({content:intl.formatMessage({id:'discover.qCardDeleteWarning'}),onOk:function onOk(){var _this2=this;callback();setTimeout(function(){deleteDiscovery(id).then(function(response){if(!response){_this2.props.toastsStore.showToast({type:constants_enums["a" /* default */].TOAST_TYPES.DANGER,message:'errors.serverError'});}});},closeAfter);},onCancel:function onCancel(){}});};_this.showConfirmToClearAll=function(){var _this$props2=_this.props,clearAll=_this$props2.clearAll,intl=_this$props2.intl;QList_confirm({content:intl.formatMessage({id:'discover.qClearAllWarning'}),onOk:function onOk(){clearAll();},onCancel:function onCancel(){}});};_this.tryAgainAction=function(id){_this.props.tryAgain(id).then(function(response){if(!response){_this.props.toastsStore.showToast({type:constants_enums["a" /* default */].TOAST_TYPES.DANGER,message:'errors.serverError'});}});};_this.continueToListAction=function(id,useFilter){var getDiscoverFromQMany=_this.props.getDiscoverFromQMany;getDiscoverFromQMany(id,false,false,useFilter);};_this.editDiscoveryAction=function(){console.log('edit discovery');};_this.listMoreAction=function(){console.log('list more');};_this.accountListingAction=function(discoveryId){var goToListing=_this.props.goToListing;goToListing(discoveryId);};_this.closeCard=function(){console.log('card closed');};_this.renderBlank=function(){var _this$props3=_this.props,getIsFirstEntrance=_this$props3.getIsFirstEntrance,qList=_this$props3.qList;// const { breakpoints, currentBreakpoint } = this.props;
// const emptyPage = (
//   <RowFlex
//     css={css`
//       ${breakpoints[currentBreakpoint] < breakpoints.mobileLandscape &&
//         'justify-content: center; margin-left: 20%;'}
//     `}
//   >
//     <FlexWrapper
//       sanityCheckOpen={sanityCheckOpen}
//       css={css`
//         z-index: 0;
//         height: auto !important;
//         justify-content: flex-end !important;
//         ${breakpoints[currentBreakpoint] >= breakpoints.desktop
//           ? 'margin-left: 86px'
//           : 'margin-left: 0'};
//         width: auto;
//         ${breakpoints[currentBreakpoint] >= breakpoints.tablet
//           ? ''
//           : 'flex-direction: column-reverse; left: 15%;'}
//         ${breakpoints[currentBreakpoint] < breakpoints.mobileLandscape &&
//           'margin-left: 17%; left: 0;'}
//       `}
//     >
//       {breakpoints[currentBreakpoint] >= breakpoints.tablet && (
//         <IconSvg
//           type="404-discoveries"
//           width={breakpoints[currentBreakpoint] >= breakpoints.tabletLandscape ? 680 : 476}
//           height={breakpoints[currentBreakpoint] >= breakpoints.tabletLandscape ? 500 : 350}
//         />
//       )}
//       {breakpoints[currentBreakpoint] < breakpoints.tablet && (
//         <IconSvg
//           type="404-discoveries"
//           width={340}
//           height={250}
//           css={css`
//             ${breakpoints[currentBreakpoint] <= breakpoints.mobile &&
//               'left: max(-15%, -45px); position: relative;'}
//           `}
//         />
//       )}
//       <TextWrapper
//         css={css`
//           max-width: 80vw !important;
//           ${
//             breakpoints[currentBreakpoint] >= breakpoints.tablet
//               ? ''
//               : 'margin-left: 0px; max-width: 500px;'
//           }
//           ${breakpoints[currentBreakpoint] >= breakpoints.tablet ? '' : 'padding-bottom: 30px;'}
//           ${
//             breakpoints[currentBreakpoint] >= breakpoints.mobileLandscape
//               ? ''
//               : 'max-width: 370px; padding-bottom: 40px;'
//           }
//           ${breakpoints[currentBreakpoint] < breakpoints.tabletMini &&
//             'padding-bottom: 10px; font-size: 10px; margin-right: 20px;'}
//         `}
//       >
//         <FirstLine>{intl.formatMessage({ id: 'qList.nothingHere' })}</FirstLine>
//         <h1>{intl.formatMessage({ id: 'qList.checkLater' })}</h1>
//       </TextWrapper>
//     </FlexWrapper>
//   </RowFlex>
// );
if(!qList){// return emptyPage;
}var failedDiscoveries=qList.failedDiscoveries,discoveriesInProgress=qList.discoveriesInProgress,completedDiscoveries=qList.completedDiscoveries,listedDiscoveries=qList.listedDiscoveries;if(getIsFirstEntrance&&!failedDiscoveries.length&&!discoveriesInProgress.length&&!completedDiscoveries.length&&!listedDiscoveries.length){return Object(core_browser_esm["c" /* jsx */])(BlankQ,null,"It is Your First time, Please Start New Discovery");}else if(!getIsFirstEntrance&&!failedDiscoveries.length&&!discoveriesInProgress.length&&!completedDiscoveries.length&&!listedDiscoveries.length){return null;}return null;};_this.renderTitle=function(marketId,method){var title='';title+="".concat(Object(eNumsConverters["a" /* eNumToIntel */])('sourceMarketplace',marketId),"   ");title+="  ".concat(Object(eNumsConverters["a" /* eNumToIntel */])('discoveryMethods',method));return title;};return _this;}Object(createClass["a" /* default */])(QList,[{key:"componentDidMount",// constructor(props) {
//   super(props);
// }
value:function componentDidMount(){this.props.initStore();this.props.enableTutorialStep();}},{key:"render",value:function render(){var _this3=this;var _this$props4=this.props,intl=_this$props4.intl,handleNewDiscover=_this$props4.handleNewDiscover,handleExpressDiscovery=_this$props4.handleExpressDiscovery,qList=_this$props4.qList,stopProgress=_this$props4.stopProgress,spinnerShown=_this$props4.spinnerShown,getSellerAccountName=_this$props4.getSellerAccountName,getImportReport=_this$props4.getImportReport,qListDataLoaded=_this$props4.qListDataLoaded,listingServiceUp=_this$props4.listingServiceUp,instantList=_this$props4.instantList,_this$props4$localeSt=_this$props4.localeStore,isBG=_this$props4$localeSt.isBG,isFR=_this$props4$localeSt.isFR;var _this$props5=this.props,breakpoints=_this$props5.breakpoints,currentBreakpoint=_this$props5.currentBreakpoint;return Object(core_browser_esm["c" /* jsx */])("div",{className:"qListWrapper",css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(breakpoints[currentBreakpoint]<breakpoints.mobileLandscape&&'justify-content: center !important;',"label:QList;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])("div",{className:"qList",css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("margin-top:0px;",breakpoints[currentBreakpoint]<breakpoints.tablet&&'align-items: flex-start;'," ",breakpoints[currentBreakpoint]<breakpoints.tablet&&'align-items: center;',"label:QList;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(FlexStyle["e" /* RowFlex */],{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("position:relative;z-index:1;flex-wrap:wrap;align-items:center !important;display:flex;",qList.completedDiscoveries.length===0&&qList.discoveriesInProgress.length===0&&qList.failedDiscoveries.length===0&&qList.listedDiscoveries.length===0&&'justify-content: center; margin-top: 100px;'," ",breakpoints[currentBreakpoint]<breakpoints.tablet&&'flex-direction: column; align-items: baseline; width: 88%;',"label:QList;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])("div",{className:"discoverHeaderTitle",css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(breakpoints[currentBreakpoint]<breakpoints.tabletMini&&'left: -20% !important;'," ",breakpoints[currentBreakpoint]<breakpoints.tablet&&'margin-bottom: 15px; position: relative; left: -35%;'," ",breakpoints[currentBreakpoint]<breakpoints.tabletLandscape&&'margin-top: 15px; margin-bottom: 15px;'," ",breakpoints[currentBreakpoint]>=breakpoints.desktop?'margin-left: 10px':'margin-left: 0',";margin-right:47px;label:QList;"+( true?"":undefined))},intl.formatMessage({id:'discovery.discoverAndList'})),Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("display:flex;width:min(100%,400px);",breakpoints[currentBreakpoint]<breakpoints.mobileLandscape&&'margin-right: 0px;'," ",breakpoints[currentBreakpoint]<breakpoints.tablet&&'flex-direction: column; width: 80%;'," ",breakpoints[currentBreakpoint]<breakpoints.mobileLandscape&&'width: 100%;',"label:QList;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:handleNewDiscover,type:"default",cssProps:{minWidth:'155px',width:'100%',margin:0,marginRight:'20px',marginBottom:breakpoints[currentBreakpoint]<breakpoints.tablet&&'15px'}},intl.formatMessage({id:'discovery.newDiscover'}),Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{style:{marginLeft:'7px'},type:"discover_glasses",size:20,color:"#586784"}),Object(core_browser_esm["c" /* jsx */])("span",{className:"discover-button-tutorial"})),Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:handleExpressDiscovery,cssProps:{minWidth:'165px',width:'100%',margin:0,marginRight:'20px',marginBottom:breakpoints[currentBreakpoint]<breakpoints.tablet&&'15px'}},intl.formatMessage({id:'discovery.expressDiscovery'}),Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{style:{marginLeft:'7px'},type:"space-ship",size:20})),Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{cssProps:{width:'auto',margin:0,marginRight:breakpoints[currentBreakpoint]>=breakpoints.tablet&&'40px',minWidth:'225px',marginBottom:breakpoints[currentBreakpoint]<breakpoints.tablet&&'15px'},type:"default"},Object(core_browser_esm["c" /* jsx */])(PopUpVideoLink["a" /* default */],{message:"How To List And Edit An Item:",videoUrl:"https://vimeo.com/475869269/dac447b637",extraCSS:"\n                  margin-bottom: 20px;\n                  text-decoration: underline;\n                  &:hover {\n                    text-decoration: underline;\n                  }\n                  ".concat(classes["c" /* text2Medium */],"\n                  font-size: ").concat(constants["c" /* theme */].fontSize.medium,";\n                ")})),qList&&(qList.failedDiscoveries.length>0||qList.discoveriesInProgress.length>0||qList.completedDiscoveries.length>0||qList.listedDiscoveries.length>0)&&Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{type:"default",clickHandler:this.showConfirmToClearAll,cssProps:{width:'auto',margin:0,maxWidth:breakpoints[currentBreakpoint]<breakpoints.tablet?'100%':'210px'}},intl.formatMessage({id:'discover.clearAll'}),Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{style:{marginLeft:'7px'},type:"delete",size:16})))),qList&&(qList.failedDiscoveries.length>0||qList.discoveriesInProgress.length>0||qList.completedDiscoveries.length>0||qList.listedDiscoveries.length>0)&&Object(core_browser_esm["c" /* jsx */])(FlexStyle["e" /* RowFlex */],{css:QList_ref},Object(core_browser_esm["c" /* jsx */])(MainArea,null,Object(core_browser_esm["c" /* jsx */])(styled_Body,{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("flex-wrap:wrap;",breakpoints[currentBreakpoint]<breakpoints.tablet&&'justify-content: center;',"label:QList;"+( true?"":undefined))},qList.failedDiscoveries.length>0&&Object(core_browser_esm["c" /* jsx */])(Column,{className:"scroll-1"},Object(core_browser_esm["c" /* jsx */])(styled_Header,null,intl.formatMessage({id:'qList.failedDiscoveries'})),Object(core_browser_esm["c" /* jsx */])(ColumnBodyWrapper,{className:"scroll-1"},Object(core_browser_esm["c" /* jsx */])(ColumnBody,{className:"scroll-1"},qList.failedDiscoveries.map(function(card){return Object(core_browser_esm["c" /* jsx */])(components_QCard_QCard,{key:"qList-cards-".concat(constants_enums["a" /* default */].Q_LIST.FAILED_DISCOVERIES,"-").concat(card.id),id:card.id,intl:intl,type:constants_enums["a" /* default */].Q_LIST.FAILED_DISCOVERIES,title:_this3.renderTitle(card.sourceMarketplaceId,card.discoveryMethod),date:card.time,storeName:card.storeName,errorMessage:card.errorMessage,mainAction:_this3.tryAgainAction,closeAction:_this3.showConfirmToDelete,statistics:card.statistics});})))),qList.discoveriesInProgress.length>0&&Object(core_browser_esm["c" /* jsx */])(Column,null,Object(core_browser_esm["c" /* jsx */])(styled_Header,null,intl.formatMessage({id:'qList.discoveriesInProgress'})),Object(core_browser_esm["c" /* jsx */])(ColumnBodyWrapper,{className:"scroll-1"},Object(core_browser_esm["c" /* jsx */])(ColumnBody,{className:"scroll-1"},qList.discoveriesInProgress.map(function(card){return Object(core_browser_esm["c" /* jsx */])(components_QCard_QCard,{key:"qList-cards-".concat(constants_enums["a" /* default */].Q_LIST.DISCOVERIES_IN_PROGRESS,"-").concat(card.id),id:card.id,intl:intl,type:constants_enums["a" /* default */].Q_LIST.DISCOVERIES_IN_PROGRESS,title:_this3.renderTitle(card.sourceMarketplaceId,card.discoveryMethod),date:card.time,storeName:card.storeName,processedItemsCount:card.processedItemsCount,totalItemsCount:card.totalItemsCount,mainAction:stopProgress,closeAction:_this3.showConfirmToDelete,statistics:card.statistics});})))),qList.completedDiscoveries.length>0&&Object(core_browser_esm["c" /* jsx */])(Column,null,Object(core_browser_esm["c" /* jsx */])(styled_Header,null,intl.formatMessage({id:'qList.completedDiscoveries'})),Object(core_browser_esm["c" /* jsx */])(ColumnBodyWrapper,{className:"scroll-1"},Object(core_browser_esm["c" /* jsx */])(ColumnBody,{className:"scroll-1"},qList.completedDiscoveries.map(function(card){return Object(core_browser_esm["c" /* jsx */])(components_QCard_QCard,{key:"qList-cards-".concat(constants_enums["a" /* default */].Q_LIST.COMPLETED_DISCOVERIES,"-").concat(card.id),id:card.id,intl:intl,type:constants_enums["a" /* default */].Q_LIST.COMPLETED_DISCOVERIES,title:_this3.renderTitle(card.sourceMarketplaceId,card.discoveryMethod),date:card.time,storeName:card.storeName,automaticallyListed:card.automaticallyListItems,processedItemsCount:card.processedItemsCount,mainAction:card.typeId===constants_enums["a" /* default */].DISCOVERY_TYPE.LISTINGS_IMPORT?getImportReport:_this3.continueToListAction,closeAction:_this3.showConfirmToDelete,isOnListingProgress:card.isOnListingProgress,statistics:card.statistics,isImported:card.typeId===constants_enums["a" /* default */].DISCOVERY_TYPE.LISTINGS_IMPORT,disableButton:card.typeId===constants_enums["a" /* default */].DISCOVERY_TYPE.REGULAR&&!listingServiceUp,instantList:instantList,wideTranslation:isBG||isFR});})))),qList.listedDiscoveries.length>0&&Object(core_browser_esm["c" /* jsx */])(Column,null,Object(core_browser_esm["c" /* jsx */])(styled_Header,null,intl.formatMessage({id:'qList.listedDiscoveries'})),Object(core_browser_esm["c" /* jsx */])(ColumnBodyWrapper,{className:"scroll-1"},Object(core_browser_esm["c" /* jsx */])(ColumnBody,{className:"scroll-1"},qList.listedDiscoveries.map(function(card){return Object(core_browser_esm["c" /* jsx */])(components_QCard_QCard,{key:"qList-cards-".concat(constants_enums["a" /* default */].Q_LIST.LISTED_DISCOVERIES,"-").concat(card.id),id:card.id,intl:intl,type:constants_enums["a" /* default */].Q_LIST.LISTED_DISCOVERIES,title:_this3.renderTitle(card.sourceMarketplaceId,card.discoveryMethod),date:card.time,storeName:card.storeName,processedItemsCount:card.processedItemsCount,itemsListed:card.itemsListed,itemsFailed:card.itemsFailed,accountsDetails:card.details,mainAction:card.typeId===constants_enums["a" /* default */].DISCOVERY_TYPE.LISTINGS_IMPORT?getImportReport:_this3.editDiscoveryAction,secondaryAction:_this3.listMoreAction,listRedirectAction:_this3.accountListingAction,closeAction:_this3.showConfirmToDelete,getSellerAccountName:getSellerAccountName,isImported:card.typeId===constants_enums["a" /* default */].DISCOVERY_TYPE.LISTINGS_IMPORT,statistics:card.statistics});}))))))),!spinnerShown&&qListDataLoaded&&this.renderBlank()));}}]);return QList;}(react["Component"]))||QList_class)||QList_class)||QList_class)||QList_class)||QList_class);/* harmony default export */ var components_QList_QList = (Object(lib["withBreakpoints"])(QList_QList));
// CONCATENATED MODULE: ./src/js/components/QList/index.js

// CONCATENATED MODULE: ./src/js/pages/DiscoverAndList/DiscoverAndList.js
var DiscoverAndList_dec,DiscoverAndList_dec2,DiscoverAndList_dec3,DiscoverAndList_dec4,DiscoverAndList_dec5,DiscoverAndList_dec6,DiscoverAndList_dec7,DiscoverAndList_dec8,DiscoverAndList_class;// import { browserHistory } from 'react-router';
var DiscoverAndList_ref= true?{name:"wso1og-tagConstructor",styles:"margin-bottom:12px;label:tagConstructor;"}:undefined;var DiscoverAndList_ref2= true?{name:"12a0ll6-DiscoverAndList",styles:"height:100% !important;label:DiscoverAndList;"}:undefined;var DiscoverAndList_ref3= true?{name:"yqgnip-DiscoverAndList",styles:"margin-bottom:16px;flex-wrap:flex;label:DiscoverAndList;"}:undefined;var DiscoverAndList_DiscoverAndList=(DiscoverAndList_dec=Object(index_module["b" /* inject */])('onboardingStore'),DiscoverAndList_dec2=Object(index_module["b" /* inject */])('enumsStore'),DiscoverAndList_dec3=Object(index_module["b" /* inject */])('discoveryStore'),DiscoverAndList_dec4=Object(index_module["b" /* inject */])('routingStore'),DiscoverAndList_dec5=Object(index_module["b" /* inject */])('toastsStore'),DiscoverAndList_dec6=Object(index_module["b" /* inject */])('settingsStore'),DiscoverAndList_dec7=Object(index_module["b" /* inject */])('listingsPageStore'),DiscoverAndList_dec8=Object(index_module["b" /* inject */])('sessionStore'),Object(index_es["d" /* injectIntl */])(DiscoverAndList_class=DiscoverAndList_dec(DiscoverAndList_class=DiscoverAndList_dec2(DiscoverAndList_class=DiscoverAndList_dec3(DiscoverAndList_class=DiscoverAndList_dec4(DiscoverAndList_class=DiscoverAndList_dec5(DiscoverAndList_class=DiscoverAndList_dec6(DiscoverAndList_class=DiscoverAndList_dec7(DiscoverAndList_class=DiscoverAndList_dec8(DiscoverAndList_class=Object(index_module["c" /* observer */])(DiscoverAndList_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(DiscoverAndList,_Component);function DiscoverAndList(props){var _this;Object(classCallCheck["a" /* default */])(this,DiscoverAndList);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(DiscoverAndList).call(this,props));_this.setSpinner=function(bool){var spinnerShown=_this.state.spinnerShown;var spinnerStackResult=Math.max(bool?_this.spinnerStack+1:_this.spinnerStack-1,0);_this.spinnerStack=spinnerStackResult;if(spinnerShown!==!!spinnerStackResult){_this.setState({spinnerShown:!!spinnerStackResult});}};_this.getQList=function(){var discoveryStore=_this.props.discoveryStore;discoveryStore.getQList();};_this.getDiscoverFromQ=function(newDiscover){var _this$props=_this.props,routingStore=_this$props.routingStore,_this$props$discovery=_this$props.discoveryStore,setDiscoveryId=_this$props$discovery.setDiscoveryId,isSingleDiscover=_this$props$discovery.isSingleDiscover;setDiscoveryId(null);if(isSingleDiscover){setTimeout(function(){_this.getDiscoverFromQFunc(newDiscover);},1000);}else{routingStore.browserHistory.push('/discover');}};_this.getListingOptions=function(){var _this$props2=_this.props,_this$props2$discover=_this$props2.discoveryStore,discoverMarket=_this$props2$discover.discoverMarket,sellerAccountCode=_this$props2$discover.sellerAccountCode,listingMarket=_this$props2$discover.listingMarket,setStrategy=_this$props2$discover.setStrategy,fetchListingOptions=_this$props2.settingsStore.listing.fetchListingOptions;fetchListingOptions(Object(Discover["f" /* convertSourceMarketsEnumsToStrings */])(discoverMarket),sellerAccountCode,Object(Discover["e" /* convertDestinationMarketsEnumsToStrings */])(listingMarket)).then(function(){var defaultStrategyType=_this.props.settingsStore.listing.listingOptions.defaultStrategyType;setStrategy(defaultStrategyType===4||defaultStrategyType===0?'ranged':defaultStrategyType);});};_this.getDiscoverFromQFunc=function(newDiscover){var _this$props3=_this.props,discoveryStore=_this$props3.discoveryStore,routingStore=_this$props3.routingStore,enumsStore=_this$props3.enumsStore;_this.countOfFetches++;discoveryStore.fetchByDiscoveryId(newDiscover).then(function(response){var timePassed=Date.now()-_this.fetchStartTime;if(_this.countOfFetches<discover["c" /* discoveryFetchesCount */]&&timePassed<discover["d" /* discoveryFetchesTimeout */]){if(response&&response.statusId===enumsStore.enums.DISCOVERY_ITEM_STATUS.FAILED){_this.setState({spinnerShown:false});_this.countOfFetches=0;discoveryStore.getQList().then(function(){routingStore.browserHistory.push('/discover');});return;}else if(response&&response.statusId===enumsStore.enums.DISCOVERY_ITEM_STATUS.VALIDATION_FAILED){_this.setState({spinnerShown:false,isVeroFailureModalVisible:true,failedDiscoveryId:response.id,failedTitleWords:response.failedTitleWords,failedBrandWords:response.failedBrandWords,failedSellerWords:response.failedSellerWords,failedDescriptionWords:response.failedDescriptionWords});return;}if(!response||!response.discoveryItems){console.log("NOT DONE YET ".concat(_this.countOfFetches,"/").concat(discover["c" /* discoveryFetchesCount */],"\n").concat(timePassed));_this.getDiscoverFromQ(newDiscover);_this.setState({spinnerShown:true});return;}// TODO: have to be 1
if(response.discoveryItems.length){routingStore.browserHistory.push("/discover/singleResult?discovery-id=".concat(response.id));}else{routingStore.browserHistory.push('/discover');}_this.countOfFetches=0;_this.setState({spinnerShown:false});}else{_this.countOfFetches=0;_this.setState({spinnerShown:false});// toastsStore.showToast({
//   type: enumsStore.enums.TOAST_TYPES.WARNING,
//   message: intl.formatMessage({ id: 'discovery.timeout' }),
// });
discoveryStore.getQList().then(function(){routingStore.browserHistory.push('/discover');});}}).catch(function(err){console.log(err);_this.countOfFetches=0;_this.setState({spinnerShown:false});});};_this.getDiscoverFromQMany=function(newDiscover,forceSingleItem,itemIdToRefresh){var isDiscoveredByFilter=arguments.length>3&&arguments[3]!==undefined?arguments[3]:true;var _this$props4=_this.props,discoveryStore=_this$props4.discoveryStore,routingStore=_this$props4.routingStore,enumsStore=_this$props4.enumsStore,toastsStore=_this$props4.toastsStore;var browserHistory=routingStore.browserHistory;_this.setState({spinnerShown:true});_this.countOfFetches++;discoveryStore.filters.InitFilters();discoveryStore.fetchByDiscoveryId(newDiscover,isDiscoveredByFilter).then(function(response){console.log('response in function',response);if(_this.countOfFetches<45){if(response&&(response.statusId===enumsStore.enums.DISCOVERY_ITEM_STATUS.FAILED||response.statusId===enumsStore.enums.DISCOVERY_ITEM_STATUS.VALIDATION_FAILED)){_this.setState({spinnerShown:false});_this.countOfFetches=0;browserHistory.push('/discover');return;}console.log('passed validation check');if(!response||!response.discoveryItems){_this.setState({spinnerShown:false});if(_this.isCurrentPath('/discover/singleResult')){browserHistory.push('/discover');}toastsStore.showToast({type:enumsStore.enums.TOAST_TYPES.WARNING,message:'Discover failed'});return;}console.log('passed success check');var _this$props$discovery2=_this.props.discoveryStore,sellerAccountCode=_this$props$discovery2.sellerAccountCode,discoverMarket=_this$props$discovery2.discoverMarket;discoveryStore.getPoliciesForSellerAccount(sellerAccountCode,discoverMarket).then(function(data){if(data){if(response.discoveryItems.length>1&&!forceSingleItem){browserHistory.push("/discover/multiResult?discovery-id=".concat(response.id));}else if(response.discoveryItems.length>1&&forceSingleItem){browserHistory.push("/discover/singleResult?item-id=".concat(itemIdToRefresh,"&discovery-id=").concat(response.id));}else{browserHistory.push("/discover/singleResult?discovery-id=".concat(response.id));}_this.countOfFetches=0;_this.setState({spinnerShown:false});}else{toastsStore.showToast({type:enumsStore.enums.TOAST_TYPES.WARNING,message:'No Business Policy Data'});}});_this.setState({spinnerShown:false});}else{_this.setState({spinnerShown:false});routingStore.browserHistory.push('/discover');toastsStore.showToast({type:enumsStore.enums.TOAST_TYPES.WARNING,message:'Discover Timeout'});}}).catch(function(err){_this.countOfFetches=0;console.log(err);});};_this.setDiscoverMarket=function(value){var _this$props5=_this.props,discoveryStore=_this$props5.discoveryStore,routingStore=_this$props5.routingStore,enumsStore=_this$props5.enumsStore,onboardingStore=_this$props5.onboardingStore;discoveryStore.initStore();discoveryStore.setDiscoverMarket(value);if(value===enumsStore.enums.SOURCE_MARKETPLACE.AMAZON_US){onboardingStore.enableNextTutorial(3);if(onboardingStore.flow==='tutorial'&&onboardingStore.tutorialStepIndex===2){onboardingStore.startTransition();}}routingStore.browserHistory.push('/discover/ids');};_this.setListingMarket=function(listingId){var _this$props6=_this.props,discoveryStore=_this$props6.discoveryStore,routingStore=_this$props6.routingStore,onboardingStore=_this$props6.onboardingStore;var setListingSelected=discoveryStore.setListingSelected,getSellersAccounts=discoveryStore.getSellersAccounts;setListingSelected(listingId);// this.setState({ spinnerShown: true });
getSellersAccounts().then(function(response){if(response){// this.setState({ spinnerShown: false });
onboardingStore.enableNextTutorial(5);if(onboardingStore.flow==='tutorial'&&onboardingStore.tutorialStepIndex===4){onboardingStore.startTransition();}routingStore.browserHistory.push('/discover/selectAccount');}});// if (getStrategies.size > 0) {
//   routingStore.browserHistory.push('/discover/selectAccount');
//   return;
// }
// this.setState({ spinnerShown: true });
// getStrategyDefaults().then(response => {
//   this.setState({ spinnerShown: false });
//   if (response) routingStore.browserHistory.push('/discover/selectAccount');
// });
};_this.instantList=function(discoveryId){var _this$props7=_this.props,_this$props7$discover=_this$props7.discoveryStore,instantList=_this$props7$discover.instantList,initStore=_this$props7$discover.initStore,getQList=_this$props7$discover.getQList,toastsStore=_this$props7.toastsStore;_this.setState({spinnerShown:true});toastsStore.showToast({type:constants_enums["a" /* default */].TOAST_TYPES.INFO,message:'The items are being listed...'});instantList(discoveryId).then(function(response){if(response){toastsStore.showToast({type:constants_enums["a" /* default */].TOAST_TYPES.INFO,message:'discover.listRequestSuccessful'});}else{toastsStore.showToast({type:constants_enums["a" /* default */].TOAST_TYPES.WARNING,message:'listing.instantFailed'});}// this.setState({ spinnerShown: false });
});initStore().then(function(){return getQList().then(function(){return _this.setState({spinnerShown:false});});});};_this.fetchDiscover=function(){var _this$props8=_this.props,discoveryStore=_this$props8.discoveryStore,routingStore=_this$props8.routingStore,onboardingStore=_this$props8.onboardingStore,toastsStore=_this$props8.toastsStore,enumsStore=_this$props8.enumsStore;var sendDiscover=discoveryStore.sendDiscover,discoverStrategy=discoveryStore.discoverStrategy,isSingleDiscover=discoveryStore.isSingleDiscover;if(discoverStrategy===0)return;onboardingStore.enableNextTutorial(7);if(onboardingStore.flow==='tutorial'&&onboardingStore.tutorialStepIndex===6){onboardingStore.startTransition();}_this.setState({spinnerShown:true});sendDiscover().then(function(resp){if(!resp.errorMessage){if(!isSingleDiscover){toastsStore.showToast({type:enumsStore.enums.TOAST_TYPES.INFO,message:'discover.discoverRequestSuccessful'});discoveryStore.getQList().then(function(){_this.setState({spinnerShown:false});routingStore.browserHistory.push('/discover');});}}else{_this.setState({spinnerShown:false});toastsStore.showToast({type:enumsStore.enums.TOAST_TYPES.WARNING,message:resp.errorMessage});}});};_this.handleNewDiscover=function(){var onboardingStore=_this.props.onboardingStore;onboardingStore.enableNextTutorial(2);if(onboardingStore.flow==='tutorial'&&onboardingStore.tutorialStepIndex===1){onboardingStore.startTransition();}_this.props.routingStore.browserHistory.push('/discover/source');};_this.tagConstructor=function(qNumber,intlTitle,value,intlPath,path,isDisabled){var _this$props9=_this.props,intl=_this$props9.intl,routingStore=_this$props9.routingStore;return Object(core_browser_esm["c" /* jsx */])("div",{key:"spaceShip-".concat(qNumber,"-").concat(intlTitle),style:{pointerEvents:isDisabled?'none':'auto',marginBottom:7}},Object(core_browser_esm["c" /* jsx */])(react_transition_group["CSSTransition"],{timeout:500,in:true,classNames:"spaceShip",appear:true},function(){return Object(core_browser_esm["c" /* jsx */])(WideButton["a" /* default */],{qNumber:qNumber,title:intl.formatMessage({id:intlTitle}),value:intlPath?Object(eNumsConverters["a" /* eNumToIntel */])(intlPath,value):value,clickHandler:function clickHandler(){return routingStore.browserHistory.push(path);},key:"".concat(intlTitle).concat(qNumber),css:DiscoverAndList_ref});}));};_this.handleAccountSelect=function(account){var _this$props10=_this.props,routingStore=_this$props10.routingStore,discoveryStore=_this$props10.discoveryStore,enumsStore=_this$props10.enumsStore,toastsStore=_this$props10.toastsStore,onboardingStore=_this$props10.onboardingStore,isNonApi=_this$props10.sessionStore.isNonApi;_this.getListingOptions();discoveryStore.setSellerAccount(JSON.parse(account));_this.setState({spinnerShown:true});discoveryStore.getStrategyDefaults().then(function(response){if(response&&discoveryStore.listingMarket===enumsStore.enums.DESTINATION_MARKETPLACE.EBAY_US||discoveryStore.listingMarket===enumsStore.enums.DESTINATION_MARKETPLACE.EBAY_GB||discoveryStore.listingMarket===enumsStore.enums.DESTINATION_MARKETPLACE.EBAY_CA||discoveryStore.listingMarket===enumsStore.enums.DESTINATION_MARKETPLACE.EBAY_DE||discoveryStore.listingMarket===enumsStore.enums.DESTINATION_MARKETPLACE.EBAY_IT||discoveryStore.listingMarket===enumsStore.enums.DESTINATION_MARKETPLACE.EBAY_FR||discoveryStore.listingMarket===enumsStore.enums.DESTINATION_MARKETPLACE.EBAY_ES){discoveryStore.getPoliciesForSellerAccount().then(function(policies){_this.setState({spinnerShown:false});onboardingStore.enableNextTutorial(6);if((!policies||!policies.length)&&!isNonApi){toastsStore.showToast({type:enumsStore.enums.TOAST_TYPES.WARNING,message:'No seller policies found, try again!'});routingStore.browserHistory.push('/discover');}else if(policies){if(onboardingStore.flow==='tutorial'&&onboardingStore.tutorialStepIndex===5){onboardingStore.startTransition();}routingStore.browserHistory.push('/discover/strategy');}});}else{_this.setState({spinnerShown:false});onboardingStore.enableNextTutorial(6);onboardingStore.startTransition();routingStore.browserHistory.push('/discover/strategy');}});};_this.isCurrentPath=function(path){return _this.props.routingStore.browserHistory.getCurrentLocation().pathname===path;};_this.goToListing=function(discoveryId){var _this$props11=_this.props,findItemId=_this$props11.discoveryStore.findItemId,browserHistory=_this$props11.routingStore.browserHistory,setShowNavButtons=_this$props11.listingsPageStore.setShowNavButtons;findItemId(discoveryId).then(function(itemId){if(itemId!==null){if(itemId.length===1){setShowNavButtons(false);browserHistory.push("/listings/single-item/".concat(itemId));}else{browserHistory.push("/listings/multiResult?discovery-id=".concat(discoveryId));}}}).catch(function(err){return console.error(err);});};_this.proceedDespiteVero=function(){_this.setState({isVeroFailureModalVisible:false,spinnerShown:true});var failedDiscoveryId=_this.state.failedDiscoveryId;var _this$props12=_this.props,discoveryStore=_this$props12.discoveryStore,routingStore=_this$props12.routingStore,toastsStore=_this$props12.toastsStore,enumsStore=_this$props12.enumsStore;discoveryStore.tryAgainDespiteVero(failedDiscoveryId).then(function(success){if(success)setTimeout(function(){_this.getDiscoverFromQ(failedDiscoveryId);},1000);else{toastsStore.showToast({type:enumsStore.enums.TOAST_TYPES.WARNING,message:'Discover failed'});_this.setState({spinnerShown:false});routingStore.browserHistory.push('/discover');}});};_this.dropDiscovery=function(){var failedDiscoveryId=_this.state.failedDiscoveryId;var _this$props13=_this.props,discoveryStore=_this$props13.discoveryStore,routingStore=_this$props13.routingStore;discoveryStore.deleteDiscovery(failedDiscoveryId).then(function(){_this.setState({isVeroFailureModalVisible:false});routingStore.browserHistory.push('/discover');});};_this.renderModals=function(){var intl=_this.props.intl;var _this$state=_this.state,isVeroFailureModalVisible=_this$state.isVeroFailureModalVisible,failedTitleWords=_this$state.failedTitleWords,failedBrandWords=_this$state.failedBrandWords,failedSellerWords=_this$state.failedSellerWords,failedDescriptionWords=_this$state.failedDescriptionWords;return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(TmModal["a" /* default */],{type:"warning",title:intl.formatMessage({id:'qList.failedVero'}),visible:isVeroFailureModalVisible,mainActionBtn:{btnType:'secondary',text:"".concat(intl.formatMessage({id:'discover.proceedAnyway'})),clickHandler:function clickHandler(){_this.proceedDespiteVero();}},secondaryActionBtn:{text:"".concat(intl.formatMessage({id:'discover.dropDiscovery'})),clickHandler:function clickHandler(){_this.dropDiscovery();}}},Object(core_browser_esm["c" /* jsx */])("h3",null,"Discovery failed VERO because of the following:"),failedTitleWords.length>0&&Object(core_browser_esm["c" /* jsx */])("h3",null,"Title contains these forbidden words: ",failedTitleWords.join('/')),failedBrandWords.length>0&&Object(core_browser_esm["c" /* jsx */])("h3",null,"Brand contains these forbidden words: ",failedBrandWords.join('/')),failedDescriptionWords.length>0&&Object(core_browser_esm["c" /* jsx */])("h3",null,"Description contains these forbidden words: ",failedDescriptionWords.join('/')),failedSellerWords.length>0&&Object(core_browser_esm["c" /* jsx */])("h3",null,"Item from forbidden seller: ",failedSellerWords.join('/'))));};_this.state={spinnerShown:false,isVeroFailureModalVisible:false,failedDiscoveryId:null,failedTitleWords:[],failedBrandWords:[],failedDescriptionWords:[],failedSellerWords:[]};_this.discoverProgress=0;_this.countOfFetches=0;_this._isMounted=false;_this.spinnerStack=0;_this.goToListing=_this.goToListing.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));_this.fetchStartTime=0;return _this;}Object(createClass["a" /* default */])(DiscoverAndList,[{key:"componentDidMount",value:function componentDidMount(){var routingStore=this.props.routingStore;var browserHistory=routingStore.browserHistory;this._isMounted=true;this.getQList();var _browserHistory$getCu=browserHistory.getCurrentLocation(),hash=_browserHistory$getCu.hash;if(browserHistory.getCurrentLocation().pathname!=='/discover'&&browserHistory.getCurrentLocation().pathname!=='/discover/singleResult'&&browserHistory.getCurrentLocation().pathname!=='/discover/multiResult'){browserHistory.push("/discover/main".concat(hash));}}},{key:"componentDidUpdate",value:function componentDidUpdate(prevProps){if((prevProps.location.pathname==='/discover/singleResult'||prevProps.location.pathname==='/discover/multiResult')&&this.props.location.pathname==='/discover'){this.getQList();}}},{key:"componentWillUnmount",value:function componentWillUnmount(){this.props.discoveryStore.initStore();this._isMounted=false;}},{key:"render",value:function render(){var _this2=this;var _this$props14=this.props,discoveryStore=_this$props14.discoveryStore,routingStore=_this$props14.routingStore,intl=_this$props14.intl,toastsStore=_this$props14.toastsStore,enumsStore=_this$props14.enumsStore,settingsStore=_this$props14.settingsStore,onboardingStore=_this$props14.onboardingStore,isUp=_this$props14.listingsPageStore.isUp,isNonApi=_this$props14.sessionStore.isNonApi;var discoveryId=discoveryStore.discoveryId,qList=discoveryStore.qList,deleteDiscovery=discoveryStore.deleteDiscovery,isFirstEntrance=discoveryStore.isFirstEntrance,tryAgain=discoveryStore.tryAgain,stopProgress=discoveryStore.stopProgress,sellersAccounts=discoveryStore.sellersAccounts,availableSourceMarketPlaces=discoveryStore.availableSourceMarketPlaces,initStore=discoveryStore.initStore,fetchPaginationItems=discoveryStore.fetchPaginationItems,discoverMarket=discoveryStore.discoverMarket,discoverMethod=discoveryStore.discoverMethod,listingMarket=discoveryStore.listingMarket,discoverStrategy=discoveryStore.discoverStrategy,sellerAccountName=discoveryStore.sellerAccountName,qListDataLoaded=discoveryStore.qListDataLoaded,clearAll=discoveryStore.clearAll,isSellerAccountAvailable=discoveryStore.isSellerAccountAvailable;var currentPlan=settingsStore.subscription.currentPlan;if(discoveryId){console.log('started waiting');this.fetchStartTime=Date.now();this.getDiscoverFromQ(discoveryId);}// qList.completedDiscoveries.forEach(card=>{
//   discoveryStore.fetchByDiscoveryId(card.id).then(resp=> {
//     if(resp && resp.discoveryItems.length && resp.discoveryItems.length > 1 && resp.discoveryItems.some(itm=>itm.variations.length)) {
//       console.log(`${card.id} has variations`)
//     }
//   })
// })
var browserHistory=routingStore.browserHistory;var DESTINATION_MARKETPLACE=enumsStore.enums.DESTINATION_MARKETPLACE;var _this$props15=this.props,breakpoints=_this$props15.breakpoints,currentBreakpoint=_this$props15.currentBreakpoint;return Object(core_browser_esm["c" /* jsx */])("div",{hidden:!currentPlan},Object(core_browser_esm["c" /* jsx */])(react_document_title_default.a,{title:"".concat(constants["d" /* title */]," | Discover")},Object(core_browser_esm["c" /* jsx */])(DiscoverAndListWrapper,{pathname:browserHistory.getCurrentLocation().pathname,className:"DiscoverAndList"},this.renderModals(),(this.state.spinnerShown||!qListDataLoaded)&&Object(core_browser_esm["c" /* jsx */])(spinner["a" /* default */],null),this.isCurrentPath('/discover/main')&&Object(core_browser_esm["c" /* jsx */])(components_QList_QList,{intl:intl,handleNewDiscover:this.handleNewDiscover,handleExpressDiscovery:function handleExpressDiscovery(){return _this2.props.routingStore.browserHistory.push('/discover/express');},spinnerShown:this.state.spinnerShown,qListDataLoaded:qListDataLoaded,qList:Object(mobx_module["toJS"])(qList),deleteDiscovery:deleteDiscovery,getIsFirstEntrance:isFirstEntrance,tryAgain:tryAgain,stopProgress:stopProgress,getDiscoverFromQMany:this.getDiscoverFromQMany,toastsStore:toastsStore,enumsStore:enumsStore,getQList:this.getQList,initStore:initStore,enableTutorialStep:function enableTutorialStep(){onboardingStore.enableNextTutorial(1);},goToListing:this.goToListing,getSellerAccountName:discoveryStore.getSellerAccountName,getImportReport:discoveryStore.getImportReport,listingServiceUp:isUp,instantList:this.instantList,clearAll:clearAll}),!this.isCurrentPath('/discover/main')&&!this.isCurrentPath('/discover/express')&&Object(core_browser_esm["c" /* jsx */])(FlexStyle["b" /* ColumnFlex */],{className:"discoverProgressContainer",css:DiscoverAndList_ref2},Object(core_browser_esm["c" /* jsx */])(FlexStyle["e" /* RowFlex */],{css:DiscoverAndList_ref3},Object(core_browser_esm["c" /* jsx */])("div",{className:"discoverHeaderTitle",css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(breakpoints[currentBreakpoint]<breakpoints.tablet&&'margin-left: 0px;',"label:DiscoverAndList;"+( true?"":undefined))},intl.formatMessage({id:'discovery.discoverAndList'})),Object(core_browser_esm["c" /* jsx */])(progress_default.a,{percent:Object(Discover["k" /* getProgressValue */])(browserHistory),showInfo:false,style:{width:'345px',marginTop:'5px'}})),Object(core_browser_esm["c" /* jsx */])(FlexStyle["e" /* RowFlex */],{style:{width:'min(1077px, 100%)',margin:'0 auto',flexWrap:'wrap',maxWidth:'100%'}},Object(Discover["m" /* renderProgressTags */])({tagConstructor:this.tagConstructor,pathname:routingStore.browserHistory.getCurrentLocation().pathname,getDiscoverMarket:discoverMarket,getDiscoverMethod:discoverMethod,getListingMarket:listingMarket,getStrategy:discoverStrategy,getAccountSelected:sellerAccountName}).map(function(tag){return tag;}))),Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(react_transition_group["CSSTransition"],{timeout:discover["b" /* animationTime */],classNames:"discovery_animation_source",in:this.isCurrentPath('/discover/source'),unmountOnExit:true},function(){return Object(core_browser_esm["c" /* jsx */])(components_DiscoverMarkets_DiscoverMarkets,{getDiscoverMarket:discoverMarket,markets:availableSourceMarketPlaces,setDiscoverMarket:_this2.setDiscoverMarket,formatMessage:intl.formatMessage,isDisabled:false,path:"SOURCE_MARKETPLACE"});})),this.isCurrentPath('/discover/source')&&Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(DiscoveryInputsWrapper["a" /* default */],{discoveryStore:discoveryStore,browserHistory:browserHistory,isDisabled:true,formatMessage:intl.formatMessage,qNumber:2})),Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(react_transition_group["CSSTransition"],{timeout:discover["b" /* animationTime */],classNames:"discovery_animation_ids",in:this.isCurrentPath('/discover/ids'),unmountOnExit:true},Object(core_browser_esm["c" /* jsx */])(DiscoveryInputsWrapper["a" /* default */],{discoveryStore:discoveryStore,browserHistory:browserHistory,isDisabled:false,formatMessage:intl.formatMessage,afterChange:function afterChange(){onboardingStore.enableNextTutorial(4);if(onboardingStore.flow==='tutorial'&&onboardingStore.tutorialStepIndex===3){onboardingStore.startTransition();}browserHistory.push('/discover/listingSelect');},qNumber:2}))),this.isCurrentPath('/discover/ids')&&Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(components_ListingMarkets_ListingMarkets,{getDiscoverMarket:discoverMarket,getListingMarket:listingMarket,markets:settingsStore.markets.getDestinations.map(function(item){return DESTINATION_MARKETPLACE[item.id];}),setListingMarket:this.setListingMarket,formatMessage:intl.formatMessage,isDisabled:true,path:"DESTINATION_MARKETPLACE"})),Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(react_transition_group["CSSTransition"],{timeout:discover["b" /* animationTime */],classNames:"discovery_animation_listingSelect",in:this.isCurrentPath('/discover/listingSelect'),unmountOnExit:true},Object(core_browser_esm["c" /* jsx */])(components_ListingMarkets_ListingMarkets,{getDiscoverMarket:discoverMarket,getListingMarket:listingMarket,markets:settingsStore.markets.getDestinations.map(function(item){return DESTINATION_MARKETPLACE[item.id];}),setListingMarket:this.setListingMarket,formatMessage:intl.formatMessage,isDisabled:false,path:"DESTINATION_MARKETPLACE"}))),this.isCurrentPath('/discover/listingSelect')&&Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(components_DiscoveryAccountSelect_DiscoveryAccountSelect,{handleAccountSelect:this.handleAccountSelect,sellersAccounts:sellersAccounts,intl:intl,isDisabled:true})),Object(core_browser_esm["c" /* jsx */])("div",{className:"account-dropdown-tutorial"},Object(core_browser_esm["c" /* jsx */])(react_transition_group["CSSTransition"],{timeout:discover["b" /* animationTime */],classNames:"discovery_animation_selectAccount",in:this.isCurrentPath('/discover/selectAccount'),unmountOnExit:true},Object(core_browser_esm["c" /* jsx */])(components_DiscoveryAccountSelect_DiscoveryAccountSelect,{handleAccountSelect:this.handleAccountSelect,sellersAccounts:sellersAccounts,intl:intl}))),this.isCurrentPath('/discover/selectAccount')&&Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(components_StrategySelectWrapper_StrategySelectWrapper,{clickHandler:discoveryStore.setStrategy,value:discoverStrategy,fetchDiscover:this.fetchDiscover,intl:intl,selected:discoverStrategy,isDisabled:true})),this.isCurrentPath('/discover/strategy')&&Object(core_browser_esm["c" /* jsx */])("div",{className:"select-strategy-tutorial"},Object(core_browser_esm["c" /* jsx */])(components_StrategySelectWrapper_StrategySelectWrapper,{clickHandler:discoveryStore.setStrategy,value:discoverStrategy,intl:intl,selected:discoverStrategy,strategies:discoveryStore.strategies,isDisabled:false,setDefaultStrategyValues:discoveryStore.setDefaultStrategyValues,setSpinner:this.setSpinner}),isNonApi&&!isSellerAccountAvailable?Object(core_browser_esm["c" /* jsx */])(popover_default.a,{content:"Seller account is still connecting. Please come back in 15 minutes.",title:"",trigger:"hover",placement:"right"},Object(core_browser_esm["c" /* jsx */])(FlexStyle["f" /* RowFlexReverse */],{style:{width:'min(897px, 60%)',margin:'27px 0 0 20%'}},Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{disabled:isNonApi&&!isSellerAccountAvailable,clickHandler:this.fetchDiscover,cssProps:{width:'max(110px, 12.5%)'}},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.discover",defaultMessage:"Discover"}),Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{style:{marginLeft:'7px'},type:"discover_glasses",size:20})))):Object(core_browser_esm["c" /* jsx */])(FlexStyle["f" /* RowFlexReverse */],{style:{width:'min(897px, 60%)',margin:'27px 0 0 20%'}},Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:this.fetchDiscover,cssProps:{width:'max(110px, 12.5%)'}},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.discover",defaultMessage:"Discover"}),Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{style:{marginLeft:'7px'},type:"discover_glasses",size:20})))),this.isCurrentPath('/discover/singleResult')&&Object(core_browser_esm["c" /* jsx */])(components_SingleItemEdit_SingleItemEdit,{browserHistory:browserHistory,formatMessage:intl.formatMessage,currency:"$",discoveryParams:browserHistory.getCurrentLocation().query,templates:settingsStore.listing.templateList,getDiscoverFromQMany:this.getDiscoverFromQMany,getDiscoverFromQ:this.getDiscoverFromQ,fetchPaginationItems:fetchPaginationItems,setSpinner:this.setSpinner,key:browserHistory.getCurrentLocation().query['item-id']}),this.isCurrentPath('/discover/multiResult')&&Object(core_browser_esm["c" /* jsx */])(components_DiscoverResultsTable_DiscoverResultsTable,{discoveryStore:discoveryStore,browserHistory:browserHistory,discoveryParams:browserHistory.getCurrentLocation().query,getDiscoverFromQMany:this.getDiscoverFromQMany,formatMessage:intl.formatMessage,toastsStore:toastsStore,templates:settingsStore.listing.templateList,setSpinner:this.setSpinner,defaultCurrencyId:settingsStore.userProfile.defaultCurrencyId,listingServiceUp:isUp}))));}}]);return DiscoverAndList;}(react["Component"]))||DiscoverAndList_class)||DiscoverAndList_class)||DiscoverAndList_class)||DiscoverAndList_class)||DiscoverAndList_class)||DiscoverAndList_class)||DiscoverAndList_class)||DiscoverAndList_class)||DiscoverAndList_class)||DiscoverAndList_class);/* harmony default export */ var pages_DiscoverAndList_DiscoverAndList = (Object(lib["withBreakpoints"])(DiscoverAndList_DiscoverAndList));
// CONCATENATED MODULE: ./src/js/pages/DiscoverAndList/index.js
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "scaleBand", function() { return /* reexport */ band["a" /* default */]; });
__webpack_require__.d(__webpack_exports__, "scalePoint", function() { return /* reexport */ band["b" /* point */]; });
__webpack_require__.d(__webpack_exports__, "scaleIdentity", function() { return /* reexport */ identity; });
__webpack_require__.d(__webpack_exports__, "scaleLinear", function() { return /* reexport */ linear["a" /* default */]; });
__webpack_require__.d(__webpack_exports__, "scaleLog", function() { return /* reexport */ log; });
__webpack_require__.d(__webpack_exports__, "scaleSymlog", function() { return /* reexport */ symlog; });
__webpack_require__.d(__webpack_exports__, "scaleOrdinal", function() { return /* reexport */ ordinal["a" /* default */]; });
__webpack_require__.d(__webpack_exports__, "scaleImplicit", function() { return /* reexport */ ordinal["b" /* implicit */]; });
__webpack_require__.d(__webpack_exports__, "scalePow", function() { return /* reexport */ pow; });
__webpack_require__.d(__webpack_exports__, "scaleSqrt", function() { return /* reexport */ sqrt; });
__webpack_require__.d(__webpack_exports__, "scaleRadial", function() { return /* reexport */ radial; });
__webpack_require__.d(__webpack_exports__, "scaleQuantile", function() { return /* reexport */ quantile_quantile; });
__webpack_require__.d(__webpack_exports__, "scaleQuantize", function() { return /* reexport */ quantize; });
__webpack_require__.d(__webpack_exports__, "scaleThreshold", function() { return /* reexport */ threshold; });
__webpack_require__.d(__webpack_exports__, "scaleTime", function() { return /* reexport */ time; });
__webpack_require__.d(__webpack_exports__, "scaleUtc", function() { return /* reexport */ utcTime; });
__webpack_require__.d(__webpack_exports__, "scaleSequential", function() { return /* reexport */ sequential; });
__webpack_require__.d(__webpack_exports__, "scaleSequentialLog", function() { return /* reexport */ sequentialLog; });
__webpack_require__.d(__webpack_exports__, "scaleSequentialPow", function() { return /* reexport */ sequentialPow; });
__webpack_require__.d(__webpack_exports__, "scaleSequentialSqrt", function() { return /* reexport */ sequentialSqrt; });
__webpack_require__.d(__webpack_exports__, "scaleSequentialSymlog", function() { return /* reexport */ sequentialSymlog; });
__webpack_require__.d(__webpack_exports__, "scaleSequentialQuantile", function() { return /* reexport */ sequentialQuantile; });
__webpack_require__.d(__webpack_exports__, "scaleDiverging", function() { return /* reexport */ diverging; });
__webpack_require__.d(__webpack_exports__, "scaleDivergingLog", function() { return /* reexport */ divergingLog; });
__webpack_require__.d(__webpack_exports__, "scaleDivergingPow", function() { return /* reexport */ divergingPow; });
__webpack_require__.d(__webpack_exports__, "scaleDivergingSqrt", function() { return /* reexport */ divergingSqrt; });
__webpack_require__.d(__webpack_exports__, "scaleDivergingSymlog", function() { return /* reexport */ divergingSymlog; });
__webpack_require__.d(__webpack_exports__, "tickFormat", function() { return /* reexport */ src_tickFormat["a" /* default */]; });

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-scale/src/band.js + 1 modules
var band = __webpack_require__(502);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-scale/src/linear.js
var linear = __webpack_require__(144);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-scale/src/number.js
var number = __webpack_require__(287);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-scale/src/identity.js



function identity(domain) {
  var unknown;

  function scale(x) {
    return x == null || isNaN(x = +x) ? unknown : x;
  }

  scale.invert = scale;

  scale.domain = scale.range = function(_) {
    return arguments.length ? (domain = Array.from(_, number["a" /* default */]), scale) : domain.slice();
  };

  scale.unknown = function(_) {
    return arguments.length ? (unknown = _, scale) : unknown;
  };

  scale.copy = function() {
    return identity(domain).unknown(unknown);
  };

  domain = arguments.length ? Array.from(domain, number["a" /* default */]) : [0, 1];

  return Object(linear["b" /* linearish */])(scale);
}

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-array/src/ticks.js
var src_ticks = __webpack_require__(581);

// EXTERNAL MODULE: ./node_modules/d3-format/index.js + 15 modules
var d3_format = __webpack_require__(131);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-scale/src/nice.js
function nice(domain, interval) {
  domain = domain.slice();

  var i0 = 0,
      i1 = domain.length - 1,
      x0 = domain[i0],
      x1 = domain[i1],
      t;

  if (x1 < x0) {
    t = i0, i0 = i1, i1 = t;
    t = x0, x0 = x1, x1 = t;
  }

  domain[i0] = interval.floor(x0);
  domain[i1] = interval.ceil(x1);
  return domain;
}

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-scale/src/continuous.js + 1 modules
var continuous = __webpack_require__(109);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-scale/src/init.js
var init = __webpack_require__(86);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-scale/src/log.js






function transformLog(x) {
  return Math.log(x);
}

function transformExp(x) {
  return Math.exp(x);
}

function transformLogn(x) {
  return -Math.log(-x);
}

function transformExpn(x) {
  return -Math.exp(-x);
}

function pow10(x) {
  return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x;
}

function powp(base) {
  return base === 10 ? pow10
      : base === Math.E ? Math.exp
      : function(x) { return Math.pow(base, x); };
}

function logp(base) {
  return base === Math.E ? Math.log
      : base === 10 && Math.log10
      || base === 2 && Math.log2
      || (base = Math.log(base), function(x) { return Math.log(x) / base; });
}

function reflect(f) {
  return function(x) {
    return -f(-x);
  };
}

function loggish(transform) {
  var scale = transform(transformLog, transformExp),
      domain = scale.domain,
      base = 10,
      logs,
      pows;

  function rescale() {
    logs = logp(base), pows = powp(base);
    if (domain()[0] < 0) {
      logs = reflect(logs), pows = reflect(pows);
      transform(transformLogn, transformExpn);
    } else {
      transform(transformLog, transformExp);
    }
    return scale;
  }

  scale.base = function(_) {
    return arguments.length ? (base = +_, rescale()) : base;
  };

  scale.domain = function(_) {
    return arguments.length ? (domain(_), rescale()) : domain();
  };

  scale.ticks = function(count) {
    var d = domain(),
        u = d[0],
        v = d[d.length - 1],
        r;

    if (r = v < u) i = u, u = v, v = i;

    var i = logs(u),
        j = logs(v),
        p,
        k,
        t,
        n = count == null ? 10 : +count,
        z = [];

    if (!(base % 1) && j - i < n) {
      i = Math.floor(i), j = Math.ceil(j);
      if (u > 0) for (; i <= j; ++i) {
        for (k = 1, p = pows(i); k < base; ++k) {
          t = p * k;
          if (t < u) continue;
          if (t > v) break;
          z.push(t);
        }
      } else for (; i <= j; ++i) {
        for (k = base - 1, p = pows(i); k >= 1; --k) {
          t = p * k;
          if (t < u) continue;
          if (t > v) break;
          z.push(t);
        }
      }
      if (z.length * 2 < n) z = Object(src_ticks["a" /* default */])(u, v, n);
    } else {
      z = Object(src_ticks["a" /* default */])(i, j, Math.min(j - i, n)).map(pows);
    }

    return r ? z.reverse() : z;
  };

  scale.tickFormat = function(count, specifier) {
    if (specifier == null) specifier = base === 10 ? ".0e" : ",";
    if (typeof specifier !== "function") specifier = Object(d3_format["a" /* format */])(specifier);
    if (count === Infinity) return specifier;
    if (count == null) count = 10;
    var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?
    return function(d) {
      var i = d / pows(Math.round(logs(d)));
      if (i * base < base - 0.5) i *= base;
      return i <= k ? specifier(d) : "";
    };
  };

  scale.nice = function() {
    return domain(nice(domain(), {
      floor: function(x) { return pows(Math.floor(logs(x))); },
      ceil: function(x) { return pows(Math.ceil(logs(x))); }
    }));
  };

  return scale;
}

function log() {
  var scale = loggish(Object(continuous["d" /* transformer */])()).domain([1, 10]);

  scale.copy = function() {
    return Object(continuous["a" /* copy */])(scale, log()).base(scale.base());
  };

  init["b" /* initRange */].apply(scale, arguments);

  return scale;
}

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-scale/src/symlog.js




function transformSymlog(c) {
  return function(x) {
    return Math.sign(x) * Math.log1p(Math.abs(x / c));
  };
}

function transformSymexp(c) {
  return function(x) {
    return Math.sign(x) * Math.expm1(Math.abs(x)) * c;
  };
}

function symlogish(transform) {
  var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));

  scale.constant = function(_) {
    return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;
  };

  return Object(linear["b" /* linearish */])(scale);
}

function symlog() {
  var scale = symlogish(Object(continuous["d" /* transformer */])());

  scale.copy = function() {
    return Object(continuous["a" /* copy */])(scale, symlog()).constant(scale.constant());
  };

  return init["b" /* initRange */].apply(scale, arguments);
}

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-scale/src/ordinal.js
var ordinal = __webpack_require__(362);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-scale/src/pow.js




function transformPow(exponent) {
  return function(x) {
    return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);
  };
}

function transformSqrt(x) {
  return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);
}

function transformSquare(x) {
  return x < 0 ? -x * x : x * x;
}

function powish(transform) {
  var scale = transform(continuous["c" /* identity */], continuous["c" /* identity */]),
      exponent = 1;

  function rescale() {
    return exponent === 1 ? transform(continuous["c" /* identity */], continuous["c" /* identity */])
        : exponent === 0.5 ? transform(transformSqrt, transformSquare)
        : transform(transformPow(exponent), transformPow(1 / exponent));
  }

  scale.exponent = function(_) {
    return arguments.length ? (exponent = +_, rescale()) : exponent;
  };

  return Object(linear["b" /* linearish */])(scale);
}

function pow() {
  var scale = powish(Object(continuous["d" /* transformer */])());

  scale.copy = function() {
    return Object(continuous["a" /* copy */])(scale, pow()).exponent(scale.exponent());
  };

  init["b" /* initRange */].apply(scale, arguments);

  return scale;
}

function sqrt() {
  return pow.apply(null, arguments).exponent(0.5);
}

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-scale/src/radial.js





function square(x) {
  return Math.sign(x) * x * x;
}

function unsquare(x) {
  return Math.sign(x) * Math.sqrt(Math.abs(x));
}

function radial() {
  var squared = Object(continuous["b" /* default */])(),
      range = [0, 1],
      round = false,
      unknown;

  function scale(x) {
    var y = unsquare(squared(x));
    return isNaN(y) ? unknown : round ? Math.round(y) : y;
  }

  scale.invert = function(y) {
    return squared.invert(square(y));
  };

  scale.domain = function(_) {
    return arguments.length ? (squared.domain(_), scale) : squared.domain();
  };

  scale.range = function(_) {
    return arguments.length ? (squared.range((range = Array.from(_, number["a" /* default */])).map(square)), scale) : range.slice();
  };

  scale.rangeRound = function(_) {
    return scale.range(_).round(true);
  };

  scale.round = function(_) {
    return arguments.length ? (round = !!_, scale) : round;
  };

  scale.clamp = function(_) {
    return arguments.length ? (squared.clamp(_), scale) : squared.clamp();
  };

  scale.unknown = function(_) {
    return arguments.length ? (unknown = _, scale) : unknown;
  };

  scale.copy = function() {
    return radial(squared.domain(), range)
        .round(round)
        .clamp(squared.clamp())
        .unknown(unknown);
  };

  init["b" /* initRange */].apply(scale, arguments);

  return Object(linear["b" /* linearish */])(scale);
}

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-array/src/max.js
function max(values, valueof) {
  let max;
  if (valueof === undefined) {
    for (const value of values) {
      if (value != null
          && (max < value || (max === undefined && value >= value))) {
        max = value;
      }
    }
  } else {
    let index = -1;
    for (let value of values) {
      if ((value = valueof(value, ++index, values)) != null
          && (max < value || (max === undefined && value >= value))) {
        max = value;
      }
    }
  }
  return max;
}

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-array/src/min.js
function min(values, valueof) {
  let min;
  if (valueof === undefined) {
    for (const value of values) {
      if (value != null
          && (min > value || (min === undefined && value >= value))) {
        min = value;
      }
    }
  } else {
    let index = -1;
    for (let value of values) {
      if ((value = valueof(value, ++index, values)) != null
          && (min > value || (min === undefined && value >= value))) {
        min = value;
      }
    }
  }
  return min;
}

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-array/src/ascending.js
var ascending = __webpack_require__(315);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-array/src/quickselect.js


// Based on https://github.com/mourner/quickselect
// ISC license, Copyright 2018 Vladimir Agafonkin.
function quickselect(array, k, left = 0, right = array.length - 1, compare = ascending["a" /* default */]) {
  while (right > left) {
    if (right - left > 600) {
      const n = right - left + 1;
      const m = k - left + 1;
      const z = Math.log(n);
      const s = 0.5 * Math.exp(2 * z / 3);
      const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);
      const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));
      const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));
      quickselect(array, k, newLeft, newRight, compare);
    }

    const t = array[k];
    let i = left;
    let j = right;

    swap(array, left, k);
    if (compare(array[right], t) > 0) swap(array, left, right);

    while (i < j) {
      swap(array, i, j), ++i, --j;
      while (compare(array[i], t) < 0) ++i;
      while (compare(array[j], t) > 0) --j;
    }

    if (compare(array[left], t) === 0) swap(array, left, j);
    else ++j, swap(array, j, right);

    if (j <= k) left = j + 1;
    if (k <= j) right = j - 1;
  }
  return array;
}

function swap(array, i, j) {
  const t = array[i];
  array[i] = array[j];
  array[j] = t;
}

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-array/src/number.js
var src_number = __webpack_require__(379);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-array/src/quantile.js





function quantile(values, p, valueof) {
  values = Float64Array.from(Object(src_number["b" /* numbers */])(values, valueof));
  if (!(n = values.length)) return;
  if ((p = +p) <= 0 || n < 2) return min(values);
  if (p >= 1) return max(values);
  var n,
      i = (n - 1) * p,
      i0 = Math.floor(i),
      value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),
      value1 = min(values.subarray(i0 + 1));
  return value0 + (value1 - value0) * (i - i0);
}

function quantileSorted(values, p, valueof = src_number["a" /* default */]) {
  if (!(n = values.length)) return;
  if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);
  if (p >= 1) return +valueof(values[n - 1], n - 1, values);
  var n,
      i = (n - 1) * p,
      i0 = Math.floor(i),
      value0 = +valueof(values[i0], i0, values),
      value1 = +valueof(values[i0 + 1], i0 + 1, values);
  return value0 + (value1 - value0) * (i - i0);
}

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-array/src/bisect.js
var bisect = __webpack_require__(1594);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-scale/src/quantile.js



function quantile_quantile() {
  var domain = [],
      range = [],
      thresholds = [],
      unknown;

  function rescale() {
    var i = 0, n = Math.max(1, range.length);
    thresholds = new Array(n - 1);
    while (++i < n) thresholds[i - 1] = quantileSorted(domain, i / n);
    return scale;
  }

  function scale(x) {
    return x == null || isNaN(x = +x) ? unknown : range[Object(bisect["a" /* default */])(thresholds, x)];
  }

  scale.invertExtent = function(y) {
    var i = range.indexOf(y);
    return i < 0 ? [NaN, NaN] : [
      i > 0 ? thresholds[i - 1] : domain[0],
      i < thresholds.length ? thresholds[i] : domain[domain.length - 1]
    ];
  };

  scale.domain = function(_) {
    if (!arguments.length) return domain.slice();
    domain = [];
    for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);
    domain.sort(ascending["a" /* default */]);
    return rescale();
  };

  scale.range = function(_) {
    return arguments.length ? (range = Array.from(_), rescale()) : range.slice();
  };

  scale.unknown = function(_) {
    return arguments.length ? (unknown = _, scale) : unknown;
  };

  scale.quantiles = function() {
    return thresholds.slice();
  };

  scale.copy = function() {
    return quantile_quantile()
        .domain(domain)
        .range(range)
        .unknown(unknown);
  };

  return init["b" /* initRange */].apply(scale, arguments);
}

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-scale/src/quantize.js




function quantize() {
  var x0 = 0,
      x1 = 1,
      n = 1,
      domain = [0.5],
      range = [0, 1],
      unknown;

  function scale(x) {
    return x != null && x <= x ? range[Object(bisect["a" /* default */])(domain, x, 0, n)] : unknown;
  }

  function rescale() {
    var i = -1;
    domain = new Array(n);
    while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);
    return scale;
  }

  scale.domain = function(_) {
    return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];
  };

  scale.range = function(_) {
    return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();
  };

  scale.invertExtent = function(y) {
    var i = range.indexOf(y);
    return i < 0 ? [NaN, NaN]
        : i < 1 ? [x0, domain[0]]
        : i >= n ? [domain[n - 1], x1]
        : [domain[i - 1], domain[i]];
  };

  scale.unknown = function(_) {
    return arguments.length ? (unknown = _, scale) : scale;
  };

  scale.thresholds = function() {
    return domain.slice();
  };

  scale.copy = function() {
    return quantize()
        .domain([x0, x1])
        .range(range)
        .unknown(unknown);
  };

  return init["b" /* initRange */].apply(Object(linear["b" /* linearish */])(scale), arguments);
}

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-scale/src/threshold.js



function threshold() {
  var domain = [0.5],
      range = [0, 1],
      unknown,
      n = 1;

  function scale(x) {
    return x != null && x <= x ? range[Object(bisect["a" /* default */])(domain, x, 0, n)] : unknown;
  }

  scale.domain = function(_) {
    return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();
  };

  scale.range = function(_) {
    return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();
  };

  scale.invertExtent = function(y) {
    var i = range.indexOf(y);
    return [domain[i - 1], domain[i]];
  };

  scale.unknown = function(_) {
    return arguments.length ? (unknown = _, scale) : unknown;
  };

  scale.copy = function() {
    return threshold()
        .domain(domain)
        .range(range)
        .unknown(unknown);
  };

  return init["b" /* initRange */].apply(scale, arguments);
}

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-array/src/bisector.js
var bisector = __webpack_require__(567);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-time/src/duration.js
const durationSecond = 1000;
const durationMinute = durationSecond * 60;
const durationHour = durationMinute * 60;
const durationDay = durationHour * 24;
const durationWeek = durationDay * 7;
const durationMonth = durationDay * 30;
const durationYear = durationDay * 365;

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-time/src/interval.js
var interval_t0 = new Date,
    interval_t1 = new Date;

function newInterval(floori, offseti, count, field) {

  function interval(date) {
    return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;
  }

  interval.floor = function(date) {
    return floori(date = new Date(+date)), date;
  };

  interval.ceil = function(date) {
    return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;
  };

  interval.round = function(date) {
    var d0 = interval(date),
        d1 = interval.ceil(date);
    return date - d0 < d1 - date ? d0 : d1;
  };

  interval.offset = function(date, step) {
    return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;
  };

  interval.range = function(start, stop, step) {
    var range = [], previous;
    start = interval.ceil(start);
    step = step == null ? 1 : Math.floor(step);
    if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date
    do range.push(previous = new Date(+start)), offseti(start, step), floori(start);
    while (previous < start && start < stop);
    return range;
  };

  interval.filter = function(test) {
    return newInterval(function(date) {
      if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);
    }, function(date, step) {
      if (date >= date) {
        if (step < 0) while (++step <= 0) {
          while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty
        } else while (--step >= 0) {
          while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty
        }
      }
    });
  };

  if (count) {
    interval.count = function(start, end) {
      interval_t0.setTime(+start), interval_t1.setTime(+end);
      floori(interval_t0), floori(interval_t1);
      return Math.floor(count(interval_t0, interval_t1));
    };

    interval.every = function(step) {
      step = Math.floor(step);
      return !isFinite(step) || !(step > 0) ? null
          : !(step > 1) ? interval
          : interval.filter(field
              ? function(d) { return field(d) % step === 0; }
              : function(d) { return interval.count(0, d) % step === 0; });
    };
  }

  return interval;
}

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-time/src/millisecond.js


var millisecond = newInterval(function() {
  // noop
}, function(date, step) {
  date.setTime(+date + step);
}, function(start, end) {
  return end - start;
});

// An optimized implementation for this simple case.
millisecond.every = function(k) {
  k = Math.floor(k);
  if (!isFinite(k) || !(k > 0)) return null;
  if (!(k > 1)) return millisecond;
  return newInterval(function(date) {
    date.setTime(Math.floor(date / k) * k);
  }, function(date, step) {
    date.setTime(+date + step * k);
  }, function(start, end) {
    return (end - start) / k;
  });
};

/* harmony default export */ var src_millisecond = (millisecond);
var milliseconds = millisecond.range;

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-time/src/second.js



var second_second = newInterval(function(date) {
  date.setTime(date - date.getMilliseconds());
}, function(date, step) {
  date.setTime(+date + step * durationSecond);
}, function(start, end) {
  return (end - start) / durationSecond;
}, function(date) {
  return date.getUTCSeconds();
});

/* harmony default export */ var src_second = (second_second);
var seconds = second_second.range;

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-time/src/minute.js



var minute_minute = newInterval(function(date) {
  date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);
}, function(date, step) {
  date.setTime(+date + step * durationMinute);
}, function(start, end) {
  return (end - start) / durationMinute;
}, function(date) {
  return date.getMinutes();
});

/* harmony default export */ var src_minute = (minute_minute);
var minutes = minute_minute.range;

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-time/src/hour.js



var hour_hour = newInterval(function(date) {
  date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);
}, function(date, step) {
  date.setTime(+date + step * durationHour);
}, function(start, end) {
  return (end - start) / durationHour;
}, function(date) {
  return date.getHours();
});

/* harmony default export */ var src_hour = (hour_hour);
var hours = hour_hour.range;

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-time/src/day.js



var day_day = newInterval(
  date => date.setHours(0, 0, 0, 0),
  (date, step) => date.setDate(date.getDate() + step),
  (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,
  date => date.getDate() - 1
);

/* harmony default export */ var src_day = (day_day);
var days = day_day.range;

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-time/src/week.js



function weekday(i) {
  return newInterval(function(date) {
    date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
    date.setHours(0, 0, 0, 0);
  }, function(date, step) {
    date.setDate(date.getDate() + step * 7);
  }, function(start, end) {
    return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;
  });
}

var sunday = weekday(0);
var monday = weekday(1);
var tuesday = weekday(2);
var wednesday = weekday(3);
var thursday = weekday(4);
var friday = weekday(5);
var saturday = weekday(6);

var sundays = sunday.range;
var mondays = monday.range;
var tuesdays = tuesday.range;
var wednesdays = wednesday.range;
var thursdays = thursday.range;
var fridays = friday.range;
var saturdays = saturday.range;

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-time/src/month.js


var month_month = newInterval(function(date) {
  date.setDate(1);
  date.setHours(0, 0, 0, 0);
}, function(date, step) {
  date.setMonth(date.getMonth() + step);
}, function(start, end) {
  return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;
}, function(date) {
  return date.getMonth();
});

/* harmony default export */ var src_month = (month_month);
var months = month_month.range;

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-time/src/year.js


var year_year = newInterval(function(date) {
  date.setMonth(0, 1);
  date.setHours(0, 0, 0, 0);
}, function(date, step) {
  date.setFullYear(date.getFullYear() + step);
}, function(start, end) {
  return end.getFullYear() - start.getFullYear();
}, function(date) {
  return date.getFullYear();
});

// An optimized implementation for this simple case.
year_year.every = function(k) {
  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) {
    date.setFullYear(Math.floor(date.getFullYear() / k) * k);
    date.setMonth(0, 1);
    date.setHours(0, 0, 0, 0);
  }, function(date, step) {
    date.setFullYear(date.getFullYear() + step * k);
  });
};

/* harmony default export */ var src_year = (year_year);
var years = year_year.range;

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-time/src/utcMinute.js



var utcMinute = newInterval(function(date) {
  date.setUTCSeconds(0, 0);
}, function(date, step) {
  date.setTime(+date + step * durationMinute);
}, function(start, end) {
  return (end - start) / durationMinute;
}, function(date) {
  return date.getUTCMinutes();
});

/* harmony default export */ var src_utcMinute = (utcMinute);
var utcMinutes = utcMinute.range;

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-time/src/utcHour.js



var utcHour = newInterval(function(date) {
  date.setUTCMinutes(0, 0, 0);
}, function(date, step) {
  date.setTime(+date + step * durationHour);
}, function(start, end) {
  return (end - start) / durationHour;
}, function(date) {
  return date.getUTCHours();
});

/* harmony default export */ var src_utcHour = (utcHour);
var utcHours = utcHour.range;

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-time/src/utcDay.js



var utcDay = newInterval(function(date) {
  date.setUTCHours(0, 0, 0, 0);
}, function(date, step) {
  date.setUTCDate(date.getUTCDate() + step);
}, function(start, end) {
  return (end - start) / durationDay;
}, function(date) {
  return date.getUTCDate() - 1;
});

/* harmony default export */ var src_utcDay = (utcDay);
var utcDays = utcDay.range;

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-time/src/utcWeek.js



function utcWeekday(i) {
  return newInterval(function(date) {
    date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
    date.setUTCHours(0, 0, 0, 0);
  }, function(date, step) {
    date.setUTCDate(date.getUTCDate() + step * 7);
  }, function(start, end) {
    return (end - start) / durationWeek;
  });
}

var utcSunday = utcWeekday(0);
var utcMonday = utcWeekday(1);
var utcTuesday = utcWeekday(2);
var utcWednesday = utcWeekday(3);
var utcThursday = utcWeekday(4);
var utcFriday = utcWeekday(5);
var utcSaturday = utcWeekday(6);

var utcSundays = utcSunday.range;
var utcMondays = utcMonday.range;
var utcTuesdays = utcTuesday.range;
var utcWednesdays = utcWednesday.range;
var utcThursdays = utcThursday.range;
var utcFridays = utcFriday.range;
var utcSaturdays = utcSaturday.range;

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-time/src/utcMonth.js


var utcMonth = newInterval(function(date) {
  date.setUTCDate(1);
  date.setUTCHours(0, 0, 0, 0);
}, function(date, step) {
  date.setUTCMonth(date.getUTCMonth() + step);
}, function(start, end) {
  return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;
}, function(date) {
  return date.getUTCMonth();
});

/* harmony default export */ var src_utcMonth = (utcMonth);
var utcMonths = utcMonth.range;

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-time/src/utcYear.js


var utcYear = newInterval(function(date) {
  date.setUTCMonth(0, 1);
  date.setUTCHours(0, 0, 0, 0);
}, function(date, step) {
  date.setUTCFullYear(date.getUTCFullYear() + step);
}, function(start, end) {
  return end.getUTCFullYear() - start.getUTCFullYear();
}, function(date) {
  return date.getUTCFullYear();
});

// An optimized implementation for this simple case.
utcYear.every = function(k) {
  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) {
    date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);
    date.setUTCMonth(0, 1);
    date.setUTCHours(0, 0, 0, 0);
  }, function(date, step) {
    date.setUTCFullYear(date.getUTCFullYear() + step * k);
  });
};

/* harmony default export */ var src_utcYear = (utcYear);
var utcYears = utcYear.range;

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-time/src/ticks.js

















function ticker(year, month, week, day, hour, minute) {

  const tickIntervals = [
    [src_second,  1,      durationSecond],
    [src_second,  5,  5 * durationSecond],
    [src_second, 15, 15 * durationSecond],
    [src_second, 30, 30 * durationSecond],
    [minute,  1,      durationMinute],
    [minute,  5,  5 * durationMinute],
    [minute, 15, 15 * durationMinute],
    [minute, 30, 30 * durationMinute],
    [  hour,  1,      durationHour  ],
    [  hour,  3,  3 * durationHour  ],
    [  hour,  6,  6 * durationHour  ],
    [  hour, 12, 12 * durationHour  ],
    [   day,  1,      durationDay   ],
    [   day,  2,  2 * durationDay   ],
    [  week,  1,      durationWeek  ],
    [ month,  1,      durationMonth ],
    [ month,  3,  3 * durationMonth ],
    [  year,  1,      durationYear  ]
  ];

  function ticks(start, stop, count) {
    const reverse = stop < start;
    if (reverse) [start, stop] = [stop, start];
    const interval = count && typeof count.range === "function" ? count : tickInterval(start, stop, count);
    const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop
    return reverse ? ticks.reverse() : ticks;
  }

  function tickInterval(start, stop, count) {
    const target = Math.abs(stop - start) / count;
    const i = Object(bisector["a" /* default */])(([,, step]) => step).right(tickIntervals, target);
    if (i === tickIntervals.length) return year.every(Object(src_ticks["c" /* tickStep */])(start / durationYear, stop / durationYear, count));
    if (i === 0) return src_millisecond.every(Math.max(Object(src_ticks["c" /* tickStep */])(start, stop, count), 1));
    const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];
    return t.every(step);
  }

  return [ticks, tickInterval];
}

const [utcTicks, utcTickInterval] = ticker(src_utcYear, src_utcMonth, utcSunday, src_utcDay, src_utcHour, src_utcMinute);
const [timeTicks, timeTickInterval] = ticker(src_year, src_month, sunday, src_day, src_hour, src_minute);



// EXTERNAL MODULE: ./node_modules/d3-time-format/src/index.js + 4 modules
var src = __webpack_require__(169);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-scale/src/time.js






function time_date(t) {
  return new Date(t);
}

function time_number(t) {
  return t instanceof Date ? +t : +new Date(+t);
}

function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {
  var scale = Object(continuous["b" /* default */])(),
      invert = scale.invert,
      domain = scale.domain;

  var formatMillisecond = format(".%L"),
      formatSecond = format(":%S"),
      formatMinute = format("%I:%M"),
      formatHour = format("%I %p"),
      formatDay = format("%a %d"),
      formatWeek = format("%b %d"),
      formatMonth = format("%B"),
      formatYear = format("%Y");

  function tickFormat(date) {
    return (second(date) < date ? formatMillisecond
        : minute(date) < date ? formatSecond
        : hour(date) < date ? formatMinute
        : day(date) < date ? formatHour
        : month(date) < date ? (week(date) < date ? formatDay : formatWeek)
        : year(date) < date ? formatMonth
        : formatYear)(date);
  }

  scale.invert = function(y) {
    return new Date(invert(y));
  };

  scale.domain = function(_) {
    return arguments.length ? domain(Array.from(_, time_number)) : domain().map(time_date);
  };

  scale.ticks = function(interval) {
    var d = domain();
    return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);
  };

  scale.tickFormat = function(count, specifier) {
    return specifier == null ? tickFormat : format(specifier);
  };

  scale.nice = function(interval) {
    var d = domain();
    if (!interval || typeof interval.range !== "function") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);
    return interval ? domain(nice(d, interval)) : scale;
  };

  scale.copy = function() {
    return Object(continuous["a" /* copy */])(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));
  };

  return scale;
}

function time() {
  return init["b" /* initRange */].apply(calendar(timeTicks, timeTickInterval, src_year, src_month, sunday, src_day, src_hour, src_minute, src_second, src["timeFormat"]).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);
}

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-scale/src/utcTime.js





function utcTime() {
  return init["b" /* initRange */].apply(calendar(utcTicks, utcTickInterval, src_utcYear, src_utcMonth, utcSunday, src_utcDay, src_utcHour, src_utcMinute, src_second, src["utcFormat"]).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);
}

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-interpolate/src/value.js + 10 modules
var value = __webpack_require__(684);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-interpolate/src/round.js
var src_round = __webpack_require__(1595);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-scale/src/sequential.js








function transformer() {
  var x0 = 0,
      x1 = 1,
      t0,
      t1,
      k10,
      transform,
      interpolator = continuous["c" /* identity */],
      clamp = false,
      unknown;

  function scale(x) {
    return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));
  }

  scale.domain = function(_) {
    return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];
  };

  scale.clamp = function(_) {
    return arguments.length ? (clamp = !!_, scale) : clamp;
  };

  scale.interpolator = function(_) {
    return arguments.length ? (interpolator = _, scale) : interpolator;
  };

  function range(interpolate) {
    return function(_) {
      var r0, r1;
      return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];
    };
  }

  scale.range = range(value["a" /* default */]);

  scale.rangeRound = range(src_round["a" /* default */]);

  scale.unknown = function(_) {
    return arguments.length ? (unknown = _, scale) : unknown;
  };

  return function(t) {
    transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);
    return scale;
  };
}

function copy(source, target) {
  return target
      .domain(source.domain())
      .interpolator(source.interpolator())
      .clamp(source.clamp())
      .unknown(source.unknown());
}

function sequential() {
  var scale = Object(linear["b" /* linearish */])(transformer()(continuous["c" /* identity */]));

  scale.copy = function() {
    return copy(scale, sequential());
  };

  return init["a" /* initInterpolator */].apply(scale, arguments);
}

function sequentialLog() {
  var scale = loggish(transformer()).domain([1, 10]);

  scale.copy = function() {
    return copy(scale, sequentialLog()).base(scale.base());
  };

  return init["a" /* initInterpolator */].apply(scale, arguments);
}

function sequentialSymlog() {
  var scale = symlogish(transformer());

  scale.copy = function() {
    return copy(scale, sequentialSymlog()).constant(scale.constant());
  };

  return init["a" /* initInterpolator */].apply(scale, arguments);
}

function sequentialPow() {
  var scale = powish(transformer());

  scale.copy = function() {
    return copy(scale, sequentialPow()).exponent(scale.exponent());
  };

  return init["a" /* initInterpolator */].apply(scale, arguments);
}

function sequentialSqrt() {
  return sequentialPow.apply(null, arguments).exponent(0.5);
}

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-scale/src/sequentialQuantile.js




function sequentialQuantile() {
  var domain = [],
      interpolator = continuous["c" /* identity */];

  function scale(x) {
    if (x != null && !isNaN(x = +x)) return interpolator((Object(bisect["a" /* default */])(domain, x, 1) - 1) / (domain.length - 1));
  }

  scale.domain = function(_) {
    if (!arguments.length) return domain.slice();
    domain = [];
    for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);
    domain.sort(ascending["a" /* default */]);
    return scale;
  };

  scale.interpolator = function(_) {
    return arguments.length ? (interpolator = _, scale) : interpolator;
  };

  scale.range = function() {
    return domain.map((d, i) => interpolator(i / (domain.length - 1)));
  };

  scale.quantiles = function(n) {
    return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));
  };

  scale.copy = function() {
    return sequentialQuantile(interpolator).domain(domain);
  };

  return init["a" /* initInterpolator */].apply(scale, arguments);
}

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-interpolate/src/piecewise.js


function piecewise(interpolate, values) {
  if (values === undefined) values = interpolate, interpolate = value["a" /* default */];
  var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);
  while (i < n) I[i] = interpolate(v, v = values[++i]);
  return function(t) {
    var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));
    return I[i](t - i);
  };
}

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-scale/src/diverging.js









function diverging_transformer() {
  var x0 = 0,
      x1 = 0.5,
      x2 = 1,
      s = 1,
      t0,
      t1,
      t2,
      k10,
      k21,
      interpolator = continuous["c" /* identity */],
      transform,
      clamp = false,
      unknown;

  function scale(x) {
    return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));
  }

  scale.domain = function(_) {
    return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];
  };

  scale.clamp = function(_) {
    return arguments.length ? (clamp = !!_, scale) : clamp;
  };

  scale.interpolator = function(_) {
    return arguments.length ? (interpolator = _, scale) : interpolator;
  };

  function range(interpolate) {
    return function(_) {
      var r0, r1, r2;
      return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];
    };
  }

  scale.range = range(value["a" /* default */]);

  scale.rangeRound = range(src_round["a" /* default */]);

  scale.unknown = function(_) {
    return arguments.length ? (unknown = _, scale) : unknown;
  };

  return function(t) {
    transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;
    return scale;
  };
}

function diverging() {
  var scale = Object(linear["b" /* linearish */])(diverging_transformer()(continuous["c" /* identity */]));

  scale.copy = function() {
    return copy(scale, diverging());
  };

  return init["a" /* initInterpolator */].apply(scale, arguments);
}

function divergingLog() {
  var scale = loggish(diverging_transformer()).domain([0.1, 1, 10]);

  scale.copy = function() {
    return copy(scale, divergingLog()).base(scale.base());
  };

  return init["a" /* initInterpolator */].apply(scale, arguments);
}

function divergingSymlog() {
  var scale = symlogish(diverging_transformer());

  scale.copy = function() {
    return copy(scale, divergingSymlog()).constant(scale.constant());
  };

  return init["a" /* initInterpolator */].apply(scale, arguments);
}

function divergingPow() {
  var scale = powish(diverging_transformer());

  scale.copy = function() {
    return copy(scale, divergingPow()).exponent(scale.exponent());
  };

  return init["a" /* initInterpolator */].apply(scale, arguments);
}

function divergingSqrt() {
  return divergingPow.apply(null, arguments).exponent(0.5);
}

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-scale/src/tickFormat.js
var src_tickFormat = __webpack_require__(407);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-scale/src/index.js

































// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "default", function() { return /* reexport */ pages_DashboardPage_DashboardPage; });

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
var classCallCheck = __webpack_require__(9);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js
var createClass = __webpack_require__(10);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__(11);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
var getPrototypeOf = __webpack_require__(12);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
var inherits = __webpack_require__(13);

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__(7);

// EXTERNAL MODULE: ./node_modules/react-document-title/index.js
var react_document_title = __webpack_require__(98);
var react_document_title_default = /*#__PURE__*/__webpack_require__.n(react_document_title);

// EXTERNAL MODULE: ./node_modules/react-breakpoints/lib/index.js
var lib = __webpack_require__(65);

// EXTERNAL MODULE: ./src/js/components/common/TitledContainer/index.js + 1 modules
var TitledContainer = __webpack_require__(242);

// EXTERNAL MODULE: ./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js + 3 modules
var styled_base_browser_esm = __webpack_require__(6);

// CONCATENATED MODULE: ./src/js/pages/DashboardPage/styled.js
var styled_UntitledContainer=function UntitledContainer(props){return Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("width:100%;display:inline-block;box-shadow:0px 1px 7px 0 rgba(0,105,250,0.07);",props.fullHeight?'height: 100%;':'',"label:UntitledContainer;"+( true?"":undefined))},props.children);};var FlexParent=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e8sroyk0",label:"FlexParent"})("height:100%;display:flex;flex-wrap:wrap;justify-content:",function(props){return props.justify?props.justify:'space-between';},";align-items:",function(props){return props.align?props.align:'space-between';},";background-color:", true?'#edf4fc':undefined,";padding:",function(props){return props.padded?'8px':'0';},";flex-direction:",function(props){return props.direction?props.direction:'row';},";height:",function(props){return props.height?props.height:null;},";div.ant-progress-inner{padding:4px;}div.ant-progress-bg{transition:2s;margin:0;}div.ant-progress-success-bg,div.ant-progress-inner::after{transition:2s;}"+( true?"":undefined));var FlexContainer=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e8sroyk1",label:"FlexContainer"})("flex:",function(props){return props.flex?props.flex:null;},";margin:",function(props){return props.margined?'8px':'0';},";width:",function(props){if(props.width){return props.margined?"calc(".concat(props.width," - 16px)"):props.width;}return null;},";height:",function(props){if(props.height){return props.margined?"calc(".concat(props.height," - 16px)"):props.height;}return null;},";"+( true?"":undefined));
// EXTERNAL MODULE: ./src/js/constants/index.js + 1 modules
var constants = __webpack_require__(15);

// EXTERNAL MODULE: ./node_modules/react-intl/lib/index.es.js
var index_es = __webpack_require__(4);

// EXTERNAL MODULE: ./node_modules/antd/lib/tabs/style/index.js
var style = __webpack_require__(274);

// EXTERNAL MODULE: ./node_modules/antd/lib/tabs/index.js
var tabs = __webpack_require__(135);
var tabs_default = /*#__PURE__*/__webpack_require__.n(tabs);

// CONCATENATED MODULE: ./src/js/components/Sales/styled.js
// import {css} from '@emotion/core';
// import {fontSize, colors} from '../../constants';
var SalesSectionTitle=Object(styled_base_browser_esm["a" /* default */])("h2",{target:"eay7sv60",label:"SalesSectionTitle"})("font-family:Stolzl;font-size:",function(_ref){var theme=_ref.theme;return theme.fontSize.small;},";font-weight:bold;line-height:1.01;letter-spacing:0.1px;text-align:left;color:",function(_ref2){var theme=_ref2.theme;return theme.colors.greyDark;},";margin:0.5em 0 1.5em;"+( true?"":undefined));var MessageContainer=Object(styled_base_browser_esm["a" /* default */])("div",{target:"eay7sv61",label:"MessageContainer"})("font-size:",function(_ref3){var theme=_ref3.theme;return theme.fontSize.medium;},";font-family:Roboto;text-align:center;padding:5px;border:1px solid ",function(_ref4){var theme=_ref4.theme;return theme.colors.blue;},";"+( true?"":undefined));// export const MessageContainer = ({
//   message,
//   placement,
//   padding
// }) => {
//   return (
//     <div
//       css={css`
//         position: relative;
//         height: 0;
//         ${padding && `padding: ${padding};`}
//         &>span {
//           font-family: Stolzl-Light;
//           font-size: ${fontSize.medium};
//           display: block;
//           text-align: center;
//           transform: translateY(-50%);
//           background-color: ${colors.whiteBackground};
//           padding: 20px 10px;
//           box-shadow: 0px 0px 15px rgba(0,105,250,0.17);
//         }
//         ${placement === 'top' && `
//           bottom: calc(75%);
//         `}
//         ${placement === 'middle' && `
//           bottom: calc(50%);
//         `}
//         ${placement === 'bottom' && `
//           bottom: calc(25%);
//         `}
//       `}
//     >
//       <span>{message}</span>
//     </div>
//   )
// }
// CONCATENATED MODULE: ./src/js/components/Sales/DailyProfit/styled.js
// import { LineChart } from 'recharts';
var DailyProfitTabs=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])(tabs_default.a,{target:"e1rhk9yk0",label:"DailyProfitTabs"})("margin-bottom:20px;div.ant-tabs-nav-container{height:26px !important;}div.ant-tabs-tab{padding-right:10px !important;padding-left:10px !important;line-height:2 !important;border-radius:0 !important;}div.ant-tabs-tab:hover{color:",function(_ref){var theme=_ref.theme;return theme.colors.greyMid;}," !important;}div.ant-tabs-tab-active.ant-tabs-tab{color:",function(_ref2){var theme=_ref2.theme;return theme.colors.blueLight;}," !important;}"+( true?"":undefined));// export const ProfitLineChart = styled(LineChart)`
//   & div.recharts-wrapper {
//     margin-left:
//   }
// `
// EXTERNAL MODULE: ./src/js/components/common/styled.js
var styled = __webpack_require__(35);

// EXTERNAL MODULE: ./node_modules/moment/moment.js
var moment = __webpack_require__(23);
var moment_default = /*#__PURE__*/__webpack_require__.n(moment);

// EXTERNAL MODULE: ./node_modules/recharts/es6/chart/LineChart.js
var LineChart = __webpack_require__(1593);

// EXTERNAL MODULE: ./node_modules/recharts/es6/cartesian/CartesianGrid.js
var CartesianGrid = __webpack_require__(1596);

// EXTERNAL MODULE: ./node_modules/recharts/es6/cartesian/XAxis.js
var XAxis = __webpack_require__(417);

// EXTERNAL MODULE: ./node_modules/recharts/es6/cartesian/YAxis.js
var YAxis = __webpack_require__(418);

// EXTERNAL MODULE: ./node_modules/recharts/es6/component/Tooltip.js + 1 modules
var component_Tooltip = __webpack_require__(388);

// EXTERNAL MODULE: ./node_modules/recharts/es6/cartesian/Line.js
var Line = __webpack_require__(416);

// CONCATENATED MODULE: ./src/js/components/Sales/DailyProfit/Graph.js
var SmallerDot=Object(styled_base_browser_esm["a" /* default */])("circle",{target:"e3mgzwg0",label:"SmallerDot"})( true?{name:"u8iq2x",styles:"r:1.5;fill:#fff;stroke:#02aff9;"}:undefined);var Graph_formatTick=function formatTick(tick,selectedInterval){switch(selectedInterval){case'd':{return moment_default()(tick).format('HH[:00]');}case'w':{return moment_default()(tick).format('ddd');}case'm':{return moment_default()(tick).format('DD');}case'y':{return moment_default()(tick).format('MMM');}default:{return tick;}}};var Graph_formatLabel=function formatLabel(title,selectedInterval){switch(selectedInterval){case'd':{return moment_default()(title).format('HH[:00 (]dddd[)]');}case'w':{return moment_default()(title).format('dddd [(]MMMM Do[)]');}case'm':{return moment_default()(title).format('DD-MMM-YYYY');}case'y':{return moment_default()(title).format('MMMM YYYY');}default:{return"";}}};var Graph_Graph=function Graph(_ref){var data=_ref.data,interval=_ref.interval;return Object(core_browser_esm["c" /* jsx */])(LineChart["a" /* LineChart */],{width:370,height:100,data:data,margin:{left:-30,right:20}},Object(core_browser_esm["c" /* jsx */])(CartesianGrid["a" /* CartesianGrid */],{strokeDasharray:"3 3"}),Object(core_browser_esm["c" /* jsx */])(XAxis["a" /* XAxis */],{dataKey:"name",tickFormatter:function tickFormatter(tick){return Graph_formatTick(tick,interval);}}),Object(core_browser_esm["c" /* jsx */])(YAxis["a" /* YAxis */],null),Object(core_browser_esm["c" /* jsx */])(component_Tooltip["a" /* Tooltip */],{labelFormatter:function labelFormatter(title){return Graph_formatLabel(title,interval);}}),Object(core_browser_esm["c" /* jsx */])(Line["a" /* Line */],{type:"monotone",dataKey:"profit",stroke:constants["a" /* colors */].blueLight,dot:Object(core_browser_esm["c" /* jsx */])(SmallerDot,null)}));};/* harmony default export */ var DailyProfit_Graph = (Graph_Graph);
// CONCATENATED MODULE: ./src/js/components/Sales/DailyProfit/DailyProfit.js
var _dec,_class;// import {simpleMockedDailyData} from '../../../constants/mockedGraphData';
var DailyProfit_DailyProfit=(_dec=Object(index_module["b" /* inject */])('dashboardStore'),_dec(_class=Object(index_module["c" /* observer */])(_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(DailyProfit,_Component);function DailyProfit(){Object(classCallCheck["a" /* default */])(this,DailyProfit);return Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(DailyProfit).apply(this,arguments));}Object(createClass["a" /* default */])(DailyProfit,[{key:"render",value:function render(){var _this$props$dashboard=this.props.dashboardStore.dailyProfit,dailyData=_this$props$dashboard.dailyData,weeklyData=_this$props$dashboard.weeklyData,monthlyData=_this$props$dashboard.monthlyData,yearlyData=_this$props$dashboard.yearlyData;var tablist=[Object(core_browser_esm["c" /* jsx */])(tabs_default.a.TabPane,{tab:"d",key:"d"},Object(core_browser_esm["c" /* jsx */])(DailyProfit_Graph,{data:dailyData,interval:"d"})),Object(core_browser_esm["c" /* jsx */])(tabs_default.a.TabPane,{tab:"w",key:"w"},weeklyData.length!==0?Object(core_browser_esm["c" /* jsx */])(DailyProfit_Graph,{data:weeklyData,interval:"w"}):null),Object(core_browser_esm["c" /* jsx */])(tabs_default.a.TabPane,{tab:"m",key:"m"},monthlyData.length!==0?Object(core_browser_esm["c" /* jsx */])(DailyProfit_Graph,{data:monthlyData,interval:"m"}):null),Object(core_browser_esm["c" /* jsx */])(tabs_default.a.TabPane,{tab:"y",key:"y"},yearlyData.length!==0?Object(core_browser_esm["c" /* jsx */])(DailyProfit_Graph,{data:yearlyData,interval:"y"}):null)];// blur={initialized && noDailyProfitData ? 3 : 0}
return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(styled["b" /* BlurContainer */],null,Object(core_browser_esm["c" /* jsx */])(SalesSectionTitle,null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.dailyProfit",defaultMessage:"Daily Profit"})),Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.inTheLast",defaultMessage:"In the last"}),"\xA0-",Object(core_browser_esm["c" /* jsx */])(DailyProfitTabs,{type:"card"},tablist))));}}]);return DailyProfit;}(react["Component"]))||_class)||_class);/* harmony default export */ var Sales_DailyProfit_DailyProfit = (DailyProfit_DailyProfit);
// CONCATENATED MODULE: ./src/js/components/Sales/DailyProfit/index.js

// CONCATENATED MODULE: ./src/js/components/Sales/Sales.js
var Sales_dec,Sales_class;// import Revenue from './Revenue';
var Sales_Sales=(Sales_dec=Object(index_module["b" /* inject */])('dashboardStore'),Object(index_es["d" /* injectIntl */])(Sales_class=Sales_dec(Sales_class=Object(index_module["c" /* observer */])(Sales_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(Sales,_Component);function Sales(){Object(classCallCheck["a" /* default */])(this,Sales);return Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(Sales).apply(this,arguments));}Object(createClass["a" /* default */])(Sales,[{key:"render",value:function render(){var _this$props=this.props,_this$props$dashboard=_this$props.dashboardStore,initialized=_this$props$dashboard.initialized,noDailyProfitData=_this$props$dashboard.dailyProfit.noDailyProfitData,noRevenueData=_this$props$dashboard.revenue.noRevenueData,formatMessage=_this$props.intl.formatMessage,donut=_this$props.donut,graph=_this$props.graph;var renderBoth=graph===donut;return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,renderBoth&&initialized&&noDailyProfitData&&noRevenueData?Object(core_browser_esm["c" /* jsx */])(MessageContainer,null,formatMessage({id:'dashboard.noSalesData'})):null,(graph||renderBoth)&&Object(core_browser_esm["c" /* jsx */])(Sales_DailyProfit_DailyProfit,null));}}]);return Sales;}(react["Component"]))||Sales_class)||Sales_class)||Sales_class);/* harmony default export */ var components_Sales_Sales = (Sales_Sales);
// CONCATENATED MODULE: ./src/js/components/Sales/index.js

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/extends.js
var esm_extends = __webpack_require__(33);

// EXTERNAL MODULE: ./node_modules/antd/lib/select/style/index.js
var select_style = __webpack_require__(89);

// EXTERNAL MODULE: ./node_modules/antd/lib/select/index.js
var lib_select = __webpack_require__(36);
var select_default = /*#__PURE__*/__webpack_require__.n(lib_select);

// EXTERNAL MODULE: ./node_modules/recharts/es6/component/ResponsiveContainer.js
var ResponsiveContainer = __webpack_require__(1597);

// EXTERNAL MODULE: ./node_modules/recharts/es6/chart/ComposedChart.js + 3 modules
var ComposedChart = __webpack_require__(1598);

// EXTERNAL MODULE: ./node_modules/recharts/es6/cartesian/Bar.js
var Bar = __webpack_require__(669);

// EXTERNAL MODULE: ./src/js/constants/themes.js
var themes = __webpack_require__(18);

// EXTERNAL MODULE: ./src/js/constants/theme.js
var theme = __webpack_require__(28);

// EXTERNAL MODULE: ./src/js/components/common/Dropdown/index.js + 1 modules
var Dropdown = __webpack_require__(47);

// EXTERNAL MODULE: ./node_modules/antd/lib/checkbox/style/index.js
var checkbox_style = __webpack_require__(134);

// EXTERNAL MODULE: ./node_modules/antd/lib/checkbox/index.js
var lib_checkbox = __webpack_require__(61);
var checkbox_default = /*#__PURE__*/__webpack_require__.n(lib_checkbox);

// CONCATENATED MODULE: ./src/js/components/AdvancedSales/styled.js
var styled_SalesSectionTitle=Object(styled_base_browser_esm["a" /* default */])("h2",{target:"e1ly7erx0",label:"SalesSectionTitle"})("font-family:Stolzl;font-size:",function(_ref4){var theme=_ref4.theme;return theme.fontSize.small;},";font-weight:bold;line-height:1.01;letter-spacing:0.1px;text-align:left;color:",function(_ref5){var theme=_ref5.theme;return theme.colors.greyDark;},";margin:0.5em 0 1.5em;"+( true?"":undefined));var styled_MessageContainer=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1ly7erx1",label:"MessageContainer"})("font-size:",function(_ref6){var theme=_ref6.theme;return theme.fontSize.medium;},";font-family:Roboto;text-align:center;padding:5px;border:1px solid ",function(_ref7){var theme=_ref7.theme;return theme.colors.blue;},";"+( true?"":undefined));var StyledWrapper=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1ly7erx2",label:"StyledWrapper"})( true?{name:"k008qs",styles:"display:flex;"}:undefined);var StyledCircle=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1ly7erx3",label:"StyledCircle"})( true?{name:"1pzflgp",styles:"height:6px;width:6px;border-radius:3px;border:1px solid #3f435c;"}:undefined);var styled_ref= true?{name:"1qcmu90-Controls",styles:".ant-checkbox-inner{border-color:#869cc6 !important;}label:Controls;"}:undefined;var styled_ref2= true?{name:"fvh93b-Controls",styles:"display:inline-flex;align-items:center;label:Controls;"}:undefined;var styled_ref3= true?{name:"1rdvvrz-Controls",styles:"display:flex;align-items:center;margin-right:12px;label:Controls;"}:undefined;var styled_Controls=function Controls(_ref8){var selectedDataPoints=_ref8.selectedDataPoints,updateSelected=_ref8.updateSelected;return Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("width:175px;.ant-checkbox-group{width:100%;display:flex;flex-direction:column;justify-content:space-between;height:", true?'180px':undefined,";> label{margin-left:0px;font-size:",constants["b" /* fontSize */].medium,";color:",constants["a" /* colors */].greySecondary,";> span:nth-of-type(2){padding-left:15px;display:inline;}}> label.withColor{.ant-checkbox-inner{border-color:transparent !important;:after{border-color:#fff;}}}}label:Controls;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])("span",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("font-size:",constants["b" /* fontSize */].small,";color:",constants["a" /* colors */].greyDark,";font-weight:bold;display:block;margin-bottom:6px;label:Controls;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.graph.layers"})),Object(core_browser_esm["c" /* jsx */])(checkbox_default.a.Group,{value:selectedDataPoints,onChange:updateSelected}, true&&Object(core_browser_esm["c" /* jsx */])(checkbox_default.a,{value:"revenue",css:styled_ref},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.graph.revenue"})),Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("width:100%;height:1px;background-color:",constants["a" /* colors */].whiteDarkBackground,";border-bottom:1px solid ",constants["a" /* colors */].whiteDarkBackground,";label:Controls;"+( true?"":undefined))}),Object(core_browser_esm["c" /* jsx */])(checkbox_default.a,{value:"profit",className:"withColor",css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(".ant-checkbox-inner{background-color:",constants["a" /* colors */].lightWhite," !important;}label:Controls;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.graph.profit"})), true&&Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(checkbox_default.a,{value:"destinationFees",className:"withColor",css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(".ant-checkbox-inner{background-color:",constants["a" /* colors */].blueLight," !important;}label:Controls;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.graph.destinationFees"})),Object(core_browser_esm["c" /* jsx */])(checkbox_default.a,{value:"promotionFees",className:"withColor",css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(".ant-checkbox-inner{background-color:",constants["a" /* colors */].blueMed," !important;}label:Controls;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.graph.promotionFees"})),Object(core_browser_esm["c" /* jsx */])(checkbox_default.a,{value:"productCost",className:"withColor",css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(".ant-checkbox-inner{background-color:",constants["a" /* colors */].blueDark," !important;}label:Controls;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.graph.productCost"}))),Object(core_browser_esm["c" /* jsx */])(checkbox_default.a,{value:"ordersNum",css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(".ant-checkbox-inner{border-color:",constants["a" /* colors */].greyDark," !important;}label:Controls;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])("div",{css:styled_ref2},Object(core_browser_esm["c" /* jsx */])("div",{css:styled_ref3},Object(core_browser_esm["c" /* jsx */])(StyledCircle,null),Object(core_browser_esm["c" /* jsx */])("span",null,"-"),Object(core_browser_esm["c" /* jsx */])(StyledCircle,null)),Object(core_browser_esm["c" /* jsx */])("span",null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.graph.ordersNum"}))))));};var styled_XAxisCustomTick=function XAxisCustomTick(_ref9){var x=_ref9.x,y=_ref9.y,payload=_ref9.payload,selectedInterval=_ref9.selectedInterval;var splitPayload;switch(selectedInterval){case 0:{splitPayload=moment_default()(payload.value).format('ddd DD MMM').split(' ');break;}case 1:{splitPayload=moment_default()(payload.value).format('DD ddd').split(' ');break;}case 2:{splitPayload=moment_default()(payload.value).format('MMM YYYY').split(' ');break;}default:{splitPayload=[payload.value,''];}}return Object(core_browser_esm["c" /* jsx */])("g",{transform:"translate(".concat(x,",").concat(y,")")},Object(core_browser_esm["c" /* jsx */])("text",{x:0,y:0,textAnchor:"middle"},Object(core_browser_esm["c" /* jsx */])("tspan",{x:0,dy:"0.7em",style:{fontWeight:'bold',fill:constants["a" /* colors */].blueDark}},splitPayload[0]),Object(core_browser_esm["c" /* jsx */])("tspan",{x:0,dy:"1.4em",style:{fill:constants["a" /* colors */].greyMid}},splitPayload[1],splitPayload[2]?" ".concat(splitPayload[2]):'')));};var styled_YAxisCustomTick=function YAxisCustomTick(_ref10){var x=_ref10.x,y=_ref10.y,payload=_ref10.payload,fill=_ref10.fill,_ref10$unit=_ref10.unit,unit=_ref10$unit===void 0?'':_ref10$unit,textAnchor=_ref10.textAnchor;return Object(core_browser_esm["c" /* jsx */])("g",{transform:"translate(".concat(x,",").concat(y,")")},Object(core_browser_esm["c" /* jsx */])("text",{x:0,y:0,fill:fill,textAnchor:textAnchor},Object(core_browser_esm["c" /* jsx */])("tspan",{x:0,dy:3},unit,payload.value)));};var styled_OutlineBar=function OutlineBar(props){var fill=props.fill,stroke=props.stroke,x=props.x,y=props.y,width=props.width,height=props.height;return Object(core_browser_esm["c" /* jsx */])("rect",{x:x,y:y-2,width:width,height:height+2,fill:fill,stroke:stroke});};
// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 3 modules
var slicedToArray = __webpack_require__(64);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread.js
var objectSpread = __webpack_require__(27);

// EXTERNAL MODULE: ./node_modules/lodash/sortBy.js
var sortBy = __webpack_require__(454);
var sortBy_default = /*#__PURE__*/__webpack_require__.n(sortBy);

// EXTERNAL MODULE: ./node_modules/lodash/isArray.js
var isArray = __webpack_require__(121);
var isArray_default = /*#__PURE__*/__webpack_require__.n(isArray);

// EXTERNAL MODULE: ./node_modules/lodash/isString.js
var isString = __webpack_require__(666);
var isString_default = /*#__PURE__*/__webpack_require__.n(isString);

// EXTERNAL MODULE: ./node_modules/lodash/isNaN.js
var lodash_isNaN = __webpack_require__(667);
var isNaN_default = /*#__PURE__*/__webpack_require__.n(lodash_isNaN);

// EXTERNAL MODULE: ./node_modules/lodash/isNumber.js
var lodash_isNumber = __webpack_require__(505);
var isNumber_default = /*#__PURE__*/__webpack_require__.n(lodash_isNumber);

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__(25);
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// CONCATENATED MODULE: ./src/js/components/AdvancedSales/Tooltip.js
var Tooltip_isNumber=function isNumber(value){return isNumber_default()(value)&&!isNaN_default()(value);};var Tooltip_isNumOrStr=function isNumOrStr(value){return Tooltip_isNumber(value)||isString_default()(value);};var Tooltip_defaultFormatter=function defaultFormatter(value){return isArray_default()(value)&&Tooltip_isNumOrStr(value[0])&&Tooltip_isNumOrStr(value[1])?value.join(' ~ '):value;};var tooltipOrder={revenue:0,graphProfit:1,destinationFees:2,paypalFees:3,productCost:4,ordersNum:5};var Tooltip_Tooltip=/*#__PURE__*/function(_React$Component){Object(inherits["a" /* default */])(Tooltip,_React$Component);function Tooltip(){Object(classCallCheck["a" /* default */])(this,Tooltip);return Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(Tooltip).apply(this,arguments));}Object(createClass["a" /* default */])(Tooltip,[{key:"renderContent",value:function renderContent(){var _this$props=this.props,payload=_this$props.payload,separator=_this$props.separator,formatter=_this$props.formatter,itemStyle=_this$props.itemStyle;if(payload&&payload.length){var extraPayload=payload.map(function(el){return Object(objectSpread["a" /* default */])({},el,{ttOrder:tooltipOrder[el.dataKey]});}).filter(function(obj){return obj.dataKey!=='graphOutline';});var listStyle={padding:0,margin:0};var items=sortBy_default()(extraPayload,['ttOrder']).map(function(entry,i){var _ref,_ref2;if(entry.type==='none'){return null;}var finalItemStyle=Object(objectSpread["a" /* default */])({display:'block',paddingTop:4},itemStyle);var finalFormatter=entry.formatter||formatter||Tooltip_defaultFormatter;var name=entry.name,value=entry.value;if(finalFormatter){var formatted=finalFormatter(value,name,entry,i);if(Array.isArray(formatted)){var _formatted=Object(slicedToArray["a" /* default */])(formatted,2);value=_formatted[0];name=_formatted[1];}else{value=formatted;}}var usedColor;if(entry.dataKey==='ordersNum'){usedColor='#fff';}else{usedColor=entry.color;}return Object(core_browser_esm["c" /* jsx */])("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(i),style:finalItemStyle},Object(core_browser_esm["c" /* jsx */])("div",{style:{display:'inline-block',height:'10px',width:'10px',borderRadius:'5px',border:usedColor==='#fff'?'1px solid #3f435c':undefined,background:usedColor||'#000',marginRight:'5px'}}),Tooltip_isNumOrStr(name)?Object(core_browser_esm["c" /* jsx */])("span",{className:"recharts-tooltip-item-name"},name):null,Tooltip_isNumOrStr(name)?Object(core_browser_esm["c" /* jsx */])("span",{className:"recharts-tooltip-item-separator"},separator):null,Object(core_browser_esm["c" /* jsx */])("span",{className:"recharts-tooltip-item-value"},value," ",entry.name==="graphProfit"?"(".concat((_ref=(_ref2=entry.payload.profit/entry.payload.revenue*100)===null||_ref2===void 0?void 0:_ref2.toFixed(2))!==null&&_ref!==void 0?_ref:0,"%)"):''),Object(core_browser_esm["c" /* jsx */])("span",{className:"recharts-tooltip-item-unit"},entry.unit||''));});return Object(core_browser_esm["c" /* jsx */])("ul",{className:"recharts-tooltip-item-list",style:listStyle},items);}return null;}},{key:"render",value:function render(){var _this$props2=this.props,wrapperClassName=_this$props2.wrapperClassName,contentStyle=_this$props2.contentStyle,labelClassName=_this$props2.labelClassName,labelStyle=_this$props2.labelStyle,label=_this$props2.label,labelFormatter=_this$props2.labelFormatter,active=_this$props2.active;var finalStyle=Object(objectSpread["a" /* default */])({margin:0,padding:10,backgroundColor:'#fff',border:'1px solid #ccc',whiteSpace:'nowrap'},contentStyle);var finalLabelStyle=Object(objectSpread["a" /* default */])({margin:0},labelStyle);var hasLabel=Tooltip_isNumOrStr(label);var finalLabel=hasLabel?label:'';var wrapperCN=classnames_default()('recharts-default-tooltip',wrapperClassName);var labelCN=classnames_default()('recharts-tooltip-label',labelClassName);if(hasLabel&&labelFormatter){finalLabel=labelFormatter(label);}return active&&Object(core_browser_esm["c" /* jsx */])("div",{className:wrapperCN,style:finalStyle},Object(core_browser_esm["c" /* jsx */])("p",{className:labelCN,style:finalLabelStyle},finalLabel),this.renderContent());}}]);return Tooltip;}(react_default.a.Component);Tooltip_Tooltip.defaultProps={separator:' : ',contentStyle:{},itemStyle:{},labelStyle:{}};/* harmony default export */ var AdvancedSales_Tooltip = (Tooltip_Tooltip);
// CONCATENATED MODULE: ./src/js/constants/mockedGraphData.js
var advancedMockedWeekData=[{productCost:770,promotionFees:23.1,destinationFees:23.1,graphProfit:192.5,profit:192.5,revenue:1008.7,graphOutline:1008.7,ordersNum:59,negativeProfit:false,name:moment_default()().subtract(6,'days').format()},{productCost:2131.0,promotionFees:63.9,destinationFees:63.9,graphProfit:532.8,profit:532.8,revenue:2791.6,graphOutline:2791.6,ordersNum:164,negativeProfit:false,name:moment_default()().subtract(5,'days').format()},{productCost:257.0,promotionFees:7.7,destinationFees:7.7,graphProfit:64.3,profit:64.3,revenue:336.7,graphOutline:336.7,ordersNum:20,negativeProfit:false,name:moment_default()().subtract(4,'days').format()},{productCost:1798.0,promotionFees:53.9,destinationFees:53.9,graphProfit:449.5,profit:449.5,revenue:2355.4,graphOutline:2355.4,ordersNum:138,negativeProfit:false,name:moment_default()().subtract(3,'days').format()},{productCost:2003.0,promotionFees:60.1,destinationFees:60.1,graphProfit:500.8,profit:500.8,revenue:2623.9,graphOutline:2623.9,ordersNum:154,negativeProfit:false,name:moment_default()().subtract(2,'days').format()},{productCost:890.0,promotionFees:26.7,destinationFees:26.7,graphProfit:222.5,profit:222.5,revenue:1165.9,graphOutline:1165.9,ordersNum:68,negativeProfit:false,name:moment_default()().subtract(1,'days').format()},{productCost:1456.0,promotionFees:43.7,destinationFees:43.7,graphProfit:364.0,profit:364.0,revenue:1907.4,graphOutline:1907.4,ordersNum:112,negativeProfit:false,name:moment_default()().format()}];var advancedMockedMonthData=[{productCost:770,promotionFees:23.1,destinationFees:23.1,graphProfit:192.5,profit:192.5,revenue:1008.7,graphOutline:1008.7,ordersNum:59,negativeProfit:false,name:moment_default()().subtract(29,'days').format()},{productCost:2131.0,promotionFees:63.9,destinationFees:63.9,graphProfit:532.8,profit:532.8,revenue:2791.6,graphOutline:2791.6,ordersNum:164,negativeProfit:false,name:moment_default()().subtract(28,'days').format()},{productCost:257.0,promotionFees:7.7,destinationFees:7.7,graphProfit:64.3,profit:64.3,revenue:336.7,graphOutline:336.7,ordersNum:20,negativeProfit:false,name:moment_default()().subtract(27,'days').format()},{productCost:1798.0,promotionFees:53.9,destinationFees:53.9,graphProfit:449.5,profit:449.5,revenue:2355.4,graphOutline:2355.4,ordersNum:138,negativeProfit:false,name:moment_default()().subtract(26,'days').format()},{productCost:2003.0,promotionFees:60.1,destinationFees:60.1,graphProfit:500.8,profit:500.8,revenue:2623.9,graphOutline:2623.9,ordersNum:154,negativeProfit:false,name:moment_default()().subtract(25,'days').format()},{productCost:890.0,promotionFees:26.7,destinationFees:26.7,graphProfit:222.5,profit:222.5,revenue:1165.9,graphOutline:1165.9,ordersNum:68,negativeProfit:false,name:moment_default()().subtract(24,'days').format()},{productCost:1456.0,promotionFees:43.7,destinationFees:43.7,graphProfit:364.0,profit:364.0,revenue:1907.4,graphOutline:1907.4,ordersNum:112,negativeProfit:false,name:moment_default()().subtract(23,'days').format()},{productCost:630.0,promotionFees:18.9,destinationFees:18.9,graphProfit:157.5,profit:157.5,revenue:825.3,graphOutline:825.3,ordersNum:48,negativeProfit:false,name:moment_default()().subtract(22,'days').format()},{productCost:1970.0,promotionFees:59.1,destinationFees:59.1,graphProfit:492.5,profit:492.5,revenue:2580.7,graphOutline:2580.7,ordersNum:152,negativeProfit:false,name:moment_default()().subtract(21,'days').format()},{productCost:747.0,promotionFees:22.4,destinationFees:22.4,graphProfit:186.8,profit:186.8,revenue:978.6,graphOutline:978.6,ordersNum:57,negativeProfit:false,name:moment_default()().subtract(20,'days').format()},{productCost:1407.0,promotionFees:42.2,destinationFees:42.2,graphProfit:351.8,profit:351.8,revenue:1843.2,graphOutline:1843.2,ordersNum:108,negativeProfit:false,name:moment_default()().subtract(19,'days').format()},{productCost:228.0,promotionFees:6.8,destinationFees:6.8,graphProfit:57.0,profit:57.0,revenue:298.7,graphOutline:298.7,ordersNum:18,negativeProfit:false,name:moment_default()().subtract(18,'days').format()},{productCost:796.0,promotionFees:23.9,destinationFees:23.9,graphProfit:199.0,profit:199.0,revenue:1042.8,graphOutline:1042.8,ordersNum:61,negativeProfit:false,name:moment_default()().subtract(17,'days').format()},{productCost:1650.0,promotionFees:49.5,destinationFees:49.5,graphProfit:412.5,profit:412.5,revenue:2161.5,graphOutline:2161.5,ordersNum:127,negativeProfit:false,name:moment_default()().subtract(16,'days').format()},{productCost:370.0,promotionFees:11.1,destinationFees:11.1,graphProfit:92.5,profit:92.5,revenue:484.7,graphOutline:484.7,ordersNum:28,negativeProfit:false,name:moment_default()().subtract(15,'days').format()},{productCost:1900.0,promotionFees:57.0,destinationFees:57.0,graphProfit:475.0,profit:475.0,revenue:2489.0,graphOutline:2489.0,ordersNum:146,negativeProfit:false,name:moment_default()().subtract(14,'days').format()},{productCost:775.0,promotionFees:23.3,destinationFees:23.3,graphProfit:193.8,profit:193.8,revenue:1015.3,graphOutline:1015.3,ordersNum:60,negativeProfit:false,name:moment_default()().subtract(13,'days').format()},{productCost:1908.0,promotionFees:57.2,destinationFees:57.2,graphProfit:477.0,profit:477.0,revenue:2499.5,graphOutline:2499.5,ordersNum:147,negativeProfit:false,name:moment_default()().subtract(12,'days').format()},{productCost:2330.0,promotionFees:69.9,destinationFees:69.9,graphProfit:582.5,profit:582.5,revenue:3052.3,graphOutline:3052.3,ordersNum:179,negativeProfit:false,name:moment_default()().subtract(11,'days').format()},{productCost:908.0,promotionFees:27.2,destinationFees:27.2,graphProfit:227.0,profit:227.0,revenue:1189.5,graphOutline:1189.5,ordersNum:70,negativeProfit:false,name:moment_default()().subtract(10,'days').format()},{productCost:1507.0,promotionFees:45.2,destinationFees:45.2,graphProfit:376.8,profit:376.8,revenue:1974.2,graphOutline:1974.2,ordersNum:116,negativeProfit:false,name:moment_default()().subtract(9,'days').format()},{productCost:987.0,promotionFees:29.6,destinationFees:29.6,graphProfit:246.8,profit:246.8,revenue:1293.0,graphOutline:1293.0,ordersNum:76,negativeProfit:false,name:moment_default()().subtract(8,'days').format()},{productCost:2123.0,promotionFees:63.7,destinationFees:63.7,graphProfit:530.8,profit:530.8,revenue:2781.1,graphOutline:2781.1,ordersNum:163,negativeProfit:false,name:moment_default()().subtract(7,'days').format()},{productCost:325.0,promotionFees:9.8,destinationFees:9.8,graphProfit:81.3,profit:81.3,revenue:425.8,graphOutline:425.8,ordersNum:25,negativeProfit:false,name:moment_default()().subtract(6,'days').format()},{productCost:1389.0,promotionFees:41.7,destinationFees:41.7,graphProfit:347.3,profit:347.3,revenue:1819.6,graphOutline:1819.6,ordersNum:107,negativeProfit:false,name:moment_default()().subtract(5,'days').format()},{productCost:2309.0,promotionFees:69.3,destinationFees:69.3,graphProfit:577.3,profit:577.3,revenue:3024.8,graphOutline:3024.8,ordersNum:178,negativeProfit:false,name:moment_default()().subtract(4,'days').format()},{productCost:980.0,promotionFees:29.4,destinationFees:29.4,graphProfit:245.0,profit:245.0,revenue:1283.8,graphOutline:1283.8,ordersNum:75,negativeProfit:false,name:moment_default()().subtract(3,'days').format()},{productCost:1760.0,promotionFees:52.8,destinationFees:52.8,graphProfit:440.0,profit:440.0,revenue:2305.6,graphOutline:2305.6,ordersNum:135,negativeProfit:false,name:moment_default()().subtract(2,'days').format()},{productCost:372.0,promotionFees:11.2,destinationFees:11.2,graphProfit:93.0,profit:93.0,revenue:487.3,graphOutline:487.3,ordersNum:29,negativeProfit:false,name:moment_default()().subtract(1,'days').format()},{productCost:1892.0,promotionFees:56.8,destinationFees:56.8,graphProfit:473.0,profit:473.0,revenue:2478.5,graphOutline:2478.5,ordersNum:146,negativeProfit:false,name:moment_default()().format()}];var advancedMockedYearData=[{productCost:38568.0,promotionFees:1157.0,destinationFees:1157.0,graphProfit:9642.0,profit:9642.0,revenue:50524.1,graphOutline:50524.1,ordersNum:2967,negativeProfit:false,name:moment_default()().subtract(11,'months').format()},{productCost:37798.1,promotionFees:1133.9,destinationFees:1133.9,graphProfit:9449.5,profit:9449.5,revenue:49515.4,graphOutline:49515.4,ordersNum:2908,negativeProfit:false,name:moment_default()().subtract(10,'months').format()},{productCost:35667.0,promotionFees:1070.0,destinationFees:1070.0,graphProfit:8916.8,profit:8916.8,revenue:46723.8,graphOutline:46723.8,ordersNum:2744,negativeProfit:false,name:moment_default()().subtract(9,'months').format()},{productCost:35200.0,promotionFees:1062.3,destinationFees:1062.3,graphProfit:8852.5,profit:8852.5,revenue:46387.1,graphOutline:46387.1,ordersNum:2724,negativeProfit:false,name:moment_default()().subtract(8,'months').format()},{productCost:33611.9,promotionFees:1008.4,destinationFees:1008.4,graphProfit:8403.0,profit:8403.0,revenue:44031.7,graphOutline:44031.7,ordersNum:2586,negativeProfit:false,name:moment_default()().subtract(7,'months').format()},{productCost:31608.9,promotionFees:948.3,destinationFees:948.3,graphProfit:7902.3,profit:7902.3,revenue:41407.8,graphOutline:41407.8,ordersNum:2431,negativeProfit:false,name:moment_default()().subtract(6,'months').format()},{productCost:30718.9,promotionFees:921.6,destinationFees:921.6,graphProfit:7679.8,profit:7679.8,revenue:40241.9,graphOutline:40241.9,ordersNum:2363,negativeProfit:false,name:moment_default()().subtract(5,'months').format()},{productCost:29262.9,promotionFees:877.9,destinationFees:877.9,graphProfit:7315.8,profit:7315.8,revenue:38334.5,graphOutline:38334.5,ordersNum:2251,negativeProfit:false,name:moment_default()().subtract(4,'months').format()},{productCost:28632.9,promotionFees:859.0,destinationFees:859.0,graphProfit:7158.3,profit:7158.3,revenue:37509.2,graphOutline:37509.2,ordersNum:2203,negativeProfit:false,name:moment_default()().subtract(3,'months').format()},{productCost:26663.0,promotionFees:799.9,destinationFees:799.9,graphProfit:6665.8,profit:6665.8,revenue:34928.5,graphOutline:34928.5,ordersNum:2051,negativeProfit:false,name:moment_default()().subtract(2,'months').format()},{productCost:25916.0,promotionFees:777.5,destinationFees:777.5,graphProfit:6479.0,profit:6479.0,revenue:33950.0,graphOutline:33950.0,ordersNum:1994,negativeProfit:false,name:moment_default()().subtract(1,'months').format()},{productCost:24509.0,promotionFees:735.3,destinationFees:735.3,graphProfit:6127.3,profit:6127.3,revenue:32106.8,graphOutline:32106.8,ordersNum:1885,negativeProfit:false,name:moment_default()().format()}];var simpleMockedDailyData=[{profit:10,name:moment_default()().subtract(23,'hours').format()},{profit:20,name:moment_default()().subtract(22,'hours').format()},{profit:0,name:moment_default()().subtract(21,'hours').format()},{profit:15,name:moment_default()().subtract(20,'hours').format()},{profit:3,name:moment_default()().subtract(19,'hours').format()},{profit:3,name:moment_default()().subtract(18,'hours').format()},{profit:4,name:moment_default()().subtract(17,'hours').format()},{profit:6,name:moment_default()().subtract(16,'hours').format()},{profit:10,name:moment_default()().subtract(15,'hours').format()},{profit:11,name:moment_default()().subtract(14,'hours').format()},{profit:10,name:moment_default()().subtract(13,'hours').format()},{profit:18,name:moment_default()().subtract(12,'hours').format()},{profit:22,name:moment_default()().subtract(11,'hours').format()},{profit:22,name:moment_default()().subtract(10,'hours').format()},{profit:24,name:moment_default()().subtract(9,'hours').format()},{profit:20,name:moment_default()().subtract(8,'hours').format()},{profit:19,name:moment_default()().subtract(7,'hours').format()},{profit:18,name:moment_default()().subtract(6,'hours').format()},{profit:11,name:moment_default()().subtract(5,'hours').format()},{profit:10,name:moment_default()().subtract(4,'hours').format()},{profit:15,name:moment_default()().subtract(3,'hours').format()},{profit:15,name:moment_default()().subtract(2,'hours').format()},{profit:13,name:moment_default()().subtract(1,'hours').format()},{profit:14,name:moment_default()().format()}];
// CONCATENATED MODULE: ./src/js/components/AdvancedSales/SelectAccounts.js
var SelectAccounts_dec,SelectAccounts_class;var SelectAccounts_height='32px';var SelectAccounts_width='176px';var sHeight='22px';var Option=Dropdown["a" /* default */].Option;var SelectAccounts_SelectAccounts=(SelectAccounts_dec=Object(index_module["b" /* inject */])('dashboardStore'),SelectAccounts_dec(SelectAccounts_class=Object(index_module["c" /* observer */])(SelectAccounts_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(SelectAccounts,_Component);function SelectAccounts(props){var _this;Object(classCallCheck["a" /* default */])(this,SelectAccounts);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(SelectAccounts).call(this,props));_this.state={selectedSellerAccount:"All Accounts"};return _this;}Object(createClass["a" /* default */])(SelectAccounts,[{key:"fetchDataForSellerAccount",value:function fetchDataForSellerAccount(sellerAccountId){var fetchDailyProfit=this.props.dashboardStore.fetchDailyProfit;fetchDailyProfit(sellerAccountId==='All accounts'?undefined:sellerAccountId);}},{key:"render",value:function render(){var _this2=this;var _this$props=this.props,_this$props$accountsP=_this$props.accountsProps,setSelectedDestinationMarketplace=_this$props$accountsP.setSelectedDestinationMarketplace,selectedDestinationMarketplace=_this$props$accountsP.selectedDestinationMarketplace,destinations=_this$props$accountsP.destinations,sellerAccounts=_this$props$accountsP.sellerAccounts,selectAccount=_this$props$accountsP.selectAccount,_this$props$small=_this$props.small,small=_this$props$small===void 0?false:_this$props$small;var selectedSellerAccount=this.state.selectedSellerAccount;return Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(react["Fragment"],null,Object(core_browser_esm["c" /* jsx */])("span",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("font-size:",constants["b" /* fontSize */].small,";color:",constants["a" /* colors */].greyDark,";font-weight:bold;display:block;margin-bottom:6px;label:SelectAccounts;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.destinationMarketplaceSeller"})),Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{fontSize:"14px",value:selectedDestinationMarketplace.name,height:small?sHeight:SelectAccounts_height,width:SelectAccounts_width,marginRight:"15px",marginBottom:"15px",onChange:function onChange(e){_this2.setState({selectedSellerAccount:"All Accounts"});setSelectedDestinationMarketplace(e);_this2.fetchDataForSellerAccount(undefined);}},destinations.map(function(d){return Object(core_browser_esm["c" /* jsx */])(Option,{key:d.id,value:d.name},d.name);})),Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{value:selectedSellerAccount,onChange:function onChange(e){_this2.setState({selectedSellerAccount:e});_this2.fetchDataForSellerAccount(e);},height:small?sHeight:SelectAccounts_height,width:"220px",fontSize:"14px",marginBottom:"15px"},Object(core_browser_esm["c" /* jsx */])(Option,{key:"All",value:"All accounts"},"All accounts"),sellerAccounts.map(function(item){return Object(core_browser_esm["c" /* jsx */])(Option,{key:item.id,onClick:function onClick(){return selectAccount(item);}},item.name);}))));}}]);return SelectAccounts;}(react["Component"]))||SelectAccounts_class)||SelectAccounts_class);/* harmony default export */ var AdvancedSales_SelectAccounts = (SelectAccounts_SelectAccounts);
// CONCATENATED MODULE: ./src/js/components/AdvancedSales/AdvancedSales.js
var AdvancedSales_dec,_dec2,AdvancedSales_class;var intervals=['advWeeklyData','advMonthlyData','advYearlyData'];var mocks=[advancedMockedWeekData,advancedMockedMonthData,advancedMockedYearData];var AdvancedSales_ref= true?{name:"1xcbszf-AdvancedSales",styles:"max-width:233px;margin-right:20px;label:AdvancedSales;"}:undefined;var AdvancedSales_AdvancedSales=(AdvancedSales_dec=Object(index_module["b" /* inject */])('dashboardStore'),_dec2=Object(index_module["b" /* inject */])('settingsStore'),Object(index_es["d" /* injectIntl */])(AdvancedSales_class=AdvancedSales_dec(AdvancedSales_class=_dec2(AdvancedSales_class=Object(index_module["c" /* observer */])(AdvancedSales_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(AdvancedSales,_Component);function AdvancedSales(_props){var _this;Object(classCallCheck["a" /* default */])(this,AdvancedSales);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(AdvancedSales).call(this,_props));_this.getMissingDataMessage=function(){var _this$props=_this.props,formatMessage=_this$props.intl.formatMessage,_this$props$dashboard=_this$props.dashboardStore,initialized=_this$props$dashboard.initialized,_this$props$dashboard2=_this$props$dashboard.dailyProfit,missingAdvDataArray=_this$props$dashboard2.missingAdvDataArray,noAdvYearlyData=_this$props$dashboard2.noAdvYearlyData,someAdvDataMissing=_this$props$dashboard2.someAdvDataMissing;var selectedInterval=_this.state.selectedInterval;if(initialized&&someAdvDataMissing){// if there is no data from last 12 months => there is no data from the last 30 or 7 days
if(noAdvYearlyData){return formatMessage({id:'dashboard.noSalesData'});}if(missingAdvDataArray[selectedInterval]){return formatMessage({id:"dashboard.".concat(intervals[selectedInterval],"Missing")});}}return'';};_this.getSelectedData=function(){var _this$props$dashboard3=_this.props.dashboardStore,initialized=_this$props$dashboard3.initialized,dailyProfit=_this$props$dashboard3.dailyProfit;var missingAdvDataArray=dailyProfit.missingAdvDataArray,someAdvDataMissing=dailyProfit.someAdvDataMissing;var selectedInterval=_this.state.selectedInterval;// return mocks[selectedInterval];
if(initialized&&someAdvDataMissing&&missingAdvDataArray[selectedInterval]){return mocks[selectedInterval];}return dailyProfit[intervals[selectedInterval]];};_this.labelFormatter=function(title){var selectedInterval=_this.state.selectedInterval;switch(selectedInterval){case 0:{return moment_default()(title).format('dddd [(]MMMM Do[)]');}case 1:{return moment_default()(title).format('DD-MMM-YYYY');}case 2:{return moment_default()(title).format('MMMM YYYY');}default:{return'';}}};_this.tooltipFormatter=function(value,name,props){var formatMessage=_this.props.intl.formatMessage;if(name==='graphOutline')return[null,null];var newValue=name==='graphProfit'?props.payload.profit:value;var newName=name==='graphProfit'?formatMessage({id:"dashboard.graph.profit"}):formatMessage({id:"dashboard.graph.".concat(name)});if(name!=='ordersNum'){return["$".concat(newValue),newName];}return[newValue,newName];};_this.state={selectedInterval:1,selectedDataPoints:['revenue','productCost','promotionFees','destinationFees','profit','ordersNum']};_this.graphBars=[];return _this;}Object(createClass["a" /* default */])(AdvancedSales,[{key:"render",value:function render(){var _this2=this;var _this$props2=this.props,formatMessage=_this$props2.intl.formatMessage,_this$props2$settings=_this$props2.settingsStore.markets,defaultDestination=_this$props2$settings.defaultDestination,getDestinations=_this$props2$settings.getDestinations,accountsBar=_this$props2.dashboardStore.accountsBar;var _this$state=this.state,selectedInterval=_this$state.selectedInterval,selectedDataPoints=_this$state.selectedDataPoints;var selectedDataPointsObj=selectedDataPoints.reduce(function(acc,curr){acc[curr]=1;return acc;},{});var missingDataMessage=this.getMissingDataMessage();var selectedData=this.getSelectedData();var _this$props3=this.props,breakpoints=_this$props3.breakpoints,currentBreakpoint=_this$props3.currentBreakpoint;return Object(core_browser_esm["c" /* jsx */])(StyledWrapper,{style:{flexDirection:breakpoints[currentBreakpoint]>=breakpoints.desktop?'row':'column',justifyContent:'center'}},Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("display:flex;flex-direction:column;width:",breakpoints[currentBreakpoint]>=breakpoints.desktop?'80%':'100%',";label:AdvancedSales;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{defaultValue:selectedInterval,onChange:function onChange(val){return _this2.setState({selectedInterval:val});},height:"32px",borderRadius:"16px !important",width:"233px",marginBottom:"12px",fullWidth:true,css:AdvancedSales_ref},Object(core_browser_esm["c" /* jsx */])(select_default.a.Option,{value:0},formatMessage({id:'dashboard.lastWeek'})),Object(core_browser_esm["c" /* jsx */])(select_default.a.Option,{value:1},formatMessage({id:'dashboard.lastMonth'})),Object(core_browser_esm["c" /* jsx */])(select_default.a.Option,{value:2},formatMessage({id:'dashboard.lastYear'}))),missingDataMessage?Object(core_browser_esm["c" /* jsx */])(MessageContainer,{style:{display:'inline-block',marginBottom:'20px'}},missingDataMessage):null),!selectedData.length&&Object(core_browser_esm["c" /* jsx */])("div",{style:{position:'relative',overflowX:'auto',marginBottom:breakpoints[currentBreakpoint]>=breakpoints.desktop?'0px':'10px'}},Object(core_browser_esm["c" /* jsx */])(ResponsiveContainer["a" /* ResponsiveContainer */],{width:"100%",minWidth:"800px",height:240},Object(core_browser_esm["c" /* jsx */])(ComposedChart["a" /* ComposedChart */],{data:mocks[selectedInterval],barGap:-0.05},Object(core_browser_esm["c" /* jsx */])("defs",null,Object(core_browser_esm["c" /* jsx */])("pattern",{id:"diagonalHatch",patternUnits:"userSpaceOnUse",width:"4",height:"4"},Object(core_browser_esm["c" /* jsx */])("path",{d:"M-1,1 l2,-2 M0,4 l4,-4 M3,5 l2,-2",style:{stroke:'black',strokeWidth:'1'}}))),Object(core_browser_esm["c" /* jsx */])(CartesianGrid["a" /* CartesianGrid */],{horizontal:false,stroke:theme["a" /* colors */].greyLight,width:2}),Object(core_browser_esm["c" /* jsx */])(XAxis["a" /* XAxis */],{dataKey:"name",tick:function tick(props){return Object(core_browser_esm["c" /* jsx */])(styled_XAxisCustomTick,Object(esm_extends["a" /* default */])({selectedInterval:selectedInterval},props));},interval:0,height:60,tickLine:false,style:{background:'black'},xAxisId:1}),Object(core_browser_esm["c" /* jsx */])(XAxis["a" /* XAxis */],{dataKey:"name",xAxisId:0,height:60,interval:0,hide:true}),Object(core_browser_esm["c" /* jsx */])(YAxis["a" /* YAxis */],{yAxisId:"left",axisLine:false,tickLine:false,tick:function tick(props){return Object(core_browser_esm["c" /* jsx */])(styled_YAxisCustomTick,Object(esm_extends["a" /* default */])({},props,{unit:"$",fill:theme["a" /* colors */].greyMid}));}}),Object(core_browser_esm["c" /* jsx */])(YAxis["a" /* YAxis */],{yAxisId:"right",axisLine:false,tickLine:false,orientation:"right",allowDecimals:false,domain:[0,function(dataMax){return dataMax*2;}],tick:function tick(props){return Object(core_browser_esm["c" /* jsx */])(styled_YAxisCustomTick,Object(esm_extends["a" /* default */])({selectedInterval:selectedInterval},props,{fill:theme["a" /* colors */].greyMid}));}}),Object(core_browser_esm["c" /* jsx */])(component_Tooltip["a" /* Tooltip */],{formatter:this.tooltipFormatter,labelFormatter:this.labelFormatter,content:Object(core_browser_esm["c" /* jsx */])(AdvancedSales_Tooltip,null),labelStyle:{fontSize:'14px',marginBottom:'10px'}}),selectedDataPointsObj.revenue&&Object(core_browser_esm["c" /* jsx */])(Bar["a" /* Bar */],{dataKey:"graphOutline",barSize:19,yAxisId:"left",xAxisId:0,fill:"transparent",stroke:"#869cc6",shape:Object(core_browser_esm["c" /* jsx */])(styled_OutlineBar,null)}),selectedDataPointsObj.revenue&&Object(core_browser_esm["c" /* jsx */])(Bar["a" /* Bar */],{yAxisId:"left",dataKey:"revenue",fill:"#869cc6",barSize:0,xAxisId:1}),selectedDataPointsObj.productCost&&Object(core_browser_esm["c" /* jsx */])(Bar["a" /* Bar */],{yAxisId:"left",dataKey:"productCost",stackId:"a",fill:themes["d" /* themeColors */].darkBlue,barSize:15,xAxisId:1}),selectedDataPointsObj.promotionFees&&Object(core_browser_esm["c" /* jsx */])(Bar["a" /* Bar */],{yAxisId:"left",dataKey:"promotionFees",stackId:"a",fill:themes["d" /* themeColors */].blue,barSize:15,xAxisId:1}),selectedDataPointsObj.destinationFees&&Object(core_browser_esm["c" /* jsx */])(Bar["a" /* Bar */],{yAxisId:"left",dataKey:"destinationFees",stackId:"a",fill:themes["d" /* themeColors */].info,barSize:15,xAxisId:1}),selectedDataPointsObj.profit&&Object(core_browser_esm["c" /* jsx */])(Bar["a" /* Bar */],{yAxisId:"left",dataKey:"graphProfit",stackId:"a",fill:themes["d" /* themeColors */].lightBlue,barSize:15,xAxisId:1}),selectedDataPointsObj.ordersNum&&Object(core_browser_esm["c" /* jsx */])(Line["a" /* Line */],{yAxisId:"right",type:"monotone",dataKey:"ordersNum",stroke:themes["d" /* themeColors */].eggplantBlue})))),!!selectedData.length&&Object(core_browser_esm["c" /* jsx */])("div",{style:{position:'relative',overflowX:'auto',marginBottom:breakpoints[currentBreakpoint]>=breakpoints.desktop?'0px':'10px'}},Object(core_browser_esm["c" /* jsx */])(ResponsiveContainer["a" /* ResponsiveContainer */],{width:"100%",minWidth:"800px",height:240},Object(core_browser_esm["c" /* jsx */])(ComposedChart["a" /* ComposedChart */],{data:selectedData,barGap:-0.05},Object(core_browser_esm["c" /* jsx */])("defs",null,Object(core_browser_esm["c" /* jsx */])("pattern",{id:"diagonalHatch",patternUnits:"userSpaceOnUse",width:"4",height:"4"},Object(core_browser_esm["c" /* jsx */])("path",{d:"M-1,1 l2,-2 M0,4 l4,-4 M3,5 l2,-2",style:{stroke:'black',strokeWidth:'1'}}))),Object(core_browser_esm["c" /* jsx */])(CartesianGrid["a" /* CartesianGrid */],{horizontal:false,stroke:theme["a" /* colors */].greyLight,width:2}),Object(core_browser_esm["c" /* jsx */])(XAxis["a" /* XAxis */],{dataKey:"name",tick:function tick(props){return Object(core_browser_esm["c" /* jsx */])(styled_XAxisCustomTick,Object(esm_extends["a" /* default */])({selectedInterval:selectedInterval},props));},interval:0,height:60,tickLine:false,style:{background:'black'},xAxisId:1}),Object(core_browser_esm["c" /* jsx */])(XAxis["a" /* XAxis */],{dataKey:"name",xAxisId:0,height:60,interval:0,hide:true}),Object(core_browser_esm["c" /* jsx */])(YAxis["a" /* YAxis */],{yAxisId:"left",axisLine:false,tickLine:false,tick:function tick(props){return Object(core_browser_esm["c" /* jsx */])(styled_YAxisCustomTick,Object(esm_extends["a" /* default */])({},props,{unit:"$",fill:theme["a" /* colors */].greyMid}));}}),Object(core_browser_esm["c" /* jsx */])(YAxis["a" /* YAxis */],{yAxisId:"right",axisLine:false,tickLine:false,orientation:"right",allowDecimals:false,domain:[0,function(dataMax){return dataMax*2;}],tick:function tick(props){return Object(core_browser_esm["c" /* jsx */])(styled_YAxisCustomTick,Object(esm_extends["a" /* default */])({selectedInterval:selectedInterval},props,{fill:theme["a" /* colors */].greyMid}));}}),Object(core_browser_esm["c" /* jsx */])(component_Tooltip["a" /* Tooltip */],{formatter:this.tooltipFormatter,labelFormatter:this.labelFormatter,content:Object(core_browser_esm["c" /* jsx */])(AdvancedSales_Tooltip,null),labelStyle:{fontSize:'14px',marginBottom:'10px'}}),selectedDataPointsObj.revenue&&"TRIPLEMARS"==='TRIPLEMARS'&&Object(core_browser_esm["c" /* jsx */])(Bar["a" /* Bar */],{dataKey:"graphOutline",barSize:19,yAxisId:"left",xAxisId:0,fill:"transparent",stroke:"#869cc6",shape:Object(core_browser_esm["c" /* jsx */])(styled_OutlineBar,null)}),selectedDataPointsObj.revenue&&"TRIPLEMARS"==='TRIPLEMARS'&&Object(core_browser_esm["c" /* jsx */])(Bar["a" /* Bar */],{yAxisId:"left",dataKey:"revenue",fill:"#869cc6",barSize:0,xAxisId:1}),selectedDataPointsObj.productCost&&"TRIPLEMARS"==='TRIPLEMARS'&&Object(core_browser_esm["c" /* jsx */])(Bar["a" /* Bar */],{yAxisId:"left",dataKey:"productCost",stackId:"a",fill:themes["d" /* themeColors */].darkBlue,barSize:15,xAxisId:1}),selectedDataPointsObj.promotionFees&&"TRIPLEMARS"==='TRIPLEMARS'&&Object(core_browser_esm["c" /* jsx */])(Bar["a" /* Bar */],{yAxisId:"left",dataKey:"promotionFees",stackId:"a",fill:themes["d" /* themeColors */].blue,barSize:15,xAxisId:1}),selectedDataPointsObj.destinationFees&&"TRIPLEMARS"==='TRIPLEMARS'&&Object(core_browser_esm["c" /* jsx */])(Bar["a" /* Bar */],{yAxisId:"left",dataKey:"destinationFees",stackId:"a",fill:themes["d" /* themeColors */].info,barSize:15,xAxisId:1}),selectedDataPointsObj.profit&&Object(core_browser_esm["c" /* jsx */])(Bar["a" /* Bar */],{yAxisId:"left",dataKey:"graphProfit",stackId:"a",fill:themes["d" /* themeColors */].lightBlue,barSize:15,xAxisId:1}),selectedDataPointsObj.ordersNum&&Object(core_browser_esm["c" /* jsx */])(Line["a" /* Line */],{yAxisId:"right",type:"monotone",dataKey:"ordersNum",stroke:themes["d" /* themeColors */].eggplantBlue}))))),Object(core_browser_esm["c" /* jsx */])("div",{style:{marginLeft:breakpoints[currentBreakpoint]>=breakpoints.desktop?20:0}},Object(core_browser_esm["c" /* jsx */])(AdvancedSales_SelectAccounts,{accountsProps:accountsBar}),Object(core_browser_esm["c" /* jsx */])(styled_Controls,{selectedDataPoints:selectedDataPoints,updateSelected:function updateSelected(newSelected){return _this2.setState({selectedDataPoints:newSelected});},defaultDestination:defaultDestination,getDestinations:getDestinations})));}}]);return AdvancedSales;}(react["Component"]))||AdvancedSales_class)||AdvancedSales_class)||AdvancedSales_class)||AdvancedSales_class);/* harmony default export */ var components_AdvancedSales_AdvancedSales = (Object(lib["withBreakpoints"])(AdvancedSales_AdvancedSales));
// CONCATENATED MODULE: ./src/js/components/AdvancedSales/index.js

// EXTERNAL MODULE: ./node_modules/antd/lib/carousel/style/index.js
var carousel_style = __webpack_require__(275);

// EXTERNAL MODULE: ./node_modules/antd/lib/carousel/index.js
var carousel = __webpack_require__(151);
var carousel_default = /*#__PURE__*/__webpack_require__.n(carousel);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
var assertThisInitialized = __webpack_require__(16);

// EXTERNAL MODULE: ./node_modules/lodash/fp/getOr.js
var getOr = __webpack_require__(82);
var getOr_default = /*#__PURE__*/__webpack_require__.n(getOr);

// CONCATENATED MODULE: ./src/js/components/SellerAccountsData/EbayData/styled.js
// import { LineChart } from 'recharts';
var EbayDataContainer=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e3kbzga0",label:"EbayDataContainer"})( true?{name:"1mxx1vm",styles:"padding:16px 22px  5px  22px;background-color:#fff;display:flex;flex-direction:column;justify-content:space-between;min-height:312px;height:calc(100% - 25px);position:relative;"}:undefined);
// EXTERNAL MODULE: ./node_modules/antd/lib/progress/style/index.js
var progress_style = __webpack_require__(361);

// EXTERNAL MODULE: ./node_modules/antd/lib/progress/index.js
var progress = __webpack_require__(204);
var progress_default = /*#__PURE__*/__webpack_require__.n(progress);

// EXTERNAL MODULE: ./node_modules/@emotion/css/dist/css.browser.esm.js
var css_browser_esm = __webpack_require__(90);

// EXTERNAL MODULE: ./src/js/components/common/IconPng/IconPng.js
var IconPng = __webpack_require__(439);

// EXTERNAL MODULE: ./src/js/components/common/IconSvg/index.js
var IconSvg = __webpack_require__(14);

// EXTERNAL MODULE: ./src/js/utils/numberCommaFormatter.js
var numberCommaFormatter = __webpack_require__(62);

// CONCATENATED MODULE: ./src/js/components/Dashboard/styled.js
var HighlightedHintText=Object(styled_base_browser_esm["a" /* default */])("h2",{target:"e7567690",label:"HighlightedHintText"})("font-family:Stolzl;font-size:",function(_ref){var theme=_ref.theme;return theme.fontSize.small;},";line-height:1;letter-spacing:0.1px;text-align:left;color:",function(_ref2){var theme=_ref2.theme;return theme.colors.blueMed;},";margin-top:0.5em;display:inline-block;"+( true?"":undefined));var DashboardSectionsTitleLight=Object(styled_base_browser_esm["a" /* default */])("h2",{target:"e7567691",label:"DashboardSectionsTitleLight"})("font-family:Stolzl;font-size:",constants["b" /* fontSize */].small,";font-weight:bold;line-height:1;letter-spacing:0.1px;text-align:left;color:",constants["a" /* colors */].greySecondary,";margin-top:0.5em;display:inline-block;"+( true?"":undefined));var DashboardSectionsTitleDark=Object(styled_base_browser_esm["a" /* default */])("h2",{target:"e7567692",label:"DashboardSectionsTitleDark"})("font-family:Stolzl;font-size:",constants["b" /* fontSize */].small,";font-weight:bold;line-height:1;letter-spacing:0.1px;text-align:left;color:",constants["a" /* colors */].greyDark,";margin-top:0.5em;display:inline-block;"+( true?"":undefined));var DashboardSectionsRegularText=Object(styled_base_browser_esm["a" /* default */])("h2",{target:"e7567693",label:"DashboardSectionsRegularText"})("font-family:Stolzl;font-size:",constants["b" /* fontSize */].small,";line-height:1;letter-spacing:0.1px;text-align:left;color:",constants["a" /* colors */].greyDark,";margin-top:0.5em;display:inline-block;"+( true?"":undefined));var DashboardInsightsSectionsRegularText=Object(styled_base_browser_esm["a" /* default */])("h2",{target:"e7567694",label:"DashboardInsightsSectionsRegularText"})("font-family:Stolzl;font-size:",constants["b" /* fontSize */].small,";line-height:1;letter-spacing:0.1px;text-align:center;color:",constants["a" /* colors */].greyDark,";margin-top:0.5em;display:block;"+( true?"":undefined));var ThinText=Object(styled_base_browser_esm["a" /* default */])("h2",{target:"e7567695",label:"ThinText"})("font-family:Stolzl;font-size:",constants["b" /* fontSize */].small,";line-height:1;letter-spacing:0.1px;text-align:left;color:",constants["a" /* colors */].greyMid,";margin-top:0.5em;display:inline-block;"+( true?"":undefined));var BigNumber=Object(styled_base_browser_esm["a" /* default */])("h2",{target:"e7567696",label:"BigNumber"})("font-family:Stolzl;font-size:",constants["b" /* fontSize */].large,";line-height:1;letter-spacing:0.1px;text-align:left;font-weight:bold;color:",constants["a" /* colors */].greySecondary,";margin-top:0.5em;display:inline-block;"+( true?"":undefined));var VerticalLine=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e7567697",label:"VerticalLine"})("height:",function(props){return props.height?props.height:0;},";border-left:",function(props){return props.thickness?props.thickness:0;}," solid ",function(props){return props.color?props.color:'black';},";"+( true?"":undefined));
// CONCATENATED MODULE: ./src/js/components/Dashboard/index.js

// CONCATENATED MODULE: ./src/js/components/SellerAccountsData/styled.js
var SellerAccountTab=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])(tabs_default.a,{target:"e1wag6nx0",label:"SellerAccountTab"})( true?{name:"zgi67i",styles:"& div.ant-tabs-bar{margin-bottom:0;}& div.ant-tabs-nav-container{height:26px !important;padding:0 !important;span.ant-tabs-tab-prev,span.ant-tabs-tab-next{display:none;}}& div.ant-tabs-nav{width:50%;}& div.ant-tabs-tab{padding-right:10px !important;padding-left:21px !important;line-height:2 !important;border-radius:0 !important;width:100%;}height:100%;div.ant-tabs-content{height:100%;}div.ant-tabs-tabpane{height:100%;}"}:undefined);var styled_TabTitle=function TabTitle(props){return Object(core_browser_esm["c" /* jsx */])(IconPng["a" /* default */],{type:props.type,width:47,height:25});};var FlexSection=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1wag6nx1",label:"FlexSection"})("display:flex;align-items:",function(props){return props.align?props.align:'center';},";justify-content:space-between;",function(props){return props.width?"width: ".concat(props.width,";"):'';}, true?"":undefined);var styled_SellerRanking=function SellerRanking(_ref3){var ranking=_ref3.ranking;return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(DashboardSectionsRegularText,null,Object(core_browser_esm["c" /* jsx */])("span",null,ranking)),"\xA0",Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"seller-ribbon-badge",size:20}));};var MoneyProgress=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])(progress_default.a,{target:"e1wag6nx2",label:"MoneyProgress"})("& div.ant-progress-bg{background:repeating-linear-gradient( -62deg,",themes["d" /* themeColors */].purple,",",themes["d" /* themeColors */].purple," 2px,#fff 3px,",themes["d" /* themeColors */].purple," 4px );}"+( true?"":undefined));// const MoneyTooltips = props => {
//   const {spent = 0, limit = 1} = props;
//   const percent = spent/limit*100 || 0;
//
//   return percent === 0 ? null : (
//     <div
//       css={css`
//         position: relative;
//         z-index: 1;
//         width: calc(100% - 8px);
//       `}
//     >
//       <div
//         css={css`
//           position:absolute;
//           color: ${colors.greyMid};
//           &>div {
//             // margin-left: calc(50% + 0.5ch);
//             margin-left: 4px;
//           }
//           top: -7px;
//           left: calc(${percent}%);
//           // transform: translateX(calc(1px - 50%));
//         `}
//       >
//         ${commaFormat(spent)}
//         <VerticalLine thickness="1px" height="24px" color={colors.greyMid} />
//       </div>
//     </div>
//   );
// };
var SellerAccountsData_styled_ref2= true?{name:"1jlrcrl-MoneyLimit",styles:"width:96%;display:inline-block;label:MoneyLimit;"}:undefined;var styled_MoneyLimit=function MoneyLimit(props){var _props$spent=props.spent,spent=_props$spent===void 0?0:_props$spent,_props$limit=props.limit,limit=_props$limit===void 0?1:_props$limit;var percent=spent/limit*100||0;return Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(DashboardSectionsTitleLight,null,"$\xA0"),Object(core_browser_esm["c" /* jsx */])("div",{css:SellerAccountsData_styled_ref2},spent&&Object(core_browser_esm["c" /* jsx */])("span",null,"$",Object(numberCommaFormatter["a" /* commaFormat */])(limit-spent),' ',Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.more",defaultMessage:"more"})),Object(core_browser_esm["c" /* jsx */])(MoneyProgress,{percent:percent,showInfo:false})));};var ItemsProgress=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])(progress_default.a,{target:"e1wag6nx3",label:"ItemsProgress"})("div.ant-progress-inner{overflow:hidden;div.ant-progress-bg{z-index:1;opacity:0.5;background-color:",themes["d" /* themeColors */].purple,";}div.ant-progress-success-bg{top:4px;padding-right:4px;z-index:2;height:6px !important;background-color:transparent;::after{content:' ';display:inline-block;background-color:",themes["d" /* themeColors */].purple,";width:calc(100% - 4px);height:6px;margin-left:4px;margin-bottom:7px;border-radius:100px;}}}"+( true?"":undefined));// const ItemsTooltips =  props => {
//   const {
//     uploaded = 0,
//     // forecast = 0,
//     limit = 1
//   } = props;
//   const upercent = uploaded/limit*100 || 0;
//   // const fpercent = forecast/limit*100 || 0;
//
//   return upercent === 0 ? <div style={{height: '82px', position: 'relative', marginBottom: '-50px'}} /> : (
//     <div
//       css={css`
//         position: relative;
//         z-index: 1;
//         margin-top: 30px;
//         width: calc(100% - 8px);
//       `}
//     >
//       <div
//         css={css`
//           position:absolute;
//           color: ${colors.greyMid};
//           &>div {
//             // margin-left: calc(50% + 0.5ch);
//             margin-left: 4px;
//           }
//           top: -7px;
//           left: calc(${upercent}%);
//           // transform: translateX(-50%);
//         `}
//       >
//         {commaFormat(uploaded) } Uploaded
//         <VerticalLine thickness="1px" height="24px" color={colors.greyMid} />
//       </div>
//       {/* <div */}
//       {/* css={css` */}
//       {/* position:absolute; */}
//       {/* color: ${colors.greyMid}; */}
//       {/* left: calc(${fpercent}% - 4px); */}
//       {/* top: -23px; */}
//       {/* &>div { */}
//       {/* margin-left: calc(50% + 0.5ch); */}
//       {/* } */}
//       {/* transform: translateX(-50%); */}
//       {/* `} */}
//       {/* > */}
//       {/* {commaFormat(forecast) } Forecast */}
//       {/* <VerticalLine thickness="1px" height="40px" color={colors.greyMid} /> */}
//       {/* </div> */}
//     </div>
//   );
// };
var SellerAccountsData_styled_ref= true?{name:"5vo1m1-ItemsLimit",styles:"width:96%;display:inline-block;label:ItemsLimit;"}:undefined;var styled_ItemsLimit=function ItemsLimit(props){var _props$uploaded=props.uploaded,uploaded=_props$uploaded===void 0?0:_props$uploaded,_props$forecast=props.forecast,forecast=_props$forecast===void 0?0:_props$forecast,_props$limit2=props.limit,limit=_props$limit2===void 0?1:_props$limit2;var upercent=uploaded/limit*100||0;var fpercent=forecast/limit*100||0;return Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(DashboardSectionsTitleLight,null,"#\xA0"),Object(core_browser_esm["c" /* jsx */])("div",{css:SellerAccountsData_styled_ref},uploaded&&Object(core_browser_esm["c" /* jsx */])("span",null,Object(numberCommaFormatter["a" /* commaFormat */])(limit-uploaded),' ',Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.moreItems",defaultMessage:"more items"})),Object(core_browser_esm["c" /* jsx */])(ItemsProgress,{successPercent:upercent,percent:fpercent,showInfo:false})));};var styled_SellerReviewsPieChart=function SellerReviewsPieChart(props){return Object(core_browser_esm["c" /* jsx */])(progress_default.a,{type:"circle",percent:props.percent,width:60,strokeWidth:17,format:function format(percent){return"".concat(percent,"%");},css:/*#__PURE__*/Object(css_browser_esm["a" /* default */])("position:absolute;right:0px;bottom:25px;path.ant-progress-circle-path{stroke:",theme["a" /* colors */].blueLight,";}span.ant-progress-text{font-family:Stolzl;font-size:10px;font-weight:bold;letter-spacing:0.1px;color:",theme["a" /* colors */].greyDark,";}label:SellerReviewsPieChart;"+( true?"":undefined))});};
// CONCATENATED MODULE: ./src/js/components/SellerAccountsData/EbayData/EbayData.js
var EbayData_dec,EbayData_class;var EbayData_EbayData=(EbayData_dec=Object(index_module["b" /* inject */])('dashboardStore'),Object(index_es["d" /* injectIntl */])(EbayData_class=EbayData_dec(EbayData_class=Object(index_module["c" /* observer */])(EbayData_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(EbayData,_Component);function EbayData(){Object(classCallCheck["a" /* default */])(this,EbayData);return Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(EbayData).apply(this,arguments));}Object(createClass["a" /* default */])(EbayData,[{key:"render",value:function render(){var _this$props=this.props,_this$props$dashboard=_this$props.dashboardStore,_this$props$dashboard2=_this$props$dashboard.ebayData,_this$props$dashboard3=_this$props$dashboard2.currentSellerLevel,currentSellerLevel=_this$props$dashboard3===void 0?'':_this$props$dashboard3,_this$props$dashboard4=_this$props$dashboard2.monthlyCreditsNumber,monthlyCreditsNumber=_this$props$dashboard4===void 0?0:_this$props$dashboard4,_this$props$dashboard5=_this$props$dashboard2.monthlyCurrentSoldMoney,monthlyCurrentSoldMoney=_this$props$dashboard5===void 0?0:_this$props$dashboard5,_this$props$dashboard6=_this$props$dashboard2.monthlyForecastUploadedNumber,monthlyForecastUploadedNumber=_this$props$dashboard6===void 0?0:_this$props$dashboard6,_this$props$dashboard7=_this$props$dashboard2.monthlySellingLimitMoney,monthlySellingLimitMoney=_this$props$dashboard7===void 0?0:_this$props$dashboard7,_this$props$dashboard8=_this$props$dashboard2.monthlySellingLimitNumber,monthlySellingLimitNumber=_this$props$dashboard8===void 0?0:_this$props$dashboard8,_this$props$dashboard9=_this$props$dashboard2.monthlyUploadedNumber,monthlyUploadedNumber=_this$props$dashboard9===void 0?0:_this$props$dashboard9,_this$props$dashboard10=_this$props$dashboard2.feedbackTotalNegative,feedbackTotalNegative=_this$props$dashboard10===void 0?0:_this$props$dashboard10,_this$props$dashboard11=_this$props$dashboard2.feedbackTotalNeutral,feedbackTotalNeutral=_this$props$dashboard11===void 0?0:_this$props$dashboard11,_this$props$dashboard12=_this$props$dashboard2.feedbackTotalPositive,feedbackTotalPositive=_this$props$dashboard12===void 0?0:_this$props$dashboard12,_this$props$dashboard13=_this$props$dashboard2.storeSubscription,storeSubscription=_this$props$dashboard13===void 0?'':_this$props$dashboard13,_this$props$dashboard14=_this$props$dashboard2.positiveFeedbackPercentage,positiveFeedbackPercentage=_this$props$dashboard14===void 0?0:_this$props$dashboard14,noEbayData=_this$props$dashboard2.noEbayData,mockedData=_this$props$dashboard2.mockedData,sellerName=_this$props$dashboard2.sellerName,initialized=_this$props$dashboard.initialized,selectedSellerAccountId=_this$props$dashboard.selectedSellerAccountId,currentAccountName=_this$props.currentAccountName,formatMessage=_this$props.intl.formatMessage;var noData=initialized&&!selectedSellerAccountId&&noEbayData;// blur={noData ? 3 : 0}
return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(styled["b" /* BlurContainer */],null,Object(core_browser_esm["c" /* jsx */])(EbayDataContainer,null,noData&&Object(core_browser_esm["c" /* jsx */])(MessageContainer,null,formatMessage({id:'dashboard.noStoreData'})),Object(core_browser_esm["c" /* jsx */])(FlexSection,null,sellerName||currentAccountName?Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(DashboardSectionsTitleLight,null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.storeName",defaultMessage:"Store Name"}),":\xA0"),Object(core_browser_esm["c" /* jsx */])(ThinText,null,sellerName||currentAccountName)):null),Object(core_browser_esm["c" /* jsx */])(FlexSection,null,Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(DashboardSectionsTitleLight,null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.storeSubscription",defaultMessage:"Store Subscription"}),":\xA0"),Object(core_browser_esm["c" /* jsx */])(ThinText,null,noData?mockedData.currentSellerLevel:currentSellerLevel)),Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(styled_SellerRanking,{ranking:noData?mockedData.storeSubscription:storeSubscription}))),Object(core_browser_esm["c" /* jsx */])(FlexSection,null,Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(BigNumber,null,noData?mockedData.monthlyUploadedNumber:monthlyUploadedNumber,"\xA0"),Object(core_browser_esm["c" /* jsx */])(DashboardSectionsRegularText,null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.listedItems",defaultMessage:"Listed Items"})))),Object(core_browser_esm["c" /* jsx */])(DashboardSectionsTitleDark,null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.monthlyLimits",defaultMessage:"Monthly Selling Limits"})),Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(styled_MoneyLimit,{spent:noData?mockedData.monthlyCurrentSoldMoney:monthlyCurrentSoldMoney,limit:noData?mockedData.monthlySellingLimitMoney:monthlySellingLimitMoney}),Object(core_browser_esm["c" /* jsx */])(ThinText,{style:{marginLeft:'10px'}},"$",Object(numberCommaFormatter["a" /* commaFormat */])(noData?mockedData.monthlyCurrentSoldMoney:monthlyCurrentSoldMoney),"/$",Object(numberCommaFormatter["a" /* commaFormat */])(noData?mockedData.monthlySellingLimitMoney:monthlySellingLimitMoney))),Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(styled_ItemsLimit,{uploaded:noData?mockedData.monthlyUploadedNumber:monthlyUploadedNumber,forecast:noData?mockedData.monthlyForecastUploadedNumber:monthlyForecastUploadedNumber,credits:noData?mockedData.monthlyCreditsNumber:monthlyCreditsNumber,limit:noData?mockedData.monthlySellingLimitNumber:monthlySellingLimitNumber}),Object(core_browser_esm["c" /* jsx */])(ThinText,{style:{marginLeft:'10px'}},Object(numberCommaFormatter["a" /* commaFormat */])(noData?mockedData.monthlyUploadedNumber:monthlyUploadedNumber),' ',Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.uploaded",defaultMessage:"Uploaded"}),"/",Object(numberCommaFormatter["a" /* commaFormat */])(noData?mockedData.monthlySellingLimitNumber:monthlySellingLimitNumber),' ',Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.sellingLimit",defaultMessage:"Selling Limit"}))),Object(core_browser_esm["c" /* jsx */])(FlexSection,{width:"50%"},Object(core_browser_esm["c" /* jsx */])(DashboardSectionsTitleDark,null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.sellerReviews",defaultMessage:"Seller Reviews"}))),Object(core_browser_esm["c" /* jsx */])(FlexSection,null),Object(core_browser_esm["c" /* jsx */])(FlexSection,{width:"70%"},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"positive",size:"21"}),Object(core_browser_esm["c" /* jsx */])(DashboardSectionsTitleDark,null,noData?mockedData.feedbackTotalPositive:feedbackTotalPositive,"\xA0"),Object(core_browser_esm["c" /* jsx */])(ThinText,null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.positive",defaultMessage:"Positive"})),Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"neutral",size:"21"}),Object(core_browser_esm["c" /* jsx */])(DashboardSectionsTitleDark,null,noData?mockedData.feedbackTotalNeutral:feedbackTotalNeutral,"\xA0"),Object(core_browser_esm["c" /* jsx */])(ThinText,null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.neutral",defaultMessage:"Neutral"})),Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"negative",size:"21"}),Object(core_browser_esm["c" /* jsx */])(DashboardSectionsTitleDark,null,noData?mockedData.feedbackTotalNegative:feedbackTotalNegative,"\xA0"),Object(core_browser_esm["c" /* jsx */])(ThinText,null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.negative",defaultMessage:"Negative"}))),Object(core_browser_esm["c" /* jsx */])(styled_SellerReviewsPieChart,{percent:noData?mockedData.positiveFeedbackPercentage:positiveFeedbackPercentage}))));}}]);return EbayData;}(react["Component"]))||EbayData_class)||EbayData_class)||EbayData_class);/* harmony default export */ var SellerAccountsData_EbayData_EbayData = (EbayData_EbayData);
// CONCATENATED MODULE: ./src/js/components/SellerAccountsData/EbayData/index.js

// CONCATENATED MODULE: ./src/js/components/SellerAccountsData/SellerAccountsData.js
var SellerAccountsData_dec,SellerAccountsData_class;var TabPane=tabs_default.a.TabPane;var SellerAccountsData_ref= true?{name:"bxk1uv-SellerAccountsData",styles:"&,& .ant-carousel,& .slick-slider,& .slick-list,& .slick-track,& .slick-slide,& .slick-slide>div{height:100%;}label:SellerAccountsData;"}:undefined;var SellerAccountsData_ref2= true?{name:"14pqucj-SellerAccountsData",styles:".slick-arrow{z-index:1;&.slick-prev{left:-5px;}&.slick-next{right:-5px;}}label:SellerAccountsData;"}:undefined;var SellerAccountsData_SellerAccountsData=(SellerAccountsData_dec=Object(index_module["b" /* inject */])('dashboardStore'),SellerAccountsData_dec(SellerAccountsData_class=Object(index_module["c" /* observer */])(SellerAccountsData_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(SellerAccountsData,_Component);function SellerAccountsData(props){var _this;Object(classCallCheck["a" /* default */])(this,SellerAccountsData);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(SellerAccountsData).call(this,props));_this.changeAccount=_this.changeAccount.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));return _this;}Object(createClass["a" /* default */])(SellerAccountsData,[{key:"changeAccount",value:function changeAccount(){var _this$props$dashboard=this.props.dashboardStore,fetchEbayData=_this$props$dashboard.fetchEbayData,cleanUpEbayData=_this$props$dashboard.cleanUpEbayData;cleanUpEbayData();// setSelectedSellerAccountId(acc);
fetchEbayData();}},{key:"render",value:function render(){var _this2=this;var _this$props$dashboard2=this.props.dashboardStore.sellersAccounts,sellersAccounts=_this$props$dashboard2===void 0?['']:_this$props$dashboard2;var ebayTabTitle=Object(core_browser_esm["c" /* jsx */])(styled_TabTitle,{type:"ebay"});return Object(core_browser_esm["c" /* jsx */])(SellerAccountTab,{onChange:function onChange(key){console.log(key);},type:"card"},Object(core_browser_esm["c" /* jsx */])(TabPane,{tab:ebayTabTitle,key:1},Object(core_browser_esm["c" /* jsx */])("div",{css:SellerAccountsData_ref},sellersAccounts.length?Object(core_browser_esm["c" /* jsx */])(carousel_default.a,{dots:false,infinite:true,arrows:true,nextArrow:Object(core_browser_esm["c" /* jsx */])(styled["a" /* Arrow */],{type:"carousel-arrow-r"}),prevArrow:Object(core_browser_esm["c" /* jsx */])(styled["a" /* Arrow */],{flip:true,type:"carousel-arrow-r"}),beforeChange:function beforeChange(from,to){return _this2.changeAccount(getOr_default()('',"".concat(to,".id"),sellersAccounts));},css:SellerAccountsData_ref2},sellersAccounts.map(function(account){return Object(core_browser_esm["c" /* jsx */])(SellerAccountsData_EbayData_EbayData,{currentAccountName:account.name||'',key:account.id||1});})):Object(core_browser_esm["c" /* jsx */])(SellerAccountsData_EbayData_EbayData,null))));}}]);return SellerAccountsData;}(react["Component"]))||SellerAccountsData_class)||SellerAccountsData_class);/* harmony default export */ var components_SellerAccountsData_SellerAccountsData = (SellerAccountsData_SellerAccountsData);
// CONCATENATED MODULE: ./src/js/components/SellerAccountsData/index.js

// EXTERNAL MODULE: ./node_modules/antd/lib/spin/style/index.js
var spin_style = __webpack_require__(239);

// EXTERNAL MODULE: ./node_modules/antd/lib/spin/index.js
var spin = __webpack_require__(119);
var spin_default = /*#__PURE__*/__webpack_require__.n(spin);

// EXTERNAL MODULE: ./node_modules/react-router/es/index.js + 32 modules
var es = __webpack_require__(50);

// CONCATENATED MODULE: ./src/js/components/Insights/styled.js
/* eslint-disable no-nested-ternary */var Insights_styled_ref= true?{name:"13hu9xy-InsightComponent",styles:"margin-right:22px;display:inline-block;&>*{margin-right:7px;}>span{margin-bottom:6px;}label:InsightComponent;"}:undefined;var styled_InsightComponent=function InsightComponent(props){return Object(core_browser_esm["c" /* jsx */])("div",{css:Insights_styled_ref},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:props.success?'v-green':'x-pink',size:16}),Object(core_browser_esm["c" /* jsx */])(BigNumber,null,props.count),Object(core_browser_esm["c" /* jsx */])(DashboardInsightsSectionsRegularText,null,props.title));};var styled_FlexContainer=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e7hle430",label:"FlexContainer"})( true?{name:"d6d3su",styles:"display:flex;justify-content:space-between;max-width:350px;margin:15px 30px;"}:undefined);var Insights_styled_ref2= true?{name:"1s9tygg-InsightComponentNew",styles:"flex:0 0 calc(50% - 20px);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-bottom:20px;cursor:pointer;> div{display:flex;align-items:center;justify-content:center;margin-bottom:5px;}label:InsightComponentNew;"}:undefined;var InsightComponentNew=Object(index_module["c" /* observer */])(function(props){return Object(core_browser_esm["c" /* jsx */])("div",{css:Insights_styled_ref2,onClick:function onClick(){if(props.redirectFailedOrders){es["f" /* browserHistory */].push("orders/table?failed-orders&".concat(props.selectedSellerAccount));}if(props.redirectLateShipments){es["f" /* browserHistory */].push("orders/table?late-shipment-orders&".concat(props.selectedSellerAccount));}if(props.redirectUndeliverable){es["f" /* browserHistory */].push("orders/table?undeliverable-orders&".concat(props.selectedSellerAccount));}if(props.redirectNotMonitored){es["f" /* browserHistory */].push("listings/table?not-monitored&".concat(props.selectedSellerAccount));}if(props.redirectEnded){es["f" /* browserHistory */].push("listings/table?ended&".concat(props.selectedSellerAccount));}if(props.redirectOutOfStockOver7Days){es["f" /* browserHistory */].push("listings/table?redirect-out-of-stock-over-7-days&".concat(props.selectedSellerAccount));}}},Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{style:{marginRight:"5px"},type:props.success?"v-green":"x-pink",size:16}),props.areOrdersInsightsLoading||props.areItemInsightsLoading?Object(core_browser_esm["c" /* jsx */])(spin_default.a,{style:{height:'22.5px'}}):Object(core_browser_esm["c" /* jsx */])(BigNumber,null,props.count)),Object(core_browser_esm["c" /* jsx */])(DashboardInsightsSectionsRegularText,{style:props.isFeedback?{width:'300px'}:null},props.title));});var Insights_styled_ref3= true?{name:"junwkk-InsightComponentWithUnavailable",styles:"flex:0 0 calc(50% - 20px);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;label:InsightComponentWithUnavailable;"}:undefined;var _ref4= true?{name:"x9d9el-InsightComponentWithUnavailable",styles:"margin-bottom:20px;> div{display:flex;align-items:center;justify-content:center;margin-bottom:5px;}label:InsightComponentWithUnavailable;"}:undefined;var styled_InsightComponentWithUnavailable=function InsightComponentWithUnavailable(props){return Object(core_browser_esm["c" /* jsx */])(RelativeContainer,{css:Insights_styled_ref3},Object(core_browser_esm["c" /* jsx */])("div",{css:_ref4},Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{style:{marginRight:"5px"},type:props.success?"v-green":"x-pink",size:16}),props.areOrdersInsightsLoading||props.areItemInsightsLoading?Object(core_browser_esm["c" /* jsx */])(spin_default.a,{style:{height:'22.5px'}}):Object(core_browser_esm["c" /* jsx */])(BigNumber,null,props.count)),Object(core_browser_esm["c" /* jsx */])(DashboardInsightsSectionsRegularText,{style:props.isFeedback?{width:'300px'}:null},props.title)),props.allAccounts&&Object(core_browser_esm["c" /* jsx */])(styled_ComponentDisabled,{top:true}));};var HintBox=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e7hle431",label:"HintBox"})("display:inline-block;width:11px;height:11px;border:solid 1px ",function(_ref5){var theme=_ref5.theme;return theme.colors.greyMid;},";margin-right:15px;font-weight:bold;"+( true?"":undefined));var styled_ComponentDisabled=function ComponentDisabled(props){return Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("position:absolute;top:0;left:0;right:0;bottom:0;background-color:rgba(255,255,255,0.8);color:rgba(34,30,30,0.9);border-radius:",props.full?'8px':props.top?'8px 8px 0 0':'8px 0px 8px 8px',";z-index:10;display:flex;justify-content:center;align-items:center;font-weight:bold;font-size:16px;backdrop-filter:blur(3px);text-align:center;padding:10px;label:ComponentDisabled;"+( true?"":undefined))},props.text);};var RelativeContainer=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e7hle432",label:"RelativeContainer"})( true?{name:"79elbk",styles:"position:relative;"}:undefined);
// CONCATENATED MODULE: ./src/js/components/Insights/Insights.js
var Insights_class;var Insights_ref= true?{name:"bsr0u9-Insights",styles:"display:flex;flex-direction:column;justify-content:space-between;height:140px;padding-top:16px;label:Insights;"}:undefined;var Insights_Insights=Object(index_es["d" /* injectIntl */])(Insights_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(Insights,_Component);function Insights(){Object(classCallCheck["a" /* default */])(this,Insights);return Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(Insights).apply(this,arguments));}Object(createClass["a" /* default */])(Insights,[{key:"render",value:function render(){var formatMessage=this.props.intl.formatMessage;var failed=0;var lateShipment=0;var outOfStock=0;var potentialScore=80;// blur="3"
return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(styled["b" /* BlurContainer */],null,Object(core_browser_esm["c" /* jsx */])(MessageContainer,null,formatMessage({id:'dashboard.noInsightsData'})),Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(styled_InsightComponent,{count:failed,title:"Failed Orders",success:true}),Object(core_browser_esm["c" /* jsx */])(styled_InsightComponent,{count:lateShipment,title:"Late Shipment Orders",success:true}),Object(core_browser_esm["c" /* jsx */])(styled_InsightComponent,{count:outOfStock,title:"Out of Stock Over 59 Days",success:true})),Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(DashboardSectionsTitleDark,null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.potentialScore",defaultMessage:"My Potential Score"})),Object(core_browser_esm["c" /* jsx */])(progress_default.a,{percent:potentialScore,showInfo:false})),Object(core_browser_esm["c" /* jsx */])("div",{css:Insights_ref},Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(HintBox,null),Object(core_browser_esm["c" /* jsx */])(HighlightedHintText,null,"Upload 13"),"\xA0",Object(core_browser_esm["c" /* jsx */])(DashboardSectionsRegularText,null,"more items to the store to maximize your limit"),Object(core_browser_esm["c" /* jsx */])("br",null)),Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(HintBox,null),Object(core_browser_esm["c" /* jsx */])(DashboardSectionsRegularText,null,"Remove"),"\xA0",Object(core_browser_esm["c" /* jsx */])(HighlightedHintText,null,"poorly performing items"),Object(core_browser_esm["c" /* jsx */])("br",null)),Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(HintBox,null),Object(core_browser_esm["c" /* jsx */])(DashboardSectionsRegularText,null,"Optimize"),"\xA0",Object(core_browser_esm["c" /* jsx */])(HighlightedHintText,null,"5 items"),Object(core_browser_esm["c" /* jsx */])("br",null)),Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(HintBox,null),Object(core_browser_esm["c" /* jsx */])(DashboardSectionsRegularText,null,"Add images to"),"\xA0",Object(core_browser_esm["c" /* jsx */])(HighlightedHintText,null,"6 items"),Object(core_browser_esm["c" /* jsx */])("br",null)))));}}]);return Insights;}(react["Component"]))||Insights_class;/* harmony default export */ var components_Insights_Insights = (Insights_Insights);
// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__(38);

// CONCATENATED MODULE: ./src/js/components/Insights/InsightsNew.js
var InsightsNew_dec,InsightsNew_dec2,InsightsNew_class;/* eslint-disable no-return-assign */ /* eslint-disable react/no-unused-state */// import { Progress } from 'antd';
// import {
//   DashboardSectionsTitleDark,
// } from '../Dashboard';
// import { MessageContainer } from '../Sales/styled';
var InsightsNew_Option=Dropdown["a" /* default */].Option;var InsightsNew_InsightsNew=(InsightsNew_dec=Object(index_module["b" /* inject */])('settingsStore'),InsightsNew_dec2=Object(index_module["b" /* inject */])('dashboardStore'),Object(index_es["d" /* injectIntl */])(InsightsNew_class=InsightsNew_dec(InsightsNew_class=InsightsNew_dec2(InsightsNew_class=Object(index_module["c" /* observer */])(InsightsNew_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(InsightsNew,_Component);function InsightsNew(props){var _this;Object(classCallCheck["a" /* default */])(this,InsightsNew);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(InsightsNew).call(this,props));_this.getMarketplaceIdOrDefault=function(){var selectedDestinationMarketplaceId=_this.state.selectedDestinationMarketplaceId;var getDefaultDestination=_this.props.settingsStore.markets.getDefaultDestination;return _this.isNotNullOrEmpty(selectedDestinationMarketplaceId)?selectedDestinationMarketplaceId:getDefaultDestination.id;};_this.handleSingleSellerAccount=function(){var _this$props$dashboard=_this.props.dashboardStore,setSelectedSellerAccountId=_this$props$dashboard.setSelectedSellerAccountId,fetchEbayData=_this$props$dashboard.fetchEbayData,fetchItemInsights=_this$props$dashboard.fetchItemInsights;var getDefaultSellersAccount=_this.props.settingsStore.markets.getDefaultSellersAccount;_this.setState({selectedSellerAccount:getDefaultSellersAccount===null||getDefaultSellersAccount===void 0?void 0:getDefaultSellersAccount.id,selectedSellerAccountName:getDefaultSellersAccount===null||getDefaultSellersAccount===void 0?void 0:getDefaultSellersAccount.name},function(){setSelectedSellerAccountId(getDefaultSellersAccount===null||getDefaultSellersAccount===void 0?void 0:getDefaultSellersAccount.id);fetchEbayData();fetchItemInsights(getDefaultSellersAccount===null||getDefaultSellersAccount===void 0?void 0:getDefaultSellersAccount.id);});};_this.isSuccessOnUndeliverable=function(){var selectedSellerAccount=_this.state.selectedSellerAccount;var _this$props=_this.props,defaultSellersAccount=_this$props.settingsStore.defaultSellersAccount,_this$props$dashboard2=_this$props.dashboardStore,calculateOrderSums=_this$props$dashboard2.calculateOrderSums,getSellerOrderInsightsForSeller=_this$props$dashboard2.getSellerOrderInsightsForSeller;var sellerOrdersInsights=getSellerOrderInsightsForSeller(_this.isNotNullOrEmpty(selectedSellerAccount)?selectedSellerAccount:defaultSellersAccount===null||defaultSellersAccount===void 0?void 0:defaultSellersAccount.id);return selectedSellerAccount==='All Accounts'?calculateOrderSums(_this.getMarketplaceIdOrDefault()).undeliverableOrders===0:(sellerOrdersInsights===null||sellerOrdersInsights===void 0?void 0:sellerOrdersInsights.undeliverableOrders)===0;};_this.isSuccessOnFailed=function(){var selectedSellerAccount=_this.state.selectedSellerAccount;var _this$props2=_this.props,defaultSellersAccount=_this$props2.settingsStore.defaultSellersAccount,_this$props2$dashboar=_this$props2.dashboardStore,calculateOrderSums=_this$props2$dashboar.calculateOrderSums,getSellerOrderInsightsForSeller=_this$props2$dashboar.getSellerOrderInsightsForSeller;var sellerOrdersInsights=getSellerOrderInsightsForSeller(_this.isNotNullOrEmpty(selectedSellerAccount)?selectedSellerAccount:defaultSellersAccount===null||defaultSellersAccount===void 0?void 0:defaultSellersAccount.id);return selectedSellerAccount==='All Accounts'?calculateOrderSums(_this.getMarketplaceIdOrDefault()).failedOrders===0:(sellerOrdersInsights===null||sellerOrdersInsights===void 0?void 0:sellerOrdersInsights.failedOrders)===0;};_this.isSuccessOnLateShippment=function(){var selectedSellerAccount=_this.state.selectedSellerAccount;var _this$props3=_this.props,defaultSellersAccount=_this$props3.settingsStore.defaultSellersAccount,_this$props3$dashboar=_this$props3.dashboardStore,calculateOrderSums=_this$props3$dashboar.calculateOrderSums,getSellerOrderInsightsForSeller=_this$props3$dashboar.getSellerOrderInsightsForSeller;var sellerOrdersInsights=getSellerOrderInsightsForSeller(_this.isNotNullOrEmpty(selectedSellerAccount)?selectedSellerAccount:defaultSellersAccount===null||defaultSellersAccount===void 0?void 0:defaultSellersAccount.id);return selectedSellerAccount==='All Accounts'?calculateOrderSums(_this.getMarketplaceIdOrDefault()).lateShipmentOrders===0:(sellerOrdersInsights===null||sellerOrdersInsights===void 0?void 0:sellerOrdersInsights.lateShipmentOrders)===0;};_this.isNotNullOrEmpty=function(value){return(value===null||value===void 0?void 0:value.length)>0;};_this.state={selectedSellerAccount:"All Accounts",selectedSellerAccountName:"",selectedDestinationMarketplace:"",selectedDestinationMarketplaceId:"",componentUpdated:false};_this.sellersAccountsDisposer=null;return _this;}Object(createClass["a" /* default */])(InsightsNew,[{key:"componentDidMount",value:function componentDidMount(){var _this2=this;// Dispose existing reaction (if any) before creating a new one
if(this.sellersAccountsDisposer){this.sellersAccountsDisposer();}this.sellersAccountsDisposer=Object(mobx_module["reaction"])(function(){return _this2.props.settingsStore.markets.sellersAccounts.length;},function(length){if(length===1){_this2.handleSingleSellerAccount();}},{fireImmediately:true// Ensures the effect runs immediately on mount
});}},{key:"componentDidUpdate",value:function componentDidUpdate(prevProps){if(prevProps.settingsStore.markets.sellersAccounts.length!==this.props.settingsStore.markets.sellersAccounts.length){if(this.props.settingsStore.markets.sellersAccounts.length===1){this.handleSingleSellerAccount();}}}},{key:"componentWillUnmount",value:function componentWillUnmount(){if(this.sellersAccountsDisposer){this.sellersAccountsDisposer();this.sellersAccountsDisposer=null;}}},{key:"render",value:function render(){var _this3=this,_ref,_ref2,_ref3;var _this$state=this.state,selectedSellerAccount=_this$state.selectedSellerAccount,selectedDestinationMarketplace=_this$state.selectedDestinationMarketplace,selectedSellerAccountName=_this$state.selectedSellerAccountName;var _this$props4=this.props,_this$props4$settings=_this$props4.settingsStore.markets,defaultSellersAccount=_this$props4$settings.defaultSellersAccount,destinations=_this$props4$settings.destinations,getDefaultDestination=_this$props4$settings.getDefaultDestination,sellersAccounts=_this$props4$settings.sellersAccounts,fetchSellersAccounts=_this$props4$settings.fetchSellersAccounts,_this$props4$dashboar=_this$props4.dashboardStore,setSelectedSellerAccountId=_this$props4$dashboar.setSelectedSellerAccountId,fetchEbayData=_this$props4$dashboar.fetchEbayData,getSellerOrderInsightsForSeller=_this$props4$dashboar.getSellerOrderInsightsForSeller,areOrdersInsightsLoading=_this$props4$dashboar.areOrdersInsightsLoading,areItemInsightsLoading=_this$props4$dashboar.areItemInsightsLoading,fetchItemInsights=_this$props4$dashboar.fetchItemInsights,calculateOrderSums=_this$props4$dashboar.calculateOrderSums,sellerItemInsights=_this$props4$dashboar.sellerItemInsights;var sellerOrdersInsights=getSellerOrderInsightsForSeller(this.isNotNullOrEmpty(selectedSellerAccount)?selectedSellerAccount:defaultSellersAccount.id);return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])("div",{style:{display:'flex',justifyContent:'center'}},Object(core_browser_esm["c" /* jsx */])("div",{style:{fontSize:'14px',marginRight:'10px'}},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.destinationMarketplace",defaultMessage:"Destination Marketplace"})),Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{fontSize:"14px",value:selectedDestinationMarketplace.length>0?selectedDestinationMarketplace:getDefaultDestination===null||getDefaultDestination===void 0?void 0:getDefaultDestination.name,height:"22px",width:"220px",marginRight:"15px",marginBottom:"15px",onChange:function onChange(e){var selectedDest=destinations===null||destinations===void 0?void 0:destinations.find(function(dest){return dest.name===e;});_this3.setState({selectedSellerAccount:"All Accounts",selectedDestinationMarketplace:e,selectedDestinationMarketplaceId:selectedDest.id},function(){fetchSellersAccounts(selectedDest.id);});}},destinations.map(function(d){return Object(core_browser_esm["c" /* jsx */])(InsightsNew_Option,{key:d.id,value:d.name},d.name);})),Object(core_browser_esm["c" /* jsx */])("div",{style:{fontSize:'14px',marginRight:'10px'}},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.selectSeller",defaultMessage:"Seller Account"})),Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{onChange:function onChange(e){var selectedItem=sellersAccounts===null||sellersAccounts===void 0?void 0:sellersAccounts.find(function(item){return item.id===e;});_this3.setState({selectedSellerAccount:e,selectedSellerAccountName:selectedItem===null||selectedItem===void 0?void 0:selectedItem.name});if(e!=="All Accounts"){setSelectedSellerAccountId(e);fetchEbayData();fetchItemInsights(e);}},height:"22px",width:"220px",fontSize:"14px",marginBottom:"15px",marginRight:"10px",value:this.isNotNullOrEmpty(selectedSellerAccount)?selectedSellerAccount:defaultSellersAccount===null||defaultSellersAccount===void 0?void 0:defaultSellersAccount.name},Object(core_browser_esm["c" /* jsx */])(InsightsNew_Option,{key:"All Accounts"},"All Accounts"),sellersAccounts===null||sellersAccounts===void 0?void 0:sellersAccounts.map(function(item){return Object(core_browser_esm["c" /* jsx */])(InsightsNew_Option,{key:item===null||item===void 0?void 0:item.id},item===null||item===void 0?void 0:item.name);})))),Object(core_browser_esm["c" /* jsx */])("div",{style:{width:"100%",display:'flex',flexDirection:'row',justifyContent:'space-around'}},Object(core_browser_esm["c" /* jsx */])("div",{style:{position:'relative',width:'49.5%'}},Object(core_browser_esm["c" /* jsx */])(styled["b" /* BlurContainer */],null,Object(core_browser_esm["c" /* jsx */])(SellerAccountsData_EbayData_EbayData,{currentAccountName:this.isNotNullOrEmpty(selectedSellerAccountName)?selectedSellerAccountName:defaultSellersAccount===null||defaultSellersAccount===void 0?void 0:defaultSellersAccount.name,key:this.isNotNullOrEmpty(selectedSellerAccount)?selectedSellerAccount:defaultSellersAccount===null||defaultSellersAccount===void 0?void 0:defaultSellersAccount.id})),(selectedSellerAccount==='All Accounts'||this.getMarketplaceIdOrDefault()!=="EBAY_US")&&Object(core_browser_esm["c" /* jsx */])(styled_ComponentDisabled,{full:true,text:this.getMarketplaceIdOrDefault()!=="EBAY_US"?"No data for this marketplace":"No data for All Accounts"})),Object(core_browser_esm["c" /* jsx */])("div",{style:{width:'1%',backgroundColor:'#edf4fc'}}),Object(core_browser_esm["c" /* jsx */])(styled["b" /* BlurContainer */],{style:{width:'46.5%',marginLeft:'30px',marginTop:'30px'}},Object(core_browser_esm["c" /* jsx */])("div",{style:{fontWeight:'bold'}},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.orderInsights",defaultMessage:"Order Insights"})),Object(core_browser_esm["c" /* jsx */])(styled_FlexContainer,null,Object(core_browser_esm["c" /* jsx */])(InsightComponentNew,{count:selectedSellerAccount==='All Accounts'?calculateOrderSums(this.getMarketplaceIdOrDefault()).failedOrders:sellerOrdersInsights===null||sellerOrdersInsights===void 0?void 0:sellerOrdersInsights.failedOrders,areOrdersInsightsLoading:areOrdersInsightsLoading,title:"Failed",success:this.isSuccessOnFailed(),redirectFailedOrders:true,selectedSellerAccount:selectedSellerAccount}),Object(core_browser_esm["c" /* jsx */])(InsightComponentNew,{count:selectedSellerAccount==='All Accounts'?calculateOrderSums(this.getMarketplaceIdOrDefault()).lateShipmentOrders:sellerOrdersInsights===null||sellerOrdersInsights===void 0?void 0:sellerOrdersInsights.lateShipmentOrders,areOrdersInsightsLoading:areOrdersInsightsLoading,title:"Late Shipment",success:this.isSuccessOnLateShippment(),redirectLateShipments:true,selectedSellerAccount:selectedSellerAccount}),Object(core_browser_esm["c" /* jsx */])(InsightComponentNew,{count:selectedSellerAccount==='All Accounts'?calculateOrderSums(this.getMarketplaceIdOrDefault()).undeliverableOrders:sellerOrdersInsights===null||sellerOrdersInsights===void 0?void 0:sellerOrdersInsights.undeliverableOrders,areOrdersInsightsLoading:areOrdersInsightsLoading,title:"Undeliverable",success:this.isSuccessOnUndeliverable(),redirectUndeliverable:true,selectedSellerAccount:selectedSellerAccount})),Object(core_browser_esm["c" /* jsx */])("div",{style:{fontWeight:'bold'}},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.itemInsights",defaultMessage:"Item Insights"})),Object(core_browser_esm["c" /* jsx */])(RelativeContainer,null,Object(core_browser_esm["c" /* jsx */])(styled_FlexContainer,null,Object(core_browser_esm["c" /* jsx */])(InsightComponentNew,{count:sellerItemInsights.notMonitoredItems,areOrdersInsightsLoading:false,areItemInsightsLoading:areItemInsightsLoading,title:"Not Monitored",success:(_ref=(sellerItemInsights===null||sellerItemInsights===void 0?void 0:sellerItemInsights.notMonitoredItems)===0)!==null&&_ref!==void 0?_ref:false,redirectNotMonitored:true,selectedSellerAccount:selectedSellerAccount}),Object(core_browser_esm["c" /* jsx */])(InsightComponentNew,{count:sellerItemInsights.endedItems,areOrdersInsightsLoading:false,areItemInsightsLoading:areItemInsightsLoading,title:"Ended",success:(_ref2=(sellerItemInsights===null||sellerItemInsights===void 0?void 0:sellerItemInsights.endedItems)===0)!==null&&_ref2!==void 0?_ref2:false,redirectEnded:true,selectedSellerAccount:selectedSellerAccount}),Object(core_browser_esm["c" /* jsx */])(InsightComponentNew,{count:sellerItemInsights.outOfStockItems,areOrdersInsightsLoading:false,areItemInsightsLoading:areItemInsightsLoading,allAccounts:selectedSellerAccount==='All Accounts',title:"Out of Stock Over 7 Days",success:(_ref3=(sellerItemInsights===null||sellerItemInsights===void 0?void 0:sellerItemInsights.outOfStockItems)===0)!==null&&_ref3!==void 0?_ref3:false,redirectOutOfStockOver7Days:true,selectedSellerAccount:selectedSellerAccount})),selectedSellerAccount==='All Accounts'&&Object(core_browser_esm["c" /* jsx */])(styled_ComponentDisabled,{text:"No data for All Accounts"})))));}}]);return InsightsNew;}(react["Component"]))||InsightsNew_class)||InsightsNew_class)||InsightsNew_class)||InsightsNew_class);/* harmony default export */ var Insights_InsightsNew = (InsightsNew_InsightsNew);
// CONCATENATED MODULE: ./src/js/components/Insights/index.js

// CONCATENATED MODULE: ./src/js/utils/cookie-helper.js
var removeCookie=function removeCookie(name){document.cookie="".concat(name,"=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/; domain=.triplemars.com;");};var getCookieValue=function getCookieValue(cname){var name="".concat(cname,"=");var decodedCookie=decodeURIComponent(document.cookie);var ca=decodedCookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)===' '){c=c.substring(1);}if(c.indexOf(name)===0){return c.substring(name.length,c.length);}}return'';};
// EXTERNAL MODULE: ./src/js/components/PerformanceForecast/PerformanceForecast.js + 3 modules
var PerformanceForecast = __webpack_require__(365);

// CONCATENATED MODULE: ./src/js/components/Salefreaks/Dashboard/styled.js
var PaperBox=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e13r5zep0",label:"PaperBox"})( true?{name:"1jgl5jf",styles:"display:inline-block;margin-bottom:1rem;background-color:#ffffff;transition-property:all;text-align:left;vertical-align:bottom;width:100%;border-radius:0.5rem;box-shadow:0 1px 3px 0 rgba(0,0,0,0.1),0 1px 2px 0 rgba(0,0,0,0.06);margin-right:1rem;@media (min-width:640px){margin-top:2rem;margin-bottom:2rem;width:290px;}"}:undefined);var ItemsContainer=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e13r5zep1",label:"ItemsContainer"})( true?{name:"18qrouk",styles:"padding:1.25rem;background-color:#ffffff;"}:undefined);var styled_ResponsiveContainer=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e13r5zep2",label:"ResponsiveContainer"})( true?{name:"1xovybb",styles:"@media (min-width:640px){display:flex;display:flex;align-items:flex-start;}"}:undefined);var Group=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e13r5zep3",label:"Group"})( true?{name:"2vbh87",styles:"text-align:center;@media (min-width:640px){margin-top:0;margin-left:0.5rem;text-align:left;}"}:undefined);var Title=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e13r5zep4",label:"Title"})( true?{name:"eepltl",styles:"color:#9ca3af;font-size:0.875rem;line-height:1.25rem;font-weight:500;line-height:1.5rem;text-transform:uppercase;"}:undefined);var Value=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e13r5zep5",label:"Value"})( true?{name:"100o1u8",styles:"color:#000000;font-size:1.875rem;line-height:2.25rem;font-weight:700;"}:undefined);var Description=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e13r5zep6",label:"Description"})( true?{name:"1soovxl",styles:"color:#c5c5c5;font-size:0.9rem;line-height:1.25rem;"}:undefined);
// CONCATENATED MODULE: ./src/js/components/Salefreaks/Dashboard/StatsCard.js
var StatsCard_StatsCard=function StatsCard(_ref){var title=_ref.title,value=_ref.value,description=_ref.description;return Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(PaperBox,null,Object(core_browser_esm["c" /* jsx */])(ItemsContainer,null,Object(core_browser_esm["c" /* jsx */])(styled_ResponsiveContainer,null,Object(core_browser_esm["c" /* jsx */])(Group,null,Object(core_browser_esm["c" /* jsx */])(Title,null,title),Object(core_browser_esm["c" /* jsx */])(Value,null,value),Object(core_browser_esm["c" /* jsx */])(Description,null,description))))));};
// EXTERNAL MODULE: ./src/js/components/OnboardingScreens/AdvancedScreen7/styled.js
var AdvancedScreen7_styled = __webpack_require__(117);

// CONCATENATED MODULE: ./src/js/components/Salefreaks/Dashboard/StatsComponent.js
var StatsComponent=Object(index_module["b" /* inject */])('dashboardStore')(Object(index_module["c" /* observer */])(function(_ref){var miniDashboard=_ref.dashboardStore.miniDashboard;return Object(core_browser_esm["c" /* jsx */])("div",{style:{display:'flex',justifyContent:'center',alignItems:'center'}},Object(core_browser_esm["c" /* jsx */])(AdvancedScreen7_styled["c" /* FlexContainer */],null,Object(core_browser_esm["c" /* jsx */])(StatsCard_StatsCard,{title:"Listings",value:miniDashboard&&miniDashboard.listings||0,description:"All listings in the system"}),Object(core_browser_esm["c" /* jsx */])(StatsCard_StatsCard,{title:"Orders",value:miniDashboard&&miniDashboard.orders||0,description:"Last 30 days"}),Object(core_browser_esm["c" /* jsx */])(StatsCard_StatsCard,{title:"Profit",value:miniDashboard&&"$".concat(miniDashboard.dailyProfit)||0,description:"Last 24 hours"}),Object(core_browser_esm["c" /* jsx */])(StatsCard_StatsCard,{title:"Sales",value:miniDashboard&&"$".concat(miniDashboard.sales),description:"Last 30 days"})));}));
// EXTERNAL MODULE: ./node_modules/antd/lib/table/style/index.js
var table_style = __webpack_require__(306);

// EXTERNAL MODULE: ./node_modules/antd/lib/table/index.js
var table = __webpack_require__(177);
var table_default = /*#__PURE__*/__webpack_require__.n(table);

// EXTERNAL MODULE: ./node_modules/antd/lib/button/style/index.js
var button_style = __webpack_require__(66);

// EXTERNAL MODULE: ./node_modules/antd/lib/button/index.js
var lib_button = __webpack_require__(39);
var button_default = /*#__PURE__*/__webpack_require__.n(lib_button);

// EXTERNAL MODULE: ./node_modules/antd/lib/icon/style/index.js
var icon_style = __webpack_require__(276);

// EXTERNAL MODULE: ./node_modules/antd/lib/icon/index.js
var icon = __webpack_require__(104);
var icon_default = /*#__PURE__*/__webpack_require__.n(icon);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 3 modules
var toConsumableArray = __webpack_require__(53);

// EXTERNAL MODULE: ./node_modules/antd/lib/popover/style/index.js
var popover_style = __webpack_require__(95);

// EXTERNAL MODULE: ./node_modules/antd/lib/popover/index.js
var popover = __webpack_require__(44);
var popover_default = /*#__PURE__*/__webpack_require__.n(popover);

// EXTERNAL MODULE: ./node_modules/antd/lib/modal/style/index.js
var modal_style = __webpack_require__(88);

// EXTERNAL MODULE: ./node_modules/antd/lib/modal/index.js
var modal = __webpack_require__(55);
var modal_default = /*#__PURE__*/__webpack_require__.n(modal);

// EXTERNAL MODULE: ./node_modules/antd/lib/form/style/index.js
var form_style = __webpack_require__(120);

// EXTERNAL MODULE: ./node_modules/antd/lib/form/index.js
var lib_form = __webpack_require__(43);
var form_default = /*#__PURE__*/__webpack_require__.n(lib_form);

// CONCATENATED MODULE: ./src/js/components/SettingTabs/APIConnect/EbayDetailsEditor.js
var EbayDetailsEditor_EbayDetailsEditor=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(EbayDetailsEditor,_Component);function EbayDetailsEditor(){var _getPrototypeOf2;var _this;Object(classCallCheck["a" /* default */])(this,EbayDetailsEditor);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=Object(possibleConstructorReturn["a" /* default */])(this,(_getPrototypeOf2=Object(getPrototypeOf["a" /* default */])(EbayDetailsEditor)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.state={isModalVisible:false};_this.handleOpen=function(){var _this$props=_this.props,dashboardStore=_this$props.dashboardStore,id=_this$props.id,form=_this$props.form;dashboardStore.fetchEbayAccountDetails(id).then(function(resp){form.setFieldsValue({ebayPlan:resp===null||resp===void 0?void 0:resp.ebayPlan,ebayPlanCost:resp===null||resp===void 0?void 0:resp.ebaySubscriptionPlanCost,status:resp===null||resp===void 0?void 0:resp.status});});_this.setIsModalVisible(true);};_this.possibleStatus=["Active","On Vacation","Locked"];_this.plans=["Starter Store","Basic Store","Premium Store","Anchor Store","Enterprise Store"];_this.planPrice={"Starter Store":4.95,"Basic Store":21.95,"Premium Store":59.95,"Anchor Store":299.95,"Enterprise Store":2999.95};_this.fetchEbayAccountDetails=function(){var _this$props2=_this.props,dashboardStore=_this$props2.dashboardStore,id=_this$props2.id,form=_this$props2.form;dashboardStore.fetchEbayAccountDetails(id).then(function(resp){form.setFieldsValue({ebayPlan:resp===null||resp===void 0?void 0:resp.ebayPlan,ebayPlanCost:resp===null||resp===void 0?void 0:resp.ebaySubscriptionPlanCost,status:resp===null||resp===void 0?void 0:resp.status});});};_this.handlePlanChange=function(value){var form=_this.props.form;form.setFieldsValue({ebayPlanCost:_this.planPrice[value]||""});};_this.handleSubmit=function(){var _this$props3=_this.props,form=_this$props3.form,dashboardStore=_this$props3.dashboardStore,id=_this$props3.id;form.validateFields(function(err,values){if(!err){_this.setState({isModalVisible:false});dashboardStore.patchEbayAccountDetails(Object(objectSpread["a" /* default */])({},values),id);}});};return _this;}Object(createClass["a" /* default */])(EbayDetailsEditor,[{key:"componentDidUpdate",value:function componentDidUpdate(prevProps){if(this.props.isModalVisible&&!prevProps.isModalVisible){this.fetchEbayAccountDetails();}}},{key:"setIsModalVisible",value:function setIsModalVisible(value){this.setState({isModalVisible:value});}},{key:"render",value:function render(){var _this2=this;var form=this.props.form;var isModalVisible=this.state.isModalVisible;var getFieldDecorator=form.getFieldDecorator;return Object(core_browser_esm["c" /* jsx */])("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"}},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{size:18,type:"pencil",onClick:this.handleOpen}),Object(core_browser_esm["c" /* jsx */])(modal_default.a,{title:"Edit eBay account details",visible:isModalVisible,onCancel:function onCancel(){return _this2.setState({isModalVisible:false});},footer:[Object(core_browser_esm["c" /* jsx */])(button_default.a,{key:"cancel",onClick:function onClick(){return _this2.setState({isModalVisible:false});}},"Cancel"),Object(core_browser_esm["c" /* jsx */])(button_default.a,{key:"submit",type:"primary",onClick:this.handleSubmit},"OK")]},Object(core_browser_esm["c" /* jsx */])(form_default.a,{layout:"vertical"},Object(core_browser_esm["c" /* jsx */])(form_default.a.Item,{label:"Status"},getFieldDecorator("status")(Object(core_browser_esm["c" /* jsx */])(select_default.a,{allowClear:true},this.possibleStatus.map(function(status){return Object(core_browser_esm["c" /* jsx */])(select_default.a.Option,{key:status,value:status},status);})))))));}}]);return EbayDetailsEditor;}(react["Component"]);/* harmony default export */ var APIConnect_EbayDetailsEditor = (form_default.a.create()(Object(index_module["b" /* inject */])("dashboardStore")(Object(index_module["c" /* observer */])(EbayDetailsEditor_EbayDetailsEditor))));
// EXTERNAL MODULE: ./src/js/components/SummaryTable/customTableStyle.css
var customTableStyle = __webpack_require__(621);

// CONCATENATED MODULE: ./src/js/components/SummaryTable/columns.js
var columns_CustomRender=function CustomRender(_ref){var text=_ref.text;return Object(core_browser_esm["c" /* jsx */])("span",{style:{fontSize:'14px',textAlign:'center'}},text);};var columns_renderActions=function renderActions(id){if(!id)return null;return Object(core_browser_esm["c" /* jsx */])(APIConnect_EbayDetailsEditor,{id:id});};/* harmony default export */ var columns = ([{title:'Name',dataIndex:'name',key:'name',width:170,render:function render(text){return Object(core_browser_esm["c" /* jsx */])(columns_CustomRender,{text:text||'NA'});}},{title:'Status',dataIndex:'status',key:'status',width:122,render:function render(text){return Object(core_browser_esm["c" /* jsx */])(columns_CustomRender,{text:text||'NA'});}},{title:'Number Of Listings',dataIndex:'numberOfListings',key:'numberOfListings',width:150,render:function render(text){return Object(core_browser_esm["c" /* jsx */])(columns_CustomRender,{text:Object(numberCommaFormatter["a" /* commaFormat */])(text)});}},{title:'Total Funds',dataIndex:'totalFunds',key:'totalFunds',width:130,render:function render(text,row){var _commaFormatMarketpla,_commaFormatMarketpla2,_commaFormatMarketpla3;return Object(core_browser_esm["c" /* jsx */])(popover_default.a,{content:Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])("div",null,"Available funds: ",(_commaFormatMarketpla=Object(numberCommaFormatter["b" /* commaFormatMarketplace */])(row===null||row===void 0?void 0:row.availableFunds,'EBAY_US'))!==null&&_commaFormatMarketpla!==void 0?_commaFormatMarketpla:'N/A'),Object(core_browser_esm["c" /* jsx */])("div",null,"On Hold funds: ",(_commaFormatMarketpla2=Object(numberCommaFormatter["b" /* commaFormatMarketplace */])(row===null||row===void 0?void 0:row.fundsOnHold,'EBAY_US'))!==null&&_commaFormatMarketpla2!==void 0?_commaFormatMarketpla2:'N/A'),Object(core_browser_esm["c" /* jsx */])("div",null,"Processing funds: ",(_commaFormatMarketpla3=Object(numberCommaFormatter["b" /* commaFormatMarketplace */])(row===null||row===void 0?void 0:row.processingFunds,'EBAY_US'))!==null&&_commaFormatMarketpla3!==void 0?_commaFormatMarketpla3:'N/A')),trigger:"hover",placement:"top"},Object(core_browser_esm["c" /* jsx */])("span",null,Object(core_browser_esm["c" /* jsx */])(columns_CustomRender,{text:Object(numberCommaFormatter["b" /* commaFormatMarketplace */])(text,'EBAY_US')})));}},{title:'Last Month Revenue',dataIndex:'lastMonthRevenue',key:'lastMonthRevenue',width:160,render:function render(text){return Object(core_browser_esm["c" /* jsx */])(columns_CustomRender,{text:Object(numberCommaFormatter["b" /* commaFormatMarketplace */])(text,'EBAY_US')});}},{title:'Last Month Source Price',dataIndex:'lastMonthSourcePrice',key:'lastMonthSourcePrice',width:170,render:function render(text){return Object(core_browser_esm["c" /* jsx */])(columns_CustomRender,{text:Object(numberCommaFormatter["b" /* commaFormatMarketplace */])(text,'EBAY_US')});}},{title:'Last month eBay fees',dataIndex:'finalValueFee',key:'finalValueFee',width:160,render:function render(text,row){return Object(core_browser_esm["c" /* jsx */])(popover_default.a,{content:Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])("div",null,"Final Value Fee: ",(row===null||row===void 0?void 0:row.finalValueFee)===-1?'N/A':Object(numberCommaFormatter["b" /* commaFormatMarketplace */])(row===null||row===void 0?void 0:row.finalValueFee,'EBAY_US')),Object(core_browser_esm["c" /* jsx */])("div",null,"Final Value Fee Fixed Fee Per Order: ",(row===null||row===void 0?void 0:row.finalValueFeeFixedFeePerOrder)===-1?'N/A':Object(numberCommaFormatter["b" /* commaFormatMarketplace */])(row===null||row===void 0?void 0:row.finalValueFeeFixedFeePerOrder,'EBAY_US')),Object(core_browser_esm["c" /* jsx */])("div",null,"International Fee: ",(row===null||row===void 0?void 0:row.internationalFee)===-1?'N/A':Object(numberCommaFormatter["b" /* commaFormatMarketplace */])(row===null||row===void 0?void 0:row.internationalFee,'EBAY_US')),Object(core_browser_esm["c" /* jsx */])("div",null,"Fee Insertion: ",(row===null||row===void 0?void 0:row.feeInsertion)===-1?'N/A':Object(numberCommaFormatter["b" /* commaFormatMarketplace */])(row===null||row===void 0?void 0:row.feeInsertion,'EBAY_US')),Object(core_browser_esm["c" /* jsx */])("div",null,"Subscription Fee: ",(row===null||row===void 0?void 0:row.subscriptionFee)===-1?'N/A':Object(numberCommaFormatter["b" /* commaFormatMarketplace */])(row===null||row===void 0?void 0:row.subscriptionFee,'EBAY_US')),Object(core_browser_esm["c" /* jsx */])("div",null,"Ad Fee: ",(row===null||row===void 0?void 0:row.adFee)===-1?'N/A':Object(numberCommaFormatter["b" /* commaFormatMarketplace */])(row===null||row===void 0?void 0:row.adFee,'EBAY_US')),Object(core_browser_esm["c" /* jsx */])("div",null,"Refunded Fee: -",(row===null||row===void 0?void 0:row.refundedFee)===-1?'N/A':Object(numberCommaFormatter["b" /* commaFormatMarketplace */])(row===null||row===void 0?void 0:row.refundedFee,'EBAY_US'))),trigger:"hover",placement:"top"},Object(core_browser_esm["c" /* jsx */])("span",null,Object(core_browser_esm["c" /* jsx */])(columns_CustomRender,{text:(row===null||row===void 0?void 0:row.finalValueFee)===-1?"Gathering":Object(numberCommaFormatter["b" /* commaFormatMarketplace */])(((row===null||row===void 0?void 0:row.finalValueFee)+(row===null||row===void 0?void 0:row.finalValueFeeFixedFeePerOrder)+(row===null||row===void 0?void 0:row.internationalFee)+(row===null||row===void 0?void 0:row.feeInsertion)+(row===null||row===void 0?void 0:row.subscriptionFee)+(row===null||row===void 0?void 0:row.adFee)-(row===null||row===void 0?void 0:row.refundedFee)).toFixed(2),'EBAY_US')})));}},{title:'Last Month Profit',dataIndex:'lastMonthProfit',key:'lastMonthProfit',width:130,render:function render(text){return text===-1?"Gathering":Object(core_browser_esm["c" /* jsx */])(columns_CustomRender,{text:Object(numberCommaFormatter["b" /* commaFormatMarketplace */])(text,'EBAY_US')});}},{dataIndex:'id',title:'Edit',align:'center',render:function render(id){return columns_renderActions(id);}}]);
// CONCATENATED MODULE: ./src/js/components/SummaryTable/SummaryTable.js
var SummaryTable_dec,SummaryTable_class;/* eslint-disable no-nested-ternary */var SummaryTable_SummaryTable=(SummaryTable_dec=Object(index_module["b" /* inject */])('dashboardStore'),SummaryTable_dec(SummaryTable_class=Object(index_module["c" /* observer */])(SummaryTable_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(SummaryTable,_Component);function SummaryTable(){Object(classCallCheck["a" /* default */])(this,SummaryTable);return Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(SummaryTable).apply(this,arguments));}Object(createClass["a" /* default */])(SummaryTable,[{key:"render",value:function render(){var _this$props$dashboard=this.props.dashboardStore,summaryTableData=_this$props$dashboard.summaryTableData,isTableDataLoading=_this$props$dashboard.isTableDataLoading,exportEbayAccountsSummaryCSV=_this$props$dashboard.exportEbayAccountsSummaryCSV;var totalRow={key:'total',name:'Total',status:'',ebayPlan:'',numberOfListings:Object(numberCommaFormatter["a" /* commaFormat */])(summaryTableData.reduce(function(sum,row){return sum+(row.numberOfListings||0);},0).toFixed(2)),lastMonthRevenue:Object(numberCommaFormatter["b" /* commaFormatMarketplace */])(summaryTableData.reduce(function(sum,row){return sum+(row.lastMonthRevenue||0);},0).toFixed(2),"EBAY_US"),totalFunds:Object(numberCommaFormatter["b" /* commaFormatMarketplace */])(summaryTableData.reduce(function(sum,row){return sum+(row.totalFunds||0);},0).toFixed(2),"EBAY_US"),lastMonthSourcePrice:Object(numberCommaFormatter["b" /* commaFormatMarketplace */])(summaryTableData.reduce(function(sum,row){return sum+(row.lastMonthSourcePrice||0);},0).toFixed(2),"EBAY_US"),lastMonthProfit:Object(numberCommaFormatter["b" /* commaFormatMarketplace */])(summaryTableData.reduce(function(sum,row){return sum+(row.lastMonthProfit||0);},0).toFixed(2),"EBAY_US"),finalValueFee:Object(numberCommaFormatter["b" /* commaFormatMarketplace */])(summaryTableData.reduce(function(sum,row){return sum+(row.finalValueFee||0)+(row.finalValueFeeFixedFeePerOrder||0)+(row.internationalFee||0)+(row.feeInsertion||0)+(row.subscriptionFee||0)+(row.adFee||0)-(row.refundedFee||0);},0).toFixed(2),"EBAY_US"),id:''};return Object(core_browser_esm["c" /* jsx */])(table_default.a,{className:"custom-ebay-table",dataSource:[].concat(Object(toConsumableArray["a" /* default */])(summaryTableData),[totalRow]),columns:columns.map(function(col){return Object(objectSpread["a" /* default */])({},col,{render:function render(text,row,index){if(row.name==="Total"){return col.dataIndex==="id"?Object(core_browser_esm["c" /* jsx */])(button_default.a,{type:"primary",size:"small",onClick:function onClick(){return exportEbayAccountsSummaryCSV();}},Object(core_browser_esm["c" /* jsx */])(icon_default.a,{type:"download"})," Export"):Object(core_browser_esm["c" /* jsx */])("strong",{style:{fontSize:'16px'}},text||'-');}return col.render?col.render(text,row,index):text;}});}),loading:isTableDataLoading,rowKey:"name",pagination:false,scroll:{y:500},rowClassName:function rowClassName(record){return record.name==="Total"?"total-row":"";}});}}]);return SummaryTable;}(react["Component"]))||SummaryTable_class)||SummaryTable_class);/* harmony default export */ var components_SummaryTable_SummaryTable = (SummaryTable_SummaryTable);
// CONCATENATED MODULE: ./src/js/pages/DashboardPage/DashboardPage.js
var DashboardPage_dec,DashboardPage_dec2,DashboardPage_class;// import { Link } from 'react-router';
// import { CourseDashboard } from '../../components/common/CourseDashboard';
// import { MyLearning } from '../../components/MyLearning';
// import SourceAccountNews from '../../components/NewsPopUp/SourceAccountsNews';
// import NewsPopUp from '../../components/NewsPopUp/NewsPopUp';
// const subscriptionsPlanIdsToBeNotified={
//   "plan_10000_nonapi":0.0295,
//   "plan_10000":0.0295,
//   "plan_10000_c":0.0295,
//   "plan_10000_e":0.0295,
//   "plan_15000":0.0295,
//   "plan_15000_nonapi":0.0295,
//   "plan_20000_nonapi":0.0295,
//   "plan_20000":0.0295,
//   "plan_30000":0.0295,
//   "plan_30000_nonapi":0.0295,
//   "plan_40000_nonapi":0.0295,
//   "plan_40000":0.0295,
//   "plan_50000_nonapi":0.0295,
//   "plan_50000":0.0295,
//   "plan_60000":0.0295,
//   "plan_60000_e":0.0295,
//   "plan_60000_nonapi":0.0295,
//   "plan_70000_nonapi":0.0295,
//   "plan_70000":0.0295,
//   "plan_80000":0.0295,
//   "plan_80000_nonapi":0.0295,
//   "plan_90000":0.0295,
//   "plan_90000_nonapi":0.0295,
//   "plan_100000":0.0295,
//   "plan_100000_nonapi":0.0295,
//   "plan_110000_nonapi":0.025,
//   "plan_110000":0.025,
//   "plan_120000_e":0.025,
//   "plan_120000":0.025,
//   "plan_120000_nonapi":0.025,
//   "plan_130000_e":0.025,
//   "plan_130000":0.025,
//   "plan_130000_nonapi":0.025,
//   "plan_140000":0.025,
//   "plan_140000_nonapi":0.025,
//   "plan_150000_nonapi":0.025,
//   "plan_150000":0.025,
//   "plan_160000_nonapi":0.025,
//   "plan_160000":0.025,
//   "plan_250000":0.02,
//   "plan_350000_nonapi":0.02,
//   "plan_350000":0.02,
//   "plan_500000_nonapi":0.02,
//   "plan_500000":0.02
// }
var DashboardPage_DashboardPage=(DashboardPage_dec=Object(index_module["b" /* inject */])('settingsStore'),DashboardPage_dec2=Object(index_module["b" /* inject */])('dashboardStore'),DashboardPage_dec(DashboardPage_class=DashboardPage_dec2(DashboardPage_class=Object(index_module["c" /* observer */])(DashboardPage_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(DashboardPage,_Component);function DashboardPage(){Object(classCallCheck["a" /* default */])(this,DashboardPage);return Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(DashboardPage).apply(this,arguments));}Object(createClass["a" /* default */])(DashboardPage,[{key:"componentDidMount",value:function componentDidMount(){this.checkForHolidayPromotion();}},{key:"checkForHolidayPromotion",value:function checkForHolidayPromotion(){var addHolidayFree=this.props.settingsStore.subscription.addHolidayFree;var promotionCookie=getCookieValue('promotion');if(promotionCookie)addHolidayFree().then(function(){removeCookie('promotion');});}},{key:"render",value:function render(){var _this$props=this.props,_this$props$dashboard=_this$props.dashboardStore,initialized=_this$props$dashboard.initialized,advancedMode=_this$props$dashboard.advancedMode,noRevenueData=_this$props$dashboard.revenue.noRevenueData,accountsBar=_this$props$dashboard.accountsBar,_this$props$settingsS=_this$props.settingsStore,currentPlan=_this$props$settingsS.subscription.currentPlan,toggleSettings=_this$props$settingsS.toggleSettings;var _this$props2=this.props,breakpoints=_this$props2.breakpoints,currentBreakpoint=_this$props2.currentBreakpoint;// const { subscriptionPlanId } = this.props.settingsStore?.subscription?.subscriptionData;
// const plan= this.props.settingsStore?.subscription?.plans?.find(x=>x.id===subscriptionPlanId);
var calcMinHeight=function calcMinHeight(){if(false){}if(breakpoints[currentBreakpoint]>=breakpoints.desktop){return initialized&&noRevenueData?'800px':'776px';}return'100%';};return Object(core_browser_esm["c" /* jsx */])("div",{hidden:!currentPlan},advancedMode?Object(core_browser_esm["c" /* jsx */])(react_document_title_default.a,{title:"".concat(constants["d" /* title */]," | Dashboard")},Object(core_browser_esm["c" /* jsx */])(FlexParent,{direction:"column",padded:true,style:{flexWrap:'unset',maxWidth:'1460px',minHeight:calcMinHeight(),height:breakpoints[currentBreakpoint]<breakpoints.desktop&&'auto'}}, false&&false,Object(core_browser_esm["c" /* jsx */])(FlexContainer,{height:"100%",margined:true,width:"100%",style:{marginBottom:0,marginTop:0}},Object(core_browser_esm["c" /* jsx */])(TitledContainer["a" /* TitledContainer */],{title:"SALES",titleHeight:"25px",fullHeight:true,fullColFlex:true},Object(core_browser_esm["c" /* jsx */])(components_AdvancedSales_AdvancedSales,null))), true&&Object(core_browser_esm["c" /* jsx */])(FlexContainer,{height:"auto"},Object(core_browser_esm["c" /* jsx */])(FlexParent,{direction:"row",style:{flexWrap:'wrap',justifyContent:'space-evenly',height:'auto'}},Object(core_browser_esm["c" /* jsx */])(FlexContainer,{flex:"1",margined:true,style:{maxWidth:'100%',minWidth:'310px'}},Object(core_browser_esm["c" /* jsx */])(TitledContainer["a" /* TitledContainer */],{title:"INSIGHTS",titleHeight:"25px",fullHeight:true,fullColFlex:true,titleButton:currentPlan&&Object(core_browser_esm["c" /* jsx */])(PerformanceForecast["a" /* PerformanceForecast */],{currentPlan:currentPlan,buttonMessage:"Upgrade my plan",toggleSettings:toggleSettings})},Object(core_browser_esm["c" /* jsx */])(Insights_InsightsNew,{accountsProps:accountsBar})))),Object(core_browser_esm["c" /* jsx */])(FlexParent,null,Object(core_browser_esm["c" /* jsx */])(FlexContainer,{flex:"2",margined:true,style:{maxWidth:'100%',minWidth:'310px'}},Object(core_browser_esm["c" /* jsx */])(TitledContainer["a" /* TitledContainer */],{title:"EBAY ACCOUNTS SUMMARY",titleHeight:"25px",fullHeight:true,fullColFlex:true},Object(core_browser_esm["c" /* jsx */])(components_SummaryTable_SummaryTable,null))))))):Object(core_browser_esm["c" /* jsx */])(react_document_title_default.a,{title:"".concat(constants["d" /* title */]," | Dashboard")},Object(core_browser_esm["c" /* jsx */])(FlexParent,{padded:true},Object(core_browser_esm["c" /* jsx */])(FlexContainer,{flex:"1",style:{maxWidth:'33%'},margined:true},Object(core_browser_esm["c" /* jsx */])(TitledContainer["a" /* TitledContainer */],{title:"SALES",titleHeight:"25px",fullHeight:true,fullColFlex:true},Object(core_browser_esm["c" /* jsx */])(components_Sales_Sales,null))),Object(core_browser_esm["c" /* jsx */])(FlexContainer,{flex:"2",style:{maxWidth:'65%'}},Object(core_browser_esm["c" /* jsx */])(FlexParent,{direction:"row",align:"stretch"},Object(core_browser_esm["c" /* jsx */])(FlexContainer,{margined:true,width:"50%",height:"60%"},Object(core_browser_esm["c" /* jsx */])(styled_UntitledContainer,{fullHeight:true},Object(core_browser_esm["c" /* jsx */])(components_SellerAccountsData_SellerAccountsData,null))),Object(core_browser_esm["c" /* jsx */])(FlexContainer,{margined:true,width:"50%",height:"60%"},Object(core_browser_esm["c" /* jsx */])(TitledContainer["a" /* TitledContainer */],{title:"INSIGHTS",titleHeight:"25px",fullHeight:true,fullColFlex:true,titleButton:currentPlan&&Object(core_browser_esm["c" /* jsx */])(PerformanceForecast["a" /* PerformanceForecast */],{currentPlan:currentPlan,buttonMessage:"Upgrade my plan",toggleSettings:toggleSettings})},Object(core_browser_esm["c" /* jsx */])(Insights_InsightsNew,{accountsProps:accountsBar}))),Object(core_browser_esm["c" /* jsx */])(FlexContainer,{flex:"2",margined:true,style:{maxWidth:'100%',minWidth:'310px'}},Object(core_browser_esm["c" /* jsx */])(TitledContainer["a" /* TitledContainer */],{title:"SUMMARY TABLE",titleHeight:"25px",fullHeight:true,fullColFlex:true},Object(core_browser_esm["c" /* jsx */])(components_SummaryTable_SummaryTable,null))))))));}}]);return DashboardPage;}(react["Component"]))||DashboardPage_class)||DashboardPage_class)||DashboardPage_class);/* harmony default export */ var pages_DashboardPage_DashboardPage = (Object(lib["withBreakpoints"])(DashboardPage_DashboardPage));
// CONCATENATED MODULE: ./src/js/pages/DashboardPage/index.js
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "bisect", function() { return /* reexport */ bisect; });
__webpack_require__.d(__webpack_exports__, "bisectRight", function() { return /* reexport */ bisectRight; });
__webpack_require__.d(__webpack_exports__, "bisectLeft", function() { return /* reexport */ bisectLeft; });
__webpack_require__.d(__webpack_exports__, "ascending", function() { return /* reexport */ ascending; });
__webpack_require__.d(__webpack_exports__, "bisector", function() { return /* reexport */ bisector; });
__webpack_require__.d(__webpack_exports__, "cross", function() { return /* reexport */ cross; });
__webpack_require__.d(__webpack_exports__, "descending", function() { return /* reexport */ descending; });
__webpack_require__.d(__webpack_exports__, "deviation", function() { return /* reexport */ deviation; });
__webpack_require__.d(__webpack_exports__, "extent", function() { return /* reexport */ extent; });
__webpack_require__.d(__webpack_exports__, "histogram", function() { return /* reexport */ src_histogram; });
__webpack_require__.d(__webpack_exports__, "thresholdFreedmanDiaconis", function() { return /* reexport */ freedmanDiaconis; });
__webpack_require__.d(__webpack_exports__, "thresholdScott", function() { return /* reexport */ scott; });
__webpack_require__.d(__webpack_exports__, "thresholdSturges", function() { return /* reexport */ sturges; });
__webpack_require__.d(__webpack_exports__, "max", function() { return /* reexport */ src_max; });
__webpack_require__.d(__webpack_exports__, "mean", function() { return /* reexport */ src_mean; });
__webpack_require__.d(__webpack_exports__, "median", function() { return /* reexport */ median; });
__webpack_require__.d(__webpack_exports__, "merge", function() { return /* reexport */ merge; });
__webpack_require__.d(__webpack_exports__, "min", function() { return /* reexport */ src_min; });
__webpack_require__.d(__webpack_exports__, "pairs", function() { return /* reexport */ pairs; });
__webpack_require__.d(__webpack_exports__, "permute", function() { return /* reexport */ permute; });
__webpack_require__.d(__webpack_exports__, "quantile", function() { return /* reexport */ quantile; });
__webpack_require__.d(__webpack_exports__, "range", function() { return /* reexport */ range; });
__webpack_require__.d(__webpack_exports__, "scan", function() { return /* reexport */ scan; });
__webpack_require__.d(__webpack_exports__, "shuffle", function() { return /* reexport */ shuffle; });
__webpack_require__.d(__webpack_exports__, "sum", function() { return /* reexport */ src_sum; });
__webpack_require__.d(__webpack_exports__, "ticks", function() { return /* reexport */ ticks; });
__webpack_require__.d(__webpack_exports__, "tickIncrement", function() { return /* reexport */ tickIncrement; });
__webpack_require__.d(__webpack_exports__, "tickStep", function() { return /* reexport */ tickStep; });
__webpack_require__.d(__webpack_exports__, "transpose", function() { return /* reexport */ src_transpose; });
__webpack_require__.d(__webpack_exports__, "variance", function() { return /* reexport */ variance; });
__webpack_require__.d(__webpack_exports__, "zip", function() { return /* reexport */ zip; });

// CONCATENATED MODULE: ./node_modules/d3-array/src/ascending.js
/* harmony default export */ var ascending = (function(a, b) {
  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/bisector.js


/* harmony default export */ var bisector = (function(compare) {
  if (compare.length === 1) compare = ascendingComparator(compare);
  return {
    left: function(a, x, lo, hi) {
      if (lo == null) lo = 0;
      if (hi == null) hi = a.length;
      while (lo < hi) {
        var mid = lo + hi >>> 1;
        if (compare(a[mid], x) < 0) lo = mid + 1;
        else hi = mid;
      }
      return lo;
    },
    right: function(a, x, lo, hi) {
      if (lo == null) lo = 0;
      if (hi == null) hi = a.length;
      while (lo < hi) {
        var mid = lo + hi >>> 1;
        if (compare(a[mid], x) > 0) hi = mid;
        else lo = mid + 1;
      }
      return lo;
    }
  };
});

function ascendingComparator(f) {
  return function(d, x) {
    return ascending(f(d), x);
  };
}

// CONCATENATED MODULE: ./node_modules/d3-array/src/bisect.js



var ascendingBisect = bisector(ascending);
var bisectRight = ascendingBisect.right;
var bisectLeft = ascendingBisect.left;
/* harmony default export */ var bisect = (bisectRight);

// CONCATENATED MODULE: ./node_modules/d3-array/src/pairs.js
/* harmony default export */ var pairs = (function(array, f) {
  if (f == null) f = pair;
  var i = 0, n = array.length - 1, p = array[0], pairs = new Array(n < 0 ? 0 : n);
  while (i < n) pairs[i] = f(p, p = array[++i]);
  return pairs;
});

function pair(a, b) {
  return [a, b];
}

// CONCATENATED MODULE: ./node_modules/d3-array/src/cross.js


/* harmony default export */ var cross = (function(values0, values1, reduce) {
  var n0 = values0.length,
      n1 = values1.length,
      values = new Array(n0 * n1),
      i0,
      i1,
      i,
      value0;

  if (reduce == null) reduce = pair;

  for (i0 = i = 0; i0 < n0; ++i0) {
    for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {
      values[i] = reduce(value0, values1[i1]);
    }
  }

  return values;
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/descending.js
/* harmony default export */ var descending = (function(a, b) {
  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/number.js
/* harmony default export */ var number = (function(x) {
  return x === null ? NaN : +x;
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/variance.js


/* harmony default export */ var variance = (function(values, valueof) {
  var n = values.length,
      m = 0,
      i = -1,
      mean = 0,
      value,
      delta,
      sum = 0;

  if (valueof == null) {
    while (++i < n) {
      if (!isNaN(value = number(values[i]))) {
        delta = value - mean;
        mean += delta / ++m;
        sum += delta * (value - mean);
      }
    }
  }

  else {
    while (++i < n) {
      if (!isNaN(value = number(valueof(values[i], i, values)))) {
        delta = value - mean;
        mean += delta / ++m;
        sum += delta * (value - mean);
      }
    }
  }

  if (m > 1) return sum / (m - 1);
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/deviation.js


/* harmony default export */ var deviation = (function(array, f) {
  var v = variance(array, f);
  return v ? Math.sqrt(v) : v;
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/extent.js
/* harmony default export */ var extent = (function(values, valueof) {
  var n = values.length,
      i = -1,
      value,
      min,
      max;

  if (valueof == null) {
    while (++i < n) { // Find the first comparable value.
      if ((value = values[i]) != null && value >= value) {
        min = max = value;
        while (++i < n) { // Compare the remaining values.
          if ((value = values[i]) != null) {
            if (min > value) min = value;
            if (max < value) max = value;
          }
        }
      }
    }
  }

  else {
    while (++i < n) { // Find the first comparable value.
      if ((value = valueof(values[i], i, values)) != null && value >= value) {
        min = max = value;
        while (++i < n) { // Compare the remaining values.
          if ((value = valueof(values[i], i, values)) != null) {
            if (min > value) min = value;
            if (max < value) max = value;
          }
        }
      }
    }
  }

  return [min, max];
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/array.js
var array_array = Array.prototype;

var slice = array_array.slice;
var map = array_array.map;

// CONCATENATED MODULE: ./node_modules/d3-array/src/constant.js
/* harmony default export */ var constant = (function(x) {
  return function() {
    return x;
  };
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/identity.js
/* harmony default export */ var identity = (function(x) {
  return x;
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/range.js
/* harmony default export */ var range = (function(start, stop, step) {
  start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;

  var i = -1,
      n = Math.max(0, Math.ceil((stop - start) / step)) | 0,
      range = new Array(n);

  while (++i < n) {
    range[i] = start + i * step;
  }

  return range;
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/ticks.js
var e10 = Math.sqrt(50),
    e5 = Math.sqrt(10),
    e2 = Math.sqrt(2);

/* harmony default export */ var ticks = (function(start, stop, count) {
  var reverse,
      i = -1,
      n,
      ticks,
      step;

  stop = +stop, start = +start, count = +count;
  if (start === stop && count > 0) return [start];
  if (reverse = stop < start) n = start, start = stop, stop = n;
  if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];

  if (step > 0) {
    start = Math.ceil(start / step);
    stop = Math.floor(stop / step);
    ticks = new Array(n = Math.ceil(stop - start + 1));
    while (++i < n) ticks[i] = (start + i) * step;
  } else {
    start = Math.floor(start * step);
    stop = Math.ceil(stop * step);
    ticks = new Array(n = Math.ceil(start - stop + 1));
    while (++i < n) ticks[i] = (start - i) / step;
  }

  if (reverse) ticks.reverse();

  return ticks;
});

function tickIncrement(start, stop, count) {
  var step = (stop - start) / Math.max(0, count),
      power = Math.floor(Math.log(step) / Math.LN10),
      error = step / Math.pow(10, power);
  return power >= 0
      ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)
      : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);
}

function tickStep(start, stop, count) {
  var step0 = Math.abs(stop - start) / Math.max(0, count),
      step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
      error = step0 / step1;
  if (error >= e10) step1 *= 10;
  else if (error >= e5) step1 *= 5;
  else if (error >= e2) step1 *= 2;
  return stop < start ? -step1 : step1;
}

// CONCATENATED MODULE: ./node_modules/d3-array/src/threshold/sturges.js
/* harmony default export */ var sturges = (function(values) {
  return Math.ceil(Math.log(values.length) / Math.LN2) + 1;
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/histogram.js









/* harmony default export */ var src_histogram = (function() {
  var value = identity,
      domain = extent,
      threshold = sturges;

  function histogram(data) {
    var i,
        n = data.length,
        x,
        values = new Array(n);

    for (i = 0; i < n; ++i) {
      values[i] = value(data[i], i, data);
    }

    var xz = domain(values),
        x0 = xz[0],
        x1 = xz[1],
        tz = threshold(values, x0, x1);

    // Convert number of thresholds into uniform thresholds.
    if (!Array.isArray(tz)) {
      tz = tickStep(x0, x1, tz);
      tz = range(Math.ceil(x0 / tz) * tz, x1, tz); // exclusive
    }

    // Remove any thresholds outside the domain.
    var m = tz.length;
    while (tz[0] <= x0) tz.shift(), --m;
    while (tz[m - 1] > x1) tz.pop(), --m;

    var bins = new Array(m + 1),
        bin;

    // Initialize bins.
    for (i = 0; i <= m; ++i) {
      bin = bins[i] = [];
      bin.x0 = i > 0 ? tz[i - 1] : x0;
      bin.x1 = i < m ? tz[i] : x1;
    }

    // Assign data to bins by value, ignoring any outside the domain.
    for (i = 0; i < n; ++i) {
      x = values[i];
      if (x0 <= x && x <= x1) {
        bins[bisect(tz, x, 0, m)].push(data[i]);
      }
    }

    return bins;
  }

  histogram.value = function(_) {
    return arguments.length ? (value = typeof _ === "function" ? _ : constant(_), histogram) : value;
  };

  histogram.domain = function(_) {
    return arguments.length ? (domain = typeof _ === "function" ? _ : constant([_[0], _[1]]), histogram) : domain;
  };

  histogram.thresholds = function(_) {
    return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;
  };

  return histogram;
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/quantile.js


/* harmony default export */ var quantile = (function(values, p, valueof) {
  if (valueof == null) valueof = number;
  if (!(n = values.length)) return;
  if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);
  if (p >= 1) return +valueof(values[n - 1], n - 1, values);
  var n,
      i = (n - 1) * p,
      i0 = Math.floor(i),
      value0 = +valueof(values[i0], i0, values),
      value1 = +valueof(values[i0 + 1], i0 + 1, values);
  return value0 + (value1 - value0) * (i - i0);
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/threshold/freedmanDiaconis.js





/* harmony default export */ var freedmanDiaconis = (function(values, min, max) {
  values = map.call(values, number).sort(ascending);
  return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/threshold/scott.js


/* harmony default export */ var scott = (function(values, min, max) {
  return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/max.js
/* harmony default export */ var src_max = (function(values, valueof) {
  var n = values.length,
      i = -1,
      value,
      max;

  if (valueof == null) {
    while (++i < n) { // Find the first comparable value.
      if ((value = values[i]) != null && value >= value) {
        max = value;
        while (++i < n) { // Compare the remaining values.
          if ((value = values[i]) != null && value > max) {
            max = value;
          }
        }
      }
    }
  }

  else {
    while (++i < n) { // Find the first comparable value.
      if ((value = valueof(values[i], i, values)) != null && value >= value) {
        max = value;
        while (++i < n) { // Compare the remaining values.
          if ((value = valueof(values[i], i, values)) != null && value > max) {
            max = value;
          }
        }
      }
    }
  }

  return max;
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/mean.js


/* harmony default export */ var src_mean = (function(values, valueof) {
  var n = values.length,
      m = n,
      i = -1,
      value,
      sum = 0;

  if (valueof == null) {
    while (++i < n) {
      if (!isNaN(value = number(values[i]))) sum += value;
      else --m;
    }
  }

  else {
    while (++i < n) {
      if (!isNaN(value = number(valueof(values[i], i, values)))) sum += value;
      else --m;
    }
  }

  if (m) return sum / m;
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/median.js




/* harmony default export */ var median = (function(values, valueof) {
  var n = values.length,
      i = -1,
      value,
      numbers = [];

  if (valueof == null) {
    while (++i < n) {
      if (!isNaN(value = number(values[i]))) {
        numbers.push(value);
      }
    }
  }

  else {
    while (++i < n) {
      if (!isNaN(value = number(valueof(values[i], i, values)))) {
        numbers.push(value);
      }
    }
  }

  return quantile(numbers.sort(ascending), 0.5);
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/merge.js
/* harmony default export */ var merge = (function(arrays) {
  var n = arrays.length,
      m,
      i = -1,
      j = 0,
      merged,
      array;

  while (++i < n) j += arrays[i].length;
  merged = new Array(j);

  while (--n >= 0) {
    array = arrays[n];
    m = array.length;
    while (--m >= 0) {
      merged[--j] = array[m];
    }
  }

  return merged;
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/min.js
/* harmony default export */ var src_min = (function(values, valueof) {
  var n = values.length,
      i = -1,
      value,
      min;

  if (valueof == null) {
    while (++i < n) { // Find the first comparable value.
      if ((value = values[i]) != null && value >= value) {
        min = value;
        while (++i < n) { // Compare the remaining values.
          if ((value = values[i]) != null && min > value) {
            min = value;
          }
        }
      }
    }
  }

  else {
    while (++i < n) { // Find the first comparable value.
      if ((value = valueof(values[i], i, values)) != null && value >= value) {
        min = value;
        while (++i < n) { // Compare the remaining values.
          if ((value = valueof(values[i], i, values)) != null && min > value) {
            min = value;
          }
        }
      }
    }
  }

  return min;
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/permute.js
/* harmony default export */ var permute = (function(array, indexes) {
  var i = indexes.length, permutes = new Array(i);
  while (i--) permutes[i] = array[indexes[i]];
  return permutes;
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/scan.js


/* harmony default export */ var scan = (function(values, compare) {
  if (!(n = values.length)) return;
  var n,
      i = 0,
      j = 0,
      xi,
      xj = values[j];

  if (compare == null) compare = ascending;

  while (++i < n) {
    if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {
      xj = xi, j = i;
    }
  }

  if (compare(xj, xj) === 0) return j;
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/shuffle.js
/* harmony default export */ var shuffle = (function(array, i0, i1) {
  var m = (i1 == null ? array.length : i1) - (i0 = i0 == null ? 0 : +i0),
      t,
      i;

  while (m) {
    i = Math.random() * m-- | 0;
    t = array[m + i0];
    array[m + i0] = array[i + i0];
    array[i + i0] = t;
  }

  return array;
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/sum.js
/* harmony default export */ var src_sum = (function(values, valueof) {
  var n = values.length,
      i = -1,
      value,
      sum = 0;

  if (valueof == null) {
    while (++i < n) {
      if (value = +values[i]) sum += value; // Note: zero and null are equivalent.
    }
  }

  else {
    while (++i < n) {
      if (value = +valueof(values[i], i, values)) sum += value;
    }
  }

  return sum;
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/transpose.js


/* harmony default export */ var src_transpose = (function(matrix) {
  if (!(n = matrix.length)) return [];
  for (var i = -1, m = src_min(matrix, transpose_length), transpose = new Array(m); ++i < m;) {
    for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {
      row[j] = matrix[j][i];
    }
  }
  return transpose;
});

function transpose_length(d) {
  return d.length;
}

// CONCATENATED MODULE: ./node_modules/d3-array/src/zip.js


/* harmony default export */ var zip = (function() {
  return src_transpose(arguments);
});

// CONCATENATED MODULE: ./node_modules/d3-array/src/index.js



























// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "scaleBand", function() { return /* reexport */ band; });
__webpack_require__.d(__webpack_exports__, "scalePoint", function() { return /* reexport */ point; });
__webpack_require__.d(__webpack_exports__, "scaleIdentity", function() { return /* reexport */ identity; });
__webpack_require__.d(__webpack_exports__, "scaleLinear", function() { return /* reexport */ linear; });
__webpack_require__.d(__webpack_exports__, "scaleLog", function() { return /* reexport */ log; });
__webpack_require__.d(__webpack_exports__, "scaleOrdinal", function() { return /* reexport */ ordinal; });
__webpack_require__.d(__webpack_exports__, "scaleImplicit", function() { return /* reexport */ implicit; });
__webpack_require__.d(__webpack_exports__, "scalePow", function() { return /* reexport */ pow; });
__webpack_require__.d(__webpack_exports__, "scaleSqrt", function() { return /* reexport */ sqrt; });
__webpack_require__.d(__webpack_exports__, "scaleQuantile", function() { return /* reexport */ quantile; });
__webpack_require__.d(__webpack_exports__, "scaleQuantize", function() { return /* reexport */ quantize; });
__webpack_require__.d(__webpack_exports__, "scaleThreshold", function() { return /* reexport */ threshold; });
__webpack_require__.d(__webpack_exports__, "scaleTime", function() { return /* reexport */ time; });
__webpack_require__.d(__webpack_exports__, "scaleUtc", function() { return /* reexport */ utcTime; });
__webpack_require__.d(__webpack_exports__, "schemeCategory10", function() { return /* reexport */ category10; });
__webpack_require__.d(__webpack_exports__, "schemeCategory20b", function() { return /* reexport */ category20b; });
__webpack_require__.d(__webpack_exports__, "schemeCategory20c", function() { return /* reexport */ category20c; });
__webpack_require__.d(__webpack_exports__, "schemeCategory20", function() { return /* reexport */ category20; });
__webpack_require__.d(__webpack_exports__, "interpolateCubehelixDefault", function() { return /* reexport */ cubehelix; });
__webpack_require__.d(__webpack_exports__, "interpolateRainbow", function() { return /* reexport */ src_rainbow; });
__webpack_require__.d(__webpack_exports__, "interpolateWarm", function() { return /* reexport */ warm; });
__webpack_require__.d(__webpack_exports__, "interpolateCool", function() { return /* reexport */ cool; });
__webpack_require__.d(__webpack_exports__, "interpolateViridis", function() { return /* reexport */ viridis; });
__webpack_require__.d(__webpack_exports__, "interpolateMagma", function() { return /* reexport */ magma; });
__webpack_require__.d(__webpack_exports__, "interpolateInferno", function() { return /* reexport */ inferno; });
__webpack_require__.d(__webpack_exports__, "interpolatePlasma", function() { return /* reexport */ plasma; });
__webpack_require__.d(__webpack_exports__, "scaleSequential", function() { return /* reexport */ sequential; });

// EXTERNAL MODULE: ./node_modules/d3-array/src/index.js + 31 modules
var src = __webpack_require__(72);

// EXTERNAL MODULE: ./node_modules/d3-collection/index.js + 6 modules
var d3_collection = __webpack_require__(199);

// CONCATENATED MODULE: ./node_modules/d3-scale/src/array.js
var array = Array.prototype;

var map = array.map;
var slice = array.slice;

// CONCATENATED MODULE: ./node_modules/d3-scale/src/ordinal.js



var implicit = {name: "implicit"};

function ordinal(range) {
  var index = Object(d3_collection["c" /* map */])(),
      domain = [],
      unknown = implicit;

  range = range == null ? [] : slice.call(range);

  function scale(d) {
    var key = d + "", i = index.get(key);
    if (!i) {
      if (unknown !== implicit) return unknown;
      index.set(key, i = domain.push(d));
    }
    return range[(i - 1) % range.length];
  }

  scale.domain = function(_) {
    if (!arguments.length) return domain.slice();
    domain = [], index = Object(d3_collection["c" /* map */])();
    var i = -1, n = _.length, d, key;
    while (++i < n) if (!index.has(key = (d = _[i]) + "")) index.set(key, domain.push(d));
    return scale;
  };

  scale.range = function(_) {
    return arguments.length ? (range = slice.call(_), scale) : range.slice();
  };

  scale.unknown = function(_) {
    return arguments.length ? (unknown = _, scale) : unknown;
  };

  scale.copy = function() {
    return ordinal()
        .domain(domain)
        .range(range)
        .unknown(unknown);
  };

  return scale;
}

// CONCATENATED MODULE: ./node_modules/d3-scale/src/band.js



function band() {
  var scale = ordinal().unknown(undefined),
      domain = scale.domain,
      ordinalRange = scale.range,
      range = [0, 1],
      step,
      bandwidth,
      round = false,
      paddingInner = 0,
      paddingOuter = 0,
      align = 0.5;

  delete scale.unknown;

  function rescale() {
    var n = domain().length,
        reverse = range[1] < range[0],
        start = range[reverse - 0],
        stop = range[1 - reverse];
    step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);
    if (round) step = Math.floor(step);
    start += (stop - start - step * (n - paddingInner)) * align;
    bandwidth = step * (1 - paddingInner);
    if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);
    var values = Object(src["range"])(n).map(function(i) { return start + step * i; });
    return ordinalRange(reverse ? values.reverse() : values);
  }

  scale.domain = function(_) {
    return arguments.length ? (domain(_), rescale()) : domain();
  };

  scale.range = function(_) {
    return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();
  };

  scale.rangeRound = function(_) {
    return range = [+_[0], +_[1]], round = true, rescale();
  };

  scale.bandwidth = function() {
    return bandwidth;
  };

  scale.step = function() {
    return step;
  };

  scale.round = function(_) {
    return arguments.length ? (round = !!_, rescale()) : round;
  };

  scale.padding = function(_) {
    return arguments.length ? (paddingInner = paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;
  };

  scale.paddingInner = function(_) {
    return arguments.length ? (paddingInner = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;
  };

  scale.paddingOuter = function(_) {
    return arguments.length ? (paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingOuter;
  };

  scale.align = function(_) {
    return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;
  };

  scale.copy = function() {
    return band()
        .domain(domain())
        .range(range)
        .round(round)
        .paddingInner(paddingInner)
        .paddingOuter(paddingOuter)
        .align(align);
  };

  return rescale();
}

function pointish(scale) {
  var copy = scale.copy;

  scale.padding = scale.paddingOuter;
  delete scale.paddingInner;
  delete scale.paddingOuter;

  scale.copy = function() {
    return pointish(copy());
  };

  return scale;
}

function point() {
  return pointish(band().paddingInner(1));
}

// EXTERNAL MODULE: ./node_modules/d3-interpolate/index.js + 21 modules
var d3_interpolate = __webpack_require__(111);

// CONCATENATED MODULE: ./node_modules/d3-scale/src/constant.js
/* harmony default export */ var constant = (function(x) {
  return function() {
    return x;
  };
});

// CONCATENATED MODULE: ./node_modules/d3-scale/src/number.js
/* harmony default export */ var number = (function(x) {
  return +x;
});

// CONCATENATED MODULE: ./node_modules/d3-scale/src/continuous.js






var unit = [0, 1];

function deinterpolateLinear(a, b) {
  return (b -= (a = +a))
      ? function(x) { return (x - a) / b; }
      : constant(b);
}

function deinterpolateClamp(deinterpolate) {
  return function(a, b) {
    var d = deinterpolate(a = +a, b = +b);
    return function(x) { return x <= a ? 0 : x >= b ? 1 : d(x); };
  };
}

function reinterpolateClamp(reinterpolate) {
  return function(a, b) {
    var r = reinterpolate(a = +a, b = +b);
    return function(t) { return t <= 0 ? a : t >= 1 ? b : r(t); };
  };
}

function bimap(domain, range, deinterpolate, reinterpolate) {
  var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];
  if (d1 < d0) d0 = deinterpolate(d1, d0), r0 = reinterpolate(r1, r0);
  else d0 = deinterpolate(d0, d1), r0 = reinterpolate(r0, r1);
  return function(x) { return r0(d0(x)); };
}

function polymap(domain, range, deinterpolate, reinterpolate) {
  var j = Math.min(domain.length, range.length) - 1,
      d = new Array(j),
      r = new Array(j),
      i = -1;

  // Reverse descending domains.
  if (domain[j] < domain[0]) {
    domain = domain.slice().reverse();
    range = range.slice().reverse();
  }

  while (++i < j) {
    d[i] = deinterpolate(domain[i], domain[i + 1]);
    r[i] = reinterpolate(range[i], range[i + 1]);
  }

  return function(x) {
    var i = Object(src["bisect"])(domain, x, 1, j) - 1;
    return r[i](d[i](x));
  };
}

function copy(source, target) {
  return target
      .domain(source.domain())
      .range(source.range())
      .interpolate(source.interpolate())
      .clamp(source.clamp());
}

// deinterpolate(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].
// reinterpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding domain value x in [a,b].
function continuous(deinterpolate, reinterpolate) {
  var domain = unit,
      range = unit,
      interpolate = d3_interpolate["a" /* interpolate */],
      clamp = false,
      piecewise,
      output,
      input;

  function rescale() {
    piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;
    output = input = null;
    return scale;
  }

  function scale(x) {
    return (output || (output = piecewise(domain, range, clamp ? deinterpolateClamp(deinterpolate) : deinterpolate, interpolate)))(+x);
  }

  scale.invert = function(y) {
    return (input || (input = piecewise(range, domain, deinterpolateLinear, clamp ? reinterpolateClamp(reinterpolate) : reinterpolate)))(+y);
  };

  scale.domain = function(_) {
    return arguments.length ? (domain = map.call(_, number), rescale()) : domain.slice();
  };

  scale.range = function(_) {
    return arguments.length ? (range = slice.call(_), rescale()) : range.slice();
  };

  scale.rangeRound = function(_) {
    return range = slice.call(_), interpolate = d3_interpolate["r" /* interpolateRound */], rescale();
  };

  scale.clamp = function(_) {
    return arguments.length ? (clamp = !!_, rescale()) : clamp;
  };

  scale.interpolate = function(_) {
    return arguments.length ? (interpolate = _, rescale()) : interpolate;
  };

  return rescale();
}

// EXTERNAL MODULE: ./node_modules/d3-format/index.js + 15 modules
var d3_format = __webpack_require__(131);

// CONCATENATED MODULE: ./node_modules/d3-scale/src/tickFormat.js



/* harmony default export */ var src_tickFormat = (function(domain, count, specifier) {
  var start = domain[0],
      stop = domain[domain.length - 1],
      step = Object(src["tickStep"])(start, stop, count == null ? 10 : count),
      precision;
  specifier = Object(d3_format["e" /* formatSpecifier */])(specifier == null ? ",f" : specifier);
  switch (specifier.type) {
    case "s": {
      var value = Math.max(Math.abs(start), Math.abs(stop));
      if (specifier.precision == null && !isNaN(precision = Object(d3_format["g" /* precisionPrefix */])(step, value))) specifier.precision = precision;
      return Object(d3_format["d" /* formatPrefix */])(specifier, value);
    }
    case "":
    case "e":
    case "g":
    case "p":
    case "r": {
      if (specifier.precision == null && !isNaN(precision = Object(d3_format["h" /* precisionRound */])(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === "e");
      break;
    }
    case "f":
    case "%": {
      if (specifier.precision == null && !isNaN(precision = Object(d3_format["f" /* precisionFixed */])(step))) specifier.precision = precision - (specifier.type === "%") * 2;
      break;
    }
  }
  return Object(d3_format["a" /* format */])(specifier);
});

// CONCATENATED MODULE: ./node_modules/d3-scale/src/linear.js





function linearish(scale) {
  var domain = scale.domain;

  scale.ticks = function(count) {
    var d = domain();
    return Object(src["ticks"])(d[0], d[d.length - 1], count == null ? 10 : count);
  };

  scale.tickFormat = function(count, specifier) {
    return src_tickFormat(domain(), count, specifier);
  };

  scale.nice = function(count) {
    if (count == null) count = 10;

    var d = domain(),
        i0 = 0,
        i1 = d.length - 1,
        start = d[i0],
        stop = d[i1],
        step;

    if (stop < start) {
      step = start, start = stop, stop = step;
      step = i0, i0 = i1, i1 = step;
    }

    step = Object(src["tickIncrement"])(start, stop, count);

    if (step > 0) {
      start = Math.floor(start / step) * step;
      stop = Math.ceil(stop / step) * step;
      step = Object(src["tickIncrement"])(start, stop, count);
    } else if (step < 0) {
      start = Math.ceil(start * step) / step;
      stop = Math.floor(stop * step) / step;
      step = Object(src["tickIncrement"])(start, stop, count);
    }

    if (step > 0) {
      d[i0] = Math.floor(start / step) * step;
      d[i1] = Math.ceil(stop / step) * step;
      domain(d);
    } else if (step < 0) {
      d[i0] = Math.ceil(start * step) / step;
      d[i1] = Math.floor(stop * step) / step;
      domain(d);
    }

    return scale;
  };

  return scale;
}

function linear() {
  var scale = continuous(deinterpolateLinear, d3_interpolate["m" /* interpolateNumber */]);

  scale.copy = function() {
    return copy(scale, linear());
  };

  return linearish(scale);
}

// CONCATENATED MODULE: ./node_modules/d3-scale/src/identity.js




function identity() {
  var domain = [0, 1];

  function scale(x) {
    return +x;
  }

  scale.invert = scale;

  scale.domain = scale.range = function(_) {
    return arguments.length ? (domain = map.call(_, number), scale) : domain.slice();
  };

  scale.copy = function() {
    return identity().domain(domain);
  };

  return linearish(scale);
}

// CONCATENATED MODULE: ./node_modules/d3-scale/src/nice.js
/* harmony default export */ var nice = (function(domain, interval) {
  domain = domain.slice();

  var i0 = 0,
      i1 = domain.length - 1,
      x0 = domain[i0],
      x1 = domain[i1],
      t;

  if (x1 < x0) {
    t = i0, i0 = i1, i1 = t;
    t = x0, x0 = x1, x1 = t;
  }

  domain[i0] = interval.floor(x0);
  domain[i1] = interval.ceil(x1);
  return domain;
});

// CONCATENATED MODULE: ./node_modules/d3-scale/src/log.js






function log_deinterpolate(a, b) {
  return (b = Math.log(b / a))
      ? function(x) { return Math.log(x / a) / b; }
      : constant(b);
}

function log_reinterpolate(a, b) {
  return a < 0
      ? function(t) { return -Math.pow(-b, t) * Math.pow(-a, 1 - t); }
      : function(t) { return Math.pow(b, t) * Math.pow(a, 1 - t); };
}

function pow10(x) {
  return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x;
}

function powp(base) {
  return base === 10 ? pow10
      : base === Math.E ? Math.exp
      : function(x) { return Math.pow(base, x); };
}

function logp(base) {
  return base === Math.E ? Math.log
      : base === 10 && Math.log10
      || base === 2 && Math.log2
      || (base = Math.log(base), function(x) { return Math.log(x) / base; });
}

function reflect(f) {
  return function(x) {
    return -f(-x);
  };
}

function log() {
  var scale = continuous(log_deinterpolate, log_reinterpolate).domain([1, 10]),
      domain = scale.domain,
      base = 10,
      logs = logp(10),
      pows = powp(10);

  function rescale() {
    logs = logp(base), pows = powp(base);
    if (domain()[0] < 0) logs = reflect(logs), pows = reflect(pows);
    return scale;
  }

  scale.base = function(_) {
    return arguments.length ? (base = +_, rescale()) : base;
  };

  scale.domain = function(_) {
    return arguments.length ? (domain(_), rescale()) : domain();
  };

  scale.ticks = function(count) {
    var d = domain(),
        u = d[0],
        v = d[d.length - 1],
        r;

    if (r = v < u) i = u, u = v, v = i;

    var i = logs(u),
        j = logs(v),
        p,
        k,
        t,
        n = count == null ? 10 : +count,
        z = [];

    if (!(base % 1) && j - i < n) {
      i = Math.round(i) - 1, j = Math.round(j) + 1;
      if (u > 0) for (; i < j; ++i) {
        for (k = 1, p = pows(i); k < base; ++k) {
          t = p * k;
          if (t < u) continue;
          if (t > v) break;
          z.push(t);
        }
      } else for (; i < j; ++i) {
        for (k = base - 1, p = pows(i); k >= 1; --k) {
          t = p * k;
          if (t < u) continue;
          if (t > v) break;
          z.push(t);
        }
      }
    } else {
      z = Object(src["ticks"])(i, j, Math.min(j - i, n)).map(pows);
    }

    return r ? z.reverse() : z;
  };

  scale.tickFormat = function(count, specifier) {
    if (specifier == null) specifier = base === 10 ? ".0e" : ",";
    if (typeof specifier !== "function") specifier = Object(d3_format["a" /* format */])(specifier);
    if (count === Infinity) return specifier;
    if (count == null) count = 10;
    var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?
    return function(d) {
      var i = d / pows(Math.round(logs(d)));
      if (i * base < base - 0.5) i *= base;
      return i <= k ? specifier(d) : "";
    };
  };

  scale.nice = function() {
    return domain(nice(domain(), {
      floor: function(x) { return pows(Math.floor(logs(x))); },
      ceil: function(x) { return pows(Math.ceil(logs(x))); }
    }));
  };

  scale.copy = function() {
    return copy(scale, log().base(base));
  };

  return scale;
}

// CONCATENATED MODULE: ./node_modules/d3-scale/src/pow.js




function raise(x, exponent) {
  return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);
}

function pow() {
  var exponent = 1,
      scale = continuous(deinterpolate, reinterpolate),
      domain = scale.domain;

  function deinterpolate(a, b) {
    return (b = raise(b, exponent) - (a = raise(a, exponent)))
        ? function(x) { return (raise(x, exponent) - a) / b; }
        : constant(b);
  }

  function reinterpolate(a, b) {
    b = raise(b, exponent) - (a = raise(a, exponent));
    return function(t) { return raise(a + b * t, 1 / exponent); };
  }

  scale.exponent = function(_) {
    return arguments.length ? (exponent = +_, domain(domain())) : exponent;
  };

  scale.copy = function() {
    return copy(scale, pow().exponent(exponent));
  };

  return linearish(scale);
}

function sqrt() {
  return pow().exponent(0.5);
}

// CONCATENATED MODULE: ./node_modules/d3-scale/src/quantile.js



function quantile() {
  var domain = [],
      range = [],
      thresholds = [];

  function rescale() {
    var i = 0, n = Math.max(1, range.length);
    thresholds = new Array(n - 1);
    while (++i < n) thresholds[i - 1] = Object(src["quantile"])(domain, i / n);
    return scale;
  }

  function scale(x) {
    if (!isNaN(x = +x)) return range[Object(src["bisect"])(thresholds, x)];
  }

  scale.invertExtent = function(y) {
    var i = range.indexOf(y);
    return i < 0 ? [NaN, NaN] : [
      i > 0 ? thresholds[i - 1] : domain[0],
      i < thresholds.length ? thresholds[i] : domain[domain.length - 1]
    ];
  };

  scale.domain = function(_) {
    if (!arguments.length) return domain.slice();
    domain = [];
    for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);
    domain.sort(src["ascending"]);
    return rescale();
  };

  scale.range = function(_) {
    return arguments.length ? (range = slice.call(_), rescale()) : range.slice();
  };

  scale.quantiles = function() {
    return thresholds.slice();
  };

  scale.copy = function() {
    return quantile()
        .domain(domain)
        .range(range);
  };

  return scale;
}

// CONCATENATED MODULE: ./node_modules/d3-scale/src/quantize.js




function quantize() {
  var x0 = 0,
      x1 = 1,
      n = 1,
      domain = [0.5],
      range = [0, 1];

  function scale(x) {
    if (x <= x) return range[Object(src["bisect"])(domain, x, 0, n)];
  }

  function rescale() {
    var i = -1;
    domain = new Array(n);
    while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);
    return scale;
  }

  scale.domain = function(_) {
    return arguments.length ? (x0 = +_[0], x1 = +_[1], rescale()) : [x0, x1];
  };

  scale.range = function(_) {
    return arguments.length ? (n = (range = slice.call(_)).length - 1, rescale()) : range.slice();
  };

  scale.invertExtent = function(y) {
    var i = range.indexOf(y);
    return i < 0 ? [NaN, NaN]
        : i < 1 ? [x0, domain[0]]
        : i >= n ? [domain[n - 1], x1]
        : [domain[i - 1], domain[i]];
  };

  scale.copy = function() {
    return quantize()
        .domain([x0, x1])
        .range(range);
  };

  return linearish(scale);
}

// CONCATENATED MODULE: ./node_modules/d3-scale/src/threshold.js



function threshold() {
  var domain = [0.5],
      range = [0, 1],
      n = 1;

  function scale(x) {
    if (x <= x) return range[Object(src["bisect"])(domain, x, 0, n)];
  }

  scale.domain = function(_) {
    return arguments.length ? (domain = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();
  };

  scale.range = function(_) {
    return arguments.length ? (range = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();
  };

  scale.invertExtent = function(y) {
    var i = range.indexOf(y);
    return [domain[i - 1], domain[i]];
  };

  scale.copy = function() {
    return threshold()
        .domain(domain)
        .range(range);
  };

  return scale;
}

// EXTERNAL MODULE: ./node_modules/d3-time/index.js + 16 modules
var d3_time = __webpack_require__(54);

// EXTERNAL MODULE: ./node_modules/d3-time-format/src/index.js + 4 modules
var d3_time_format_src = __webpack_require__(169);

// CONCATENATED MODULE: ./node_modules/d3-scale/src/time.js








var durationSecond = 1000,
    durationMinute = durationSecond * 60,
    durationHour = durationMinute * 60,
    durationDay = durationHour * 24,
    durationWeek = durationDay * 7,
    durationMonth = durationDay * 30,
    durationYear = durationDay * 365;

function date(t) {
  return new Date(t);
}

function time_number(t) {
  return t instanceof Date ? +t : +new Date(+t);
}

function calendar(year, month, week, day, hour, minute, second, millisecond, format) {
  var scale = continuous(deinterpolateLinear, d3_interpolate["m" /* interpolateNumber */]),
      invert = scale.invert,
      domain = scale.domain;

  var formatMillisecond = format(".%L"),
      formatSecond = format(":%S"),
      formatMinute = format("%I:%M"),
      formatHour = format("%I %p"),
      formatDay = format("%a %d"),
      formatWeek = format("%b %d"),
      formatMonth = format("%B"),
      formatYear = format("%Y");

  var tickIntervals = [
    [second,  1,      durationSecond],
    [second,  5,  5 * durationSecond],
    [second, 15, 15 * durationSecond],
    [second, 30, 30 * durationSecond],
    [minute,  1,      durationMinute],
    [minute,  5,  5 * durationMinute],
    [minute, 15, 15 * durationMinute],
    [minute, 30, 30 * durationMinute],
    [  hour,  1,      durationHour  ],
    [  hour,  3,  3 * durationHour  ],
    [  hour,  6,  6 * durationHour  ],
    [  hour, 12, 12 * durationHour  ],
    [   day,  1,      durationDay   ],
    [   day,  2,  2 * durationDay   ],
    [  week,  1,      durationWeek  ],
    [ month,  1,      durationMonth ],
    [ month,  3,  3 * durationMonth ],
    [  year,  1,      durationYear  ]
  ];

  function tickFormat(date) {
    return (second(date) < date ? formatMillisecond
        : minute(date) < date ? formatSecond
        : hour(date) < date ? formatMinute
        : day(date) < date ? formatHour
        : month(date) < date ? (week(date) < date ? formatDay : formatWeek)
        : year(date) < date ? formatMonth
        : formatYear)(date);
  }

  function tickInterval(interval, start, stop, step) {
    if (interval == null) interval = 10;

    // If a desired tick count is specified, pick a reasonable tick interval
    // based on the extent of the domain and a rough estimate of tick size.
    // Otherwise, assume interval is already a time interval and use it.
    if (typeof interval === "number") {
      var target = Math.abs(stop - start) / interval,
          i = Object(src["bisector"])(function(i) { return i[2]; }).right(tickIntervals, target);
      if (i === tickIntervals.length) {
        step = Object(src["tickStep"])(start / durationYear, stop / durationYear, interval);
        interval = year;
      } else if (i) {
        i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];
        step = i[1];
        interval = i[0];
      } else {
        step = Math.max(Object(src["tickStep"])(start, stop, interval), 1);
        interval = millisecond;
      }
    }

    return step == null ? interval : interval.every(step);
  }

  scale.invert = function(y) {
    return new Date(invert(y));
  };

  scale.domain = function(_) {
    return arguments.length ? domain(map.call(_, time_number)) : domain().map(date);
  };

  scale.ticks = function(interval, step) {
    var d = domain(),
        t0 = d[0],
        t1 = d[d.length - 1],
        r = t1 < t0,
        t;
    if (r) t = t0, t0 = t1, t1 = t;
    t = tickInterval(interval, t0, t1, step);
    t = t ? t.range(t0, t1 + 1) : []; // inclusive stop
    return r ? t.reverse() : t;
  };

  scale.tickFormat = function(count, specifier) {
    return specifier == null ? tickFormat : format(specifier);
  };

  scale.nice = function(interval, step) {
    var d = domain();
    return (interval = tickInterval(interval, d[0], d[d.length - 1], step))
        ? domain(nice(d, interval))
        : scale;
  };

  scale.copy = function() {
    return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));
  };

  return scale;
}

/* harmony default export */ var time = (function() {
  return calendar(d3_time["D" /* timeYear */], d3_time["n" /* timeMonth */], d3_time["B" /* timeWeek */], d3_time["a" /* timeDay */], d3_time["e" /* timeHour */], d3_time["j" /* timeMinute */], d3_time["r" /* timeSecond */], d3_time["h" /* timeMillisecond */], d3_time_format_src["timeFormat"]).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]);
});

// CONCATENATED MODULE: ./node_modules/d3-scale/src/utcTime.js




/* harmony default export */ var utcTime = (function() {
  return calendar(d3_time["hb" /* utcYear */], d3_time["R" /* utcMonth */], d3_time["fb" /* utcWeek */], d3_time["F" /* utcDay */], d3_time["J" /* utcHour */], d3_time["N" /* utcMinute */], d3_time["V" /* utcSecond */], d3_time["L" /* utcMillisecond */], d3_time_format_src["utcFormat"]).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]);
});

// CONCATENATED MODULE: ./node_modules/d3-scale/src/colors.js
/* harmony default export */ var colors = (function(s) {
  return s.match(/.{6}/g).map(function(x) {
    return "#" + x;
  });
});

// CONCATENATED MODULE: ./node_modules/d3-scale/src/category10.js


/* harmony default export */ var category10 = (colors("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"));

// CONCATENATED MODULE: ./node_modules/d3-scale/src/category20b.js


/* harmony default export */ var category20b = (colors("393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6"));

// CONCATENATED MODULE: ./node_modules/d3-scale/src/category20c.js


/* harmony default export */ var category20c = (colors("3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9"));

// CONCATENATED MODULE: ./node_modules/d3-scale/src/category20.js


/* harmony default export */ var category20 = (colors("1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5"));

// EXTERNAL MODULE: ./node_modules/d3-color/index.js + 5 modules
var d3_color = __webpack_require__(77);

// CONCATENATED MODULE: ./node_modules/d3-scale/src/cubehelix.js



/* harmony default export */ var cubehelix = (Object(d3_interpolate["f" /* interpolateCubehelixLong */])(Object(d3_color["b" /* cubehelix */])(300, 0.5, 0.0), Object(d3_color["b" /* cubehelix */])(-240, 0.5, 1.0)));

// CONCATENATED MODULE: ./node_modules/d3-scale/src/rainbow.js



var warm = Object(d3_interpolate["f" /* interpolateCubehelixLong */])(Object(d3_color["b" /* cubehelix */])(-100, 0.75, 0.35), Object(d3_color["b" /* cubehelix */])(80, 1.50, 0.8));

var cool = Object(d3_interpolate["f" /* interpolateCubehelixLong */])(Object(d3_color["b" /* cubehelix */])(260, 0.75, 0.35), Object(d3_color["b" /* cubehelix */])(80, 1.50, 0.8));

var rainbow = Object(d3_color["b" /* cubehelix */])();

/* harmony default export */ var src_rainbow = (function(t) {
  if (t < 0 || t > 1) t -= Math.floor(t);
  var ts = Math.abs(t - 0.5);
  rainbow.h = 360 * t - 100;
  rainbow.s = 1.5 - 1.5 * ts;
  rainbow.l = 0.8 - 0.9 * ts;
  return rainbow + "";
});

// CONCATENATED MODULE: ./node_modules/d3-scale/src/viridis.js


function ramp(range) {
  var n = range.length;
  return function(t) {
    return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];
  };
}

/* harmony default export */ var viridis = (ramp(colors("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")));

var magma = ramp(colors("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf"));

var inferno = ramp(colors("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4"));

var plasma = ramp(colors("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));

// CONCATENATED MODULE: ./node_modules/d3-scale/src/sequential.js


function sequential(interpolator) {
  var x0 = 0,
      x1 = 1,
      clamp = false;

  function scale(x) {
    var t = (x - x0) / (x1 - x0);
    return interpolator(clamp ? Math.max(0, Math.min(1, t)) : t);
  }

  scale.domain = function(_) {
    return arguments.length ? (x0 = +_[0], x1 = +_[1], scale) : [x0, x1];
  };

  scale.clamp = function(_) {
    return arguments.length ? (clamp = !!_, scale) : clamp;
  };

  scale.interpolator = function(_) {
    return arguments.length ? (interpolator = _, scale) : interpolator;
  };

  scale.copy = function() {
    return sequential(interpolator).domain([x0, x1]).clamp(clamp);
  };

  return linearish(scale);
}

// CONCATENATED MODULE: ./node_modules/d3-scale/index.js





































// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "default", function() { return /* reexport */ pages_Listings_Listings; });

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread.js
var objectSpread = __webpack_require__(27);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
var classCallCheck = __webpack_require__(9);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js
var createClass = __webpack_require__(10);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__(11);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
var getPrototypeOf = __webpack_require__(12);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
var inherits = __webpack_require__(13);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
var assertThisInitialized = __webpack_require__(16);

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-intl/lib/index.es.js
var index_es = __webpack_require__(4);

// EXTERNAL MODULE: ./node_modules/react-document-title/index.js
var react_document_title = __webpack_require__(98);
var react_document_title_default = /*#__PURE__*/__webpack_require__.n(react_document_title);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__(7);

// EXTERNAL MODULE: ./src/js/components/common/HeaderBar/index.js + 1 modules
var HeaderBar = __webpack_require__(251);

// EXTERNAL MODULE: ./src/js/constants/index.js + 1 modules
var constants = __webpack_require__(15);

// EXTERNAL MODULE: ./src/js/components/common/DashboardContainer/index.js + 1 modules
var DashboardContainer = __webpack_require__(411);

// EXTERNAL MODULE: ./src/js/components/common/styled.js
var styled = __webpack_require__(35);

// EXTERNAL MODULE: ./node_modules/prop-types/index.js
var prop_types = __webpack_require__(3);
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);

// EXTERNAL MODULE: ./src/js/constants/classes/index.js
var classes = __webpack_require__(32);

// EXTERNAL MODULE: ./src/js/utils/numberCommaFormatter.js
var numberCommaFormatter = __webpack_require__(62);

// CONCATENATED MODULE: ./src/js/components/Listings/Stats.js
var Stats_redirectComponent=function redirectComponent(handleOnClick,key,days){return Object(core_browser_esm["c" /* jsx */])("a",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(classes["e" /* text5 */]," &,&:hover{text-decoration:underline;}label:redirectComponent;"+( true?"":undefined)),onClick:handleOnClick},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"listingsPage.".concat(key),values:key==='outOfStockOverNumberOfDays'?{days:days}:{}}));};var Stats_getOtherFilteringOptions=function getOtherFilteringOptions(key,days,filterOptions){if(key==='outOfStockOverNumberOfDays')return Stats_redirectComponent(filterOptions.outOfStockOverDays,key,days);if(key==='listings')return Stats_redirectComponent(filterOptions.activeListings,key,days);return Object(core_browser_esm["c" /* jsx */])("span",{css:classes["e" /* text5 */]},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"listingsPage.".concat(key),values:key==='outOfStockOverNumberOfDays'?{days:days}:{}}));};var Stats=Object(index_module["c" /* observer */])(function(_ref){var data=_ref.data,days=_ref.days,filterOptions=_ref.filterOptions;return Object(core_browser_esm["c" /* jsx */])(styled["t" /* StatsWrapper */],null,Object(core_browser_esm["c" /* jsx */])(styled["s" /* StatsList */],{paddingRight:"24px"},Object.keys(data).map(function(key){return Object(core_browser_esm["c" /* jsx */])(styled["r" /* StatsItem */],{width:"168px",marginBottom:"33px",key:key},Object(core_browser_esm["c" /* jsx */])(styled["v" /* Value */],null,key==='salesConversionRate'?Object(numberCommaFormatter["a" /* commaFormat */])(data[key]):data[key]),key==='outOfStock'?Stats_redirectComponent(filterOptions.outOfStock,key,days):Stats_getOtherFilteringOptions(key,days,filterOptions));})));});Stats.propTypes={data:prop_types_default.a.object,intl:prop_types_default.a.object,days:prop_types_default.a.number};
// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/extends.js
var esm_extends = __webpack_require__(33);

// EXTERNAL MODULE: ./node_modules/recharts/es6/shape/Sector.js
var Sector = __webpack_require__(381);

// EXTERNAL MODULE: ./node_modules/recharts/es6/chart/generateCategoricalChart.js
var generateCategoricalChart = __webpack_require__(313);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isFunction.js
var isFunction = __webpack_require__(51);
var isFunction_default = /*#__PURE__*/__webpack_require__.n(isFunction);

// EXTERNAL MODULE: ./node_modules/recharts/es6/container/Layer.js
var Layer = __webpack_require__(60);

// EXTERNAL MODULE: ./node_modules/recharts/es6/shape/Dot.js
var Dot = __webpack_require__(221);

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__(25);
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/types.js
var types = __webpack_require__(42);

// CONCATENATED MODULE: ./node_modules/recharts/es6/shape/Polygon.js
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _extends() { _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 _extends.apply(this, arguments); }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _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; }

function _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; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }

function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _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 _arrayLikeToArray(o, minLen); }

function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }

function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }

function _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; }

/**
 * @fileOverview Polygon
 */




var isValidatePoint = function isValidatePoint(point) {
  return point && point.x === +point.x && point.y === +point.y;
};

var getParsedPoints = function getParsedPoints() {
  var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
  var segmentPoints = [[]];
  points.forEach(function (entry) {
    if (isValidatePoint(entry)) {
      segmentPoints[segmentPoints.length - 1].push(entry);
    } else if (segmentPoints[segmentPoints.length - 1].length > 0) {
      // add another path
      segmentPoints.push([]);
    }
  });

  if (isValidatePoint(points[0])) {
    segmentPoints[segmentPoints.length - 1].push(points[0]);
  }

  if (segmentPoints[segmentPoints.length - 1].length <= 0) {
    segmentPoints = segmentPoints.slice(0, -1);
  }

  return segmentPoints;
};

var getSinglePolygonPath = function getSinglePolygonPath(points, connectNulls) {
  var segmentPoints = getParsedPoints(points);

  if (connectNulls) {
    segmentPoints = [segmentPoints.reduce(function (res, segPoints) {
      return [].concat(_toConsumableArray(res), _toConsumableArray(segPoints));
    }, [])];
  }

  var polygonPath = segmentPoints.map(function (segPoints) {
    return segPoints.reduce(function (path, point, index) {
      return "".concat(path).concat(index === 0 ? 'M' : 'L').concat(point.x, ",").concat(point.y);
    }, '');
  }).join('');
  return segmentPoints.length === 1 ? "".concat(polygonPath, "Z") : polygonPath;
};

var getRanglePath = function getRanglePath(points, baseLinePoints, connectNulls) {
  var outerPath = getSinglePolygonPath(points, connectNulls);
  return "".concat(outerPath.slice(-1) === 'Z' ? outerPath.slice(0, -1) : outerPath, "L").concat(getSinglePolygonPath(baseLinePoints.reverse(), connectNulls).slice(1));
};

var Polygon_Polygon = /*#__PURE__*/function (_PureComponent) {
  _inherits(Polygon, _PureComponent);

  var _super = _createSuper(Polygon);

  function Polygon() {
    _classCallCheck(this, Polygon);

    return _super.apply(this, arguments);
  }

  _createClass(Polygon, [{
    key: "render",
    value: function render() {
      var _this$props = this.props,
          points = _this$props.points,
          className = _this$props.className,
          baseLinePoints = _this$props.baseLinePoints,
          connectNulls = _this$props.connectNulls,
          others = _objectWithoutProperties(_this$props, ["points", "className", "baseLinePoints", "connectNulls"]);

      if (!points || !points.length) {
        return null;
      }

      var layerClass = classnames_default()('recharts-polygon', className);

      if (baseLinePoints && baseLinePoints.length) {
        var hasStroke = others.stroke && others.stroke !== 'none';
        var rangePath = getRanglePath(points, baseLinePoints, connectNulls);
        return /*#__PURE__*/react_default.a.createElement("g", {
          className: layerClass
        }, /*#__PURE__*/react_default.a.createElement("path", _extends({}, Object(types["c" /* filterProps */])(others, true), {
          fill: rangePath.slice(-1) === 'Z' ? others.fill : 'none',
          stroke: "none",
          d: rangePath
        })), hasStroke ? /*#__PURE__*/react_default.a.createElement("path", _extends({}, Object(types["c" /* filterProps */])(others, true), {
          fill: "none",
          d: getSinglePolygonPath(points, connectNulls)
        })) : null, hasStroke ? /*#__PURE__*/react_default.a.createElement("path", _extends({}, Object(types["c" /* filterProps */])(others, true), {
          fill: "none",
          d: getSinglePolygonPath(baseLinePoints, connectNulls)
        })) : null);
      }

      var singlePath = getSinglePolygonPath(points, connectNulls);
      return /*#__PURE__*/react_default.a.createElement("path", _extends({}, Object(types["c" /* filterProps */])(others, true), {
        fill: singlePath.slice(-1) === 'Z' ? others.fill : 'none',
        className: layerClass,
        d: singlePath
      }));
    }
  }]);

  return Polygon;
}(react["PureComponent"]);
// EXTERNAL MODULE: ./node_modules/recharts/es6/component/Text.js
var Text = __webpack_require__(173);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/PolarUtils.js
var PolarUtils = __webpack_require__(78);

// CONCATENATED MODULE: ./node_modules/recharts/es6/polar/PolarAngleAxis.js
function PolarAngleAxis_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { PolarAngleAxis_typeof = function _typeof(obj) { return typeof obj; }; } else { PolarAngleAxis_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return PolarAngleAxis_typeof(obj); }



function PolarAngleAxis_extends() { PolarAngleAxis_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 PolarAngleAxis_extends.apply(this, arguments); }

function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }

function PolarAngleAxis_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function PolarAngleAxis_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function PolarAngleAxis_createClass(Constructor, protoProps, staticProps) { if (protoProps) PolarAngleAxis_defineProperties(Constructor.prototype, protoProps); if (staticProps) PolarAngleAxis_defineProperties(Constructor, staticProps); return Constructor; }

function PolarAngleAxis_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) PolarAngleAxis_setPrototypeOf(subClass, superClass); }

function PolarAngleAxis_setPrototypeOf(o, p) { PolarAngleAxis_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return PolarAngleAxis_setPrototypeOf(o, p); }

function PolarAngleAxis_createSuper(Derived) { var hasNativeReflectConstruct = PolarAngleAxis_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = PolarAngleAxis_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = PolarAngleAxis_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return PolarAngleAxis_possibleConstructorReturn(this, result); }; }

function PolarAngleAxis_possibleConstructorReturn(self, call) { if (call && (PolarAngleAxis_typeof(call) === "object" || typeof call === "function")) { return call; } return PolarAngleAxis_assertThisInitialized(self); }

function PolarAngleAxis_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function PolarAngleAxis_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function PolarAngleAxis_getPrototypeOf(o) { PolarAngleAxis_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return PolarAngleAxis_getPrototypeOf(o); }

/**
 * @fileOverview Axis of radial direction
 */







var PolarAngleAxis_RADIAN = Math.PI / 180;
var eps = 1e-5;
var PolarAngleAxis_PolarAngleAxis = /*#__PURE__*/function (_PureComponent) {
  PolarAngleAxis_inherits(PolarAngleAxis, _PureComponent);

  var _super = PolarAngleAxis_createSuper(PolarAngleAxis);

  function PolarAngleAxis() {
    PolarAngleAxis_classCallCheck(this, PolarAngleAxis);

    return _super.apply(this, arguments);
  }

  PolarAngleAxis_createClass(PolarAngleAxis, [{
    key: "getTickLineCoord",
    value:
    /**
     * Calculate the coordinate of line endpoint
     * @param  {Object} data The Data if ticks
     * @return {Object} (x0, y0): The start point of text,
     *                  (x1, y1): The end point close to text,
     *                  (x2, y2): The end point close to axis
     */
    function getTickLineCoord(data) {
      var _this$props = this.props,
          cx = _this$props.cx,
          cy = _this$props.cy,
          radius = _this$props.radius,
          orientation = _this$props.orientation,
          tickSize = _this$props.tickSize;
      var tickLineSize = tickSize || 8;
      var p1 = Object(PolarUtils["e" /* polarToCartesian */])(cx, cy, radius, data.coordinate);
      var p2 = Object(PolarUtils["e" /* polarToCartesian */])(cx, cy, radius + (orientation === 'inner' ? -1 : 1) * tickLineSize, data.coordinate);
      return {
        x1: p1.x,
        y1: p1.y,
        x2: p2.x,
        y2: p2.y
      };
    }
    /**
     * Get the text-anchor of each tick
     * @param  {Object} data Data of ticks
     * @return {String} text-anchor
     */

  }, {
    key: "getTickTextAnchor",
    value: function getTickTextAnchor(data) {
      var orientation = this.props.orientation;
      var cos = Math.cos(-data.coordinate * PolarAngleAxis_RADIAN);
      var textAnchor;

      if (cos > eps) {
        textAnchor = orientation === 'outer' ? 'start' : 'end';
      } else if (cos < -eps) {
        textAnchor = orientation === 'outer' ? 'end' : 'start';
      } else {
        textAnchor = 'middle';
      }

      return textAnchor;
    }
  }, {
    key: "renderAxisLine",
    value: function renderAxisLine() {
      var _this$props2 = this.props,
          cx = _this$props2.cx,
          cy = _this$props2.cy,
          radius = _this$props2.radius,
          axisLine = _this$props2.axisLine,
          axisLineType = _this$props2.axisLineType;

      var props = _objectSpread(_objectSpread({}, Object(types["c" /* filterProps */])(this.props)), {}, {
        fill: 'none'
      }, Object(types["c" /* filterProps */])(axisLine));

      if (axisLineType === 'circle') {
        return /*#__PURE__*/react_default.a.createElement(Dot["a" /* Dot */], PolarAngleAxis_extends({
          className: "recharts-polar-angle-axis-line"
        }, props, {
          cx: cx,
          cy: cy,
          r: radius
        }));
      }

      var ticks = this.props.ticks;
      var points = ticks.map(function (entry) {
        return Object(PolarUtils["e" /* polarToCartesian */])(cx, cy, radius, entry.coordinate);
      });
      return /*#__PURE__*/react_default.a.createElement(Polygon_Polygon, PolarAngleAxis_extends({
        className: "recharts-polar-angle-axis-line"
      }, props, {
        points: points
      }));
    }
  }, {
    key: "renderTicks",
    value: function renderTicks() {
      var _this = this;

      var _this$props3 = this.props,
          ticks = _this$props3.ticks,
          tick = _this$props3.tick,
          tickLine = _this$props3.tickLine,
          tickFormatter = _this$props3.tickFormatter,
          stroke = _this$props3.stroke;
      var axisProps = Object(types["c" /* filterProps */])(this.props);
      var customTickProps = Object(types["c" /* filterProps */])(tick);

      var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {
        fill: 'none'
      }, Object(types["c" /* filterProps */])(tickLine));

      var items = ticks.map(function (entry, i) {
        var lineCoord = _this.getTickLineCoord(entry);

        var textAnchor = _this.getTickTextAnchor(entry);

        var tickProps = _objectSpread(_objectSpread(_objectSpread({
          textAnchor: textAnchor
        }, axisProps), {}, {
          stroke: 'none',
          fill: stroke
        }, customTickProps), {}, {
          index: i,
          payload: entry,
          x: lineCoord.x2,
          y: lineCoord.y2
        });

        return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], PolarAngleAxis_extends({
          className: "recharts-polar-angle-axis-tick",
          key: "tick-".concat(i) // eslint-disable-line react/no-array-index-key

        }, Object(types["b" /* adaptEventsOfChild */])(_this.props, entry, i)), tickLine && /*#__PURE__*/react_default.a.createElement("line", PolarAngleAxis_extends({
          className: "recharts-polar-angle-axis-tick-line"
        }, tickLineProps, lineCoord)), tick && PolarAngleAxis.renderTickItem(tick, tickProps, tickFormatter ? tickFormatter(entry.value, i) : entry.value));
      });
      return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], {
        className: "recharts-polar-angle-axis-ticks"
      }, items);
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props4 = this.props,
          ticks = _this$props4.ticks,
          radius = _this$props4.radius,
          axisLine = _this$props4.axisLine;

      if (radius <= 0 || !ticks || !ticks.length) {
        return null;
      }

      return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], {
        className: "recharts-polar-angle-axis"
      }, axisLine && this.renderAxisLine(), this.renderTicks());
    }
  }], [{
    key: "renderTickItem",
    value: function renderTickItem(option, props, value) {
      var tickItem;

      if ( /*#__PURE__*/react_default.a.isValidElement(option)) {
        tickItem = /*#__PURE__*/react_default.a.cloneElement(option, props);
      } else if (isFunction_default()(option)) {
        tickItem = option(props);
      } else {
        tickItem = /*#__PURE__*/react_default.a.createElement(Text["a" /* Text */], PolarAngleAxis_extends({}, props, {
          className: "recharts-polar-angle-axis-tick-value"
        }), value);
      }

      return tickItem;
    }
  }]);

  return PolarAngleAxis;
}(react["PureComponent"]);
PolarAngleAxis_PolarAngleAxis.displayName = 'PolarAngleAxis';
PolarAngleAxis_PolarAngleAxis.axisType = 'angleAxis';
PolarAngleAxis_PolarAngleAxis.defaultProps = {
  type: 'category',
  angleAxisId: 0,
  scale: 'auto',
  cx: 0,
  cy: 0,
  domain: [0, 'auto'],
  orientation: 'outer',
  axisLine: true,
  tickLine: true,
  tickSize: 8,
  tick: true,
  hide: false,
  allowDuplicatedCategory: true
};
// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/minBy.js
var minBy = __webpack_require__(677);
var minBy_default = /*#__PURE__*/__webpack_require__.n(minBy);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/maxBy.js
var maxBy = __webpack_require__(678);
var maxBy_default = /*#__PURE__*/__webpack_require__.n(maxBy);

// EXTERNAL MODULE: ./node_modules/recharts/es6/component/Label.js
var Label = __webpack_require__(150);

// CONCATENATED MODULE: ./node_modules/recharts/es6/polar/PolarRadiusAxis.js
function PolarRadiusAxis_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { PolarRadiusAxis_typeof = function _typeof(obj) { return typeof obj; }; } else { PolarRadiusAxis_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return PolarRadiusAxis_typeof(obj); }





function PolarRadiusAxis_extends() { PolarRadiusAxis_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 PolarRadiusAxis_extends.apply(this, arguments); }

function PolarRadiusAxis_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; }

function PolarRadiusAxis_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { PolarRadiusAxis_ownKeys(Object(source), true).forEach(function (key) { PolarRadiusAxis_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { PolarRadiusAxis_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function PolarRadiusAxis_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; }

function PolarRadiusAxis_objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = PolarRadiusAxis_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; }

function PolarRadiusAxis_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; }

function PolarRadiusAxis_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function PolarRadiusAxis_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function PolarRadiusAxis_createClass(Constructor, protoProps, staticProps) { if (protoProps) PolarRadiusAxis_defineProperties(Constructor.prototype, protoProps); if (staticProps) PolarRadiusAxis_defineProperties(Constructor, staticProps); return Constructor; }

function PolarRadiusAxis_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) PolarRadiusAxis_setPrototypeOf(subClass, superClass); }

function PolarRadiusAxis_setPrototypeOf(o, p) { PolarRadiusAxis_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return PolarRadiusAxis_setPrototypeOf(o, p); }

function PolarRadiusAxis_createSuper(Derived) { var hasNativeReflectConstruct = PolarRadiusAxis_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = PolarRadiusAxis_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = PolarRadiusAxis_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return PolarRadiusAxis_possibleConstructorReturn(this, result); }; }

function PolarRadiusAxis_possibleConstructorReturn(self, call) { if (call && (PolarRadiusAxis_typeof(call) === "object" || typeof call === "function")) { return call; } return PolarRadiusAxis_assertThisInitialized(self); }

function PolarRadiusAxis_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function PolarRadiusAxis_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function PolarRadiusAxis_getPrototypeOf(o) { PolarRadiusAxis_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return PolarRadiusAxis_getPrototypeOf(o); }

/**
 * @fileOverview The axis of polar coordinate system
 */






var PolarRadiusAxis_PolarRadiusAxis = /*#__PURE__*/function (_PureComponent) {
  PolarRadiusAxis_inherits(PolarRadiusAxis, _PureComponent);

  var _super = PolarRadiusAxis_createSuper(PolarRadiusAxis);

  function PolarRadiusAxis() {
    PolarRadiusAxis_classCallCheck(this, PolarRadiusAxis);

    return _super.apply(this, arguments);
  }

  PolarRadiusAxis_createClass(PolarRadiusAxis, [{
    key: "getTickValueCoord",
    value:
    /**
     * Calculate the coordinate of tick
     * @param  {Number} coordinate The radius of tick
     * @return {Object} (x, y)
     */
    function getTickValueCoord(_ref) {
      var coordinate = _ref.coordinate;
      var _this$props = this.props,
          angle = _this$props.angle,
          cx = _this$props.cx,
          cy = _this$props.cy;
      return Object(PolarUtils["e" /* polarToCartesian */])(cx, cy, coordinate, angle);
    }
  }, {
    key: "getTickTextAnchor",
    value: function getTickTextAnchor() {
      var orientation = this.props.orientation;
      var textAnchor;

      switch (orientation) {
        case 'left':
          textAnchor = 'end';
          break;

        case 'right':
          textAnchor = 'start';
          break;

        default:
          textAnchor = 'middle';
          break;
      }

      return textAnchor;
    }
  }, {
    key: "getViewBox",
    value: function getViewBox() {
      var _this$props2 = this.props,
          cx = _this$props2.cx,
          cy = _this$props2.cy,
          angle = _this$props2.angle,
          ticks = _this$props2.ticks;

      var maxRadiusTick = maxBy_default()(ticks, function (entry) {
        return entry.coordinate || 0;
      });

      var minRadiusTick = minBy_default()(ticks, function (entry) {
        return entry.coordinate || 0;
      });

      return {
        cx: cx,
        cy: cy,
        startAngle: angle,
        endAngle: angle,
        innerRadius: minRadiusTick.coordinate || 0,
        outerRadius: maxRadiusTick.coordinate || 0
      };
    }
  }, {
    key: "renderAxisLine",
    value: function renderAxisLine() {
      var _this$props3 = this.props,
          cx = _this$props3.cx,
          cy = _this$props3.cy,
          angle = _this$props3.angle,
          ticks = _this$props3.ticks,
          axisLine = _this$props3.axisLine,
          others = PolarRadiusAxis_objectWithoutProperties(_this$props3, ["cx", "cy", "angle", "ticks", "axisLine"]);

      var extent = ticks.reduce(function (result, entry) {
        return [Math.min(result[0], entry.coordinate), Math.max(result[1], entry.coordinate)];
      }, [Infinity, -Infinity]);
      var point0 = Object(PolarUtils["e" /* polarToCartesian */])(cx, cy, extent[0], angle);
      var point1 = Object(PolarUtils["e" /* polarToCartesian */])(cx, cy, extent[1], angle);

      var props = PolarRadiusAxis_objectSpread(PolarRadiusAxis_objectSpread(PolarRadiusAxis_objectSpread({}, Object(types["c" /* filterProps */])(others)), {}, {
        fill: 'none'
      }, Object(types["c" /* filterProps */])(axisLine)), {}, {
        x1: point0.x,
        y1: point0.y,
        x2: point1.x,
        y2: point1.y
      });

      return /*#__PURE__*/react_default.a.createElement("line", PolarRadiusAxis_extends({
        className: "recharts-polar-radius-axis-line"
      }, props));
    }
  }, {
    key: "renderTicks",
    value: function renderTicks() {
      var _this = this;

      var _this$props4 = this.props,
          ticks = _this$props4.ticks,
          tick = _this$props4.tick,
          angle = _this$props4.angle,
          tickFormatter = _this$props4.tickFormatter,
          stroke = _this$props4.stroke,
          others = PolarRadiusAxis_objectWithoutProperties(_this$props4, ["ticks", "tick", "angle", "tickFormatter", "stroke"]);

      var textAnchor = this.getTickTextAnchor();
      var axisProps = Object(types["c" /* filterProps */])(others);
      var customTickProps = Object(types["c" /* filterProps */])(tick);
      var items = ticks.map(function (entry, i) {
        var coord = _this.getTickValueCoord(entry);

        var tickProps = PolarRadiusAxis_objectSpread(PolarRadiusAxis_objectSpread(PolarRadiusAxis_objectSpread(PolarRadiusAxis_objectSpread({
          textAnchor: textAnchor,
          transform: "rotate(".concat(90 - angle, ", ").concat(coord.x, ", ").concat(coord.y, ")")
        }, axisProps), {}, {
          stroke: 'none',
          fill: stroke
        }, customTickProps), {}, {
          index: i
        }, coord), {}, {
          payload: entry
        });

        return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], PolarRadiusAxis_extends({
          className: "recharts-polar-radius-axis-tick",
          key: "tick-".concat(i) // eslint-disable-line react/no-array-index-key

        }, Object(types["b" /* adaptEventsOfChild */])(_this.props, entry, i)), PolarRadiusAxis.renderTickItem(tick, tickProps, tickFormatter ? tickFormatter(entry.value, i) : entry.value));
      });
      return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], {
        className: "recharts-polar-radius-axis-ticks"
      }, items);
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props5 = this.props,
          ticks = _this$props5.ticks,
          axisLine = _this$props5.axisLine,
          tick = _this$props5.tick;

      if (!ticks || !ticks.length) {
        return null;
      }

      return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], {
        className: "recharts-polar-radius-axis"
      }, axisLine && this.renderAxisLine(), tick && this.renderTicks(), Label["a" /* Label */].renderCallByParent(this.props, this.getViewBox()));
    }
  }], [{
    key: "renderTickItem",
    value: function renderTickItem(option, props, value) {
      var tickItem;

      if ( /*#__PURE__*/react_default.a.isValidElement(option)) {
        tickItem = /*#__PURE__*/react_default.a.cloneElement(option, props);
      } else if (isFunction_default()(option)) {
        tickItem = option(props);
      } else {
        tickItem = /*#__PURE__*/react_default.a.createElement(Text["a" /* Text */], PolarRadiusAxis_extends({}, props, {
          className: "recharts-polar-radius-axis-tick-value"
        }), value);
      }

      return tickItem;
    }
  }]);

  return PolarRadiusAxis;
}(react["PureComponent"]);
PolarRadiusAxis_PolarRadiusAxis.displayName = 'PolarRadiusAxis';
PolarRadiusAxis_PolarRadiusAxis.axisType = 'radiusAxis';
PolarRadiusAxis_PolarRadiusAxis.defaultProps = {
  type: 'number',
  radiusAxisId: 0,
  cx: 0,
  cy: 0,
  angle: 0,
  orientation: 'right',
  stroke: '#ccc',
  axisLine: true,
  tick: true,
  tickCount: 5,
  domain: [0, 'auto'],
  allowDataOverflow: false,
  scale: 'auto',
  allowDuplicatedCategory: true
};
// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isEqual.js
var isEqual = __webpack_require__(172);
var isEqual_default = /*#__PURE__*/__webpack_require__.n(isEqual);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/get.js
var get = __webpack_require__(113);
var get_default = /*#__PURE__*/__webpack_require__.n(get);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isPlainObject.js
var isPlainObject = __webpack_require__(676);
var isPlainObject_default = /*#__PURE__*/__webpack_require__.n(isPlainObject);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isNil.js
var isNil = __webpack_require__(48);
var isNil_default = /*#__PURE__*/__webpack_require__.n(isNil);

// EXTERNAL MODULE: ./node_modules/react-smooth/es6/index.js + 8 modules
var es6 = __webpack_require__(145);

// EXTERNAL MODULE: ./node_modules/recharts/es6/shape/Curve.js + 12 modules
var Curve = __webpack_require__(176);

// EXTERNAL MODULE: ./node_modules/recharts/es6/component/LabelList.js
var LabelList = __webpack_require__(222);

// EXTERNAL MODULE: ./node_modules/recharts/es6/component/Cell.js
var Cell = __webpack_require__(318);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/ReactUtils.js
var ReactUtils = __webpack_require__(68);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/Global.js
var Global = __webpack_require__(137);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/DataUtils.js
var DataUtils = __webpack_require__(24);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/ChartUtils.js + 10 modules
var ChartUtils = __webpack_require__(49);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/LogUtils.js
var LogUtils = __webpack_require__(175);

// CONCATENATED MODULE: ./node_modules/recharts/es6/polar/Pie.js
function Pie_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { Pie_typeof = function _typeof(obj) { return typeof obj; }; } else { Pie_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return Pie_typeof(obj); }







function Pie_extends() { Pie_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 Pie_extends.apply(this, arguments); }

function Pie_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; }

function Pie_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { Pie_ownKeys(Object(source), true).forEach(function (key) { Pie_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { Pie_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function Pie_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; }

function Pie_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function Pie_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function Pie_createClass(Constructor, protoProps, staticProps) { if (protoProps) Pie_defineProperties(Constructor.prototype, protoProps); if (staticProps) Pie_defineProperties(Constructor, staticProps); return Constructor; }

function Pie_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) Pie_setPrototypeOf(subClass, superClass); }

function Pie_setPrototypeOf(o, p) { Pie_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return Pie_setPrototypeOf(o, p); }

function Pie_createSuper(Derived) { var hasNativeReflectConstruct = Pie_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = Pie_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = Pie_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Pie_possibleConstructorReturn(this, result); }; }

function Pie_possibleConstructorReturn(self, call) { if (call && (Pie_typeof(call) === "object" || typeof call === "function")) { return call; } return Pie_assertThisInitialized(self); }

function Pie_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function Pie_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function Pie_getPrototypeOf(o) { Pie_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return Pie_getPrototypeOf(o); }

/**
 * @fileOverview Render sectors of a pie
 */

















var Pie_Pie = /*#__PURE__*/function (_PureComponent) {
  Pie_inherits(Pie, _PureComponent);

  var _super = Pie_createSuper(Pie);

  function Pie(props) {
    var _this;

    Pie_classCallCheck(this, Pie);

    _this = _super.call(this, props);
    _this.state = void 0;
    _this.id = Object(DataUtils["k" /* uniqueId */])('recharts-pie-');

    _this.handleAnimationEnd = function () {
      var onAnimationEnd = _this.props.onAnimationEnd;

      _this.setState({
        isAnimationFinished: true
      });

      if (isFunction_default()(onAnimationEnd)) {
        onAnimationEnd();
      }
    };

    _this.handleAnimationStart = function () {
      var onAnimationStart = _this.props.onAnimationStart;

      _this.setState({
        isAnimationFinished: false
      });

      if (isFunction_default()(onAnimationStart)) {
        onAnimationStart();
      }
    };

    _this.state = {
      isAnimationFinished: !props.isAnimationActive,
      prevIsAnimationActive: props.isAnimationActive,
      prevAnimationId: props.animationId
    };
    return _this;
  }

  Pie_createClass(Pie, [{
    key: "isActiveIndex",
    value: function isActiveIndex(i) {
      var activeIndex = this.props.activeIndex;

      if (Array.isArray(activeIndex)) {
        return activeIndex.indexOf(i) !== -1;
      }

      return i === activeIndex;
    }
  }, {
    key: "renderLabels",
    value: function renderLabels(sectors) {
      var isAnimationActive = this.props.isAnimationActive;

      if (isAnimationActive && !this.state.isAnimationFinished) {
        return null;
      }

      var _this$props = this.props,
          label = _this$props.label,
          labelLine = _this$props.labelLine,
          dataKey = _this$props.dataKey,
          valueKey = _this$props.valueKey;
      var pieProps = Object(types["c" /* filterProps */])(this.props);
      var customLabelProps = Object(types["c" /* filterProps */])(label);
      var customLabelLineProps = Object(types["c" /* filterProps */])(labelLine);
      var offsetRadius = label && label.offsetRadius || 20;
      var labels = sectors.map(function (entry, i) {
        var midAngle = (entry.startAngle + entry.endAngle) / 2;
        var endPoint = Object(PolarUtils["e" /* polarToCartesian */])(entry.cx, entry.cy, entry.outerRadius + offsetRadius, midAngle);

        var labelProps = Pie_objectSpread(Pie_objectSpread(Pie_objectSpread(Pie_objectSpread({}, pieProps), entry), {}, {
          stroke: 'none'
        }, customLabelProps), {}, {
          index: i,
          textAnchor: Pie.getTextAnchor(endPoint.x, entry.cx)
        }, endPoint);

        var lineProps = Pie_objectSpread(Pie_objectSpread(Pie_objectSpread(Pie_objectSpread({}, pieProps), entry), {}, {
          fill: 'none',
          stroke: entry.fill
        }, customLabelLineProps), {}, {
          index: i,
          points: [Object(PolarUtils["e" /* polarToCartesian */])(entry.cx, entry.cy, entry.outerRadius, midAngle), endPoint],
          key: 'line'
        });

        var realDataKey = dataKey; // TODO: compatible to lower versions

        if (isNil_default()(dataKey) && isNil_default()(valueKey)) {
          realDataKey = 'value';
        } else if (isNil_default()(dataKey)) {
          realDataKey = valueKey;
        }

        return (
          /*#__PURE__*/
          // eslint-disable-next-line react/no-array-index-key
          react_default.a.createElement(Layer["a" /* Layer */], {
            key: "label-".concat(i)
          }, labelLine && Pie.renderLabelLineItem(labelLine, lineProps), Pie.renderLabelItem(label, labelProps, Object(ChartUtils["w" /* getValueByDataKey */])(entry, realDataKey)))
        );
      });
      return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], {
        className: "recharts-pie-labels"
      }, labels);
    }
  }, {
    key: "renderSectorsStatically",
    value: function renderSectorsStatically(sectors) {
      var _this2 = this;

      var _this$props2 = this.props,
          activeShape = _this$props2.activeShape,
          blendStroke = _this$props2.blendStroke;
      return sectors.map(function (entry, i) {
        var sectorOptions = _this2.isActiveIndex(i) ? activeShape : null;

        var sectorProps = Pie_objectSpread(Pie_objectSpread({}, entry), {}, {
          stroke: blendStroke ? entry.fill : entry.stroke
        });

        return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], Pie_extends({
          className: "recharts-pie-sector"
        }, Object(types["b" /* adaptEventsOfChild */])(_this2.props, entry, i), {
          key: "sector-".concat(i) // eslint-disable-line react/no-array-index-key

        }), Pie.renderSectorItem(sectorOptions, sectorProps));
      });
    }
  }, {
    key: "renderSectorsWithAnimation",
    value: function renderSectorsWithAnimation() {
      var _this3 = this;

      var _this$props3 = this.props,
          sectors = _this$props3.sectors,
          isAnimationActive = _this$props3.isAnimationActive,
          animationBegin = _this$props3.animationBegin,
          animationDuration = _this$props3.animationDuration,
          animationEasing = _this$props3.animationEasing,
          animationId = _this$props3.animationId;
      var _this$state = this.state,
          prevSectors = _this$state.prevSectors,
          prevIsAnimationActive = _this$state.prevIsAnimationActive;
      return /*#__PURE__*/react_default.a.createElement(es6["a" /* default */], {
        begin: animationBegin,
        duration: animationDuration,
        isActive: isAnimationActive,
        easing: animationEasing,
        from: {
          t: 0
        },
        to: {
          t: 1
        },
        key: "pie-".concat(animationId, "-").concat(prevIsAnimationActive),
        onAnimationStart: this.handleAnimationStart,
        onAnimationEnd: this.handleAnimationEnd
      }, function (_ref) {
        var t = _ref.t;
        var stepData = [];
        var first = sectors && sectors[0];
        var curAngle = first.startAngle;
        sectors.forEach(function (entry, index) {
          var prev = prevSectors && prevSectors[index];
          var paddingAngle = index > 0 ? get_default()(entry, 'paddingAngle', 0) : 0;

          if (prev) {
            var angleIp = Object(DataUtils["f" /* interpolateNumber */])(prev.endAngle - prev.startAngle, entry.endAngle - entry.startAngle);

            var latest = Pie_objectSpread(Pie_objectSpread({}, entry), {}, {
              startAngle: curAngle + paddingAngle,
              endAngle: curAngle + angleIp(t) + paddingAngle
            });

            stepData.push(latest);
            curAngle = latest.endAngle;
          } else {
            var endAngle = entry.endAngle,
                startAngle = entry.startAngle;
            var interpolatorAngle = Object(DataUtils["f" /* interpolateNumber */])(0, endAngle - startAngle);
            var deltaAngle = interpolatorAngle(t);

            var _latest = Pie_objectSpread(Pie_objectSpread({}, entry), {}, {
              startAngle: curAngle + paddingAngle,
              endAngle: curAngle + deltaAngle + paddingAngle
            });

            stepData.push(_latest);
            curAngle = _latest.endAngle;
          }
        });
        return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], null, _this3.renderSectorsStatically(stepData));
      });
    }
  }, {
    key: "renderSectors",
    value: function renderSectors() {
      var _this$props4 = this.props,
          sectors = _this$props4.sectors,
          isAnimationActive = _this$props4.isAnimationActive;
      var prevSectors = this.state.prevSectors;

      if (isAnimationActive && sectors && sectors.length && (!prevSectors || !isEqual_default()(prevSectors, sectors))) {
        return this.renderSectorsWithAnimation();
      }

      return this.renderSectorsStatically(sectors);
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props5 = this.props,
          hide = _this$props5.hide,
          sectors = _this$props5.sectors,
          className = _this$props5.className,
          label = _this$props5.label,
          cx = _this$props5.cx,
          cy = _this$props5.cy,
          innerRadius = _this$props5.innerRadius,
          outerRadius = _this$props5.outerRadius,
          isAnimationActive = _this$props5.isAnimationActive;
      var isAnimationFinished = this.state.isAnimationFinished;

      if (hide || !sectors || !sectors.length || !Object(DataUtils["h" /* isNumber */])(cx) || !Object(DataUtils["h" /* isNumber */])(cy) || !Object(DataUtils["h" /* isNumber */])(innerRadius) || !Object(DataUtils["h" /* isNumber */])(outerRadius)) {
        return null;
      }

      var layerClass = classnames_default()('recharts-pie', className);
      return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], {
        className: layerClass
      }, this.renderSectors(), label && this.renderLabels(sectors), Label["a" /* Label */].renderCallByParent(this.props, null, false), (!isAnimationActive || isAnimationFinished) && LabelList["a" /* LabelList */].renderCallByParent(this.props, sectors, false));
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (prevState.prevIsAnimationActive !== nextProps.isAnimationActive) {
        return {
          prevIsAnimationActive: nextProps.isAnimationActive,
          prevAnimationId: nextProps.animationId,
          curSectors: nextProps.sectors,
          prevSectors: []
        };
      }

      if (nextProps.isAnimationActive && nextProps.animationId !== prevState.prevAnimationId) {
        return {
          prevAnimationId: nextProps.animationId,
          curSectors: nextProps.sectors,
          prevSectors: prevState.curSectors
        };
      }

      if (nextProps.sectors !== prevState.curSectors) {
        return {
          curSectors: nextProps.sectors
        };
      }

      return null;
    }
  }, {
    key: "getTextAnchor",
    value: function getTextAnchor(x, cx) {
      if (x > cx) {
        return 'start';
      }

      if (x < cx) {
        return 'end';
      }

      return 'middle';
    }
  }, {
    key: "renderLabelLineItem",
    value: function renderLabelLineItem(option, props) {
      if ( /*#__PURE__*/react_default.a.isValidElement(option)) {
        return /*#__PURE__*/react_default.a.cloneElement(option, props);
      }

      if (isFunction_default()(option)) {
        return option(props);
      }

      return /*#__PURE__*/react_default.a.createElement(Curve["a" /* Curve */], Pie_extends({}, props, {
        type: "linear",
        className: "recharts-pie-label-line"
      }));
    }
  }, {
    key: "renderLabelItem",
    value: function renderLabelItem(option, props, value) {
      if ( /*#__PURE__*/react_default.a.isValidElement(option)) {
        return /*#__PURE__*/react_default.a.cloneElement(option, props);
      }

      var label = value;

      if (isFunction_default()(option)) {
        label = option(props);

        if ( /*#__PURE__*/react_default.a.isValidElement(label)) {
          return label;
        }
      }

      return /*#__PURE__*/react_default.a.createElement(Text["a" /* Text */], Pie_extends({}, props, {
        alignmentBaseline: "middle",
        className: "recharts-pie-label-text"
      }), label);
    }
  }, {
    key: "renderSectorItem",
    value: function renderSectorItem(option, props) {
      if ( /*#__PURE__*/react_default.a.isValidElement(option)) {
        return /*#__PURE__*/react_default.a.cloneElement(option, props);
      }

      if (isFunction_default()(option)) {
        return option(props);
      }

      if (isPlainObject_default()(option)) {
        return /*#__PURE__*/react_default.a.createElement(Sector["a" /* Sector */], Pie_extends({}, props, option));
      }

      return /*#__PURE__*/react_default.a.createElement(Sector["a" /* Sector */], props);
    }
  }]);

  return Pie;
}(react["PureComponent"]);
Pie_Pie.displayName = 'Pie';
Pie_Pie.defaultProps = {
  stroke: '#fff',
  fill: '#808080',
  legendType: 'rect',
  cx: '50%',
  cy: '50%',
  startAngle: 0,
  endAngle: 360,
  innerRadius: 0,
  outerRadius: '80%',
  paddingAngle: 0,
  labelLine: true,
  hide: false,
  minAngle: 0,
  isAnimationActive: !Global["a" /* Global */].isSsr,
  animationBegin: 400,
  animationDuration: 1500,
  animationEasing: 'ease',
  nameKey: 'name',
  blendStroke: false
};

Pie_Pie.parseDeltaAngle = function (startAngle, endAngle) {
  var sign = Object(DataUtils["j" /* mathSign */])(endAngle - startAngle);
  var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);
  return sign * deltaAngle;
};

Pie_Pie.getRealPieData = function (item) {
  var _item$props = item.props,
      data = _item$props.data,
      children = _item$props.children;
  var presentationProps = Object(types["c" /* filterProps */])(item.props);
  var cells = Object(ReactUtils["a" /* findAllByType */])(children, Cell["a" /* Cell */].displayName);

  if (data && data.length) {
    return data.map(function (entry, index) {
      return Pie_objectSpread(Pie_objectSpread(Pie_objectSpread({
        payload: entry
      }, presentationProps), entry), cells && cells[index] && cells[index].props);
    });
  }

  if (cells && cells.length) {
    return cells.map(function (cell) {
      return Pie_objectSpread(Pie_objectSpread({}, presentationProps), cell.props);
    });
  }

  return [];
};

Pie_Pie.parseCoordinateOfPie = function (item, offset) {
  var top = offset.top,
      left = offset.left,
      width = offset.width,
      height = offset.height;
  var maxPieRadius = Object(PolarUtils["c" /* getMaxRadius */])(width, height);
  var cx = left + Object(DataUtils["d" /* getPercentValue */])(item.props.cx, width, width / 2);
  var cy = top + Object(DataUtils["d" /* getPercentValue */])(item.props.cy, height, height / 2);
  var innerRadius = Object(DataUtils["d" /* getPercentValue */])(item.props.innerRadius, maxPieRadius, 0);
  var outerRadius = Object(DataUtils["d" /* getPercentValue */])(item.props.outerRadius, maxPieRadius, maxPieRadius * 0.8);
  var maxRadius = item.props.maxRadius || Math.sqrt(width * width + height * height) / 2;
  return {
    cx: cx,
    cy: cy,
    innerRadius: innerRadius,
    outerRadius: outerRadius,
    maxRadius: maxRadius
  };
};

Pie_Pie.getComposedData = function (_ref2) {
  var item = _ref2.item,
      offset = _ref2.offset;
  var pieData = Pie_Pie.getRealPieData(item);

  if (!pieData || !pieData.length) {
    return null;
  }

  var _item$props2 = item.props,
      cornerRadius = _item$props2.cornerRadius,
      startAngle = _item$props2.startAngle,
      endAngle = _item$props2.endAngle,
      paddingAngle = _item$props2.paddingAngle,
      dataKey = _item$props2.dataKey,
      nameKey = _item$props2.nameKey,
      valueKey = _item$props2.valueKey,
      tooltipType = _item$props2.tooltipType;
  var minAngle = Math.abs(item.props.minAngle);
  var coordinate = Pie_Pie.parseCoordinateOfPie(item, offset);
  var deltaAngle = Pie_Pie.parseDeltaAngle(startAngle, endAngle);
  var absDeltaAngle = Math.abs(deltaAngle);
  var realDataKey = dataKey;

  if (isNil_default()(dataKey) && isNil_default()(valueKey)) {
    Object(LogUtils["a" /* warn */])(false, "Use \"dataKey\" to specify the value of pie,\n      the props \"valueKey\" will be deprecated in 1.1.0");
    realDataKey = 'value';
  } else if (isNil_default()(dataKey)) {
    Object(LogUtils["a" /* warn */])(false, "Use \"dataKey\" to specify the value of pie,\n      the props \"valueKey\" will be deprecated in 1.1.0");
    realDataKey = valueKey;
  }

  var notZeroItemCount = pieData.filter(function (entry) {
    return Object(ChartUtils["w" /* getValueByDataKey */])(entry, realDataKey, 0) !== 0;
  }).length;
  var totalPadingAngle = (absDeltaAngle >= 360 ? notZeroItemCount : notZeroItemCount - 1) * paddingAngle;
  var realTotalAngle = absDeltaAngle - notZeroItemCount * minAngle - totalPadingAngle;
  var sum = pieData.reduce(function (result, entry) {
    var val = Object(ChartUtils["w" /* getValueByDataKey */])(entry, realDataKey, 0);
    return result + (Object(DataUtils["h" /* isNumber */])(val) ? val : 0);
  }, 0);
  var sectors;

  if (sum > 0) {
    var prev;
    sectors = pieData.map(function (entry, i) {
      var val = Object(ChartUtils["w" /* getValueByDataKey */])(entry, realDataKey, 0);
      var name = Object(ChartUtils["w" /* getValueByDataKey */])(entry, nameKey, i);
      var percent = (Object(DataUtils["h" /* isNumber */])(val) ? val : 0) / sum;
      var tempStartAngle;

      if (i) {
        tempStartAngle = prev.endAngle + Object(DataUtils["j" /* mathSign */])(deltaAngle) * paddingAngle * (val !== 0 ? 1 : 0);
      } else {
        tempStartAngle = startAngle;
      }

      var tempEndAngle = tempStartAngle + Object(DataUtils["j" /* mathSign */])(deltaAngle) * ((val !== 0 ? minAngle : 0) + percent * realTotalAngle);
      var midAngle = (tempStartAngle + tempEndAngle) / 2;
      var middleRadius = (coordinate.innerRadius + coordinate.outerRadius) / 2;
      var tooltipPayload = [{
        name: name,
        value: val,
        payload: entry,
        dataKey: realDataKey,
        type: tooltipType
      }];
      var tooltipPosition = Object(PolarUtils["e" /* polarToCartesian */])(coordinate.cx, coordinate.cy, middleRadius, midAngle);
      prev = Pie_objectSpread(Pie_objectSpread(Pie_objectSpread({
        percent: percent,
        cornerRadius: cornerRadius,
        name: name,
        tooltipPayload: tooltipPayload,
        midAngle: midAngle,
        middleRadius: middleRadius,
        tooltipPosition: tooltipPosition
      }, entry), coordinate), {}, {
        value: Object(ChartUtils["w" /* getValueByDataKey */])(entry, realDataKey),
        startAngle: tempStartAngle,
        endAngle: tempEndAngle,
        payload: entry,
        paddingAngle: Object(DataUtils["j" /* mathSign */])(deltaAngle) * paddingAngle
      });
      return prev;
    });
  }

  return Pie_objectSpread(Pie_objectSpread({}, coordinate), {}, {
    sectors: sectors,
    data: pieData
  });
};
// CONCATENATED MODULE: ./node_modules/recharts/es6/chart/PieChart.js
/**
 * @fileOverview Pie Chart
 */





var PieChart = Object(generateCategoricalChart["a" /* generateCategoricalChart */])({
  chartName: 'PieChart',
  GraphicalChild: Pie_Pie,
  validateTooltipEventTypes: ['item'],
  defaultTooltipEventType: 'item',
  legendContent: 'children',
  axisComponents: [{
    axisType: 'angleAxis',
    AxisComp: PolarAngleAxis_PolarAngleAxis
  }, {
    axisType: 'radiusAxis',
    AxisComp: PolarRadiusAxis_PolarRadiusAxis
  }],
  formatAxisMap: PolarUtils["b" /* formatAxisMap */],
  defaultProps: {
    layout: 'centric',
    startAngle: 0,
    endAngle: 360,
    cx: '50%',
    cy: '50%',
    innerRadius: 0,
    outerRadius: '80%'
  }
});
// EXTERNAL MODULE: ./node_modules/antd/lib/modal/style/index.js
var style = __webpack_require__(88);

// EXTERNAL MODULE: ./node_modules/antd/lib/modal/index.js
var modal = __webpack_require__(55);
var modal_default = /*#__PURE__*/__webpack_require__.n(modal);

// EXTERNAL MODULE: ./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js + 3 modules
var styled_base_browser_esm = __webpack_require__(6);

// EXTERNAL MODULE: ./src/js/constants/themes.js
var themes = __webpack_require__(18);

// CONCATENATED MODULE: ./src/js/components/Listings/styled.js
var StoreCompositionWrapper=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e4ulpp80",label:"StoreCompositionWrapper"})( true?{name:"wr4k6r",styles:"max-width:356px;padding:0 20px;"}:undefined);var Title=Object(styled_base_browser_esm["a" /* default */])("h2",{target:"e4ulpp81",label:"Title"})("font-size:",function(_ref){var theme=_ref.theme;return theme.fontSize.small;},";font-weight:500;color:",function(_ref2){var theme=_ref2.theme;return theme.colors.greyDark;},";text-transform:uppercase;margin:0;"+( true?"":undefined));var PieValue=Object(styled_base_browser_esm["a" /* default */])("text",{target:"e4ulpp82",label:"PieValue"})("font-size:29px;font-family:'Stolzl-Thin';font-weight:100;line-height:0.62;fill:",function(_ref3){var theme=_ref3.theme;return theme.colors.blackSecondary;},";stroke:none;"+( true?"":undefined));var ItemPriceRange=Object(styled_base_browser_esm["a" /* default */])("text",{target:"e4ulpp83",label:"ItemPriceRange"})("opacity:",function(_ref4){var hovering=_ref4.hovering;return hovering?'1':'0';},";transition:all .3s ease-in-out;font-size:",function(_ref5){var theme=_ref5.theme;return theme.fontSize.small;},";fill:",function(_ref6){var theme=_ref6.theme;return theme.colors.greyDark;},";"+( true?"":undefined));var PercentsValue=Object(styled_base_browser_esm["a" /* default */])("text",{target:"e4ulpp84",label:"PercentsValue"})("transition:all .2s ease-in-out;font-size:",function(_ref7){var theme=_ref7.theme;return theme.fontSize.large;},";fill:",function(_ref8){var theme=_ref8.theme;return theme.colors.blackSecondary;},";font-family:'Stolzl-Thin';"+( true?"":undefined));var ValuesWrapper=Object(styled_base_browser_esm["a" /* default */])("g",{target:"e4ulpp85",label:"ValuesWrapper"})("cursor:pointer;fill:",themes["c" /* buttonNormal */],";&:hover{&>text{fill:",themes["b" /* buttonHover */],";}}"+( true?"":undefined));var styled_CustomModalTemplate=function CustomModalTemplate(props){return Object(core_browser_esm["c" /* jsx */])(modal_default.a,Object(esm_extends["a" /* default */])({},props,{zIndex:1300}),props.children);};var CloseButtonContainer=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e4ulpp86",label:"CloseButtonContainer"})( true?{name:"1g5wkp5",styles:"width:100%;position:relative;& > span{position:absolute;margin:15px;right:0;top:0;}"}:undefined);var CustomModal=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])(styled_CustomModalTemplate,{target:"e4ulpp87",label:"CustomModal"})( true?{name:"1t5h0ro",styles:"height:100%;top:0;display:flex;flex-direction:column;justify-content:center;transition:width 0.5s;padding:0;& .ant-modal-body{padding:0;border-radius:0;height:100%;}"}:undefined);var PopUpBody=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e4ulpp88",label:"PopUpBody"})( true?{name:"1say26m",styles:"min-height:300px;display:flex;flex-direction:column;justify-content:space-between;padding:3rem 1.8rem;"}:undefined);var MessageBody=Object(styled_base_browser_esm["a" /* default */])("span",{target:"e4ulpp89",label:"MessageBody"})( true?{name:"j7i32j",styles:"white-space:pre-line;margin:15px 0px;text-align:center;line-height:2;font-size:16px;color:#27344c;"}:undefined);
// EXTERNAL MODULE: ./src/js/constants/theme.js
var theme = __webpack_require__(28);

// CONCATENATED MODULE: ./src/js/components/Listings/StoreComposition.js
var COLORS=[theme["a" /* colors */].blueMed,theme["a" /* colors */].lightWhite,theme["a" /* colors */].blueLight,theme["a" /* colors */].blueDark,theme["a" /* colors */].greyMid];var StoreComposition_Shape=/*#__PURE__*/function(_React$Component){Object(inherits["a" /* default */])(Shape,_React$Component);function Shape(props){var _this;Object(classCallCheck["a" /* default */])(this,Shape);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(Shape).call(this,props));_this.getPriceRange=function(payload){// const min = payload.min ? `$${payload.min} <` : '';
// const max = payload.max ? `< $${payload.max}` : '';
// return `${min} ${label} ${max}`;
var priceRange;if(!payload.min&&payload.max){priceRange="Items under $".concat(payload.max);}else if(!payload.max&&payload.min){priceRange="Items over $".concat(payload.min);}else{priceRange="Items between $".concat(payload.min," - $").concat(payload.max);}return priceRange;};_this.state={hovering:0};return _this;}Object(createClass["a" /* default */])(Shape,[{key:"handleMouseOver",value:function handleMouseOver(id){this.setState({hovering:id});}},{key:"handleMouseOut",value:function handleMouseOut(){this.setState({hovering:0});}},{key:"render",value:function render(){var _this2=this;var _this$props=this.props,cx=_this$props.cx,cy=_this$props.cy,midAngle=_this$props.midAngle,innerRadius=_this$props.innerRadius,outerRadius=_this$props.outerRadius,startAngle=_this$props.startAngle,endAngle=_this$props.endAngle,fill=_this$props.fill,payload=_this$props.payload,label=_this$props.label;var hovering=this.state.hovering;var RADIAN=Math.PI/180;var sin=Math.sin(-RADIAN*midAngle);var cos=Math.cos(-RADIAN*midAngle);var sx=cx+(outerRadius+5)*cos;var sy=cy+(outerRadius+5)*sin;var mx=cx+(outerRadius+20)*cos;var my=cy+(outerRadius+20)*sin;var ex=mx+(cos>=0?1:-1)*20;var ey=my;var textAnchor=cos>=0?'start':'end';var priceRange=this.getPriceRange(payload,label);return Object(core_browser_esm["c" /* jsx */])("g",null,Object(core_browser_esm["c" /* jsx */])(PieValue,{x:cx,y:cy,dy:9,textAnchor:"middle"},payload.id===1&&'100%'),Object(core_browser_esm["c" /* jsx */])(Sector["a" /* Sector */],{cx:cx,cy:cy,innerRadius:innerRadius,outerRadius:outerRadius,startAngle:startAngle,endAngle:endAngle,fill:fill}),Object(core_browser_esm["c" /* jsx */])("path",{d:"M".concat(sx,",").concat(sy,"L").concat(mx,",").concat(my,"L").concat(ex,",").concat(ey),stroke:fill,fill:"none"}),Object(core_browser_esm["c" /* jsx */])("circle",{cx:ex,cy:ey,r:2,fill:fill,stroke:"none"}),Object(core_browser_esm["c" /* jsx */])(ValuesWrapper,{onMouseOver:function onMouseOver(){return _this2.handleMouseOver(payload.id);},onMouseOut:function onMouseOut(){return _this2.handleMouseOut();},onFocus:function onFocus(){},onBlur:function onBlur(){}},Object(core_browser_esm["c" /* jsx */])(ItemPriceRange,{x:ex+(cos>=0?1:-1)*12,y:ey,textAnchor:textAnchor,hovering:hovering&&hovering===payload.id},priceRange),Object(core_browser_esm["c" /* jsx */])(PercentsValue,{x:ex+(cos>=0?1:-1)*12,y:ey,dy:8,transform:hovering&&hovering===payload.id?"translate(0 10)":"",textAnchor:textAnchor},payload.currentPercents,"%")));}}]);return Shape;}(react_default.a.Component);var StoreComposition_StoreComposition=function StoreComposition(_ref){var data=_ref.data;var actualData=data.filter(function(_ref2){var currentPercents=_ref2.currentPercents;return currentPercents!==0;});return Object(core_browser_esm["c" /* jsx */])(StoreCompositionWrapper,null,Object(core_browser_esm["c" /* jsx */])(Title,null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"listingsPage.storeComposition"})),Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"listingsPage.itemPrice"},function(label){return Object(core_browser_esm["c" /* jsx */])(PieChart,{width:540,height:180},Object(core_browser_esm["c" /* jsx */])(Pie_Pie,{activeIndex:actualData.map(function(el,key){return key;}),activeShape:function activeShape(props){return Object(core_browser_esm["c" /* jsx */])(StoreComposition_Shape,Object(esm_extends["a" /* default */])({},props,{label:label}));},data:actualData,cx:"50%",cy:"50%",innerRadius:38,outerRadius:50,fill:"#8884d8",dataKey:"currentPercents"},actualData.map(function(_ref3,index){var currentPercents=_ref3.currentPercents;return Object(core_browser_esm["c" /* jsx */])(Cell["a" /* Cell */],{key:currentPercents,fill:COLORS[index%COLORS.length]});})));}));};
// EXTERNAL MODULE: ./node_modules/antd/lib/pagination/style/index.js
var pagination_style = __webpack_require__(307);

// EXTERNAL MODULE: ./node_modules/antd/lib/pagination/index.js
var pagination = __webpack_require__(224);
var pagination_default = /*#__PURE__*/__webpack_require__.n(pagination);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 3 modules
var toConsumableArray = __webpack_require__(53);

// EXTERNAL MODULE: ./node_modules/@emotion/css/dist/css.browser.esm.js
var css_browser_esm = __webpack_require__(90);

// EXTERNAL MODULE: ./node_modules/lodash/cloneDeep.js
var cloneDeep = __webpack_require__(679);
var cloneDeep_default = /*#__PURE__*/__webpack_require__.n(cloneDeep);

// EXTERNAL MODULE: ./node_modules/lodash/isEqual.js
var lodash_isEqual = __webpack_require__(147);
var lodash_isEqual_default = /*#__PURE__*/__webpack_require__.n(lodash_isEqual);

// EXTERNAL MODULE: ./node_modules/mobx-state-tree/dist/mobx-state-tree.module.js
var mobx_state_tree_module = __webpack_require__(1);

// EXTERNAL MODULE: ./src/js/components/common/Table/index.js + 1 modules
var Table = __webpack_require__(219);

// EXTERNAL MODULE: ./node_modules/antd/lib/popover/style/index.js
var popover_style = __webpack_require__(95);

// EXTERNAL MODULE: ./node_modules/antd/lib/popover/index.js
var popover = __webpack_require__(44);
var popover_default = /*#__PURE__*/__webpack_require__.n(popover);

// EXTERNAL MODULE: ./node_modules/moment/moment.js
var moment = __webpack_require__(23);
var moment_default = /*#__PURE__*/__webpack_require__.n(moment);

// EXTERNAL MODULE: ./node_modules/antd/lib/dropdown/style/index.js
var dropdown_style = __webpack_require__(363);

// EXTERNAL MODULE: ./node_modules/antd/lib/dropdown/index.js
var dropdown = __webpack_require__(203);
var dropdown_default = /*#__PURE__*/__webpack_require__.n(dropdown);

// EXTERNAL MODULE: ./node_modules/antd/lib/menu/style/index.js
var menu_style = __webpack_require__(197);

// EXTERNAL MODULE: ./node_modules/antd/lib/menu/index.js
var menu = __webpack_require__(73);
var menu_default = /*#__PURE__*/__webpack_require__.n(menu);

// EXTERNAL MODULE: ./src/js/components/common/Checkbox/index.js
var Checkbox = __webpack_require__(114);

// EXTERNAL MODULE: ./src/js/components/common/IconSvg/index.js
var IconSvg = __webpack_require__(14);

// CONCATENATED MODULE: ./src/js/components/Listings/Table/ItemsHeaderCell.js
var ItemsHeaderCell_ref= true?{name:"1q1e332-ItemsHeaderCell",styles:"margin-left:7px;text-align:left;label:ItemsHeaderCell;"}:undefined;var ItemsHeaderCell_ref2= true?{name:"1iemji7-ItemsHeaderCell",styles:"display:inline-block;margin-left:7px;label:ItemsHeaderCell;"}:undefined;var ItemsHeaderCell_ref3= true?{name:"xrwlvj-ItemsHeaderCell",styles:"cursor:pointer;label:ItemsHeaderCell;"}:undefined;var ItemsHeaderCell_ref4= true?{name:"1iemji7-ItemsHeaderCell",styles:"display:inline-block;margin-left:7px;label:ItemsHeaderCell;"}:undefined;var ItemsHeaderCell_ref5= true?{name:"xrwlvj-ItemsHeaderCell",styles:"cursor:pointer;label:ItemsHeaderCell;"}:undefined;var ItemsHeaderCell_ItemsHeaderCell=function ItemsHeaderCell(_ref6){var listingsPageStore=_ref6.listingsPageStore,localeStore=_ref6.localeStore;var allOrdersChecked=listingsPageStore.allOrdersChecked,toggleCheckedAllOrders=listingsPageStore.toggleCheckedAllOrders,allPagesChecked=listingsPageStore.allPagesChecked,setAllPagesChecked=listingsPageStore.setAllPagesChecked,selectedItemsCount=listingsPageStore.selectedItemsCount,limit=listingsPageStore.limit,setLimit=listingsPageStore.setLimit;var longText=localeStore.isEL||localeStore.isBG||localeStore.isJA||localeStore.isFIL;return Object(core_browser_esm["c" /* jsx */])("div",{css:ItemsHeaderCell_ref},Object(core_browser_esm["c" /* jsx */])(Checkbox["a" /* default */],{checked:allOrdersChecked&&allPagesChecked,onChange:function onChange(){toggleCheckedAllOrders(!allOrdersChecked);setAllPagesChecked(false);},table:true,indeterminate:!!selectedItemsCount}),Object(core_browser_esm["c" /* jsx */])("div",{className:"widget-HeaderCell__value",css:ItemsHeaderCell_ref2},Object(core_browser_esm["c" /* jsx */])(dropdown_default.a,{trigger:['click'],overlay:Object(core_browser_esm["c" /* jsx */])(menu_default.a,null,Object(core_browser_esm["c" /* jsx */])(menu_default.a.Item,{onClick:function onClick(){toggleCheckedAllOrders(true);setAllPagesChecked(true);},css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("font-weight:",allPagesChecked?'bold':'normal',";label:ItemsHeaderCell;"+( true?"":undefined)),key:"select-all"},"All"),Object(core_browser_esm["c" /* jsx */])(menu_default.a.Item,{onClick:function onClick(){toggleCheckedAllOrders(true);setAllPagesChecked(false);},css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("font-weight:",allOrdersChecked&&!allPagesChecked?'bold':'normal',";label:ItemsHeaderCell;"+( true?"":undefined)),key:"select-this-page"},"This Page"))},Object(core_browser_esm["c" /* jsx */])("span",{css:ItemsHeaderCell_ref3},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"more-arrow",size:15})))),Object(core_browser_esm["c" /* jsx */])("span",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("margin-left:20px;",longText&&'font-size: 10px;',"label:ItemsHeaderCell;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.itemsPerPage"}),":"),Object(core_browser_esm["c" /* jsx */])("div",{className:"widget-HeaderCell__value",css:ItemsHeaderCell_ref4},Object(core_browser_esm["c" /* jsx */])(dropdown_default.a,{trigger:['click'],overlay:Object(core_browser_esm["c" /* jsx */])(menu_default.a,null,Object(core_browser_esm["c" /* jsx */])(menu_default.a.Item,{onClick:function onClick(){setLimit(25);},css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("font-weight:",limit===25?'bold':'normal',";label:ItemsHeaderCell;"+( true?"":undefined)),key:"25-per-page"},"25"),Object(core_browser_esm["c" /* jsx */])(menu_default.a.Item,{onClick:function onClick(){setLimit(50);},css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("font-weight:",limit===50?'bold':'normal',";label:ItemsHeaderCell;"+( true?"":undefined)),key:"50-per-page"},"50"),Object(core_browser_esm["c" /* jsx */])(menu_default.a.Item,{onClick:function onClick(){setLimit(100);},css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("font-weight:",limit===100?'bold':'normal',";label:ItemsHeaderCell;"+( true?"":undefined)),key:"100-per-page"},"100"))},Object(core_browser_esm["c" /* jsx */])("div",{css:ItemsHeaderCell_ref5},Object(core_browser_esm["c" /* jsx */])("div",{className:"widget-HeaderCell__value",css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("display:inline-block;margin-right:7px;background:",constants["a" /* colors */].whiteBackground,";padding:3px;border:1px solid ",constants["a" /* colors */].greyInputBorder,";border-radius:3px;user-select:none;label:ItemsHeaderCell;"+( true?"":undefined))},limit),Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"more-arrow",size:15})))));};/* harmony default export */ var Table_ItemsHeaderCell = (Object(index_module["b" /* inject */])('listingsPageStore')(Object(index_module["b" /* inject */])('localeStore')(Object(index_module["c" /* observer */])(ItemsHeaderCell_ItemsHeaderCell))));
// EXTERNAL MODULE: ./node_modules/lodash/fp/getOr.js
var getOr = __webpack_require__(82);
var getOr_default = /*#__PURE__*/__webpack_require__.n(getOr);

// EXTERNAL MODULE: ./node_modules/react-router/es/index.js + 32 modules
var es = __webpack_require__(50);

// EXTERNAL MODULE: ./src/js/constants/listings/index.js + 3 modules
var listings = __webpack_require__(146);

// EXTERNAL MODULE: ./src/js/components/common/Input/index.js
var Input = __webpack_require__(46);

// EXTERNAL MODULE: ./src/js/utils/formatter.js
var utils_formatter = __webpack_require__(193);

// CONCATENATED MODULE: ./src/js/components/Listings/Table/ItemsCell.js
var ItemsCell_ref= true?{name:"1xzpb4i-itemPicture",styles:"margin-right:11px;label:itemPicture;"}:undefined;var ItemsCell_ref2= true?{name:"1p7izdi-itemPicture",styles:"width:37px;display:inline-block;label:itemPicture;"}:undefined;var ItemsCell_ref3= true?{name:"1r4fau4-ItemsCell",styles:"margin-left:11px;margin-right:11px;label:ItemsCell;"}:undefined;var ItemsCell_ItemsCell=function ItemsCell(_ref4){var itemId=_ref4.itemId,picture=_ref4.picture,status=_ref4.status,monitoringStatus=_ref4.monitoringStatus,isVariation=_ref4.isVariation,title=_ref4.title,_ref4$listingsPageSto=_ref4.listingsPageStore,isEditMode=_ref4$listingsPageSto.isEditMode,tableDataAsObject=_ref4$listingsPageSto.tableDataAsObject,toggleCheckedOrder=_ref4$listingsPageSto.toggleCheckedOrder,ifItemChecked=_ref4$listingsPageSto.ifItemChecked,getTitleEditValue=_ref4$listingsPageSto.getTitleEditValue,setTitle=_ref4$listingsPageSto.setTitle,setAllPagesChecked=_ref4$listingsPageSto.setAllPagesChecked,allPagesChecked=_ref4$listingsPageSto.allPagesChecked;if(!isVariation&&!tableDataAsObject[itemId]){return null;}var rowColor=function rowColor(){if(monitoringStatus===listings["b" /* monitoringStatusString */][0])// not monitored
return listings["c" /* monitoringStatuses */][monitoringStatus].color;return getOr_default()(theme["a" /* colors */].mainBackground,'color',listings["f" /* statuses */][status]);};var itemTitle=isVariation?title:getTitleEditValue(itemId);var itemPicture=picture?Object(core_browser_esm["c" /* jsx */])(popover_default.a,{content:Object(core_browser_esm["c" /* jsx */])("img",{src:picture.includes('images/W')?Object(utils_formatter["a" /* formatImageUrl */])(picture):picture,alt:"description",width:214,height:214}),title:"",trigger:"hover",placement:"top"},Object(core_browser_esm["c" /* jsx */])("img",{src:picture.includes('images/W')?Object(utils_formatter["a" /* formatImageUrl */])(picture):picture,alt:"description",width:26,height:24,css:ItemsCell_ref})):Object(core_browser_esm["c" /* jsx */])("div",{css:ItemsCell_ref2});return Object(core_browser_esm["c" /* jsx */])(react["Fragment"],null,Object(core_browser_esm["c" /* jsx */])(styled["c" /* CellContainer */],{isVariation:isVariation,color:rowColor()},!isVariation&&Object(core_browser_esm["c" /* jsx */])(Checkbox["a" /* default */],{checked:ifItemChecked(itemId),onChange:function onChange(e){toggleCheckedOrder(itemId,e.target.checked,status==='ended');if(allPagesChecked&&!e.target.checked){setAllPagesChecked(false);}},table:true,css:ItemsCell_ref3}),isEditMode&&!isVariation?Object(core_browser_esm["c" /* jsx */])("div",{style:{cursor:isVariation?'default':'pointer',textDecoration:isVariation?'none':undefined,marginLeft:isVariation?'10px':''},css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(classes["d" /* text3 */],";:hover{color:inherit;}label:ItemsCell;"+( true?"":undefined))},itemPicture,Object(core_browser_esm["c" /* jsx */])(react["Fragment"],null,Object(core_browser_esm["c" /* jsx */])(Input["a" /* default */],{maxLength:80,value:itemTitle,onChange:function onChange(e){return setTitle(itemId,e.target.value);},onClick:function onClick(e){return e.stopPropagation();},width:"124px"}),' ')):Object(core_browser_esm["c" /* jsx */])(es["b" /* Link */],{onClick:function onClick(e){if(isVariation){e.preventDefault();}},style:{cursor:isVariation?'default':'pointer',textDecoration:isVariation?'none':undefined,marginLeft:isVariation?'10px':''},to:"/listings/single-item/".concat(itemId),css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(classes["d" /* text3 */],";:hover{color:inherit;}label:ItemsCell;"+( true?"":undefined))},itemPicture,Object(core_browser_esm["c" /* jsx */])("span",null,Object(core_browser_esm["c" /* jsx */])(popover_default.a,{content:itemTitle,title:"",trigger:"hover",placement:"top"},itemTitle.slice(0,15),itemTitle.length>10?'...':null)))));};/* harmony default export */ var Table_ItemsCell = (Object(index_module["b" /* inject */])('listingsPageStore')(Object(index_module["c" /* observer */])(ItemsCell_ItemsCell)));
// CONCATENATED MODULE: ./src/js/components/Listings/Table/SalePrice.js
var SalePrice_SalePrice=function SalePrice(_ref){var _ref$listingsPageStor=_ref.listingsPageStore,tableDataAsObject=_ref$listingsPageStor.tableDataAsObject,isEditMode=_ref$listingsPageStor.isEditMode,getSalePriceEditValue=_ref$listingsPageStor.getSalePriceEditValue,setSalePrice=_ref$listingsPageStor.setSalePrice,itemId=_ref.itemId,isVariation=_ref.isVariation,salePrice=_ref.salePrice;if(!isVariation&&!tableDataAsObject[itemId]){return null;}var price=isVariation?salePrice:getSalePriceEditValue(itemId);return Object(core_browser_esm["c" /* jsx */])(react["Fragment"],null,isEditMode&&!isVariation?Object(core_browser_esm["c" /* jsx */])(Input["a" /* default */],{value:price,width:"70px",onChange:function onChange(e){return setSalePrice(itemId,e.target.value);},onClick:function onClick(e){return e.stopPropagation();},type:"number",step:"0.0000001"}):salePrice);};/* harmony default export */ var Table_SalePrice = (Object(index_module["b" /* inject */])('listingsPageStore')(Object(index_module["c" /* observer */])(SalePrice_SalePrice)));
// EXTERNAL MODULE: ./src/js/components/common/Dropdown/index.js + 1 modules
var Dropdown = __webpack_require__(47);

// CONCATENATED MODULE: ./src/js/components/Listings/Table/TemplateEdit.js
var Option=Dropdown["a" /* default */].Option;var TemplateEdit_TemplateEdit=function TemplateEdit(_ref){var _ref$listingsPageStor=_ref.listingsPageStore,isEditMode=_ref$listingsPageStor.isEditMode,tableDataAsObject=_ref$listingsPageStor.tableDataAsObject,templateList=_ref$listingsPageStor.templateList,getTemplateEditValue=_ref$listingsPageStor.getTemplateEditValue,setTemplate=_ref$listingsPageStor.setTemplate,getTemplateName=_ref$listingsPageStor.getTemplateName,itemId=_ref.itemId,isVariation=_ref.isVariation,templateId=_ref.templateId;if(!isVariation&&!tableDataAsObject[itemId]){return null;}var templateName=isVariation?getTemplateName(templateId):getTemplateEditValue(itemId);return Object(core_browser_esm["c" /* jsx */])(react["Fragment"],null,isEditMode&&!isVariation?Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{value:templateName,onChange:function onChange(value){return setTemplate(itemId,value);},width:"110px"},templateList.map(function(_ref2){var name=_ref2.name,id=_ref2.id;return Object(core_browser_esm["c" /* jsx */])(Option,{key:id,value:id},name);})):templateName);};/* harmony default export */ var Table_TemplateEdit = (Object(index_module["b" /* inject */])('listingsPageStore')(Object(index_module["c" /* observer */])(TemplateEdit_TemplateEdit)));
// EXTERNAL MODULE: ./src/js/utils/formatMarketsUrl.js
var formatMarketsUrl = __webpack_require__(189);

// EXTERNAL MODULE: ./src/js/components/SettingTabs/APIConnect/styled.js
var APIConnect_styled = __webpack_require__(57);

// EXTERNAL MODULE: ./src/js/constants/transformToEnum.js
var transformToEnum = __webpack_require__(128);

// CONCATENATED MODULE: ./src/js/components/Listings/Table/columns.js
// import { text3 } from '../../../constants/classes';
var columns=[{key:'items',name:'Items',width:238,formatter:function formatter(_ref){var _ref$row=_ref.row,id=_ref$row.id,status=_ref$row.status,monitoringStatus=_ref$row.monitoringStatus,pictures=_ref$row.pictures,title=_ref$row.title,treeDepth=_ref$row.treeDepth;return Object(core_browser_esm["c" /* jsx */])(Table_ItemsCell,{isVariation:!!treeDepth,title:title,itemId:id,status:status,monitoringStatus:monitoringStatus,picture:pictures.length?pictures[0].url:''});},headerRenderer:Object(core_browser_esm["c" /* jsx */])(Table_ItemsHeaderCell,null)},{key:'listDate',name:'Creation Time',width:100,sortable:true,formatter:function formatter(_ref2){var _ref2$row=_ref2.row,listDate=_ref2$row.listDate,treeDepth=_ref2$row.treeDepth;return!treeDepth&&listDate?moment_default()(listDate).format('YYYY-MM-DD'):'';}},{key:'lastUpdatedDate',name:'Date Modified',// width: 100,
formatter:function formatter(_ref3){var _ref3$row=_ref3.row,lastUpdatedDate=_ref3$row.lastUpdatedDate,treeDepth=_ref3$row.treeDepth;return!treeDepth&&lastUpdatedDate?moment_default()(lastUpdatedDate).format('YYYY-MM-DD'):'';}},{key:'sourceMarketplaceId',name:'Source',width:52,sortable:true,formatter:function formatter(_ref4){var sourceMarketplaceId=_ref4.row.sourceMarketplaceId;return Object(core_browser_esm["c" /* jsx */])(APIConnect_styled["l" /* LogoContainer */],{marketPlaceName:transformToEnum["a" /* default */].MARKETSoldById[sourceMarketplaceId]});}},{key:'sourceItemCode',name:'Source Item Id',width:120,sortable:true,formatter:function formatter(_ref5){var _ref5$row=_ref5.row,sourceItemCode=_ref5$row.sourceItemCode,sourceMarketplaceId=_ref5$row.sourceMarketplaceId;return sourceItemCode?Object(core_browser_esm["c" /* jsx */])("a",{rel:"noopener noreferrer",target:"_blank",href:Object(formatMarketsUrl["b" /* formatOfferUrl */])(sourceItemCode,sourceMarketplaceId),css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(classes["d" /* text3 */],";text-decoration:underline;label:columns;"+( true?"":undefined))},sourceItemCode):'';}},{key:'destinationItemId',name:'Dest Item Id',width:110,sortable:true,formatter:function formatter(_ref6){var _ref6$row=_ref6.row,destinationItemUrl=_ref6$row.destinationItemUrl,destinationItemId=_ref6$row.destinationItemId;return Object(core_browser_esm["c" /* jsx */])("a",{rel:"noopener noreferrer",target:"_blank",href:destinationItemUrl,css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(classes["d" /* text3 */],";text-decoration:underline;label:columns;"+( true?"":undefined))},destinationItemId);}},{key:'sellerAccountName',name:'Account',width:100,sortable:true},{key:'salePrice',name:'Dest Price',width:70,sortable:true,formatter:function formatter(_ref7){var _ref7$row=_ref7.row,id=_ref7$row.id,treeDepth=_ref7$row.treeDepth,pricingStrategy=_ref7$row.pricingStrategy,sourceMarketplaceId=_ref7$row.sourceMarketplaceId;return Object(core_browser_esm["c" /* jsx */])(Table_SalePrice,{isVariation:!!treeDepth,itemId:id,salePrice:pricingStrategy?Object(numberCommaFormatter["c" /* commaFormatSourceMarketplace */])(pricingStrategy.salePrice,sourceMarketplaceId):0});}},{key:'sourcePrice',name:'Source Price',width:52,sortable:true,formatter:function formatter(_ref8){var _ref8$row=_ref8.row,pricingStrategy=_ref8$row.pricingStrategy,sourceMarketplaceId=_ref8$row.sourceMarketplaceId;return pricingStrategy?Object(numberCommaFormatter["c" /* commaFormatSourceMarketplace */])(pricingStrategy.sourcePrice,sourceMarketplaceId):0;}},{key:'profit',name:'Profit',width:45,sortable:true,formatter:function formatter(_ref9){var _ref9$row=_ref9.row,pricingStrategy=_ref9$row.pricingStrategy,sourceMarketplaceId=_ref9$row.sourceMarketplaceId;return pricingStrategy?Object(numberCommaFormatter["c" /* commaFormatSourceMarketplace */])(pricingStrategy.profit,sourceMarketplaceId):'';}},{key:'profit',name:'Profit in %',width:50,sortable:true,formatter:function formatter(_ref10){var pricingStrategy=_ref10.row.pricingStrategy;return pricingStrategy?"".concat(pricingStrategy.profitInPercents,"%"):'';}},{key:'breakEven',name:'Break Even',width:50,sortable:true,formatter:function formatter(_ref11){var pricingStrategy=_ref11.row.pricingStrategy;return pricingStrategy?"".concat(pricingStrategy.strategyBreakEven,"%"):'';}},{key:'timeLeftDays',name:'Time Left',width:50,sortable:true},{key:'withoutSalesDays',name:'Time Without Sale',width:65,sortable:true},{key:'status',name:'Item Status',// width: 90,
sortable:true,formatter:function formatter(_ref12){var status=_ref12.row.status;return Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"listingsPage.".concat(status)});}},{key:'quantity',name:'QTY',width:40,sortable:true},{key:'categoryName',name:'Category',sortable:false,width:100,formatter:function formatter(_ref13){var _categoryName$split$a;var _ref13$row=_ref13.row,categoryName=_ref13$row.categoryName,sourceMarketplaceId=_ref13$row.sourceMarketplaceId;return Object(core_browser_esm["c" /* jsx */])(popover_default.a,{content:categoryName,title:"",trigger:"hover",placement:"top"},(categoryName===null||categoryName===void 0?void 0:categoryName.length)>0&&sourceMarketplaceId.includes("AZ")?(_categoryName$split$a=categoryName.split("/").at(-2))===null||_categoryName$split$a===void 0?void 0:_categoryName$split$a.trim():categoryName);}},{key:'quantitySold',name:'Sold QTY',width:50,sortable:true},{key:'isMarketplace',name:'Is Marketplace',width:110,sortable:false,formatter:function formatter(_ref14){var isMarketplace=_ref14.row.isMarketplace;return isMarketplace?'True':'False';}},{key:'templateId',name:'Template',width:119,sortable:true,formatter:function formatter(_ref15){var _ref15$row=_ref15.row,templateId=_ref15$row.templateId,id=_ref15$row.id,treeDepth=_ref15$row.treeDepth;return Object(core_browser_esm["c" /* jsx */])(Table_TemplateEdit,{isVariation:!!treeDepth,templateId:templateId,itemId:id});}},{key:'monitoringStatus',name:'Monitoring Status',// width: 90,
sortable:true,formatter:function formatter(_ref16){var monitoringStatus=_ref16.row.monitoringStatus;return Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"listingsPage.".concat(monitoringStatus)});}}];/* harmony default export */ var Table_columns = (columns);
// CONCATENATED MODULE: ./src/js/components/Listings/Table/ListingsTable.js
var _dec,_dec2,_class;var sortColumnIds={listDate:0,startDate:1,// not in the table yet
sourceMarketplaceId:2,destinationItemId:3,sellerAccountName:4,// sorts by id not name
quantity:5,salePrice:6,sourcePrice:7,profit:8,sourceMarketplaceName:9};var isDescendingMap={DESC:true,ASC:false};var ListingsTable_ref= true?{name:"53e52m-ListingsTable",styles:"text-align:center;padding:20px 0;label:ListingsTable;"}:undefined;var ListingsTable_ref2= true?{name:"1gdu5pv-ListingsTable",styles:"font-family:'Stolzl',sans-serif;label:ListingsTable;"}:undefined;var ListingsTable_ListingsTable=(_dec=Object(index_module["b" /* inject */])('routingStore'),_dec2=Object(index_module["b" /* inject */])('listingsPageStore'),_dec(_class=_dec2(_class=Object(index_module["c" /* observer */])(_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(ListingsTable,_Component);function ListingsTable(props){var _this;Object(classCallCheck["a" /* default */])(this,ListingsTable);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(ListingsTable).call(this,props));_this.onCellExpand=function(args){return function(_ref3){var expandedRows=_ref3.expandedRows,rows=_ref3.rows;var rowsCopy=cloneDeep_default()(rows);var rowKey=args.rowData.id;var rowIndex=rowsCopy.findIndex(function(r){return r.id===rowKey;});var subRows=args.expandArgs.children;if(expandedRows&&!expandedRows[rowKey]){expandedRows[rowKey]=true;rowsCopy.splice.apply(rowsCopy,[rowIndex+1,0].concat(Object(toConsumableArray["a" /* default */])(subRows)));}else if(expandedRows[rowKey]){expandedRows[rowKey]=false;rowsCopy.splice(rowIndex+1,subRows.length);}return{expandedRows:expandedRows,rows:rowsCopy};};};_this.getSubRowDetails=function(expandedRows){return function(rowItem){if(!rowItem||Object(mobx_state_tree_module["isStateTreeNode"])(rowItem)&&!Object(mobx_state_tree_module["isAlive"])(rowItem)){return{};}var isExpanded=Object.keys(expandedRows).length>0&&rowItem&&expandedRows[rowItem.id]?expandedRows[rowItem.id]:false;return{group:rowItem.variations&&rowItem.variations.length>0,expanded:isExpanded,children:rowItem.variations,field:'items',treeDepth:rowItem.treeDepth||0,siblingIndex:rowItem.variations?null:rowItem.id// numberSiblings: rowItem.variations ? null : 33,
};};};_this.reSort=function(column,direction){var _this$props$listingsP=_this.props.listingsPageStore,setSorting=_this$props$listingsP.setSorting,limit=_this$props$listingsP.limit;setSorting(sortColumnIds[column],isDescendingMap[direction]);_this.reInitializePage(1,limit);};_this.fetchNextPage=function(pg){var clearCheckedOrders=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var limit=_this.props.listingsPageStore.limit;_this.reInitializePage(pg,limit,clearCheckedOrders);};_this.isCurrentPath=function(path){return _this.props.routingStore.browserHistory.getCurrentLocation().pathname===path;};_this.state={rows:props.listingsPageStore.tableData||[],pageLimit:props.listingsPageStore.limit,// used only to keep track of page size changes from store
expandedRows:{}};_this.initializeLocationListener=_this.initializeLocationListener.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));_this.initMultiResult=_this.initMultiResult.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));return _this;}Object(createClass["a" /* default */])(ListingsTable,[{key:"componentDidMount",value:function componentDidMount(){var _this$props=this.props,browserHistory=_this$props.routingStore.browserHistory,_this$props$listingsP2=_this$props.listingsPageStore,filterValues=_this$props$listingsP2.filterValues,setMultiResult=_this$props$listingsP2.setMultiResult,isMultiResult=_this$props$listingsP2.isMultiResult;if(this.isCurrentPath('/listings/multiResult')){if(filterValues.discoveryId!==browserHistory.getCurrentLocation().query['discovery-id']){this.initMultiResult();}if(!isMultiResult){setMultiResult(true);}}else if(isMultiResult){setMultiResult(false);}this.initializeLocationListener();}},{key:"componentDidUpdate",value:function componentDidUpdate(prevProps){var _this$props2=this.props,limit=_this$props2.listingsPageStore.limit,currActiveFilters=_this$props2.activeFilters;var pageLimit=this.state.pageLimit;var prevActiveFilters=prevProps.activeFilters;var filtersChanged=!lodash_isEqual_default()(currActiveFilters,prevActiveFilters);if(pageLimit!==limit||filtersChanged){// issue here from dashboard redirect it conflicts with this
this.reInitializePage(1,limit);}this.blockExtension();}},{key:"componentWillUnmount",value:function componentWillUnmount(){var historyListener=this.state.historyListener;if(historyListener){historyListener();}}},{key:"blockExtension",value:function blockExtension(){var elem=window.document.getElementById('exportList');if(elem!==null){elem.addEventListener('click',function(event){event.preventDefault();event.stopImmediatePropagation();// console.log('blocked');
return false;},false);}}},{key:"reInitializePage",value:function reInitializePage(pg,limit){var clearCheckedOrdersFromPage=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;var _this$props$listingsP3=this.props.listingsPageStore,tableData=_this$props$listingsP3.tableData,toggleCheckedAllOrders=_this$props$listingsP3.toggleCheckedAllOrders,fetchNextPage=_this$props$listingsP3.fetchNextPage;this.setState({rows:tableData,expandedRows:{},pageLimit:limit},function(){if(clearCheckedOrdersFromPage){toggleCheckedAllOrders(false);}fetchNextPage(pg);});}},{key:"initMultiResult",value:function initMultiResult(){var _this$props3=this.props,browserHistory=_this$props3.routingStore.browserHistory,filterValues=_this$props3.listingsPageStore.filterValues;filterValues.setDiscoveryId(browserHistory.getCurrentLocation().query['discovery-id']);}},{key:"initializeLocationListener",value:function initializeLocationListener(){var _this2=this;var _this$props4=this.props,browserHistory=_this$props4.routingStore.browserHistory,_this$props4$listings=_this$props4.listingsPageStore,setMultiResult=_this$props4$listings.setMultiResult,isMultiResult=_this$props4$listings.isMultiResult,filterValues=_this$props4$listings.filterValues;this.setState({historyListener:browserHistory.listen(function(location){if(location.pathname==='/listings/multiResult'&&!isMultiResult){setMultiResult(true);_this2.initMultiResult();}else if(location.pathname==='/listings/table'&&isMultiResult){setMultiResult(false);filterValues.resetFilterValue();}})});}},{key:"render",value:function render(){var _this3=this;var _this$props$listingsP4=this.props.listingsPageStore,page=_this$props$listingsP4.page,totalResults=_this$props$listingsP4.totalResults,limit=_this$props$listingsP4.limit,allPagesChecked=_this$props$listingsP4.allPagesChecked;var rows=this.state.rows;return Object(core_browser_esm["c" /* jsx */])(react["Fragment"],null,Object(core_browser_esm["c" /* jsx */])("div",{css:ListingsTable_ref2},Object(core_browser_esm["c" /* jsx */])(Table["a" /* default */],{resetCellExpandButton:true,resetPadding:true,columns:Table_columns,rowGetter:function rowGetter(i){return rows[i];},rowsCount:rows.length,headerRowHeight:50,rowHeight:41,onGridSort:this.reSort,enableCellAutoFocus:false,getSubRowDetails:this.getSubRowDetails(this.state.expandedRows),onCellExpand:function onCellExpand(args){return _this3.setState(_this3.onCellExpand(args));},minHeight:480}),Object(core_browser_esm["c" /* jsx */])(pagination_default.a,{defaultCurrent:1,defaultPageSize:limit,pageSize:limit,current:page,onChange:function onChange(pg){return _this3.fetchNextPage(pg,allPagesChecked);},total:totalResults,css:ListingsTable_ref})));}}]);return ListingsTable;}(react["Component"]))||_class)||_class)||_class);
// EXTERNAL MODULE: ./node_modules/antd/lib/checkbox/style/index.js
var checkbox_style = __webpack_require__(134);

// EXTERNAL MODULE: ./node_modules/antd/lib/checkbox/index.js
var lib_checkbox = __webpack_require__(61);
var checkbox_default = /*#__PURE__*/__webpack_require__.n(lib_checkbox);

// EXTERNAL MODULE: ./node_modules/emotion-theming/dist/emotion-theming.browser.esm.js
var emotion_theming_browser_esm = __webpack_require__(187);

// EXTERNAL MODULE: ./src/js/components/common/CollapseBar/index.js + 1 modules
var CollapseBar = __webpack_require__(170);

// EXTERNAL MODULE: ./src/js/components/common/Multiselect/index.js + 2 modules
var Multiselect = __webpack_require__(174);

// EXTERNAL MODULE: ./src/js/components/common/TagBar/index.js + 1 modules
var TagBar = __webpack_require__(309);

// EXTERNAL MODULE: ./src/js/components/common/Radio/index.js + 1 modules
var Radio = __webpack_require__(195);

// EXTERNAL MODULE: ./src/js/utils/format-date.js
var format_date = __webpack_require__(168);

// EXTERNAL MODULE: ./src/js/components/common/Filters/index.js + 1 modules
var Filters = __webpack_require__(31);

// CONCATENATED MODULE: ./src/js/components/Listings/Toolbar/AdvancedSearch/AdvancedSearch.js
var AdvancedSearch_dec,AdvancedSearch_class;var AdvancedSearch_Option=Dropdown["a" /* default */].Option;var MultiOption=Multiselect["a" /* default */].Option;var RadioGroup=Radio["a" /* default */].Group;var inputWidth='60px';var ProfitRadio=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])(RadioGroup,{target:"e1ialn9w0",label:"ProfitRadio"})( true?{name:"rdxbpo",styles:"margin-top:12px;margin-left:-10px;align-self:center;"}:undefined);var Days={DAY:24,THREE:24*3,WEEK:24*7,MONTH:24*30};var buttonStyle= true?{name:"1mf79ux-buttonStyle",styles:"margin-top:10px;label:buttonStyle;"}:undefined;var AdvancedSearch_ref= true?{name:"1etxw33-AdvancedSearch",styles:"margin-left:-5px;label:AdvancedSearch;"}:undefined;var AdvancedSearch_AdvancedSearch=(AdvancedSearch_dec=Object(index_module["b" /* inject */])('listingsPageStore'),Object(emotion_theming_browser_esm["b" /* withTheme */])(AdvancedSearch_class=AdvancedSearch_dec(AdvancedSearch_class=Object(index_module["c" /* observer */])(AdvancedSearch_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(AdvancedSearch,_Component);function AdvancedSearch(){var _getPrototypeOf2;var _this;Object(classCallCheck["a" /* default */])(this,AdvancedSearch);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=Object(possibleConstructorReturn["a" /* default */])(this,(_getPrototypeOf2=Object(getPrototypeOf["a" /* default */])(AdvancedSearch)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.onEnter=function(e){var isAdvancedBarOpen=_this.props.listingsPageStore.isAdvancedBarOpen;if(e.keyCode===13&&isAdvancedBarOpen){_this.fetchAdvancedSearch();}};return _this;}Object(createClass["a" /* default */])(AdvancedSearch,[{key:"componentDidMount",value:function componentDidMount(){document.addEventListener('keydown',this.onEnter);}},{key:"componentWillUnmount",value:function componentWillUnmount(){document.removeEventListener('keydown',this.onEnter);}},{key:"fetchAdvancedSearch",value:function fetchAdvancedSearch(){var resetActiveFilters=this.props.resetActiveFilters;resetActiveFilters();}},{key:"render",value:function render(){var _this2=this;var _this$props=this.props,listingsPageStore=_this$props.listingsPageStore,resetActiveFilters=_this$props.resetActiveFilters;var isAdvancedBarOpen=listingsPageStore.isAdvancedBarOpen,toggleAdvancedBar=listingsPageStore.toggleAdvancedBar,filterValues=listingsPageStore.filterValues;var toggleSellectAllStatuses=filterValues.toggleSellectAllStatuses,statuses=filterValues.statuses,selectStatus=filterValues.selectStatus,orderStatusesObj=filterValues.orderStatusesObj,sources=filterValues.sources,setSourceMarketplace=filterValues.setSourceMarketplace,sourceName=filterValues.sourceName,timeLeft=filterValues.timeLeft,setTimeLeft=filterValues.setTimeLeft,outOfStockDays=filterValues.outOfStockDays,setOutOfStockDays=filterValues.setOutOfStockDays,numberOfOrdersFrom=filterValues.numberOfOrdersFrom,setNumberOfOrdersFrom=filterValues.setNumberOfOrdersFrom,numberOfOrdersTo=filterValues.numberOfOrdersTo,setNumberOfOrdersTo=filterValues.setNumberOfOrdersTo,listDateFrom=filterValues.listDateFrom,setListDateFrom=filterValues.setListDateFrom,listDateTo=filterValues.listDateTo,setListDateTo=filterValues.setListDateTo,daysWithoutSale=filterValues.daysWithoutSale,setDaysWithoutSale=filterValues.setDaysWithoutSale,destinationPriceFrom=filterValues.destinationPriceFrom,setDestinationPriceFrom=filterValues.setDestinationPriceFrom,sourcePriceFrom=filterValues.sourcePriceFrom,setSourcePriceFrom=filterValues.setSourcePriceFrom,destinationPriceTo=filterValues.destinationPriceTo,setDestinationPriceTo=filterValues.setDestinationPriceTo,sourcePriceTo=filterValues.sourcePriceTo,setSourcePriceTo=filterValues.setSourcePriceTo,profitFrom=filterValues.profitFrom,setProfitFrom=filterValues.setProfitFrom,profitTo=filterValues.profitTo,setProfitTo=filterValues.setProfitTo,profit=filterValues.profit,setProfit=filterValues.setProfit,notMonitoring=filterValues.notMonitoring,setNotMonitoring=filterValues.setNotMonitoring,offerTypeName=filterValues.offerTypeName,setOfferType=filterValues.setOfferType;return Object(core_browser_esm["c" /* jsx */])(react["Fragment"],null,Object(core_browser_esm["c" /* jsx */])(CollapseBar["a" /* default */],{titleId:"common.advancedSearch",toogleBar:toggleAdvancedBar,open:isAdvancedBarOpen,as:"h2",padding:"0 0 10px 0",buttonStyle:buttonStyle,titleElements:Object(core_browser_esm["c" /* jsx */])(TagBar["a" /* default */],{filterValues:filterValues,intlSection:"listingsPage",buttonStyle:buttonStyle,resetActiveFilters:resetActiveFilters})},Object(core_browser_esm["c" /* jsx */])(Filters["a" /* BarContainer */],{style:{position:'relative'}},Object(core_browser_esm["c" /* jsx */])("form",{css:Filters["f" /* formStyle */]},Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"listingsPage.statuses"},Object(core_browser_esm["c" /* jsx */])(Multiselect["a" /* default */],{toggleSellectAllAccounts:function toggleSellectAllAccounts(){return toggleSellectAllStatuses(listings["e" /* statusList */].length);},values:statuses,name:"orderStatus",height:"22px"},listings["e" /* statusList */].map(function(_ref2){var status=_ref2.status;return Object(core_browser_esm["c" /* jsx */])(MultiOption,{value:status,key:status,onClick:function onClick(){return selectStatus(status);},checked:orderStatusesObj[status]!==undefined},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"listingsPage.".concat(status)}));}))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"common.sourceMarketplace"},Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{value:sourceName,name:"sourceMarketplace",width:"115px",height:"22px"},sources.map(function(source){return Object(core_browser_esm["c" /* jsx */])(AdvancedSearch_Option,{key:source.id,value:source.id,onClick:function onClick(){return setSourceMarketplace(source);}},source.name);}))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"listingsPage.timeLeft"},Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{value:timeLeft,onChange:setTimeLeft,name:"timeLeft",width:"90px",height:"22px"},Object(core_browser_esm["c" /* jsx */])(AdvancedSearch_Option,{key:1,value:Days.DAY},"24 ",Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.hours"})),Object(core_browser_esm["c" /* jsx */])(AdvancedSearch_Option,{key:2,value:Days.THREE},"3 ",Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.days"})),Object(core_browser_esm["c" /* jsx */])(AdvancedSearch_Option,{key:3,value:Days.WEEK},"1 ",Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.week"})),Object(core_browser_esm["c" /* jsx */])(AdvancedSearch_Option,{key:4,value:Days.MONTH},"30 ",Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.days"})))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"listingsPage.outOfStockDays"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.over"})),Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"number",value:outOfStockDays,width:inputWidth,onChange:function onChange(e){return setOutOfStockDays(e.target.value);}}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.days"})))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"listingsPage.numberOfOrders"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{value:numberOfOrdersFrom,onChange:function onChange(e){return setNumberOfOrdersFrom(e.target.value);},type:"number",width:inputWidth}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.to"})),Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{value:numberOfOrdersTo,onChange:function onChange(e){return setNumberOfOrdersTo(e.target.value);},type:"number",width:inputWidth}))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"listingsPage.listingDateRange"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{value:Object(format_date["a" /* decodeDate */])(listDateFrom),onChange:function onChange(e){return setListDateFrom(Object(format_date["b" /* formatDate */])(e.target.value));},type:"date",width:"150px"}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.to"})),Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{value:Object(format_date["a" /* decodeDate */])(listDateTo),onChange:function onChange(e){return setListDateTo(Object(format_date["b" /* formatDate */])(e.target.value));},type:"date",width:"150px"}))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"listingsPage.daysWithoutSale"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.over"})),Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"number",value:daysWithoutSale,width:inputWidth,onChange:function onChange(e){return setDaysWithoutSale(e.target.value);}}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.days"})))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"listingsPage.destinationPriceRange"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{value:destinationPriceFrom,onChange:function onChange(e){return setDestinationPriceFrom(e.target.value);},type:"number",width:inputWidth}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.to"})),Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{value:destinationPriceTo,onChange:function onChange(e){return setDestinationPriceTo(e.target.value);},type:"number",width:inputWidth}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},"$"))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"listingsPage.sourcePriceRange"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{value:sourcePriceFrom,onChange:function onChange(e){return setSourcePriceFrom(e.target.value);},type:"number",width:inputWidth}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.to"})),Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{value:sourcePriceTo,onChange:function onChange(e){return setSourcePriceTo(e.target.value);},type:"number",width:inputWidth}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},"$"))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"common.profit"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{value:profitFrom,onChange:function onChange(e){return setProfitFrom(e.target.value);},type:"number",width:inputWidth}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.to"})),Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{value:profitTo,onChange:function onChange(e){return setProfitTo(e.target.value);},type:"number",width:inputWidth}))),Object(core_browser_esm["c" /* jsx */])(ProfitRadio,{value:profit,onChange:function onChange(e){return setProfit(e.target.value);}},Object(core_browser_esm["c" /* jsx */])(Radio["a" /* default */],{value:true},"%"),Object(core_browser_esm["c" /* jsx */])(Radio["a" /* default */],{value:false,css:AdvancedSearch_ref},"$")),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"listingsPage.notMonitoring"},Object(core_browser_esm["c" /* jsx */])(checkbox_default.a,{checked:notMonitoring,onChange:function onChange(e){return setNotMonitoring(e.target.checked);}})),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"listingsPage.prime/marketplace"},Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{value:offerTypeName,onChange:setOfferType,name:"offerType",width:"120px",height:"22px"},Object(core_browser_esm["c" /* jsx */])(AdvancedSearch_Option,{key:1,value:"All"},"All"),Object(core_browser_esm["c" /* jsx */])(AdvancedSearch_Option,{key:2,value:"Prime"},"Prime"),Object(core_browser_esm["c" /* jsx */])(AdvancedSearch_Option,{key:3,value:"Marketplace"},"Marketplace")))),Object(core_browser_esm["c" /* jsx */])(Filters["b" /* Button */],{type:"primary",htmlType:"submit",clickHandler:function clickHandler(){return _this2.fetchAdvancedSearch();},cssProps:Filters["g" /* submitButtonStyle */]},"Search"))));}}]);return AdvancedSearch;}(react["Component"]))||AdvancedSearch_class)||AdvancedSearch_class)||AdvancedSearch_class);/* harmony default export */ var Toolbar_AdvancedSearch_AdvancedSearch = (AdvancedSearch_AdvancedSearch);
// CONCATENATED MODULE: ./src/js/components/Listings/Toolbar/AdvancedSearch/index.js

// EXTERNAL MODULE: ./src/js/components/common/TmModal/index.js
var TmModal = __webpack_require__(112);

// CONCATENATED MODULE: ./src/js/components/Listings/Toolbar/ActionBar.js
var ActionBar_class;var ActionBar_Option=Dropdown["a" /* default */].Option;var ActionBar_RadioGroup=Radio["a" /* default */].Group;var Wrapper=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1pg02m70",label:"Wrapper"})( true?{name:"1r2f04i",styles:"margin-bottom:10px;"}:undefined);var ActionBar_ref= true?{name:"5ur1pt-ActionBar",styles:"margin-left:-5px;label:ActionBar;"}:undefined;var ActionBar_ref2= true?{name:"wrx5r6-ActionBar",styles:"display:flex;justify-content:flex-end;label:ActionBar;"}:undefined;var ActionBar_ref3= true?{name:"1cxaorv-ActionBar",styles:"margin-right:10px;label:ActionBar;"}:undefined;var ActionBar_ref4= true?{name:"12ysy8c-ActionBar",styles:"white-space:pre-line;label:ActionBar;"}:undefined;var ActionBar_ActionBar=Object(index_module["c" /* observer */])(ActionBar_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(ActionBar,_Component);function ActionBar(props){var _this;Object(classCallCheck["a" /* default */])(this,ActionBar);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(ActionBar).call(this,props));_this.isConfirmed=function(){var confirmInputValue=_this.state.confirmInputValue;return!!(confirmInputValue&&/^['"`]?yes['"`]?$/i.test(confirmInputValue.trim()));};_this.state={confirmInputValue:'',updateWarningVisible:false};return _this;}Object(createClass["a" /* default */])(ActionBar,[{key:"writeConfirmInput",value:function writeConfirmInput(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;if(e===null){return;}if(e.target){this.setState({confirmInputValue:e.target.value});}else{this.setState({confirmInputValue:e});}}},{key:"toggleUpdateWarning",value:function toggleUpdateWarning(){var force=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;var updateWarningVisible=this.state.updateWarningVisible;if(force===null){this.setState({updateWarningVisible:!updateWarningVisible});}else{this.setState({updateWarningVisible:force});}}},{key:"render",value:function render(){var _this2=this;var _this$props=this.props,open=_this$props.open,toggle=_this$props.toggle,actions=_this$props.actions,update=_this$props.update,endedCheckedListings=_this$props.endedCheckedListings,allPagesChecked=_this$props.allPagesChecked,totalResults=_this$props.totalResults;var _this$state=this.state,confirmInputValue=_this$state.confirmInputValue,updateWarningVisible=_this$state.updateWarningVisible;var actionName='edit';if(actions.status==='1'){actionName='end';}if(actions.status==='3'){actionName='remove';}return Object(core_browser_esm["c" /* jsx */])(Wrapper,null,Object(core_browser_esm["c" /* jsx */])(CollapseBar["a" /* default */],{titleId:"common.actions",toogleBar:toggle,open:open,as:"h2",padding:"10px 0"},Object(core_browser_esm["c" /* jsx */])(Filters["a" /* BarContainer */],null,Object(core_browser_esm["c" /* jsx */])("form",{css:Filters["f" /* formStyle */]},Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"listingsPage.setStatus"},Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{value:actions.status,width:"125px",onChange:function onChange(value){actions.setStatus(value);}},listings["d" /* setStatusList */].filter(function(_ref5){var status=_ref5.status;return!endedCheckedListings||endedCheckedListings&&status!=='active';}).map(function(_ref6){var status=_ref6.status,id=_ref6.id;return Object(core_browser_esm["c" /* jsx */])(ActionBar_Option,{key:id,value:"".concat(id)},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"listingsPage.".concat(status)}));}))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"listingsPage.setBreakEven"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{value:actions.breakEven,onChange:function onChange(e){actions.setBreakEven(e.target.value);},type:"number",width:"70px"}))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"listingsPage.setProfit"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{value:actions.profit,onChange:function onChange(e){actions.setProfit(e.target.value);},type:"number",width:"70px"}))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:""},Object(core_browser_esm["c" /* jsx */])(ActionBar_RadioGroup,{value:actions.profitType,onChange:function onChange(e){actions.setProfitType(e.target.value);}},Object(core_browser_esm["c" /* jsx */])(Radio["a" /* default */],{value:"1"},"%"),Object(core_browser_esm["c" /* jsx */])(Radio["a" /* default */],{value:"2",css:ActionBar_ref},"$"))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"listingsPage.setTemplate"},Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{value:actions.templateName,onChange:function onChange(value){actions.setTemplate(value);},width:"125px"},actions.templateList.map(function(_ref7){var id=_ref7.id,name=_ref7.name;return Object(core_browser_esm["c" /* jsx */])(ActionBar_Option,{key:id,value:id},name);}))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"listingsPage.setQuantity"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{value:actions.quantity,onChange:function onChange(e){actions.setQuantity(e.target.value);},type:"number",width:"70px"}))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"listingsPage.monitoringStatus"},Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{value:actions.monitoringStatus,width:"125px",onChange:function onChange(value){actions.setMonitoringStatus(value);}},listings["a" /* monitoringStatusList */].map(function(_ref8){var monitoringStatus=_ref8.monitoringStatus,id=_ref8.id;return Object(core_browser_esm["c" /* jsx */])(ActionBar_Option,{key:id,value:"".concat(id)},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"listingsPage.".concat(monitoringStatus)}));})))),Object(core_browser_esm["c" /* jsx */])("div",{css:ActionBar_ref2},Object(core_browser_esm["c" /* jsx */])(Filters["b" /* Button */],{type:"primary",htmlType:"submit",clickHandler:allPagesChecked?function(){return _this2.toggleUpdateWarning(true);}:update,disabled:actions.isBtnDisabled,css:ActionBar_ref3},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.update"})),Object(core_browser_esm["c" /* jsx */])(Filters["b" /* Button */],{type:"primary",htmlType:"submit",clickHandler:actions.clear,disabled:actions.isBtnDisabled},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.clear"}))))),Object(core_browser_esm["c" /* jsx */])(TmModal["a" /* default */],{isClosable:true,onClose:function onClose(){_this2.toggleUpdateWarning(false);_this2.writeConfirmInput('');},type:"warning",title:"Warning",visible:updateWarningVisible,mainActionBtn:{btnType:'secondary',text:"Cancel",clickHandler:function clickHandler(){_this2.toggleUpdateWarning(false);_this2.writeConfirmInput('');}},secondaryActionBtn:{text:"Ok",clickHandler:function clickHandler(){update();_this2.writeConfirmInput('');_this2.toggleUpdateWarning(false);},disabled:!this.isConfirmed()}},Object(core_browser_esm["c" /* jsx */])("h3",{css:ActionBar_ref4},"Are you sure you would like to ",Object(core_browser_esm["c" /* jsx */])("strong",null,actionName)," ","all ".concat(totalResults," items?\nWrite 'yes' to confirm")),Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{value:confirmInputValue,onChange:function onChange(e){return _this2.writeConfirmInput(e);},type:"text",width:"70px"})));}}]);return ActionBar;}(react["Component"]))||ActionBar_class;/* harmony default export */ var Toolbar_ActionBar = (ActionBar_ActionBar);
// EXTERNAL MODULE: ./src/js/components/common/Button/index.js
var Button = __webpack_require__(30);

// EXTERNAL MODULE: ./src/js/components/common/TagBar/styled.js
var TagBar_styled = __webpack_require__(254);

// EXTERNAL MODULE: ./src/js/components/Listings/Toolbar/DebouncedSearch.js + 1 modules
var DebouncedSearch = __webpack_require__(238);

// EXTERNAL MODULE: ./src/js/components/PerformanceForecast/PerformanceForecast.js + 3 modules
var PerformanceForecast = __webpack_require__(365);

// CONCATENATED MODULE: ./src/js/components/Listings/Toolbar/Toolbar.js
var Toolbar_dec,Toolbar_dec2,_dec3,_dec4,Toolbar_class;var ResultsWrapper=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1qubjtz0",label:"ResultsWrapper"})( true?{name:"1lekzkb",styles:"display:flex;align-items:center;justify-content:space-between;"}:undefined);var MultiResultTitle=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1qubjtz1",label:"MultiResultTitle"})( true?{name:"1idnken",styles:"display:inline-block;margin-left:10px;font-size:14px;& > button{margin-left:10px;}"}:undefined);var Toolbar_ref= true?{name:"yts2fe-Toolbar",styles:"float:right;label:Toolbar;"}:undefined;var Toolbar_ref2= true?{name:"18tlkxz-Toolbar",styles:"display:flex;label:Toolbar;"}:undefined;var Toolbar_ref3= true?{name:"1k3qxq5-Toolbar",styles:"margin-right:8px;label:Toolbar;"}:undefined;var Toolbar_Toolbar=(Toolbar_dec=Object(index_module["b" /* inject */])('routingStore'),Toolbar_dec2=Object(index_module["b" /* inject */])('listingsPageStore'),_dec3=Object(index_module["b" /* inject */])('sessionStore'),_dec4=Object(index_module["b" /* inject */])('settingsStore'),Object(index_es["d" /* injectIntl */])(Toolbar_class=Toolbar_dec(Toolbar_class=Toolbar_dec2(Toolbar_class=_dec3(Toolbar_class=_dec4(Toolbar_class=Object(index_module["c" /* observer */])(Toolbar_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(Toolbar,_Component);function Toolbar(props){var _this;Object(classCallCheck["a" /* default */])(this,Toolbar);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(Toolbar).call(this,props));_this.handleEdit=_this.handleEdit.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));_this.cancelEditing=_this.cancelEditing.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));_this.state={// fieldsUpdated: false,
};return _this;}// setFieldsUpdated = bool => this.setState({ fieldsUpdated: bool });
Object(createClass["a" /* default */])(Toolbar,[{key:"handleEdit",value:function handleEdit(){var _this$props$listingsP=this.props.listingsPageStore,updateItems=_this$props$listingsP.updateItems,isEditMode=_this$props$listingsP.isEditMode,enterEditMode=_this$props$listingsP.enterEditMode;if(isEditMode){updateItems();}else{enterEditMode();}}},{key:"cancelEditing",value:function cancelEditing(){var cancelEditing=this.props.listingsPageStore.cancelEditing;cancelEditing();}},{key:"render",value:function render(){var _this$props=this.props,listingsPageStore=_this$props.listingsPageStore,browserHistory=_this$props.routingStore.browserHistory,resetActiveFilters=_this$props.resetActiveFilters,currentPlan=_this$props.settingsStore.subscription.currentPlan;var actions=listingsPageStore.actions,isEditMode=listingsPageStore.isEditMode,setTableFilter=listingsPageStore.setTableFilter,isActionBarOpen=listingsPageStore.isActionBarOpen,toggleActionBar=listingsPageStore.toggleActionBar,resultsItemsCount=listingsPageStore.resultsItemsCount,totalResults=listingsPageStore.totalResults,totalResultsWithVariants=listingsPageStore.totalResultsWithVariants,executeBulkUpdate=listingsPageStore.executeBulkUpdate,selectedItemsCount=listingsPageStore.selectedItemsCount,ifSaveBtnIsDisabled=listingsPageStore.ifSaveBtnIsDisabled,isMultiResult=listingsPageStore.isMultiResult,filterValues=listingsPageStore.filterValues,endedCheckedListings=listingsPageStore.endedCheckedListings,tableFilter=listingsPageStore.tableFilter,start=listingsPageStore.start,allPagesChecked=listingsPageStore.allPagesChecked;// const { fieldsUpdated } = this.state;
// const popoverContent = (
//   <div
//     css={css`
//       color: white;
//     `}
//   >
//     To finish this update save and use the chrome extension.
//   </div>
// );
// const infoRocket = (
//   <span>
//     <Popover
//       content={popoverContent}
//       title=""
//       overlayClassName="ant-popover-background"
//       trigger="hover"
//       placement="right"
//     >
//       <span href="">
//         <IconSvg type="horizontal_ship" height={20} />
//       </span>
//     </Popover>
//   </span>
// );
return Object(core_browser_esm["c" /* jsx */])(styled["w" /* Wrapper */],null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.search"},function(placeholder){return Object(core_browser_esm["c" /* jsx */])(DebouncedSearch["a" /* default */],{placeholder:placeholder,filterValue:tableFilter,setFilter:setTableFilter,fetchPage:function fetchPage(){resetActiveFilters();},forListings:true});}), true&&Object(core_browser_esm["c" /* jsx */])("span",{css:Toolbar_ref},currentPlan&&Object(core_browser_esm["c" /* jsx */])(PerformanceForecast["a" /* PerformanceForecast */],{currentPlan:currentPlan,buttonMessage:"Upload more listings",browserHistory:browserHistory,redirectPath:"/discover"})),isMultiResult&&Object(core_browser_esm["c" /* jsx */])(MultiResultTitle,null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"listing.multiResult",defaultMessage:"Listed items from discovery {discoveryId}",values:{discoveryId:filterValues.discoveryId}}),Object(core_browser_esm["c" /* jsx */])(TagBar_styled["a" /* ClearFiltersBtn */],{onClick:function onClick(){browserHistory.push('/listings');}},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"listing.backToListings",defaultMessage:"Back to all Listings"}))),Object(core_browser_esm["c" /* jsx */])(Toolbar_AdvancedSearch_AdvancedSearch,{resetActiveFilters:resetActiveFilters}),Object(core_browser_esm["c" /* jsx */])(Toolbar_ActionBar,{open:isActionBarOpen,toggle:toggleActionBar,actions:actions// setFieldsUpdated={this.setFieldsUpdated}
,update:function update(){return executeBulkUpdate().then(function(){// filterValues.resetFilterValue();
// resetActiveFilters();
});},endedCheckedListings:endedCheckedListings,allPagesChecked:allPagesChecked,totalResults:totalResults}),Object(core_browser_esm["c" /* jsx */])(ResultsWrapper,null,Object(core_browser_esm["c" /* jsx */])("div",{css:Toolbar_ref2},Object(core_browser_esm["c" /* jsx */])(styled["m" /* ResultCounter */],null,Object(core_browser_esm["c" /* jsx */])(styled["n" /* ResultsLabel */],null,"Showing")," ",start,"...",resultsItemsCount+start,"/",totalResults,' ',Object(core_browser_esm["c" /* jsx */])(styled["n" /* ResultsLabel */],{marginRight:"32px"},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.results"})),' (',totalResultsWithVariants,' ',Object(core_browser_esm["c" /* jsx */])(styled["n" /* ResultsLabel */],null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"listingsPage.includingVariation"})),') ',Object(core_browser_esm["c" /* jsx */])(styled["n" /* ResultsLabel */],{marginRight:"32px"}),allPagesChecked?totalResults:selectedItemsCount,' ',Object(core_browser_esm["c" /* jsx */])(styled["n" /* ResultsLabel */],null,"Rows ",Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.selected"})))),Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{height:"30px"// width="107px"
,clickHandler:this.handleEdit,size:"large",disabled:ifSaveBtnIsDisabled&&isEditMode,css:Toolbar_ref3},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:isEditMode?'common.save':'common.edit'})),isEditMode?Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{height:"30px",clickHandler:this.cancelEditing,size:"large",width:"107px"},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.cancel"})):null)));}}]);return Toolbar;}(react["Component"]))||Toolbar_class)||Toolbar_class)||Toolbar_class)||Toolbar_class)||Toolbar_class)||Toolbar_class);
// CONCATENATED MODULE: ./src/js/components/Listings/Toolbar/index.js

// CONCATENATED MODULE: ./src/js/components/Listings/index.js

// EXTERNAL MODULE: ./src/js/components/common/spinner/index.js + 1 modules
var spinner = __webpack_require__(74);

// EXTERNAL MODULE: ./src/js/components/common/ServiceDown/index.js + 1 modules
var ServiceDown = __webpack_require__(342);

// CONCATENATED MODULE: ./src/js/components/Salefreaks/Listings/Stats.js
var Stats_ref= true?{name:"4t2h9i-redirectComponent",styles:"font-size:15px;&,&:hover{text-decoration:underline;}label:redirectComponent;"}:undefined;var Listings_Stats_redirectComponent=function redirectComponent(handleOnClick,key,days){return Object(core_browser_esm["c" /* jsx */])("a",{css:Stats_ref,onClick:handleOnClick},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"listingsPage.".concat(key),values:key==='outOfStockOverNumberOfDays'?{days:days}:{}}));};var Listings_Stats_getOtherFilteringOptions=function getOtherFilteringOptions(key,days,filterOptions){if(key==='outOfStockOverNumberOfDays')return Listings_Stats_redirectComponent(filterOptions.outOfStockOverDays,key,days);if(key==='listings')return Listings_Stats_redirectComponent(filterOptions.activeListings,key,days);return Object(core_browser_esm["c" /* jsx */])("span",null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"listingsPage.".concat(key),values:key==='outOfStockOverNumberOfDays'?{days:days}:{}}));};var SalefreaksStats=Object(index_module["c" /* observer */])(function(_ref2){var data=_ref2.data,days=_ref2.days,filterOptions=_ref2.filterOptions;return Object(core_browser_esm["c" /* jsx */])("div",{style:{fontSize:'15px'}},Object.keys(data).map(function(key){return Object(core_browser_esm["c" /* jsx */])("span",{key:key,style:{marginRight:'20px'}},key==='outOfStock'?Listings_Stats_redirectComponent(filterOptions.outOfStock,key,days):Listings_Stats_getOtherFilteringOptions(key,days,filterOptions),Object(core_browser_esm["c" /* jsx */])("span",{style:{marginLeft:'5px'}},key==='salesConversionRate'?Object(numberCommaFormatter["a" /* commaFormat */])(data[key]):data[key]));}));});SalefreaksStats.propTypes={data:prop_types_default.a.object,intl:prop_types_default.a.object,days:prop_types_default.a.number};
// CONCATENATED MODULE: ./src/js/components/Listings/BulkUpdateModal.js
var BulkUpdateModal_dec,BulkUpdateModal_class;// import { css } from '@emotion/core';
// import { CloseButtonContainer,PopUpBody,MessageBody } from './styled';
// import IconSvg from '../common/IconSvg';
var BulkUpdateModal_BulkUpdateModal=(BulkUpdateModal_dec=Object(index_module["b" /* inject */])('listingsPageStore'),Object(index_module["c" /* observer */])(BulkUpdateModal_class=BulkUpdateModal_dec(BulkUpdateModal_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(BulkUpdateModal,_Component);function BulkUpdateModal(){var _getPrototypeOf2;var _this;Object(classCallCheck["a" /* default */])(this,BulkUpdateModal);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=Object(possibleConstructorReturn["a" /* default */])(this,(_getPrototypeOf2=Object(getPrototypeOf["a" /* default */])(BulkUpdateModal)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.showUpdateMessage=function(bulkUpdateDetails){var _bulkUpdateDetails$in;// eslint-disable-next-line no-useless-escape
var message="Items pending update started.";if(bulkUpdateDetails===null||bulkUpdateDetails===undefined||(bulkUpdateDetails===null||bulkUpdateDetails===void 0?void 0:bulkUpdateDetails.allFailed)===null&&(bulkUpdateDetails===null||bulkUpdateDetails===void 0?void 0:bulkUpdateDetails.invalidSellerAccounts)===null){message='Something went wrong, please try again!';}if(bulkUpdateDetails===null||bulkUpdateDetails===void 0?void 0:bulkUpdateDetails.allFailed){message="Items pending updates failed because connection to the accounts could not be establish. Please reconnect your accounts.";}if((bulkUpdateDetails===null||bulkUpdateDetails===void 0?void 0:(_bulkUpdateDetails$in=bulkUpdateDetails.invalidSellerAccounts)===null||_bulkUpdateDetails$in===void 0?void 0:_bulkUpdateDetails$in.length)>0){var _bulkUpdateDetails$in2;message="The update worked only partial. We couldn't connected to the following accounts please reconnect them and try again: ".concat(bulkUpdateDetails===null||bulkUpdateDetails===void 0?void 0:(_bulkUpdateDetails$in2=bulkUpdateDetails.invalidSellerAccounts)===null||_bulkUpdateDetails$in2===void 0?void 0:_bulkUpdateDetails$in2.toString(),".");}return message;};return _this;}Object(createClass["a" /* default */])(BulkUpdateModal,[{key:"render",value:function render(){var _bulkUpdateDetails$in3;var _this$props=this.props,bulkUpdateDetailsModalOpen=_this$props.bulkUpdateDetailsModalOpen,bulkUpdateDetails=_this$props.bulkUpdateDetails,setBulkUpdateDetailsModalOpen=_this$props.setBulkUpdateDetailsModalOpen;return Object(core_browser_esm["c" /* jsx */])(TmModal["a" /* default */],{type:(bulkUpdateDetails===null||bulkUpdateDetails===void 0?void 0:bulkUpdateDetails.allFailed)||(bulkUpdateDetails===null||bulkUpdateDetails===void 0?void 0:(_bulkUpdateDetails$in3=bulkUpdateDetails.invalidSellerAccounts)===null||_bulkUpdateDetails$in3===void 0?void 0:_bulkUpdateDetails$in3.length)>0||(bulkUpdateDetails===null||bulkUpdateDetails===void 0?void 0:bulkUpdateDetails.allFailed)===null&&(bulkUpdateDetails===null||bulkUpdateDetails===void 0?void 0:bulkUpdateDetails.invalidSellerAccounts)===null?"warning":"info",title:"Pending Updates",visible:bulkUpdateDetailsModalOpen,onClose:function onClose(){return setBulkUpdateDetailsModalOpen(false);}},Object(core_browser_esm["c" /* jsx */])("span",null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:this.showUpdateMessage(bulkUpdateDetails)})));}}]);return BulkUpdateModal;}(react["Component"]))||BulkUpdateModal_class)||BulkUpdateModal_class);/* harmony default export */ var Listings_BulkUpdateModal = (BulkUpdateModal_BulkUpdateModal);
// CONCATENATED MODULE: ./src/js/pages/Listings/Listings.js
var Listings_dec,Listings_dec2,Listings_class;// import { getSnapshot } from 'mobx-state-tree';
var Listings_Listings=(Listings_dec=Object(index_module["b" /* inject */])('listingsPageStore'),Listings_dec2=Object(index_module["b" /* inject */])('settingsStore'),Object(index_es["d" /* injectIntl */])(Listings_class=Listings_dec(Listings_class=Listings_dec2(Listings_class=Object(index_module["c" /* observer */])(Listings_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(Listings,_Component);function Listings(props){var _this;Object(classCallCheck["a" /* default */])(this,Listings);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(Listings).call(this,props));_this.selectAccountFromUrl=function(){var _this$props$listingsP=_this.props.listingsPageStore,fetchInitialData=_this$props$listingsP.fetchInitialData,_this$props$listingsP2=_this$props$listingsP.accountsBar,emptySelectedSellerAccounts=_this$props$listingsP2.emptySelectedSellerAccounts,selectAccount=_this$props$listingsP2.selectAccount,sellerAccounts=_this$props$listingsP2.sellerAccounts,selectedSellerAccounts=_this$props$listingsP2.selectedSellerAccounts,_this$props$listingsP3=_this$props$listingsP.filterValues,setOutOfStockDays=_this$props$listingsP3.setOutOfStockDays,setNotMonitoring=_this$props$listingsP3.setNotMonitoring,selectStatus=_this$props$listingsP3.selectStatus;var sellerAccount=window.location.search.split("&")[1];if(decodeURIComponent(sellerAccount)!=="All Accounts"){var account=sellerAccounts.filter(function(x){return x.id===sellerAccount;});if(selectedSellerAccounts.length>0){emptySelectedSellerAccounts();}selectAccount(account[0]);}// quick fix
setTimeout(function(){if(window.location.search.includes("not-monitored")){setNotMonitoring(true);}if(window.location.search.includes("ended")){selectStatus("ended");}if(window.location.search.includes("redirect-out-of-stock-over-7-days")){setOutOfStockDays("7");}fetchInitialData();},3000);};_this.filterOutOfStock=function(){var selectStatus=_this.props.listingsPageStore.filterValues.selectStatus;selectStatus('outOfStock');_this.resetActiveFilters();};_this.filterActiveListings=function(){var selectStatus=_this.props.listingsPageStore.filterValues.selectStatus;selectStatus('Active');_this.resetActiveFilters();};_this.filterOutOfStockOverDays=function(){var _this$props$listingsP4=_this.props.listingsPageStore,days=_this$props$listingsP4.days,_this$props$listingsP5=_this$props$listingsP4.filterValues,selectStatus=_this$props$listingsP5.selectStatus,setOutOfStockDays=_this$props$listingsP5.setOutOfStockDays;selectStatus('outOfStock');setOutOfStockDays(days.toString());_this.resetActiveFilters();};var _props$listingsPageSt=props.listingsPageStore,filterValues=_props$listingsPageSt.filterValues,tableFilter=_props$listingsPageSt.tableFilter;_this.state={activeFilters:Object(objectSpread["a" /* default */])({},filterValues.toJSON(),{tableFilter:tableFilter})};_this.resetActiveFilters=_this.resetActiveFilters.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));return _this;}Object(createClass["a" /* default */])(Listings,[{key:"componentDidMount",value:function componentDidMount(){var _this$props$listingsP6=this.props.listingsPageStore,fetchInitialData=_this$props$listingsP6.fetchInitialData,_this$props$listingsP7=_this$props$listingsP6.filterValues,setOutOfStockDays=_this$props$listingsP7.setOutOfStockDays,setNotMonitoring=_this$props$listingsP7.setNotMonitoring,selectStatus=_this$props$listingsP7.selectStatus;var urlParams=window.location.search;var actionsMap=[{condition:"not-monitored",action:function action(){return setNotMonitoring(true);}},{condition:"ended",action:function action(){return selectStatus("ended");}},{condition:"redirect-out-of-stock-over-7-days",action:function action(){return setOutOfStockDays("7");}}];// Execute corresponding actions based on URL parameters
var matchedAction=actionsMap.find(function(_ref){var condition=_ref.condition;return urlParams.includes(condition);});if(matchedAction){matchedAction.action();this.selectAccountFromUrl();}else{fetchInitialData();}}},{key:"componentWillUnmount",value:function componentWillUnmount(){var _this$props$listingsP8=this.props.listingsPageStore,unmountStore=_this$props$listingsP8.unmountStore,browserHistory=_this$props$listingsP8.browserHistory;if(!browserHistory.getCurrentLocation().pathname.includes('listings')){unmountStore();}}},{key:"resetActiveFilters",value:function resetActiveFilters(){var _this$props$listingsP9=this.props.listingsPageStore,filterValues=_this$props$listingsP9.filterValues,tableFilter=_this$props$listingsP9.tableFilter;this.setState({activeFilters:Object(objectSpread["a" /* default */])({},filterValues.toJSON(),{tableFilter:tableFilter})});}},{key:"render",value:function render(){var _this$props=this.props,_this$props$listingsP10=_this$props.listingsPageStore,accountsBar=_this$props$listingsP10.accountsBar,normalizedDashboardData=_this$props$listingsP10.normalizedDashboardData,days=_this$props$listingsP10.days,tableDataLoaded=_this$props$listingsP10.tableDataLoaded,itemsVariationsReady=_this$props$listingsP10.itemsVariationsReady,isUp=_this$props$listingsP10.isUp,bulkUpdateDetailsModalOpen=_this$props$listingsP10.bulkUpdateDetailsModalOpen,bulkUpdateDetails=_this$props$listingsP10.bulkUpdateDetails,setBulkUpdateDetailsModalOpen=_this$props$listingsP10.setBulkUpdateDetailsModalOpen,_this$props$settingsS=_this$props.settingsStore,hasSellerAccounts=_this$props$settingsS.markets.hasSellerAccounts,currentPlan=_this$props$settingsS.subscription.currentPlan;var activeFilters=this.state.activeFilters;var filterOptions={outOfStock:this.filterOutOfStock,activeListings:this.filterActiveListings,outOfStockOverDays:this.filterOutOfStockOverDays};var headingTitle= true?'common.listings':undefined;return Object(core_browser_esm["c" /* jsx */])("div",{hidden:!currentPlan},Object(core_browser_esm["c" /* jsx */])(Listings_BulkUpdateModal,{bulkUpdateDetails:bulkUpdateDetails,setBulkUpdateDetailsModalOpen:setBulkUpdateDetailsModalOpen,bulkUpdateDetailsModalOpen:bulkUpdateDetailsModalOpen}),Object(core_browser_esm["c" /* jsx */])(react_document_title_default.a,{title:"".concat(constants["d" /* title */]," | Listings")},isUp?Object(core_browser_esm["c" /* jsx */])(styled["j" /* PageContainer */],null,(!tableDataLoaded||!itemsVariationsReady)&&hasSellerAccounts!==false?Object(core_browser_esm["c" /* jsx */])(spinner["a" /* default */],null):null,Object(core_browser_esm["c" /* jsx */])(HeaderBar["a" /* default */],{headingId:headingTitle,accountsProps:accountsBar}),Object(core_browser_esm["c" /* jsx */])(DashboardContainer["a" /* default */],{textAlign:"center"}, true?Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(Stats,{data:normalizedDashboardData,days:days,filterOptions:filterOptions})):undefined),Object(core_browser_esm["c" /* jsx */])("h2",{className:"visually-hidden"},"Listings table"),Object(core_browser_esm["c" /* jsx */])(styled["u" /* TableWrapper */],null,Object(core_browser_esm["c" /* jsx */])(Toolbar_Toolbar,{resetActiveFilters:this.resetActiveFilters}),Object(core_browser_esm["c" /* jsx */])(ListingsTable_ListingsTable,{activeFilters:activeFilters}))):Object(core_browser_esm["c" /* jsx */])(ServiceDown["a" /* ServiceDown */],null)));}}]);return Listings;}(react["Component"]))||Listings_class)||Listings_class)||Listings_class)||Listings_class);/* harmony default export */ var pages_Listings_Listings = (Listings_Listings);
// CONCATENATED MODULE: ./src/js/pages/Listings/index.js
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "default", function() { return /* reexport */ pages_Orders_Orders; });

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
var classCallCheck = __webpack_require__(9);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js
var createClass = __webpack_require__(10);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__(11);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
var getPrototypeOf = __webpack_require__(12);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
var inherits = __webpack_require__(13);

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-document-title/index.js
var react_document_title = __webpack_require__(98);
var react_document_title_default = /*#__PURE__*/__webpack_require__.n(react_document_title);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__(7);

// EXTERNAL MODULE: ./src/js/components/common/HeaderBar/index.js + 1 modules
var HeaderBar = __webpack_require__(251);

// EXTERNAL MODULE: ./src/js/constants/index.js + 1 modules
var constants = __webpack_require__(15);

// EXTERNAL MODULE: ./node_modules/react-easy-chart/lib/index.js
var lib = __webpack_require__(675);

// EXTERNAL MODULE: ./node_modules/emotion-theming/dist/emotion-theming.browser.esm.js
var emotion_theming_browser_esm = __webpack_require__(187);

// EXTERNAL MODULE: ./node_modules/mobx-state-tree/dist/mobx-state-tree.module.js
var mobx_state_tree_module = __webpack_require__(1);

// EXTERNAL MODULE: ./node_modules/react-intl/lib/index.es.js
var index_es = __webpack_require__(4);

// EXTERNAL MODULE: ./src/js/constants/classes/index.js
var classes = __webpack_require__(32);

// EXTERNAL MODULE: ./src/js/constants/orders/index.js + 1 modules
var orders = __webpack_require__(103);

// EXTERNAL MODULE: ./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js + 3 modules
var styled_base_browser_esm = __webpack_require__(6);

// CONCATENATED MODULE: ./src/js/components/Orders/Dashboard/styled.js
var Container=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1buzdhv0",label:"Container"})( true?{name:"v1yay0",styles:"padding-top:0;display:flex;"}:undefined);var PieWrapper=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1buzdhv1",label:"PieWrapper"})("position:relative;",function(_ref){var selectedChartPiece=_ref.selectedChartPiece,theme=_ref.theme;return"\n    && .pie-chart-slice {\n      cursor: pointer;\n    }\n    && .pie-chart-slice[fill=\"".concat(selectedChartPiece,"\"] {\n      stroke: ").concat(theme.colors.greyMid,";\n      stroke-width: 4;\n      stroke-linejoin: round;\n      stroke-linecap: round;\n    }\n    && .pie-chart-label {\n      pointer-events: none;\n      fill: ").concat(theme.colors.whiteBackground,";\n      font-size: ").concat(theme.fontSize.large,";\n      font-weight: 100;\n      font-family: Stolzl;\n    }\n  ");}, true?"":undefined);var StatusList=Object(styled_base_browser_esm["a" /* default */])("ul",{target:"e1buzdhv2",label:"StatusList"})( true?{name:"1gwjwm6",styles:"width:330px;display:flex;flex-direction:column;flex-wrap:wrap;height:215px;"}:undefined);var StatusWrapper=Object(styled_base_browser_esm["a" /* default */])("li",{target:"e1buzdhv3",label:"StatusWrapper"})( true?{name:"5ozwbf",styles:"display:flex;align-items:center;margin-bottom:11px;"}:undefined);var ColorSquare=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1buzdhv4",label:"ColorSquare"})("width:11px;height:11px;margin-right:9px;background-color:",function(_ref2){var color=_ref2.color;return color||'';},";"+( true?"":undefined));var StatusColWrapper=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1buzdhv5",label:"StatusColWrapper"})( true?{name:"lsfzbm",styles:"padding-left:62px;margin-right:50px;@media (max-width:1100px){padding-left:0;}"}:undefined);var ToolTip=Object(styled_base_browser_esm["a" /* default */])("button",{target:"e1buzdhv6",label:"ToolTip"})( true?{name:"146l5s0",styles:"position:absolute;border:none;background-color:transparent;top:10%;left:100%;width:20px;height:20px;border-radius:50%;cursor:pointer;z-index:20;-webkit-transform:translate(-50%,-60%);transform:translate(-52%,-60%);::after{content:'';height:15px;border-left:2px solid;transform:translate(-50%,-50%) rotate(45deg);position:absolute;}::before{content:'';height:15px;border-left:2px solid;transform:translate(-50%,-50%) rotate(-45deg);position:absolute;}"}:undefined);
// CONCATENATED MODULE: ./src/js/components/Orders/Dashboard/Chart.js
var Chart_Chart=function Chart(_ref){var intl=_ref.intl,theme=_ref.theme,_ref$data=_ref.data,pieData=_ref$data.pieData,selectedChartPiece=_ref$data.selectedChartPiece,openTooltip=_ref$data.openTooltip,handleChartClick=_ref$data.handleChartClick,cancelChartFilter=_ref$data.cancelChartFilter;return Object(core_browser_esm["c" /* jsx */])(Container,null,Object(core_browser_esm["c" /* jsx */])(StatusColWrapper,null,Object(core_browser_esm["c" /* jsx */])("h2",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(classes["e" /* text5 */],";color:",theme.colors.greyDark,";text-transform:uppercase;label:Chart;"+( true?"":undefined))},intl.formatMessage({id:'orders.statuses'})),Object(core_browser_esm["c" /* jsx */])(StatusList,null,orders["c" /* statusList */].map(function(_ref2){var status=_ref2.status,id=_ref2.id,color=_ref2.color;return Object(core_browser_esm["c" /* jsx */])(StatusWrapper,{key:id},Object(core_browser_esm["c" /* jsx */])(ColorSquare,{color:color}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["e" /* text5 */]},intl.formatMessage({id:"orders.".concat(status)})));}))),Object(core_browser_esm["c" /* jsx */])(PieWrapper,{selectedChartPiece:selectedChartPiece},openTooltip?Object(core_browser_esm["c" /* jsx */])(ToolTip,{onClick:cancelChartFilter}):null,Object(core_browser_esm["c" /* jsx */])(lib["PieChart"],{size:210,labels:true,innerHoleSize:80,data:Object(mobx_state_tree_module["getSnapshot"])(pieData),clickHandler:handleChartClick,styles:{fontSize:'25px',marginTop:'13px'}})));};/* harmony default export */ var Dashboard_Chart = (Object(emotion_theming_browser_esm["b" /* withTheme */])(Object(index_es["d" /* injectIntl */])(Object(index_module["c" /* observer */])(Chart_Chart))));
// EXTERNAL MODULE: ./src/js/components/common/DashboardContainer/index.js + 1 modules
var DashboardContainer = __webpack_require__(411);

// EXTERNAL MODULE: ./node_modules/antd/lib/select/style/index.js
var style = __webpack_require__(89);

// EXTERNAL MODULE: ./node_modules/antd/lib/select/index.js
var lib_select = __webpack_require__(36);
var select_default = /*#__PURE__*/__webpack_require__.n(lib_select);

// EXTERNAL MODULE: ./src/js/components/common/Dropdown/index.js + 1 modules
var Dropdown = __webpack_require__(47);

// EXTERNAL MODULE: ./src/js/components/common/styled.js
var styled = __webpack_require__(35);

// CONCATENATED MODULE: ./src/js/components/Orders/Dashboard/Stats.js
var Option=select_default.a.Option;var Stats_ref= true?{name:"1y8d360-Stats",styles:"margin-bottom:15px;label:Stats;"}:undefined;var Stats=Object(index_module["c" /* observer */])(function(_ref2){var data=_ref2.data,intl=_ref2.intl;var orderDashboardStats=data.orderDashboardStats,selectedTimeRange=data.selectedTimeRange,setTimeRange=data.setTimeRange;return Object(core_browser_esm["c" /* jsx */])(styled["q" /* StatsContainer */],null,Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{value:selectedTimeRange,onChange:setTimeRange,width:"162px",css:Stats_ref},Object.keys(orders["e" /* timeRange */]).map(function(key){return Object(core_browser_esm["c" /* jsx */])(Option,{key:key,value:key},key);})),Object(core_browser_esm["c" /* jsx */])(styled["s" /* StatsList */],null,orderDashboardStats.filter(function(_ref3){var title=_ref3.title;return title!=='openCases'&&title!=='lateShipment';}).map(function(_ref4){var title=_ref4.title,count=_ref4.count;return Object(core_browser_esm["c" /* jsx */])(styled["r" /* StatsItem */],{key:title},Object(core_browser_esm["c" /* jsx */])(styled["v" /* Value */],null,count),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["e" /* text5 */]},intl.formatMessage({id:"orders.".concat(title)})));})));});/* harmony default export */ var Dashboard_Stats = (Object(index_es["d" /* injectIntl */])(Object(index_module["c" /* observer */])(Stats)));
// CONCATENATED MODULE: ./src/js/components/Salefreaks/Orders/Stats.js
var Stats_Option=select_default.a.Option;var Orders_Stats_ref= true?{name:"1onvoss-SalefreaksOrdersStats",styles:"margin-bottom:15px;label:SalefreaksOrdersStats;"}:undefined;var SalefreaksOrdersStats=Object(index_module["c" /* observer */])(function(_ref2){var data=_ref2.data,intl=_ref2.intl;var orderDashboardStats=data.orderDashboardStats,selectedTimeRange=data.selectedTimeRange,setTimeRange=data.setTimeRange;return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{value:selectedTimeRange,onChange:setTimeRange,width:"162px",css:Orders_Stats_ref},Object.keys(orders["e" /* timeRange */]).map(function(key){return Object(core_browser_esm["c" /* jsx */])(Stats_Option,{key:key,value:key},key);})),Object(core_browser_esm["c" /* jsx */])("div",{style:{fontSize:'15px',marginLeft:'15px'}},orderDashboardStats.filter(function(_ref3){var title=_ref3.title;return title!=='openCases'&&title!=='lateShipment';}).map(function(_ref4){var title=_ref4.title,count=_ref4.count;return Object(core_browser_esm["c" /* jsx */])("span",{key:title,style:{marginRight:'40px'}},Object(core_browser_esm["c" /* jsx */])("span",{style:{fontSize:'15px'}},intl.formatMessage({id:"orders.".concat(title)})),Object(core_browser_esm["c" /* jsx */])("span",{style:{marginLeft:'10px',fontWeight:'600'}},count));})));});/* harmony default export */ var Orders_Stats = (Object(index_es["d" /* injectIntl */])(Object(index_module["c" /* observer */])(SalefreaksOrdersStats)));
// CONCATENATED MODULE: ./src/js/components/Orders/Dashboard/index.js
var Dashboard_Dashboard=function Dashboard(_ref){var data=_ref.data;return Object(core_browser_esm["c" /* jsx */])(DashboardContainer["a" /* default */],null, true?Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(styled["t" /* StatsWrapper */],{width:"417px"},Object(core_browser_esm["c" /* jsx */])(Dashboard_Stats,{data:data})),Object(core_browser_esm["c" /* jsx */])(Dashboard_Chart,{data:data})):undefined);};
// EXTERNAL MODULE: ./node_modules/antd/lib/pagination/style/index.js
var pagination_style = __webpack_require__(307);

// EXTERNAL MODULE: ./node_modules/antd/lib/pagination/index.js
var pagination = __webpack_require__(224);
var pagination_default = /*#__PURE__*/__webpack_require__.n(pagination);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/extends.js
var esm_extends = __webpack_require__(33);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 3 modules
var toConsumableArray = __webpack_require__(53);

// EXTERNAL MODULE: ./src/js/components/common/Table/index.js + 1 modules
var Table = __webpack_require__(219);

// EXTERNAL MODULE: ./node_modules/antd/lib/popover/style/index.js
var popover_style = __webpack_require__(95);

// EXTERNAL MODULE: ./node_modules/antd/lib/popover/index.js
var popover = __webpack_require__(44);
var popover_default = /*#__PURE__*/__webpack_require__.n(popover);

// EXTERNAL MODULE: ./node_modules/moment/moment.js
var moment = __webpack_require__(23);
var moment_default = /*#__PURE__*/__webpack_require__.n(moment);

// EXTERNAL MODULE: ./node_modules/antd/lib/dropdown/style/index.js
var dropdown_style = __webpack_require__(363);

// EXTERNAL MODULE: ./node_modules/antd/lib/dropdown/index.js
var dropdown = __webpack_require__(203);
var dropdown_default = /*#__PURE__*/__webpack_require__.n(dropdown);

// EXTERNAL MODULE: ./node_modules/antd/lib/menu/style/index.js
var menu_style = __webpack_require__(197);

// EXTERNAL MODULE: ./node_modules/antd/lib/menu/index.js
var menu = __webpack_require__(73);
var menu_default = /*#__PURE__*/__webpack_require__.n(menu);

// EXTERNAL MODULE: ./src/js/components/common/Checkbox/index.js
var Checkbox = __webpack_require__(114);

// EXTERNAL MODULE: ./src/js/components/common/IconSvg/index.js
var IconSvg = __webpack_require__(14);

// CONCATENATED MODULE: ./src/js/components/Orders/Table/OrdersHeaderCell.js
var OrdersHeaderCell_ref= true?{name:"8rgu2s-OrdersHeaderCell",styles:"margin-left:7px;text-align:left;label:OrdersHeaderCell;"}:undefined;var OrdersHeaderCell_ref2= true?{name:"14lluvm-OrdersHeaderCell",styles:"display:inline-block;margin-left:7px;label:OrdersHeaderCell;"}:undefined;var OrdersHeaderCell_ref3= true?{name:"1smvu1o-OrdersHeaderCell",styles:"cursor:pointer;label:OrdersHeaderCell;"}:undefined;var OrdersHeaderCell_ref4= true?{name:"szmb7g-OrdersHeaderCell",styles:"margin-left:117px;label:OrdersHeaderCell;"}:undefined;var OrdersHeaderCell_OrdersHeaderCell=function OrdersHeaderCell(_ref5){var ordersStore=_ref5.ordersStore;var allOrdersChecked=ordersStore.allOrdersChecked,toggleCheckedAllOrders=ordersStore.toggleCheckedAllOrders,allPagesChecked=ordersStore.allPagesChecked,setAllPagesChecked=ordersStore.setAllPagesChecked,selectedOrdersCount=ordersStore.selectedOrdersCount;return Object(core_browser_esm["c" /* jsx */])("div",{css:OrdersHeaderCell_ref},Object(core_browser_esm["c" /* jsx */])(Checkbox["a" /* default */],{checked:allOrdersChecked&&allPagesChecked,onChange:function onChange(){toggleCheckedAllOrders(!allOrdersChecked);setAllPagesChecked(false);},table:true,indeterminate:!!selectedOrdersCount}),Object(core_browser_esm["c" /* jsx */])("div",{className:"widget-HeaderCell__value",css:OrdersHeaderCell_ref2},Object(core_browser_esm["c" /* jsx */])(dropdown_default.a,{trigger:['click'],overlay:Object(core_browser_esm["c" /* jsx */])(menu_default.a,null,Object(core_browser_esm["c" /* jsx */])(menu_default.a.Item,{onClick:function onClick(){toggleCheckedAllOrders(true);setAllPagesChecked(true);},css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("font-weight:",allPagesChecked?'bold':'normal',";label:OrdersHeaderCell;"+( true?"":undefined)),key:"select-all"},"All"),Object(core_browser_esm["c" /* jsx */])(menu_default.a.Item,{onClick:function onClick(){toggleCheckedAllOrders(true);setAllPagesChecked(false);},css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("font-weight:",allOrdersChecked&&!allPagesChecked?'bold':'normal',";label:OrdersHeaderCell;"+( true?"":undefined)),key:"select-this-page"},"This Page"))},Object(core_browser_esm["c" /* jsx */])("span",{css:OrdersHeaderCell_ref3},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"more-arrow",size:15}))),Object(core_browser_esm["c" /* jsx */])("span",{css:OrdersHeaderCell_ref4},"Delivery Status")));};/* harmony default export */ var Table_OrdersHeaderCell = (Object(index_module["b" /* inject */])('ordersStore')(Object(index_module["c" /* observer */])(OrdersHeaderCell_OrdersHeaderCell)));
// EXTERNAL MODULE: ./src/js/components/common/CopyToClipboard/index.js + 1 modules
var CopyToClipboard = __webpack_require__(311);

// CONCATENATED MODULE: ./src/js/components/Orders/Table/BuyerInfoCell.js
var BuyerInfoCell_ref= true?{name:"s176t7-BuyerInfoCell",styles:"text-overflow:ellipsis;width:100px;overflow:hidden;cursor:pointer;label:BuyerInfoCell;"}:undefined;var BuyerInfoCell_BuyerInfoCell=function BuyerInfoCell(_ref2){var code=_ref2.code,ordersStore=_ref2.ordersStore;var tableDataAsObject=ordersStore.tableDataAsObject;var _tableDataAsObject$co=tableDataAsObject[code],buyerInfo=_tableDataAsObject$co.buyerInfo,buyerInfoTitle=_tableDataAsObject$co.buyerInfoTitle,shippingBuyerName=_tableDataAsObject$co.shippingBuyerName,buyerAddressZipCode=_tableDataAsObject$co.buyerAddressZipCode;var buyerInfoAll="".concat(buyerInfo,"\n").concat(buyerAddressZipCode);return Object(core_browser_esm["c" /* jsx */])(popover_default.a,{content:Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("white-space:pre-line;font-size:",constants["b" /* fontSize */].medium,";",shippingBuyerName?"\n                &::first-line {\n                  font-weight: bold;\n                }":'',"label:BuyerInfoCell;"+( true?"":undefined))},buyerInfoAll),Object(core_browser_esm["c" /* jsx */])(CopyToClipboard["a" /* CopyToClipboard */],{toCopy:buyerInfoAll})),title:"",trigger:"hover",placement:"top"},Object(core_browser_esm["c" /* jsx */])("div",{css:BuyerInfoCell_ref},buyerInfoTitle));};/* harmony default export */ var Table_BuyerInfoCell = (Object(index_module["b" /* inject */])('ordersStore')(Object(index_module["c" /* observer */])(BuyerInfoCell_BuyerInfoCell)));
// EXTERNAL MODULE: ./node_modules/antd/lib/modal/style/index.js
var modal_style = __webpack_require__(88);

// EXTERNAL MODULE: ./node_modules/antd/lib/modal/index.js
var modal = __webpack_require__(55);
var modal_default = /*#__PURE__*/__webpack_require__.n(modal);

// EXTERNAL MODULE: ./node_modules/lodash/fp/getOr.js
var getOr = __webpack_require__(82);
var getOr_default = /*#__PURE__*/__webpack_require__.n(getOr);

// EXTERNAL MODULE: ./node_modules/react-router/es/index.js + 32 modules
var es = __webpack_require__(50);

// EXTERNAL MODULE: ./src/js/constants/theme.js
var constants_theme = __webpack_require__(28);

// EXTERNAL MODULE: ./src/js/constants/themes.js
var themes = __webpack_require__(18);

// EXTERNAL MODULE: ./src/js/components/common/Input/index.js
var Input = __webpack_require__(46);

// EXTERNAL MODULE: ./src/js/utils/formatter.js
var utils_formatter = __webpack_require__(193);

// CONCATENATED MODULE: ./src/js/components/Orders/Table/OrderCell.js
var _dec,_class;/* eslint-disable no-nested-ternary */var stopped=orders["a" /* STATUS_TITLES */].stopped,inProcess=orders["a" /* STATUS_TITLES */].inProcess,failed=orders["a" /* STATUS_TITLES */].failed,notPaid=orders["a" /* STATUS_TITLES */].notPaid;var OrderCell_Option=select_default.a.Option;var OrderCell_confirm=modal_default.a.confirm;var OrderCell_ref= true?{name:"oikcuj-OrderCell",styles:"min-width:80px;display:inline-block;margin-right:11px;text-align:center;label:OrderCell;"}:undefined;var OrderCell_ref2= true?{name:"1ghtab2-OrderCell",styles:"margin-right:5px;margin-left:5px;label:OrderCell;"}:undefined;var OrderCell_ref3= true?{name:"12dietv-OrderCell",styles:"transform:translateY(-1px);label:OrderCell;"}:undefined;var OrderCell_ref4= true?{name:"1llxen3-OrderCell",styles:"min-width:26px;height:20px;margin-right:5px;margin-left:5px;label:OrderCell;"}:undefined;var OrderCell_ref5= true?{name:"1f1iz67-OrderCell",styles:"margin:0 11px;label:OrderCell;"}:undefined;var OrderCell_ref6= true?{name:"1oy4bg3-OrderCell",styles:"text-overflow:ellipsis;width:100px;overflow:hidden;label:OrderCell;"}:undefined;var OrderCell_ref7= true?{name:"1oy4bg3-OrderCell",styles:"text-overflow:ellipsis;width:100px;overflow:hidden;label:OrderCell;"}:undefined;var OrderCell_ref8= true?{name:"r32yab-OrderCell",styles:"margin-right:11px;label:OrderCell;"}:undefined;var OrderCell_ref9= true?{name:"1nuwsie-OrderCell",styles:"text-overflow:ellipsis;overflow:hidden;max-width:90px;display:inline-block;label:OrderCell;"}:undefined;var _ref10= true?{name:"1bz17bx-OrderCell",styles:"width:100%;text-align:left;color:inherit;:hover{color:inherit;}label:OrderCell;"}:undefined;var OrderCell_OrderCell=(_dec=Object(index_module["b" /* inject */])('ordersStore'),Object(index_es["d" /* injectIntl */])(_class=_dec(_class=Object(index_module["c" /* observer */])(_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(OrderCell,_Component);function OrderCell(props){var _this;Object(classCallCheck["a" /* default */])(this,OrderCell);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(OrderCell).call(this,props));_this.setAsinInputVisible=function(val){_this.setState({showInput:val});};_this.editAsin=function(e){var givenValue=e.target?e.target.value:e;_this.setState({newAsin:givenValue.trim()});};_this.state={showInput:false,newAsin:''};return _this;}Object(createClass["a" /* default */])(OrderCell,[{key:"render",value:function render(){var _this2=this;var _this$props=this.props,code=_this$props.code,ordersStore=_this$props.ordersStore,intl=_this$props.intl;var _this$state=this.state,showInput=_this$state.showInput,newAsin=_this$state.newAsin;var checkedOrders=ordersStore.checkedOrders,toggleCheckedOrder=ordersStore.toggleCheckedOrder,tryAgain=ordersStore.tryAgain,tryAgainWithNewAsin=ordersStore.tryAgainWithNewAsin,forcePurchase=ordersStore.forcePurchase,tableDataAsObject=ordersStore.tableDataAsObject,cancelOrder=ordersStore.cancelOrder,forcePush=ordersStore.forcePush,forceMarketplacePurchase=ordersStore.forceMarketplacePurchase,setAllPagesChecked=ordersStore.setAllPagesChecked,allPagesChecked=ordersStore.allPagesChecked;var _tableDataAsObject$co=tableDataAsObject[code],status=_tableDataAsObject$co.status,title=_tableDataAsObject$co.title,imageUrl=_tableDataAsObject$co.imageUrl,stopResumeOrder=_tableDataAsObject$co.stopResumeOrder,failedReason=_tableDataAsObject$co.failedReason,isBuyItForMe=_tableDataAsObject$co.isBuyItForMe,requestRefund=_tableDataAsObject$co.requestRefund,loading=_tableDataAsObject$co.loading,isGlobalOrder=_tableDataAsObject$co.isGlobalOrder,shippingStatus=_tableDataAsObject$co.shippingStatus,returnState=_tableDataAsObject$co.returnState,lostOrderState=_tableDataAsObject$co.lostOrderState,trackingNumber=_tableDataAsObject$co.trackingNumber,carrier=_tableDataAsObject$co.carrier;var isStoppedOrder=status===stopped;var checked=checkedOrders.get(code)!==undefined;var statusTitle=Object(core_browser_esm["c" /* jsx */])("div",{css:OrderCell_ref},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"orders.".concat(status)}));// const TrackingUrl = () => (
//   <a
//     rel="noopener noreferrer"
//     target="_blank"
//     href={sourceTrackingUrl}
//     css={css`
//       min-width: 80px;
//       display: inline-block;
//       margin-right: 14px;
//       text-align: center;
//     `}
//   >
//     Link
//   </a>
// );
// const EmptyTrackingUrl = () => (
//   <div
//     css={css`
//       min-width: 80px;
//       height: 20px;
//       margin-right: 14px;
//     `}
//   />
// );
var GlobalOrder=function GlobalOrder(){return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,isGlobalOrder?Object(core_browser_esm["c" /* jsx */])(popover_default.a,{content:Object(core_browser_esm["c" /* jsx */])("span",null,"Global Shipping Order"),title:"",trigger:"hover",placement:"top",css:OrderCell_ref2},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"globe",size:"26",css:OrderCell_ref3})):Object(core_browser_esm["c" /* jsx */])("div",{css:OrderCell_ref4}));};return Object(core_browser_esm["c" /* jsx */])(styled["c" /* CellContainer */],{color:getOr_default()(constants_theme["a" /* colors */].mainBackground,'color',orders["d" /* statuses */][status]),justify:true},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"orders.".concat(isStoppedOrder?'resume':'stop',"Order")},function(optionTitle){return Object(core_browser_esm["c" /* jsx */])(react["Fragment"],null,Object(core_browser_esm["c" /* jsx */])(Checkbox["a" /* default */],{checked:checked,onChange:function onChange(e){toggleCheckedOrder(code,e.target.checked);if(allPagesChecked&&!e.target.checked){setAllPagesChecked(false);}},table:true,css:OrderCell_ref5}),Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(classes["d" /* text3 */],";width:100%;text-align:left;display:flex;align-items:center;:hover{color:inherit;}label:OrderCell;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(es["b" /* Link */],{to:"/orders/single-item/".concat(code),css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(classes["d" /* text3 */],";text-align:left;display:flex;align-items:center;:hover{color:inherit;}label:OrderCell;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(GlobalOrder,null),status==='failed'&&failedReason?Object(core_browser_esm["c" /* jsx */])(popover_default.a,{title:"",content:Object(core_browser_esm["c" /* jsx */])("span",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("color:",themes["d" /* themeColors */].pink,";label:OrderCell;"+( true?"":undefined))},failedReason),trigger:"hover",placement:"top"},statusTitle):(status==='completed'||status==='returned')&&returnState?Object(core_browser_esm["c" /* jsx */])(popover_default.a,{title:"",content:Object(core_browser_esm["c" /* jsx */])("span",null,returnState),trigger:"hover",placement:"top"},statusTitle):statusTitle,status==='undeliverable'&&lostOrderState&&Object(core_browser_esm["c" /* jsx */])(popover_default.a,{title:"",content:Object(core_browser_esm["c" /* jsx */])("span",null,lostOrderState),trigger:"hover",placement:"top"},statusTitle)),shippingStatus.length>0?Object(core_browser_esm["c" /* jsx */])(popover_default.a,{title:"",content:Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])("div",null,shippingStatus),trackingNumber&&Object(core_browser_esm["c" /* jsx */])("div",null,"Tracking number: ",trackingNumber),carrier&&Object(core_browser_esm["c" /* jsx */])("div",null,"Carrier: ",carrier)),trigger:"hover",placement:"top"},Object(core_browser_esm["c" /* jsx */])("span",{css:OrderCell_ref6},shippingStatus)):Object(core_browser_esm["c" /* jsx */])(popover_default.a,{title:"",content:Object(core_browser_esm["c" /* jsx */])("span",null,"No status yet"),trigger:"hover",placement:"top"},Object(core_browser_esm["c" /* jsx */])("span",{css:OrderCell_ref7},"No status yet")),Object(core_browser_esm["c" /* jsx */])(es["b" /* Link */],{to:"/orders/single-item/".concat(code),css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(classes["d" /* text3 */],";text-align:left;display:flex;align-items:center;:hover{color:inherit;}label:OrderCell;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(popover_default.a,{content:Object(core_browser_esm["c" /* jsx */])("img",{src:(imageUrl===null||imageUrl===void 0?void 0:imageUrl.includes('images/W'))?Object(utils_formatter["a" /* formatImageUrl */])(imageUrl):imageUrl,alt:"description",width:214,height:214}),title:"",trigger:"hover",placement:"top"},Object(core_browser_esm["c" /* jsx */])("img",{src:(imageUrl===null||imageUrl===void 0?void 0:imageUrl.includes('images/W'))?Object(utils_formatter["a" /* formatImageUrl */])(imageUrl):imageUrl,alt:"description",width:26,height:24,css:OrderCell_ref8})),Object(core_browser_esm["c" /* jsx */])("div",{css:OrderCell_ref9},title))),Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{dropdownMatchSelectWidth:false,value:"",arrow:true},Object(core_browser_esm["c" /* jsx */])(OrderCell_Option,{value:"view",key:"View"},Object(core_browser_esm["c" /* jsx */])(es["b" /* Link */],{to:"/orders/single-item/".concat(code),css:_ref10},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"orders.viewShippingDetails"}))),isStoppedOrder||status===inProcess?Object(core_browser_esm["c" /* jsx */])(OrderCell_Option,{onClick:isStoppedOrder?function(){return stopResumeOrder(code,'resume');}:function(){return stopResumeOrder(code,'stop');},css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("color:",status!==stopped?constants_theme["a" /* colors */].pinkDark:'none',";label:OrderCell;"+( true?"":undefined)),value:optionTitle},optionTitle):null,status===failed?Object(core_browser_esm["c" /* jsx */])(OrderCell_Option,{onClick:function onClick(){return tryAgain([code]);},value:"tryAgain",key:"tryAga",disabled:loading},loading?Object(core_browser_esm["c" /* jsx */])("span",null,"Loading..."):Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.tryAgain"})):null,status===failed?Object(core_browser_esm["c" /* jsx */])(OrderCell_Option,{value:"tryAgainWithNewAsin",key:"tryAgaNewASIN",disabled:loading},loading?Object(core_browser_esm["c" /* jsx */])("span",null,"Loading..."):Object(core_browser_esm["c" /* jsx */])("div",{onClick:function onClick(){_this2.setAsinInputVisible(true);}},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.tryAgainNewAsin"}))):null,status===notPaid?Object(core_browser_esm["c" /* jsx */])(OrderCell_Option,{value:"forcePush",key:"forcePush",disabled:loading},loading?Object(core_browser_esm["c" /* jsx */])("span",null,"Loading..."):Object(core_browser_esm["c" /* jsx */])("div",{onClick:function onClick(){return forcePush(code);}},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.forcePush"}))):null,status===failed?Object(core_browser_esm["c" /* jsx */])(OrderCell_Option,{onClick:function onClick(){OrderCell_confirm({content:intl.formatMessage({id:'orders.forcePurchaseWarning'}),onOk:function onOk(){return forcePurchase([code]);},onCancel:function onCancel(){}});},value:"forcePurchase",key:"forPur",disabled:loading},loading?Object(core_browser_esm["c" /* jsx */])("span",null,"Loading..."):Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"orders.forcePurchase"})):null,status===failed&&Object(core_browser_esm["c" /* jsx */])(OrderCell_Option,{onClick:function onClick(){OrderCell_confirm({content:intl.formatMessage({id:'orders.forceMarketplacePurchaseWarning'}),onOk:function onOk(){return forceMarketplacePurchase([code]);},onCancel:function onCancel(){}});},value:"forceMarketplacePurchase",key:"forMarPur",disabled:loading},loading?Object(core_browser_esm["c" /* jsx */])("span",null,"Loading..."):Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"orders.forceMarketplacePurchase"})),isBuyItForMe&&(status==='shipped'||status==='completed'||status==='delivered')?Object(core_browser_esm["c" /* jsx */])(OrderCell_Option,{onClick:function onClick(){return requestRefund(code);},key:"reqRet"},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"orders.requestReturn"})):null,status==='ordered'?Object(core_browser_esm["c" /* jsx */])(OrderCell_Option,{onClick:function onClick(){return cancelOrder(code);},key:"cancel"},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"orders.cancelOrder"})):null));}),Object(core_browser_esm["c" /* jsx */])(modal_default.a,{title:"Change Asin",visible:showInput,footer:null,width:270,onCancel:function onCancel(){_this2.editAsin('');_this2.setAsinInputVisible(false);}},Object(core_browser_esm["c" /* jsx */])(Input["a" /* default */],{value:newAsin,onChange:this.editAsin}),newAsin?Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{size:18,type:"v",marginLeft:"10px",onClick:function onClick(){tryAgainWithNewAsin(code,newAsin);_this2.editAsin('');_this2.setAsinInputVisible(false);}}):null));}}]);return OrderCell;}(react["Component"]))||_class)||_class)||_class);/* harmony default export */ var Table_OrderCell = (OrderCell_OrderCell);
// EXTERNAL MODULE: ./src/js/utils/formatMarketsUrl.js
var formatMarketsUrl = __webpack_require__(189);

// CONCATENATED MODULE: ./src/js/components/common/CellWithCopyButton/CellWithCopyButton.js
function CellWithCopyButton(_ref){var value=_ref.value,popOverStyle=_ref.popOverStyle,cellStyle=_ref.cellStyle,copy=_ref.copy;return Object(core_browser_esm["c" /* jsx */])(popover_default.a,{content:Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("font-weight:bold;",popOverStyle, true?"":undefined)},value),copy&&Object(core_browser_esm["c" /* jsx */])(CopyToClipboard["a" /* CopyToClipboard */],{toCopy:value})),title:"",trigger:"hover",placement:"top"},Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("text-overflow:ellipsis;overflow:hidden;cursor:pointer;",cellStyle, true?"":undefined)},value));};
// CONCATENATED MODULE: ./src/js/components/common/CellWithCopyButton/index.js

// EXTERNAL MODULE: ./src/js/HOC/ConditionalWrapper.js
var ConditionalWrapper = __webpack_require__(452);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js
var regenerator = __webpack_require__(5);
var regenerator_default = /*#__PURE__*/__webpack_require__.n(regenerator);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
var asyncToGenerator = __webpack_require__(191);

// EXTERNAL MODULE: ./src/js/components/common/Textarea/index.js + 1 modules
var Textarea = __webpack_require__(458);

// CONCATENATED MODULE: ./src/js/components/Orders/Table/AddNoteModal.js
var AddNoteModal_dec,AddNoteModal_class;var AddNoteModal_AddNoteModal=(AddNoteModal_dec=Object(index_module["b" /* inject */])('ordersStore'),AddNoteModal_dec(AddNoteModal_class=Object(index_module["c" /* observer */])(AddNoteModal_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(AddNoteModal,_Component);function AddNoteModal(props){var _this;Object(classCallCheck["a" /* default */])(this,AddNoteModal);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(AddNoteModal).call(this,props));_this.handleAddNote=/*#__PURE__*/Object(asyncToGenerator["a" /* default */])(/*#__PURE__*/regenerator_default.a.mark(function _callee(){var _this$props,_this$props$ordersSto,fetchSingleItemData,updateSingleOrder,code,orderNote,item;return regenerator_default.a.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:_this$props=_this.props,_this$props$ordersSto=_this$props.ordersStore,fetchSingleItemData=_this$props$ordersSto.fetchSingleItemData,updateSingleOrder=_this$props$ordersSto.updateSingleOrder,code=_this$props.code;orderNote=_this.state.orderNote;_context.next=4;return fetchSingleItemData(code);case 4:item=_context.sent;item.setNote(orderNote,true);updateSingleOrder(item).then(function(){return _this.setState({editNoteModal:false});});case 7:case"end":return _context.stop();}}},_callee,this);}));var _code=_this.props.code;var tableDataAsObject=_this.props.ordersStore.tableDataAsObject;var note=tableDataAsObject[_code].note;_this.state={editNoteModal:false,orderNote:note||''};return _this;}Object(createClass["a" /* default */])(AddNoteModal,[{key:"render",value:function render(){var _this2=this;var _this$state=this.state,editNoteModal=_this$state.editNoteModal,orderNote=_this$state.orderNote;var iconColor=orderNote===''?'#0070ba':'#08ac08';return Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(popover_default.a,{title:"",content:Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"orders.addNoteQuick"})),trigger:"hover",placement:"top"},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{size:18,type:"pencil",color:iconColor,onClick:function onClick(){return _this2.setState({editNoteModal:true});}})),Object(core_browser_esm["c" /* jsx */])(modal_default.a,{title:"Add a note for your order",visible:editNoteModal,onCancel:function onCancel(){return _this2.setState({editNoteModal:false});},okText:"Add note",onOk:function onOk(){return _this2.handleAddNote();},okButtonProps:{disabled:!orderNote.length}},Object(core_browser_esm["c" /* jsx */])(Textarea["a" /* default */],{placeholder:"Start typing..",value:orderNote||'',css:classes["b" /* text2 */],onChange:function onChange(e){return _this2.setState({orderNote:e.target.value});}})));}}]);return AddNoteModal;}(react["Component"]))||AddNoteModal_class)||AddNoteModal_class);/* harmony default export */ var Table_AddNoteModal = (AddNoteModal_AddNoteModal);
// CONCATENATED MODULE: ./src/js/components/Orders/Table/columns.js
var isAfterOrder=function isAfterOrder(status){return['ordered','shipped','completed','delivered'].indexOf(status)!==-1;};/* harmony default export */ var columns = ([{key:'orders',name:'Orders',width:430,formatter:function formatter(_ref){var _ref$row=_ref.row,id=_ref$row.id,isCustomRow=_ref$row.isCustomRow,customRenderer=_ref$row.customRenderer;return isCustomRow?customRenderer():Object(core_browser_esm["c" /* jsx */])(Table_OrderCell,{code:id});},headerRenderer:Object(core_browser_esm["c" /* jsx */])(Table_OrdersHeaderCell,null)},{key:'purchaseTime',name:'Purchase Time',width:120,sortable:true,formatter:function formatter(_ref2){var value=_ref2.value,isCustomRow=_ref2.row.isCustomRow;return Object(core_browser_esm["c" /* jsx */])("div",null,isCustomRow?'':moment_default()(value).format('YYYY-MM-DD (HH:mm)'));}},{key:'sourceOrderNumber',name:'source Order Number',width:120,sortable:true},{key:'systemCode',name:'System Order ID',width:120,sortable:true},{key:'destinationItemId',name:'Destination Item Id',width:110,sortable:true,formatter:function formatter(_ref3){var _ref3$row=_ref3.row,destinationItemUrl=_ref3$row.destinationItemUrl,destinationItemId=_ref3$row.destinationItemId;return Object(core_browser_esm["c" /* jsx */])("a",{rel:"noopener noreferrer",target:"_blank",href:destinationItemUrl,css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(classes["d" /* text3 */],";font-size:12px;text-decoration:underline;"+( true?"":undefined))},destinationItemId);}},{key:'sourceItemCode',name:'Source Item Id',// width: 110,
sortable:true,formatter:function formatter(_ref4){var _ref4$row=_ref4.row,sourceItemCode=_ref4$row.sourceItemCode,sourceMarketplaceId=_ref4$row.sourceMarketplaceId;return sourceItemCode?Object(core_browser_esm["c" /* jsx */])("a",{rel:"noopener noreferrer",target:"_blank",href:Object(formatMarketsUrl["b" /* formatOfferUrl */])(sourceItemCode,sourceMarketplaceId),css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(classes["d" /* text3 */],";font-size:12px;text-decoration:underline;"+( true?"":undefined))},sourceItemCode):'';}},{key:'buyerUsername',name:'Buyer Id',width:100,sortable:true,formatter:function formatter(_ref5){var value=_ref5.value,buyerEmail=_ref5.row.buyerEmail;return Object(core_browser_esm["c" /* jsx */])(CellWithCopyButton,{value:value||buyerEmail,cellStyle:"width: 100px;"});}},{key:'salePrice',name:'Destination Price',// width: 70,
sortable:true},{key:'sourcePrice',name:'Source Price',// width: 70,
sortable:true},{key:'profit',name:'Profit',// width: 70,
sortable:true,formatter:function formatter(_ref6){var value=_ref6.value,_ref6$row=_ref6.row,status=_ref6$row.status,isCustomRow=_ref6$row.isCustomRow;return isCustomRow?null:Object(core_browser_esm["c" /* jsx */])(ConditionalWrapper["a" /* default */],{condition:!isAfterOrder(status),wrapper:function wrapper(v){return Object(core_browser_esm["c" /* jsx */])(popover_default.a,{title:"",content:Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"orders.estProfit"})},v,"*");}},value);}},{key:'quantity',name:'Quantity',// width: 60,
sortable:true},{key:'buyerInfo',name:'Buyer Info',width:100,sortable:true,formatter:function formatter(_ref7){var _ref7$row=_ref7.row,id=_ref7$row.id,isCustomRow=_ref7$row.isCustomRow;return isCustomRow?null:Object(core_browser_esm["c" /* jsx */])(Table_BuyerInfoCell,{code:id});}},{key:'orderNote',name:'Note',formatter:function formatter(_ref8){var _ref8$row=_ref8.row,id=_ref8$row.id,isCustomRow=_ref8$row.isCustomRow;return isCustomRow?null:Object(core_browser_esm["c" /* jsx */])(Table_AddNoteModal,{code:id});}},{key:'destinationAccount',name:'Account',// width: 150,
sortable:true},{key:'sourceAccount',name:'Source Account',width:150,sortable:true,formatter:function formatter(_ref9){var value=_ref9.value,isBuyItForMe=_ref9.row.isBuyItForMe;return isBuyItForMe?Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"orders.TMAccountUsed"}):value;}},{key:'sourceMarketplaceName',name:'Source Marketplace',// width: 70,
resizable:true,sortable:true}]);
// CONCATENATED MODULE: ./src/js/components/Orders/Table/OrdersTable.js
var OrdersTable_class;var OrdersTable_ref= true?{name:"7nwvao-OrdersTable",styles:"font-family:'Stolzl',sans-serif;label:OrdersTable;"}:undefined;var OrdersTable_ref2= true?{name:"pdoi0o-OrdersTable",styles:"text-align:center;font-weight:bold;padding:10px;label:OrdersTable;"}:undefined;var OrdersTable_ref3= true?{name:"13yrlhu-OrdersTable",styles:"text-align:center;padding:20px 0;label:OrdersTable;"}:undefined;var OrdersTable_OrdersTable=Object(index_module["c" /* observer */])(OrdersTable_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(OrdersTable,_Component);function OrdersTable(){Object(classCallCheck["a" /* default */])(this,OrdersTable);return Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(OrdersTable).apply(this,arguments));}Object(createClass["a" /* default */])(OrdersTable,[{key:"render",value:function render(){var _this$props=this.props,data=_this$props.data,paginationData=_this$props.paginationData,onGridSort=_this$props.onGridSort,accountsBar=_this$props.accountsBar;var customRow=accountsBar.selectedDestinationMarketplace.id==="SPFD_US"&&accountsBar.shopifyPendingFulfillmentRequestOrdersCount>0?[{key:'custom-message',isCustomRow:true,// Flag to identify custom row
content:"".concat(accountsBar.shopifyPendingFulfillmentRequestOrdersCount," orders need to be requested fulfillment from your Shopify store(s)")}]:[];var tableData=[].concat(customRow,Object(toConsumableArray["a" /* default */])(data));return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])("div",{css:OrdersTable_ref},Object(core_browser_esm["c" /* jsx */])(Table["a" /* default */],{resetPadding:true,columns:columns,rowGetter:function rowGetter(i){// if (i >= tableData.length || i < 0) {
//   return {};
// }
var row=tableData[i];if(row===null||row===void 0?void 0:row.isCustomRow){return{key:row.key,customRenderer:function customRenderer(){return Object(core_browser_esm["c" /* jsx */])("div",{css:OrdersTable_ref2},row.content);},isCustomRow:row===null||row===void 0?void 0:row.isCustomRow};}return row;},rowsCount:tableData.length,headerRowHeight:50,rowHeight:41,onGridSort:onGridSort}),Object(core_browser_esm["c" /* jsx */])(pagination_default.a,Object(esm_extends["a" /* default */])({defaultCurrent:1,defaultPageSize:paginationData.pageSize,css:OrdersTable_ref3},paginationData))));}}]);return OrdersTable;}(react["Component"]))||OrdersTable_class;
// CONCATENATED MODULE: ./src/js/components/Orders/Table/index.js

// EXTERNAL MODULE: ./node_modules/antd/lib/icon/style/index.js
var icon_style = __webpack_require__(276);

// EXTERNAL MODULE: ./node_modules/antd/lib/icon/index.js
var icon = __webpack_require__(104);
var icon_default = /*#__PURE__*/__webpack_require__.n(icon);

// EXTERNAL MODULE: ./node_modules/antd/lib/icon/style/css.js
var css = __webpack_require__(1070);

// EXTERNAL MODULE: ./node_modules/antd/lib/checkbox/style/index.js
var checkbox_style = __webpack_require__(134);

// EXTERNAL MODULE: ./node_modules/antd/lib/checkbox/index.js
var lib_checkbox = __webpack_require__(61);
var checkbox_default = /*#__PURE__*/__webpack_require__.n(lib_checkbox);

// EXTERNAL MODULE: ./src/js/utils/format-date.js
var format_date = __webpack_require__(168);

// EXTERNAL MODULE: ./src/js/components/common/CollapseBar/index.js + 1 modules
var CollapseBar = __webpack_require__(170);

// EXTERNAL MODULE: ./src/js/components/common/Multiselect/index.js + 2 modules
var Multiselect = __webpack_require__(174);

// EXTERNAL MODULE: ./src/js/components/common/TagBar/index.js + 1 modules
var TagBar = __webpack_require__(309);

// EXTERNAL MODULE: ./src/js/components/common/Filters/index.js + 1 modules
var Filters = __webpack_require__(31);

// CONCATENATED MODULE: ./src/js/components/Orders/Toolbar/AdvancedSearch/AdvancedSearch.js
var AdvancedSearch_dec,AdvancedSearch_class;// import Dropdown from '../../../common/Dropdown';
// import { STATUS_TITLES } from '../../../../constants/orders/status-list';
var MultiOption=Multiselect["a" /* default */].Option;// const { Option } = Select;
// const { failed } = STATUS_TITLES;
var dateInputWidth='140px';var inputWidth='70px';var buttonStyle= true?{name:"1mf79ux-buttonStyle",styles:"margin-top:10px;label:buttonStyle;"}:undefined;var AdvancedSearch_ref= true?{name:"1tg2ydq-AdvancedSearch",styles:"margin-left:10px;line-height:22px;label:AdvancedSearch;"}:undefined;var AdvancedSearch_ref2= true?{name:"1tg2ydq-AdvancedSearch",styles:"margin-left:10px;line-height:22px;label:AdvancedSearch;"}:undefined;var AdvancedSearch_ref3= true?{name:"1tg2ydq-AdvancedSearch",styles:"margin-left:10px;line-height:22px;label:AdvancedSearch;"}:undefined;var AdvancedSearch_AdvancedSearch=(AdvancedSearch_dec=Object(index_module["b" /* inject */])('ordersStore'),Object(emotion_theming_browser_esm["b" /* withTheme */])(AdvancedSearch_class=AdvancedSearch_dec(AdvancedSearch_class=Object(index_module["c" /* observer */])(AdvancedSearch_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(AdvancedSearch,_Component);function AdvancedSearch(){Object(classCallCheck["a" /* default */])(this,AdvancedSearch);return Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(AdvancedSearch).apply(this,arguments));}Object(createClass["a" /* default */])(AdvancedSearch,[{key:"componentDidMount",value:function componentDidMount(){var ordersStore=this.props.ordersStore;ordersStore.filterValues.fetchSourceMarketPlaces();}},{key:"render",value:function render(){var ordersStore=this.props.ordersStore;var isAdvancedBarOpen=ordersStore.isAdvancedBarOpen,toggleAdvancedBar=ordersStore.toggleAdvancedBar,filterValues=ordersStore.filterValues,fetchNextPage=ordersStore.fetchNextPage;var statuses=filterValues.statuses,sourceMarketPlaces=filterValues.sourceMarketPlaces,buyerOrderDateFrom=filterValues.buyerOrderDateFrom,buyerOrderDateTo=filterValues.buyerOrderDateTo,destinationPriceFrom=filterValues.destinationPriceFrom,destinationPriceTo=filterValues.destinationPriceTo,profitFrom=filterValues.profitFrom,profitTo=filterValues.profitTo,estimatedShippingTimeFrom=filterValues.estimatedShippingTimeFrom,estimatedShippingTimeTo=filterValues.estimatedShippingTimeTo,ebayGlobalShippingProgram=filterValues.ebayGlobalShippingProgram,convertInProcess=filterValues.convertInProcess,lateShipment=filterValues.lateShipment,setBuyerOrderDateFrom=filterValues.setBuyerOrderDateFrom,setBuyerOrderDateTo=filterValues.setBuyerOrderDateTo,setDestinationPriceFrom=filterValues.setDestinationPriceFrom,setDestinationPriceTo=filterValues.setDestinationPriceTo,setProfitFrom=filterValues.setProfitFrom,setProfitTo=filterValues.setProfitTo,setEstimatedShippingTimeFrom=filterValues.setEstimatedShippingTimeFrom,setEstimatedShippingTimeTo=filterValues.setEstimatedShippingTimeTo,setGlobalShippingProgramm=filterValues.setGlobalShippingProgramm,setConvertInProcess=filterValues.setConvertInProcess,setLateShipment=filterValues.setLateShipment,selectStatus=filterValues.selectStatus,toggleSellectAllStatuses=filterValues.toggleSellectAllStatuses,orderStatusesObj=filterValues.orderStatusesObj,selectSourceMarketPlace=filterValues.selectSourceMarketPlace,toggleSellectAllSourceMarketPlaces=filterValues.toggleSellectAllSourceMarketPlaces,sourceMarketPlacesObj=filterValues.sourceMarketPlacesObj,sourceMarketPlaceIds=filterValues.sourceMarketPlaceIds;if(sourceMarketPlaces.length===0){ordersStore.filterValues.setSourceMarketplaces();}return Object(core_browser_esm["c" /* jsx */])(react["Fragment"],null,Object(core_browser_esm["c" /* jsx */])(CollapseBar["a" /* default */],{titleId:"common.advancedSearch",toogleBar:toggleAdvancedBar,open:isAdvancedBarOpen,as:"h2",padding:"10px 0",buttonStyle:buttonStyle,titleElements:Object(core_browser_esm["c" /* jsx */])(TagBar["a" /* default */],{filterValues:filterValues,intlSection:"orders",buttonStyle:buttonStyle,resetActiveFilters:function resetActiveFilters(){return fetchNextPage(1);}})},Object(core_browser_esm["c" /* jsx */])(Filters["a" /* BarContainer */],{style:{position:'relative'}},Object(core_browser_esm["c" /* jsx */])("form",{css:Filters["f" /* formStyle */]},Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"common.orderStatus"},Object(core_browser_esm["c" /* jsx */])(Multiselect["a" /* default */],{toggleSellectAllAccounts:function toggleSellectAllAccounts(){return toggleSellectAllStatuses(orders["c" /* statusList */].length);},values:statuses,name:"orderStatus",height:"22px"},orders["c" /* statusList */].map(function(_ref4){var status=_ref4.status,title=_ref4.title;return Object(core_browser_esm["c" /* jsx */])(MultiOption,{value:status,key:status,onClick:function onClick(){return selectStatus(title);},checked:orderStatusesObj[title]!==undefined},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"orders.".concat(status)}));}))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"orders.buyerOrderDateRange"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"date",value:Object(format_date["a" /* decodeDate */])(buyerOrderDateFrom),onChange:setBuyerOrderDateFrom,width:dateInputWidth}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.to"})),Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"date",value:Object(format_date["a" /* decodeDate */])(buyerOrderDateTo),onChange:setBuyerOrderDateTo,width:dateInputWidth}))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"orders.destinationPriceRange"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"number",value:destinationPriceFrom,onChange:setDestinationPriceFrom,width:inputWidth}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},' ',Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.to"})),Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"number",value:destinationPriceTo,onChange:setDestinationPriceTo,width:inputWidth}))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"common.profit"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"number",value:profitFrom,onChange:setProfitFrom,width:inputWidth}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},' ',Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.to"})),Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"number",value:profitTo,onChange:setProfitTo,width:inputWidth}))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"orders.estimatedShippingTimeRange"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"number",value:estimatedShippingTimeFrom,onChange:setEstimatedShippingTimeFrom,width:inputWidth}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},' ',Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.to"})),Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"number",value:estimatedShippingTimeTo,onChange:setEstimatedShippingTimeTo,width:inputWidth}))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"orders.ebayGlobalShippingProgram",extraCSS:" flex-direction: row; "},Object(core_browser_esm["c" /* jsx */])(checkbox_default.a,{checked:ebayGlobalShippingProgram,onChange:setGlobalShippingProgramm,css:AdvancedSearch_ref})),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"orders.tbaInProcess",extraCSS:" flex-direction: row; "},Object(core_browser_esm["c" /* jsx */])(checkbox_default.a,{checked:convertInProcess,onChange:setConvertInProcess,css:AdvancedSearch_ref2})),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"orders.lateShipment",extraCSS:" flex-direction: row; "},Object(core_browser_esm["c" /* jsx */])(checkbox_default.a,{checked:lateShipment,onChange:setLateShipment,css:AdvancedSearch_ref3})),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"common.sourceMarketplace"},Object(core_browser_esm["c" /* jsx */])(Multiselect["a" /* default */],{toggleSellectAllAccounts:function toggleSellectAllAccounts(){return toggleSellectAllSourceMarketPlaces(sourceMarketPlaces.length);},values:sourceMarketPlaceIds,name:"sourceMarketPlace",height:"22px"},sourceMarketPlaces.map(function(_ref5){var id=_ref5.id,name=_ref5.name;return Object(core_browser_esm["c" /* jsx */])(MultiOption,{value:id,key:id,onClick:function onClick(){return selectSourceMarketPlace(id);},checked:sourceMarketPlacesObj[id]!==undefined},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:name,default:name}));})))),Object(core_browser_esm["c" /* jsx */])(Filters["b" /* Button */],{type:"primary",htmlType:"submit",clickHandler:function clickHandler(){return fetchNextPage(1);},cssProps:Filters["g" /* submitButtonStyle */]},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.search"})))));}}]);return AdvancedSearch;}(react["Component"]))||AdvancedSearch_class)||AdvancedSearch_class)||AdvancedSearch_class);/* harmony default export */ var Toolbar_AdvancedSearch_AdvancedSearch = (AdvancedSearch_AdvancedSearch);
// CONCATENATED MODULE: ./src/js/components/Orders/Toolbar/AdvancedSearch/index.js

// EXTERNAL MODULE: ./node_modules/@emotion/css/dist/css.browser.esm.js
var css_browser_esm = __webpack_require__(90);

// CONCATENATED MODULE: ./src/js/components/Orders/Toolbar/ActionBar.js
var ActionBar_confirm=modal_default.a.confirm;var Button=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])(Filters["b" /* Button */],{target:"e1773k9l0",label:"Button"})("font-size:",function(_ref2){var theme=_ref2.theme;return theme.fontSize.small;},";margin-right:20px;height:25px;width:auto;padding:0 10px;"+( true?"":undefined));var Wrapper=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1773k9l1",label:"Wrapper"})( true?{name:"1r2f04i",styles:"margin-bottom:10px;"}:undefined);var ActionBar_ref= true?{name:"vff9dn-ActionBar",styles:"display:none;label:ActionBar;"}:undefined;var ActionBar_ActionBar=function ActionBar(_ref3){var _ref3$ordersStore=_ref3.ordersStore,isActionBarOpen=_ref3$ordersStore.isActionBarOpen,toggleActionBar=_ref3$ordersStore.toggleActionBar,failedOrdersCodesInCheckedArray=_ref3$ordersStore.failedOrdersCodesInCheckedArray,checkedOrdersArray=_ref3$ordersStore.checkedOrdersArray,exportOrder=_ref3$ordersStore.exportOrder,tryAgain=_ref3$ordersStore.tryAgain,forcePurchase=_ref3$ordersStore.forcePurchase,someCheckedOrderLoading=_ref3$ordersStore.someCheckedOrderLoading,forceMarketplacePurchase=_ref3$ordersStore.forceMarketplacePurchase,exportedOrdersStatusInCheckedArray=_ref3$ordersStore.exportedOrdersStatusInCheckedArray,intl=_ref3.intl;return Object(core_browser_esm["c" /* jsx */])(Wrapper,null,Object(core_browser_esm["c" /* jsx */])(CollapseBar["a" /* default */],{titleId:"common.actions",toogleBar:toggleActionBar,open:isActionBarOpen,as:"h2",padding:"10px 0"},Object(core_browser_esm["c" /* jsx */])(Filters["a" /* BarContainer */],null,Object(core_browser_esm["c" /* jsx */])(Button,{clickHandler:function clickHandler(){return tryAgain(failedOrdersCodesInCheckedArray);},disabled:someCheckedOrderLoading||!failedOrdersCodesInCheckedArray.length||failedOrdersCodesInCheckedArray.length!==checkedOrdersArray.length},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.tryAgain"})),Object(core_browser_esm["c" /* jsx */])(Button,{clickHandler:function clickHandler(){ActionBar_confirm({content:intl.formatMessage({id:'orders.forcePurchaseWarning'}),onOk:function onOk(){return forcePurchase(failedOrdersCodesInCheckedArray);},onCancel:function onCancel(){}});},disabled:someCheckedOrderLoading||!failedOrdersCodesInCheckedArray.length||failedOrdersCodesInCheckedArray.length!==checkedOrdersArray.length},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"orders.forcePurchase"})),Object(core_browser_esm["c" /* jsx */])(Button,{clickHandler:function clickHandler(){ActionBar_confirm({content:intl.formatMessage({id:'orders.forceMarketplacePurchaseWarning'}),onOk:function onOk(){return forceMarketplacePurchase(failedOrdersCodesInCheckedArray);},onCancel:function onCancel(){}});},disabled:someCheckedOrderLoading||!failedOrdersCodesInCheckedArray.length||failedOrdersCodesInCheckedArray.length!==checkedOrdersArray.length},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"orders.forceMarketplacePurchase"})),Object(core_browser_esm["c" /* jsx */])(Button,{css:exportedOrdersStatusInCheckedArray.length>0?ActionBar_ref:'',clickHandler:function clickHandler(){return exportOrder(checkedOrdersArray);},disabled:someCheckedOrderLoading||!checkedOrdersArray.length},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.export"})))));};/* harmony default export */ var Toolbar_ActionBar = (Object(index_es["d" /* injectIntl */])(Object(index_module["b" /* inject */])('ordersStore')(Object(index_module["c" /* observer */])(ActionBar_ActionBar))));
// EXTERNAL MODULE: ./src/js/components/Listings/Toolbar/DebouncedSearch.js + 1 modules
var DebouncedSearch = __webpack_require__(238);

// CONCATENATED MODULE: ./src/js/components/Orders/Toolbar/Toolbar.js
var Toolbar_Toolbar=function Toolbar(_ref){var setTableFilter=_ref.setTableFilter,results=_ref.results,filtered=_ref.filtered,selected=_ref.selected,start=_ref.start,limit=_ref.limit,tableFilter=_ref.tableFilter,fetchNextPage=_ref.fetchNextPage,allPagesChecked=_ref.allPagesChecked,accountsBar=_ref.accountsBar;return Object(core_browser_esm["c" /* jsx */])(styled["w" /* Wrapper */],null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.search"},function(placeholder){return Object(core_browser_esm["c" /* jsx */])(DebouncedSearch["a" /* default */],{placeholder:placeholder,filterValue:tableFilter,setFilter:setTableFilter,fetchPage:function fetchPage(){fetchNextPage(1);}});}),Object(core_browser_esm["c" /* jsx */])(Toolbar_AdvancedSearch_AdvancedSearch,null),Object(core_browser_esm["c" /* jsx */])(Toolbar_ActionBar,null),Object(core_browser_esm["c" /* jsx */])(styled["m" /* ResultCounter */],null,Object(core_browser_esm["c" /* jsx */])(styled["n" /* ResultsLabel */],null,"Showing")," ",start,"...",limit>results?results:limit+start,"/",results,' ',Object(core_browser_esm["c" /* jsx */])(styled["n" /* ResultsLabel */],{marginRight:"32px"},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.results"})),filtered,' ',Object(core_browser_esm["c" /* jsx */])(styled["n" /* ResultsLabel */],{marginRight:"32px"},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.filtered"})),allPagesChecked?results:selected,' ',Object(core_browser_esm["c" /* jsx */])(styled["n" /* ResultsLabel */],{marginRight:"32px"},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.selected"})),accountsBar.selectedDestinationMarketplace.id==="SPFD_US"&&accountsBar.shopifyPendingFulfillmentRequestOrdersCount>0&&Object(core_browser_esm["c" /* jsx */])(popover_default.a,{content:Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,"You can request fulfillment for these orders from within Shopify's orders section.",Object(core_browser_esm["c" /* jsx */])("br",null),"Requesting fulfillment can be performed from within the order's details menu, or the general order's section for a bulk operation."),title:"Action Needed",trigger:"hover",placement:"right"},Object(core_browser_esm["c" /* jsx */])(styled["n" /* ResultsLabel */],null,Object(core_browser_esm["c" /* jsx */])("span",{style:{display:'inline-block',textAlign:'center'}},Object(core_browser_esm["c" /* jsx */])(icon_default.a,{type:"warning",style:{fontSize:'20px',color:'#faad14'}}),Object(core_browser_esm["c" /* jsx */])("span",{style:{display:'block',// Forces the text below the icon
marginTop:'4px',fontSize:'10px',fontWeight:'bold'}},"Awaiting Pending Orders"))))));};
// CONCATENATED MODULE: ./src/js/components/Orders/Toolbar/index.js

// CONCATENATED MODULE: ./src/js/components/Orders/index.js

// EXTERNAL MODULE: ./src/js/components/common/spinner/index.js + 1 modules
var spinner = __webpack_require__(74);

// CONCATENATED MODULE: ./src/js/pages/Orders/Orders.js
var Orders_dec,_dec2,Orders_class;var sortColumnIds={purchaseTime:0,systemCode:1,destinationItemId:2,sourceItemCode:3,buyerUsername:4,salePrice:5,sourcePrice:6,profit:7,quantity:8,buyerInfo:9,destinationOrderNumber:10,destinationAccount:11,sourceAccount:12,globalShippingProgram:13,sourceMarketplaceName:14};var isDescendingMap={DESC:true,ASC:false};var Orders_Orders=(Orders_dec=Object(index_module["b" /* inject */])('ordersStore'),_dec2=Object(index_module["b" /* inject */])('settingsStore'),Orders_dec(Orders_class=_dec2(Orders_class=Object(index_module["c" /* observer */])(Orders_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(Orders,_Component);function Orders(){var _getPrototypeOf2;var _this;Object(classCallCheck["a" /* default */])(this,Orders);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=Object(possibleConstructorReturn["a" /* default */])(this,(_getPrototypeOf2=Object(getPrototypeOf["a" /* default */])(Orders)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.selectAccountFromUrl=function(){var _this$props$ordersSto=_this.props.ordersStore.accountsBar,emptySelectedSellerAccounts=_this$props$ordersSto.emptySelectedSellerAccounts,selectAccount=_this$props$ordersSto.selectAccount,sellerAccounts=_this$props$ordersSto.sellerAccounts,selectedSellerAccounts=_this$props$ordersSto.selectedSellerAccounts;var sellerAccount=window.location.search.split("&")[1];if(decodeURIComponent(sellerAccount)!=="All Accounts"){var account=sellerAccounts.filter(function(x){return x.id===sellerAccount;});if(selectedSellerAccounts.length>0){emptySelectedSellerAccounts();}selectAccount(account[0]);}};_this.reInitializePage=function(pg){var clearCheckedOrdersFromPage=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var _this$props$ordersSto2=_this.props.ordersStore,toggleCheckedAllOrders=_this$props$ordersSto2.toggleCheckedAllOrders,fetchNextPage=_this$props$ordersSto2.fetchNextPage;if(clearCheckedOrdersFromPage){toggleCheckedAllOrders(false);}fetchNextPage(pg);};_this.reSort=function(column,direction){var setSorting=_this.props.ordersStore.setSorting;setSorting(sortColumnIds[column],isDescendingMap[direction]);_this.reInitializePage(1);};return _this;}Object(createClass["a" /* default */])(Orders,[{key:"componentDidMount",value:function componentDidMount(){var _this$props$ordersSto3=this.props.ordersStore,fetchInitialData=_this$props$ordersSto3.fetchInitialData,_this$props$ordersSto4=_this$props$ordersSto3.filterValues,setLateShipmentBool=_this$props$ordersSto4.setLateShipmentBool,selectStatus=_this$props$ordersSto4.selectStatus,setBuyerOrderDateFromBeforeWith60Days=_this$props$ordersSto4.setBuyerOrderDateFromBeforeWith60Days;if(window.location.search.includes("failed-orders")){this.selectAccountFromUrl();selectStatus("failed");setBuyerOrderDateFromBeforeWith60Days();}if(window.location.search.includes("late-shipment-orders")){this.selectAccountFromUrl();setLateShipmentBool(true);setBuyerOrderDateFromBeforeWith60Days();}if(window.location.search.includes("undeliverable-orders")){this.selectAccountFromUrl();selectStatus("undeliverable");setBuyerOrderDateFromBeforeWith60Days();}fetchInitialData();}},{key:"componentWillUnmount",value:function componentWillUnmount(){var _this$props$ordersSto5=this.props.ordersStore,ifOrderPathNotInScope=_this$props$ordersSto5.ifOrderPathNotInScope,unmountOrders=_this$props$ordersSto5.unmountOrders;if(ifOrderPathNotInScope){unmountOrders();}}},{key:"render",value:function render(){var _this2=this;var _this$props=this.props,_this$props$ordersSto6=_this$props.ordersStore,dashboardData=_this$props$ordersSto6.dashboardData,filteredTableData=_this$props$ordersSto6.filteredTableData,tableFilter=_this$props$ordersSto6.tableFilter,setTableFilter=_this$props$ordersSto6.setTableFilter,accountsBar=_this$props$ordersSto6.accountsBar,selectedOrdersCount=_this$props$ordersSto6.selectedOrdersCount,filteredOrdersCount=_this$props$ordersSto6.filteredOrdersCount,tableDataLoaded=_this$props$ordersSto6.tableDataLoaded,page=_this$props$ordersSto6.page,totalResults=_this$props$ordersSto6.totalResults,limit=_this$props$ordersSto6.limit,start=_this$props$ordersSto6.start,allPagesChecked=_this$props$ordersSto6.allPagesChecked,currentPlan=_this$props.settingsStore.subscription.currentPlan;return Object(core_browser_esm["c" /* jsx */])("div",{hidden:!currentPlan},Object(core_browser_esm["c" /* jsx */])(react_document_title_default.a,{title:"".concat(constants["d" /* title */]," | Orders")},Object(core_browser_esm["c" /* jsx */])(styled["j" /* PageContainer */],null,!tableDataLoaded?Object(core_browser_esm["c" /* jsx */])(spinner["a" /* default */],null):null,Object(core_browser_esm["c" /* jsx */])(HeaderBar["a" /* default */],{accountsProps:accountsBar,headingId:"common.orders"}),Object(core_browser_esm["c" /* jsx */])(Dashboard_Dashboard,{data:dashboardData}),Object(core_browser_esm["c" /* jsx */])(styled["u" /* TableWrapper */],null,Object(core_browser_esm["c" /* jsx */])("h2",{className:"visually-hidden"},"Orders table"),Object(core_browser_esm["c" /* jsx */])(Toolbar_Toolbar,{results:totalResults,selected:selectedOrdersCount,filtered:filteredOrdersCount,setTableFilter:setTableFilter,start:start,limit:limit,tableFilter:tableFilter,fetchNextPage:this.reInitializePage,allPagesChecked:allPagesChecked,accountsBar:accountsBar}),Object(core_browser_esm["c" /* jsx */])(OrdersTable_OrdersTable,{accountsBar:accountsBar,data:filteredTableData,tableFilter:tableFilter,onGridSort:this.reSort,paginationData:{current:page,total:totalResults,pageSize:limit,onChange:function onChange(pg){return _this2.reInitializePage(pg,allPagesChecked);}}})))));}}]);return Orders;}(react["Component"]))||Orders_class)||Orders_class)||Orders_class);/* harmony default export */ var pages_Orders_Orders = (Orders_Orders);
// CONCATENATED MODULE: ./src/js/pages/Orders/index.js
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/extends.js
var helpers_extends = __webpack_require__(19);
var extends_default = /*#__PURE__*/__webpack_require__.n(helpers_extends);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-dom/index.js
var react_dom = __webpack_require__(40);
var react_dom_default = /*#__PURE__*/__webpack_require__.n(react_dom);

// EXTERNAL MODULE: ./node_modules/create-react-class/index.js
var create_react_class = __webpack_require__(75);
var create_react_class_default = /*#__PURE__*/__webpack_require__.n(create_react_class);

// EXTERNAL MODULE: ./node_modules/rc-calendar/node_modules/prop-types/index.js
var prop_types = __webpack_require__(37);
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);

// EXTERNAL MODULE: ./node_modules/rc-util/es/KeyCode.js
var KeyCode = __webpack_require__(79);

// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/classCallCheck.js
var classCallCheck = __webpack_require__(22);
var classCallCheck_default = /*#__PURE__*/__webpack_require__.n(classCallCheck);

// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__(21);
var possibleConstructorReturn_default = /*#__PURE__*/__webpack_require__.n(possibleConstructorReturn);

// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/inherits.js
var inherits = __webpack_require__(26);
var inherits_default = /*#__PURE__*/__webpack_require__.n(inherits);

// CONCATENATED MODULE: ./node_modules/rc-calendar/es/date/DateConstants.js
/* harmony default export */ var DateConstants = ({
  DATE_ROW_COUNT: 6,
  DATE_COL_COUNT: 7
});
// EXTERNAL MODULE: ./node_modules/moment/moment.js
var moment = __webpack_require__(23);
var moment_default = /*#__PURE__*/__webpack_require__.n(moment);

// CONCATENATED MODULE: ./node_modules/rc-calendar/es/date/DateTHead.js







var DateTHead_DateTHead = function (_React$Component) {
  inherits_default()(DateTHead, _React$Component);

  function DateTHead() {
    classCallCheck_default()(this, DateTHead);

    return possibleConstructorReturn_default()(this, _React$Component.apply(this, arguments));
  }

  DateTHead.prototype.render = function render() {
    var props = this.props;
    var value = props.value;
    var localeData = value.localeData();
    var prefixCls = props.prefixCls;
    var veryShortWeekdays = [];
    var weekDays = [];
    var firstDayOfWeek = localeData.firstDayOfWeek();
    var showWeekNumberEl = void 0;
    var now = moment_default()();
    for (var dateColIndex = 0; dateColIndex < DateConstants.DATE_COL_COUNT; dateColIndex++) {
      var index = (firstDayOfWeek + dateColIndex) % DateConstants.DATE_COL_COUNT;
      now.day(index);
      veryShortWeekdays[dateColIndex] = localeData.weekdaysMin(now);
      weekDays[dateColIndex] = localeData.weekdaysShort(now);
    }

    if (props.showWeekNumber) {
      showWeekNumberEl = react_default.a.createElement(
        'th',
        {
          role: 'columnheader',
          className: prefixCls + '-column-header ' + prefixCls + '-week-number-header'
        },
        react_default.a.createElement(
          'span',
          { className: prefixCls + '-column-header-inner' },
          'x'
        )
      );
    }
    var weekDaysEls = weekDays.map(function (day, xindex) {
      return react_default.a.createElement(
        'th',
        {
          key: xindex,
          role: 'columnheader',
          title: day,
          className: prefixCls + '-column-header'
        },
        react_default.a.createElement(
          'span',
          { className: prefixCls + '-column-header-inner' },
          veryShortWeekdays[xindex]
        )
      );
    });
    return react_default.a.createElement(
      'thead',
      null,
      react_default.a.createElement(
        'tr',
        { role: 'row' },
        showWeekNumberEl,
        weekDaysEls
      )
    );
  };

  return DateTHead;
}(react_default.a.Component);

/* harmony default export */ var date_DateTHead = (DateTHead_DateTHead);
// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__(25);
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// CONCATENATED MODULE: ./node_modules/rc-calendar/es/util/index.js



var defaultDisabledTime = {
  disabledHours: function disabledHours() {
    return [];
  },
  disabledMinutes: function disabledMinutes() {
    return [];
  },
  disabledSeconds: function disabledSeconds() {
    return [];
  }
};

function getTodayTime(value) {
  var today = moment_default()();
  today.locale(value.locale()).utcOffset(value.utcOffset());
  return today;
}

function getTitleString(value) {
  return value.format('LL');
}

function getTodayTimeStr(value) {
  var today = getTodayTime(value);
  return getTitleString(today);
}

function getMonthName(month) {
  var locale = month.locale();
  var localeData = month.localeData();
  return localeData[locale === 'zh-cn' ? 'months' : 'monthsShort'](month);
}

function syncTime(from, to) {
  if (!moment_default.a.isMoment(from) || !moment_default.a.isMoment(to)) return;
  to.hour(from.hour());
  to.minute(from.minute());
  to.second(from.second());
}

function getTimeConfig(value, disabledTime) {
  var disabledTimeConfig = disabledTime ? disabledTime(value) : {};
  disabledTimeConfig = extends_default()({}, defaultDisabledTime, disabledTimeConfig);
  return disabledTimeConfig;
}

function isTimeValidByConfig(value, disabledTimeConfig) {
  var invalidTime = false;
  if (value) {
    var hour = value.hour();
    var minutes = value.minute();
    var seconds = value.second();
    var disabledHours = disabledTimeConfig.disabledHours();
    if (disabledHours.indexOf(hour) === -1) {
      var disabledMinutes = disabledTimeConfig.disabledMinutes(hour);
      if (disabledMinutes.indexOf(minutes) === -1) {
        var disabledSeconds = disabledTimeConfig.disabledSeconds(hour, minutes);
        invalidTime = disabledSeconds.indexOf(seconds) !== -1;
      } else {
        invalidTime = true;
      }
    } else {
      invalidTime = true;
    }
  }
  return !invalidTime;
}

function isTimeValid(value, disabledTime) {
  var disabledTimeConfig = getTimeConfig(value, disabledTime);
  return isTimeValidByConfig(value, disabledTimeConfig);
}

function util_isAllowedDate(value, disabledDate, disabledTime) {
  if (disabledDate) {
    if (disabledDate(value)) {
      return false;
    }
  }
  if (disabledTime) {
    if (!isTimeValid(value, disabledTime)) {
      return false;
    }
  }
  return true;
}
// CONCATENATED MODULE: ./node_modules/rc-calendar/es/date/DateTBody.js







function isSameDay(one, two) {
  return one && two && one.isSame(two, 'day');
}

function beforeCurrentMonthYear(current, today) {
  if (current.year() < today.year()) {
    return 1;
  }
  return current.year() === today.year() && current.month() < today.month();
}

function afterCurrentMonthYear(current, today) {
  if (current.year() > today.year()) {
    return 1;
  }
  return current.year() === today.year() && current.month() > today.month();
}

function getIdFromDate(date) {
  return 'rc-calendar-' + date.year() + '-' + date.month() + '-' + date.date();
}

var DateTBody = create_react_class_default()({
  displayName: 'DateTBody',

  propTypes: {
    contentRender: prop_types_default.a.func,
    dateRender: prop_types_default.a.func,
    disabledDate: prop_types_default.a.func,
    prefixCls: prop_types_default.a.string,
    selectedValue: prop_types_default.a.oneOfType([prop_types_default.a.object, prop_types_default.a.arrayOf(prop_types_default.a.object)]),
    value: prop_types_default.a.object,
    hoverValue: prop_types_default.a.any,
    showWeekNumber: prop_types_default.a.bool
  },

  getDefaultProps: function getDefaultProps() {
    return {
      hoverValue: []
    };
  },
  render: function render() {
    var props = this.props;
    var contentRender = props.contentRender,
        prefixCls = props.prefixCls,
        selectedValue = props.selectedValue,
        value = props.value,
        showWeekNumber = props.showWeekNumber,
        dateRender = props.dateRender,
        disabledDate = props.disabledDate,
        hoverValue = props.hoverValue;

    var iIndex = void 0;
    var jIndex = void 0;
    var current = void 0;
    var dateTable = [];
    var today = getTodayTime(value);
    var cellClass = prefixCls + '-cell';
    var weekNumberCellClass = prefixCls + '-week-number-cell';
    var dateClass = prefixCls + '-date';
    var todayClass = prefixCls + '-today';
    var selectedClass = prefixCls + '-selected-day';
    var selectedDateClass = prefixCls + '-selected-date'; // do not move with mouse operation
    var selectedStartDateClass = prefixCls + '-selected-start-date';
    var selectedEndDateClass = prefixCls + '-selected-end-date';
    var inRangeClass = prefixCls + '-in-range-cell';
    var lastMonthDayClass = prefixCls + '-last-month-cell';
    var nextMonthDayClass = prefixCls + '-next-month-btn-day';
    var disabledClass = prefixCls + '-disabled-cell';
    var firstDisableClass = prefixCls + '-disabled-cell-first-of-row';
    var lastDisableClass = prefixCls + '-disabled-cell-last-of-row';
    var lastDayOfMonthClass = prefixCls + '-last-day-of-month';
    var month1 = value.clone();
    month1.date(1);
    var day = month1.day();
    var lastMonthDiffDay = (day + 7 - value.localeData().firstDayOfWeek()) % 7;
    // calculate last month
    var lastMonth1 = month1.clone();
    lastMonth1.add(0 - lastMonthDiffDay, 'days');
    var passed = 0;

    for (iIndex = 0; iIndex < DateConstants.DATE_ROW_COUNT; iIndex++) {
      for (jIndex = 0; jIndex < DateConstants.DATE_COL_COUNT; jIndex++) {
        current = lastMonth1;
        if (passed) {
          current = current.clone();
          current.add(passed, 'days');
        }
        dateTable.push(current);
        passed++;
      }
    }
    var tableHtml = [];
    passed = 0;

    for (iIndex = 0; iIndex < DateConstants.DATE_ROW_COUNT; iIndex++) {
      var _cx;

      var isCurrentWeek = void 0;
      var weekNumberCell = void 0;
      var isActiveWeek = false;
      var dateCells = [];
      if (showWeekNumber) {
        weekNumberCell = react_default.a.createElement(
          'td',
          {
            key: dateTable[passed].week(),
            role: 'gridcell',
            className: weekNumberCellClass
          },
          dateTable[passed].week()
        );
      }
      for (jIndex = 0; jIndex < DateConstants.DATE_COL_COUNT; jIndex++) {
        var next = null;
        var last = null;
        current = dateTable[passed];
        if (jIndex < DateConstants.DATE_COL_COUNT - 1) {
          next = dateTable[passed + 1];
        }
        if (jIndex > 0) {
          last = dateTable[passed - 1];
        }
        var cls = cellClass;
        var disabled = false;
        var selected = false;

        if (isSameDay(current, today)) {
          cls += ' ' + todayClass;
          isCurrentWeek = true;
        }

        var isBeforeCurrentMonthYear = beforeCurrentMonthYear(current, value);
        var isAfterCurrentMonthYear = afterCurrentMonthYear(current, value);

        if (selectedValue && Array.isArray(selectedValue)) {
          var rangeValue = hoverValue.length ? hoverValue : selectedValue;
          if (!isBeforeCurrentMonthYear && !isAfterCurrentMonthYear) {
            var startValue = rangeValue[0];
            var endValue = rangeValue[1];
            if (startValue) {
              if (isSameDay(current, startValue)) {
                selected = true;
                isActiveWeek = true;
                cls += ' ' + selectedStartDateClass;
              }
            }
            if (startValue && endValue) {
              if (isSameDay(current, endValue)) {
                selected = true;
                isActiveWeek = true;
                cls += ' ' + selectedEndDateClass;
              } else if (current.isAfter(startValue, 'day') && current.isBefore(endValue, 'day')) {
                cls += ' ' + inRangeClass;
              }
            }
          }
        } else if (isSameDay(current, value)) {
          // keyboard change value, highlight works
          selected = true;
          isActiveWeek = true;
        }

        if (isSameDay(current, selectedValue)) {
          cls += ' ' + selectedDateClass;
        }

        if (isBeforeCurrentMonthYear) {
          cls += ' ' + lastMonthDayClass;
        }

        if (isAfterCurrentMonthYear) {
          cls += ' ' + nextMonthDayClass;
        }

        if (current.clone().endOf('month').date() === current.date()) {
          cls += ' ' + lastDayOfMonthClass;
        }

        if (disabledDate) {
          if (disabledDate(current, value)) {
            disabled = true;

            if (!last || !disabledDate(last, value)) {
              cls += ' ' + firstDisableClass;
            }

            if (!next || !disabledDate(next, value)) {
              cls += ' ' + lastDisableClass;
            }
          }
        }

        if (selected) {
          cls += ' ' + selectedClass;
        }

        if (disabled) {
          cls += ' ' + disabledClass;
        }

        var dateHtml = void 0;
        if (dateRender) {
          dateHtml = dateRender(current, value);
        } else {
          var content = contentRender ? contentRender(current, value) : current.date();
          dateHtml = react_default.a.createElement(
            'div',
            {
              key: getIdFromDate(current),
              className: dateClass,
              'aria-selected': selected,
              'aria-disabled': disabled
            },
            content
          );
        }

        dateCells.push(react_default.a.createElement(
          'td',
          {
            key: passed,
            onClick: disabled ? undefined : props.onSelect.bind(null, current),
            onMouseEnter: disabled ? undefined : props.onDayHover && props.onDayHover.bind(null, current) || undefined,
            role: 'gridcell',
            title: getTitleString(current),
            className: cls
          },
          dateHtml
        ));

        passed++;
      }

      tableHtml.push(react_default.a.createElement(
        'tr',
        {
          key: iIndex,
          role: 'row',
          className: classnames_default()((_cx = {}, _cx[prefixCls + '-current-week'] = isCurrentWeek, _cx[prefixCls + '-active-week'] = isActiveWeek, _cx))
        },
        weekNumberCell,
        dateCells
      ));
    }
    return react_default.a.createElement(
      'tbody',
      { className: prefixCls + '-tbody' },
      tableHtml
    );
  }
});

/* harmony default export */ var date_DateTBody = (DateTBody);
// CONCATENATED MODULE: ./node_modules/rc-calendar/es/date/DateTable.js








var DateTable_DateTable = function (_React$Component) {
  inherits_default()(DateTable, _React$Component);

  function DateTable() {
    classCallCheck_default()(this, DateTable);

    return possibleConstructorReturn_default()(this, _React$Component.apply(this, arguments));
  }

  DateTable.prototype.render = function render() {
    var props = this.props;
    var prefixCls = props.prefixCls;
    return react_default.a.createElement(
      'table',
      { className: prefixCls + '-table', cellSpacing: '0', role: 'grid' },
      react_default.a.createElement(date_DateTHead, props),
      react_default.a.createElement(date_DateTBody, props)
    );
  };

  return DateTable;
}(react_default.a.Component);

/* harmony default export */ var date_DateTable = (DateTable_DateTable);
// CONCATENATED MODULE: ./node_modules/rc-util/es/Children/mapSelf.js


function mirror(o) {
  return o;
}

function mapSelf(children) {
  // return ReactFragment
  return react_default.a.Children.map(children, mirror);
}
// CONCATENATED MODULE: ./node_modules/rc-calendar/es/month/MonthTable.js








var ROW = 4;
var COL = 3;

function chooseMonth(month) {
  var next = this.state.value.clone();
  next.month(month);
  this.setAndSelectValue(next);
}

function noop() {}

var MonthTable_MonthTable = function (_Component) {
  inherits_default()(MonthTable, _Component);

  function MonthTable(props) {
    classCallCheck_default()(this, MonthTable);

    var _this = possibleConstructorReturn_default()(this, _Component.call(this, props));

    _this.state = {
      value: props.value
    };
    return _this;
  }

  MonthTable.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
    if ('value' in nextProps) {
      this.setState({
        value: nextProps.value
      });
    }
  };

  MonthTable.prototype.setAndSelectValue = function setAndSelectValue(value) {
    this.setState({
      value: value
    });
    this.props.onSelect(value);
  };

  MonthTable.prototype.months = function months() {
    var value = this.state.value;
    var current = value.clone();
    var months = [];
    var index = 0;
    for (var rowIndex = 0; rowIndex < ROW; rowIndex++) {
      months[rowIndex] = [];
      for (var colIndex = 0; colIndex < COL; colIndex++) {
        current.month(index);
        var content = getMonthName(current);
        months[rowIndex][colIndex] = {
          value: index,
          content: content,
          title: content
        };
        index++;
      }
    }
    return months;
  };

  MonthTable.prototype.render = function render() {
    var _this2 = this;

    var props = this.props;
    var value = this.state.value;
    var today = getTodayTime(value);
    var months = this.months();
    var currentMonth = value.month();
    var prefixCls = props.prefixCls,
        locale = props.locale,
        contentRender = props.contentRender,
        cellRender = props.cellRender;

    var monthsEls = months.map(function (month, index) {
      var tds = month.map(function (monthData) {
        var _classNameMap;

        var disabled = false;
        if (props.disabledDate) {
          var testValue = value.clone();
          testValue.month(monthData.value);
          disabled = props.disabledDate(testValue);
        }
        var classNameMap = (_classNameMap = {}, _classNameMap[prefixCls + '-cell'] = 1, _classNameMap[prefixCls + '-cell-disabled'] = disabled, _classNameMap[prefixCls + '-selected-cell'] = monthData.value === currentMonth, _classNameMap[prefixCls + '-current-cell'] = today.year() === value.year() && monthData.value === today.month(), _classNameMap);
        var cellEl = void 0;
        if (cellRender) {
          var currentValue = value.clone();
          currentValue.month(monthData.value);
          cellEl = cellRender(currentValue, locale);
        } else {
          var content = void 0;
          if (contentRender) {
            var _currentValue = value.clone();
            _currentValue.month(monthData.value);
            content = contentRender(_currentValue, locale);
          } else {
            content = monthData.content;
          }
          cellEl = react_default.a.createElement(
            'a',
            { className: prefixCls + '-month' },
            content
          );
        }
        return react_default.a.createElement(
          'td',
          {
            role: 'gridcell',
            key: monthData.value,
            onClick: disabled ? null : chooseMonth.bind(_this2, monthData.value),
            title: monthData.title,
            className: classnames_default()(classNameMap)
          },
          cellEl
        );
      });
      return react_default.a.createElement(
        'tr',
        { key: index, role: 'row' },
        tds
      );
    });

    return react_default.a.createElement(
      'table',
      { className: prefixCls + '-table', cellSpacing: '0', role: 'grid' },
      react_default.a.createElement(
        'tbody',
        { className: prefixCls + '-tbody' },
        monthsEls
      )
    );
  };

  return MonthTable;
}(react["Component"]);

MonthTable_MonthTable.defaultProps = {
  onSelect: noop
};
MonthTable_MonthTable.propTypes = {
  onSelect: prop_types_default.a.func,
  cellRender: prop_types_default.a.func,
  prefixCls: prop_types_default.a.string,
  value: prop_types_default.a.object
};
/* harmony default export */ var month_MonthTable = (MonthTable_MonthTable);
// CONCATENATED MODULE: ./node_modules/rc-calendar/es/month/MonthPanel.js





function goYear(direction) {
  var next = this.state.value.clone();
  next.add(direction, 'year');
  this.setAndChangeValue(next);
}

function MonthPanel_noop() {}

var MonthPanel = create_react_class_default()({
  displayName: 'MonthPanel',

  propTypes: {
    onChange: prop_types_default.a.func,
    disabledDate: prop_types_default.a.func,
    onSelect: prop_types_default.a.func
  },

  getDefaultProps: function getDefaultProps() {
    return {
      onChange: MonthPanel_noop,
      onSelect: MonthPanel_noop
    };
  },
  getInitialState: function getInitialState() {
    var props = this.props;
    // bind methods
    this.nextYear = goYear.bind(this, 1);
    this.previousYear = goYear.bind(this, -1);
    this.prefixCls = props.rootPrefixCls + '-month-panel';
    return {
      value: props.value || props.defaultValue
    };
  },
  componentWillReceiveProps: function componentWillReceiveProps(nextProps) {
    if ('value' in nextProps) {
      this.setState({
        value: nextProps.value
      });
    }
  },
  setAndChangeValue: function setAndChangeValue(value) {
    this.setValue(value);
    this.props.onChange(value);
  },
  setAndSelectValue: function setAndSelectValue(value) {
    this.setValue(value);
    this.props.onSelect(value);
  },
  setValue: function setValue(value) {
    if (!('value' in this.props)) {
      this.setState({
        value: value
      });
    }
  },
  render: function render() {
    var props = this.props;
    var value = this.state.value;
    var cellRender = props.cellRender;
    var contentRender = props.contentRender;
    var locale = props.locale;
    var year = value.year();
    var prefixCls = this.prefixCls;
    return react_default.a.createElement(
      'div',
      { className: prefixCls, style: props.style },
      react_default.a.createElement(
        'div',
        null,
        react_default.a.createElement(
          'div',
          { className: prefixCls + '-header' },
          react_default.a.createElement('a', {
            className: prefixCls + '-prev-year-btn',
            role: 'button',
            onClick: this.previousYear,
            title: locale.previousYear
          }),
          react_default.a.createElement(
            'a',
            {
              className: prefixCls + '-year-select',
              role: 'button',
              onClick: props.onYearPanelShow,
              title: locale.yearSelect
            },
            react_default.a.createElement(
              'span',
              { className: prefixCls + '-year-select-content' },
              year
            ),
            react_default.a.createElement(
              'span',
              { className: prefixCls + '-year-select-arrow' },
              'x'
            )
          ),
          react_default.a.createElement('a', {
            className: prefixCls + '-next-year-btn',
            role: 'button',
            onClick: this.nextYear,
            title: locale.nextYear
          })
        ),
        react_default.a.createElement(
          'div',
          { className: prefixCls + '-body' },
          react_default.a.createElement(month_MonthTable, {
            disabledDate: props.disabledDate,
            onSelect: this.setAndSelectValue,
            locale: locale,
            value: value,
            cellRender: cellRender,
            contentRender: contentRender,
            prefixCls: prefixCls
          })
        )
      )
    );
  }
});

/* harmony default export */ var month_MonthPanel = (MonthPanel);
// CONCATENATED MODULE: ./node_modules/rc-calendar/es/year/YearPanel.js






var YearPanel_ROW = 4;
var YearPanel_COL = 3;

function YearPanel_goYear(direction) {
  var value = this.state.value.clone();
  value.add(direction, 'year');
  this.setState({
    value: value
  });
}

function chooseYear(year) {
  var value = this.state.value.clone();
  value.year(year);
  value.month(this.state.value.month());
  this.props.onSelect(value);
}

var YearPanel_YearPanel = function (_React$Component) {
  inherits_default()(YearPanel, _React$Component);

  function YearPanel(props) {
    classCallCheck_default()(this, YearPanel);

    var _this = possibleConstructorReturn_default()(this, _React$Component.call(this, props));

    _this.prefixCls = props.rootPrefixCls + '-year-panel';
    _this.state = {
      value: props.value || props.defaultValue
    };
    _this.nextDecade = YearPanel_goYear.bind(_this, 10);
    _this.previousDecade = YearPanel_goYear.bind(_this, -10);
    return _this;
  }

  YearPanel.prototype.years = function years() {
    var value = this.state.value;
    var currentYear = value.year();
    var startYear = parseInt(currentYear / 10, 10) * 10;
    var previousYear = startYear - 1;
    var years = [];
    var index = 0;
    for (var rowIndex = 0; rowIndex < YearPanel_ROW; rowIndex++) {
      years[rowIndex] = [];
      for (var colIndex = 0; colIndex < YearPanel_COL; colIndex++) {
        var year = previousYear + index;
        var content = String(year);
        years[rowIndex][colIndex] = {
          content: content,
          year: year,
          title: content
        };
        index++;
      }
    }
    return years;
  };

  YearPanel.prototype.render = function render() {
    var _this2 = this;

    var props = this.props;
    var value = this.state.value;
    var locale = props.locale;
    var years = this.years();
    var currentYear = value.year();
    var startYear = parseInt(currentYear / 10, 10) * 10;
    var endYear = startYear + 9;
    var prefixCls = this.prefixCls;

    var yeasEls = years.map(function (row, index) {
      var tds = row.map(function (yearData) {
        var _classNameMap;

        var classNameMap = (_classNameMap = {}, _classNameMap[prefixCls + '-cell'] = 1, _classNameMap[prefixCls + '-selected-cell'] = yearData.year === currentYear, _classNameMap[prefixCls + '-last-decade-cell'] = yearData.year < startYear, _classNameMap[prefixCls + '-next-decade-cell'] = yearData.year > endYear, _classNameMap);
        var clickHandler = void 0;
        if (yearData.year < startYear) {
          clickHandler = _this2.previousDecade;
        } else if (yearData.year > endYear) {
          clickHandler = _this2.nextDecade;
        } else {
          clickHandler = chooseYear.bind(_this2, yearData.year);
        }
        return react_default.a.createElement(
          'td',
          {
            role: 'gridcell',
            title: yearData.title,
            key: yearData.content,
            onClick: clickHandler,
            className: classnames_default()(classNameMap)
          },
          react_default.a.createElement(
            'a',
            {
              className: prefixCls + '-year'
            },
            yearData.content
          )
        );
      });
      return react_default.a.createElement(
        'tr',
        { key: index, role: 'row' },
        tds
      );
    });

    return react_default.a.createElement(
      'div',
      { className: this.prefixCls },
      react_default.a.createElement(
        'div',
        null,
        react_default.a.createElement(
          'div',
          { className: prefixCls + '-header' },
          react_default.a.createElement('a', {
            className: prefixCls + '-prev-decade-btn',
            role: 'button',
            onClick: this.previousDecade,
            title: locale.previousDecade
          }),
          react_default.a.createElement(
            'a',
            {
              className: prefixCls + '-decade-select',
              role: 'button',
              onClick: props.onDecadePanelShow,
              title: locale.decadeSelect
            },
            react_default.a.createElement(
              'span',
              { className: prefixCls + '-decade-select-content' },
              startYear,
              '-',
              endYear
            ),
            react_default.a.createElement(
              'span',
              { className: prefixCls + '-decade-select-arrow' },
              'x'
            )
          ),
          react_default.a.createElement('a', {
            className: prefixCls + '-next-decade-btn',
            role: 'button',
            onClick: this.nextDecade,
            title: locale.nextDecade
          })
        ),
        react_default.a.createElement(
          'div',
          { className: prefixCls + '-body' },
          react_default.a.createElement(
            'table',
            { className: prefixCls + '-table', cellSpacing: '0', role: 'grid' },
            react_default.a.createElement(
              'tbody',
              { className: prefixCls + '-tbody' },
              yeasEls
            )
          )
        )
      )
    );
  };

  return YearPanel;
}(react_default.a.Component);

/* harmony default export */ var year_YearPanel = (YearPanel_YearPanel);


YearPanel_YearPanel.propTypes = {
  rootPrefixCls: prop_types_default.a.string,
  value: prop_types_default.a.object,
  defaultValue: prop_types_default.a.object
};

YearPanel_YearPanel.defaultProps = {
  onSelect: function onSelect() {}
};
// CONCATENATED MODULE: ./node_modules/rc-calendar/es/decade/DecadePanel.js





var DecadePanel_ROW = 4;
var DecadePanel_COL = 3;


function DecadePanel_goYear(direction) {
  var next = this.state.value.clone();
  next.add(direction, 'years');
  this.setState({
    value: next
  });
}

function chooseDecade(year, event) {
  var next = this.state.value.clone();
  next.year(year);
  next.month(this.state.value.month());
  this.props.onSelect(next);
  event.preventDefault();
}

var DecadePanel_DecadePanel = function (_React$Component) {
  inherits_default()(DecadePanel, _React$Component);

  function DecadePanel(props) {
    classCallCheck_default()(this, DecadePanel);

    var _this = possibleConstructorReturn_default()(this, _React$Component.call(this, props));

    _this.state = {
      value: props.value || props.defaultValue
    };

    // bind methods
    _this.prefixCls = props.rootPrefixCls + '-decade-panel';
    _this.nextCentury = DecadePanel_goYear.bind(_this, 100);
    _this.previousCentury = DecadePanel_goYear.bind(_this, -100);
    return _this;
  }

  DecadePanel.prototype.render = function render() {
    var _this2 = this;

    var value = this.state.value;
    var locale = this.props.locale;
    var currentYear = value.year();
    var startYear = parseInt(currentYear / 100, 10) * 100;
    var preYear = startYear - 10;
    var endYear = startYear + 99;
    var decades = [];
    var index = 0;
    var prefixCls = this.prefixCls;

    for (var rowIndex = 0; rowIndex < DecadePanel_ROW; rowIndex++) {
      decades[rowIndex] = [];
      for (var colIndex = 0; colIndex < DecadePanel_COL; colIndex++) {
        var startDecade = preYear + index * 10;
        var endDecade = preYear + index * 10 + 9;
        decades[rowIndex][colIndex] = {
          startDecade: startDecade,
          endDecade: endDecade
        };
        index++;
      }
    }

    var decadesEls = decades.map(function (row, decadeIndex) {
      var tds = row.map(function (decadeData) {
        var _classNameMap;

        var dStartDecade = decadeData.startDecade;
        var dEndDecade = decadeData.endDecade;
        var isLast = dStartDecade < startYear;
        var isNext = dEndDecade > endYear;
        var classNameMap = (_classNameMap = {}, _classNameMap[prefixCls + '-cell'] = 1, _classNameMap[prefixCls + '-selected-cell'] = dStartDecade <= currentYear && currentYear <= dEndDecade, _classNameMap[prefixCls + '-last-century-cell'] = isLast, _classNameMap[prefixCls + '-next-century-cell'] = isNext, _classNameMap);
        var content = dStartDecade + '-' + dEndDecade;
        var clickHandler = void 0;
        if (isLast) {
          clickHandler = _this2.previousCentury;
        } else if (isNext) {
          clickHandler = _this2.nextCentury;
        } else {
          clickHandler = chooseDecade.bind(_this2, dStartDecade);
        }
        return react_default.a.createElement(
          'td',
          {
            key: dStartDecade,
            onClick: clickHandler,
            role: 'gridcell',
            className: classnames_default()(classNameMap)
          },
          react_default.a.createElement(
            'a',
            {
              className: prefixCls + '-decade'
            },
            content
          )
        );
      });
      return react_default.a.createElement(
        'tr',
        { key: decadeIndex, role: 'row' },
        tds
      );
    });

    return react_default.a.createElement(
      'div',
      { className: this.prefixCls },
      react_default.a.createElement(
        'div',
        { className: prefixCls + '-header' },
        react_default.a.createElement('a', {
          className: prefixCls + '-prev-century-btn',
          role: 'button',
          onClick: this.previousCentury,
          title: locale.previousCentury
        }),
        react_default.a.createElement(
          'div',
          { className: prefixCls + '-century' },
          startYear,
          '-',
          endYear
        ),
        react_default.a.createElement('a', {
          className: prefixCls + '-next-century-btn',
          role: 'button',
          onClick: this.nextCentury,
          title: locale.nextCentury
        })
      ),
      react_default.a.createElement(
        'div',
        { className: prefixCls + '-body' },
        react_default.a.createElement(
          'table',
          { className: prefixCls + '-table', cellSpacing: '0', role: 'grid' },
          react_default.a.createElement(
            'tbody',
            { className: prefixCls + '-tbody' },
            decadesEls
          )
        )
      )
    );
  };

  return DecadePanel;
}(react_default.a.Component);

/* harmony default export */ var decade_DecadePanel = (DecadePanel_DecadePanel);


DecadePanel_DecadePanel.propTypes = {
  locale: prop_types_default.a.object,
  value: prop_types_default.a.object,
  defaultValue: prop_types_default.a.object,
  rootPrefixCls: prop_types_default.a.string
};

DecadePanel_DecadePanel.defaultProps = {
  onSelect: function onSelect() {}
};
// CONCATENATED MODULE: ./node_modules/rc-calendar/es/calendar/CalendarHeader.js








function goMonth(direction) {
  var next = this.props.value.clone();
  next.add(direction, 'months');
  this.props.onValueChange(next);
}

function CalendarHeader_goYear(direction) {
  var next = this.props.value.clone();
  next.add(direction, 'years');
  this.props.onValueChange(next);
}

function showIf(condition, el) {
  return condition ? el : null;
}

var CalendarHeader = create_react_class_default()({
  displayName: 'CalendarHeader',

  propTypes: {
    prefixCls: prop_types_default.a.string,
    value: prop_types_default.a.object,
    onValueChange: prop_types_default.a.func,
    showTimePicker: prop_types_default.a.bool,
    onPanelChange: prop_types_default.a.func,
    locale: prop_types_default.a.object,
    enablePrev: prop_types_default.a.any,
    enableNext: prop_types_default.a.any,
    disabledMonth: prop_types_default.a.func
  },

  getDefaultProps: function getDefaultProps() {
    return {
      enableNext: 1,
      enablePrev: 1,
      onPanelChange: function onPanelChange() {},
      onValueChange: function onValueChange() {}
    };
  },
  getInitialState: function getInitialState() {
    this.nextMonth = goMonth.bind(this, 1);
    this.previousMonth = goMonth.bind(this, -1);
    this.nextYear = CalendarHeader_goYear.bind(this, 1);
    this.previousYear = CalendarHeader_goYear.bind(this, -1);
    return { yearPanelReferer: null };
  },
  onMonthSelect: function onMonthSelect(value) {
    this.props.onPanelChange(value, 'date');
    if (this.props.onMonthSelect) {
      this.props.onMonthSelect(value);
    } else {
      this.props.onValueChange(value);
    }
  },
  onYearSelect: function onYearSelect(value) {
    var referer = this.state.yearPanelReferer;
    this.setState({ yearPanelReferer: null });
    this.props.onPanelChange(value, referer);
    this.props.onValueChange(value);
  },
  onDecadeSelect: function onDecadeSelect(value) {
    this.props.onPanelChange(value, 'year');
    this.props.onValueChange(value);
  },
  monthYearElement: function monthYearElement(showTimePicker) {
    var _this = this;

    var props = this.props;
    var prefixCls = props.prefixCls;
    var locale = props.locale;
    var value = props.value;
    var localeData = value.localeData();
    var monthBeforeYear = locale.monthBeforeYear;
    var selectClassName = prefixCls + '-' + (monthBeforeYear ? 'my-select' : 'ym-select');
    var year = react_default.a.createElement(
      'a',
      {
        className: prefixCls + '-year-select',
        role: 'button',
        onClick: showTimePicker ? null : function () {
          return _this.showYearPanel('date');
        },
        title: locale.yearSelect
      },
      value.format(locale.yearFormat)
    );
    var month = react_default.a.createElement(
      'a',
      {
        className: prefixCls + '-month-select',
        role: 'button',
        onClick: showTimePicker ? null : this.showMonthPanel,
        title: locale.monthSelect
      },
      locale.monthFormat ? value.format(locale.monthFormat) : localeData.monthsShort(value)
    );
    var day = void 0;
    if (showTimePicker) {
      day = react_default.a.createElement(
        'a',
        {
          className: prefixCls + '-day-select',
          role: 'button'
        },
        value.format(locale.dayFormat)
      );
    }
    var my = [];
    if (monthBeforeYear) {
      my = [month, day, year];
    } else {
      my = [year, month, day];
    }
    return react_default.a.createElement(
      'span',
      { className: selectClassName },
      mapSelf(my)
    );
  },
  showMonthPanel: function showMonthPanel() {
    // null means that users' interaction doesn't change value
    this.props.onPanelChange(null, 'month');
  },
  showYearPanel: function showYearPanel(referer) {
    this.setState({ yearPanelReferer: referer });
    this.props.onPanelChange(null, 'year');
  },
  showDecadePanel: function showDecadePanel() {
    this.props.onPanelChange(null, 'decade');
  },
  render: function render() {
    var _this2 = this;

    var props = this.props;
    var prefixCls = props.prefixCls,
        locale = props.locale,
        mode = props.mode,
        value = props.value,
        showTimePicker = props.showTimePicker,
        enableNext = props.enableNext,
        enablePrev = props.enablePrev,
        disabledMonth = props.disabledMonth;


    var panel = null;
    if (mode === 'month') {
      panel = react_default.a.createElement(month_MonthPanel, {
        locale: locale,
        defaultValue: value,
        rootPrefixCls: prefixCls,
        onSelect: this.onMonthSelect,
        onYearPanelShow: function onYearPanelShow() {
          return _this2.showYearPanel('month');
        },
        disabledDate: disabledMonth,
        cellRender: props.monthCellRender,
        contentRender: props.monthCellContentRender
      });
    }
    if (mode === 'year') {
      panel = react_default.a.createElement(year_YearPanel, {
        locale: locale,
        defaultValue: value,
        rootPrefixCls: prefixCls,
        onSelect: this.onYearSelect,
        onDecadePanelShow: this.showDecadePanel
      });
    }
    if (mode === 'decade') {
      panel = react_default.a.createElement(decade_DecadePanel, {
        locale: locale,
        defaultValue: value,
        rootPrefixCls: prefixCls,
        onSelect: this.onDecadeSelect
      });
    }

    return react_default.a.createElement(
      'div',
      { className: prefixCls + '-header' },
      react_default.a.createElement(
        'div',
        { style: { position: 'relative' } },
        showIf(enablePrev && !showTimePicker, react_default.a.createElement('a', {
          className: prefixCls + '-prev-year-btn',
          role: 'button',
          onClick: this.previousYear,
          title: locale.previousYear
        })),
        showIf(enablePrev && !showTimePicker, react_default.a.createElement('a', {
          className: prefixCls + '-prev-month-btn',
          role: 'button',
          onClick: this.previousMonth,
          title: locale.previousMonth
        })),
        this.monthYearElement(showTimePicker),
        showIf(enableNext && !showTimePicker, react_default.a.createElement('a', {
          className: prefixCls + '-next-month-btn',
          onClick: this.nextMonth,
          title: locale.nextMonth
        })),
        showIf(enableNext && !showTimePicker, react_default.a.createElement('a', {
          className: prefixCls + '-next-year-btn',
          onClick: this.nextYear,
          title: locale.nextYear
        }))
      ),
      panel
    );
  }
});

/* harmony default export */ var calendar_CalendarHeader = (CalendarHeader);
// CONCATENATED MODULE: ./node_modules/rc-calendar/es/calendar/TodayButton.js



function TodayButton(_ref) {
  var prefixCls = _ref.prefixCls,
      locale = _ref.locale,
      value = _ref.value,
      timePicker = _ref.timePicker,
      disabled = _ref.disabled,
      disabledDate = _ref.disabledDate,
      onToday = _ref.onToday,
      text = _ref.text;

  var localeNow = (!text && timePicker ? locale.now : text) || locale.today;
  var disabledToday = disabledDate && !util_isAllowedDate(getTodayTime(value), disabledDate);
  var isDisabled = disabledToday || disabled;
  var disabledTodayClass = isDisabled ? prefixCls + '-today-btn-disabled' : '';
  return react_default.a.createElement(
    'a',
    {
      className: prefixCls + '-today-btn ' + disabledTodayClass,
      role: 'button',
      onClick: isDisabled ? null : onToday,
      title: getTodayTimeStr(value)
    },
    localeNow
  );
}
// CONCATENATED MODULE: ./node_modules/rc-calendar/es/calendar/OkButton.js


function OkButton(_ref) {
  var prefixCls = _ref.prefixCls,
      locale = _ref.locale,
      okDisabled = _ref.okDisabled,
      onOk = _ref.onOk;

  var className = prefixCls + "-ok-btn";
  if (okDisabled) {
    className += " " + prefixCls + "-ok-btn-disabled";
  }
  return react_default.a.createElement(
    "a",
    {
      className: className,
      role: "button",
      onClick: okDisabled ? null : onOk
    },
    locale.ok
  );
}
// CONCATENATED MODULE: ./node_modules/rc-calendar/es/calendar/TimePickerButton.js



function TimePickerButton(_ref) {
  var _classnames;

  var prefixCls = _ref.prefixCls,
      locale = _ref.locale,
      showTimePicker = _ref.showTimePicker,
      onOpenTimePicker = _ref.onOpenTimePicker,
      onCloseTimePicker = _ref.onCloseTimePicker,
      timePickerDisabled = _ref.timePickerDisabled;

  var className = classnames_default()((_classnames = {}, _classnames[prefixCls + '-time-picker-btn'] = true, _classnames[prefixCls + '-time-picker-btn-disabled'] = timePickerDisabled, _classnames));
  var onClick = null;
  if (!timePickerDisabled) {
    onClick = showTimePicker ? onCloseTimePicker : onOpenTimePicker;
  }
  return react_default.a.createElement(
    'a',
    {
      className: className,
      role: 'button',
      onClick: onClick
    },
    showTimePicker ? locale.dateSelect : locale.timeSelect
  );
}
// CONCATENATED MODULE: ./node_modules/rc-calendar/es/calendar/CalendarFooter.js











var CalendarFooter = create_react_class_default()({
  displayName: 'CalendarFooter',

  propTypes: {
    prefixCls: prop_types_default.a.string,
    showDateInput: prop_types_default.a.bool,
    disabledTime: prop_types_default.a.any,
    timePicker: prop_types_default.a.element,
    selectedValue: prop_types_default.a.any,
    showOk: prop_types_default.a.bool,
    onSelect: prop_types_default.a.func,
    value: prop_types_default.a.object,
    renderFooter: prop_types_default.a.func,
    defaultValue: prop_types_default.a.object
  },

  onSelect: function onSelect(value) {
    this.props.onSelect(value);
  },
  getRootDOMNode: function getRootDOMNode() {
    return react_dom_default.a.findDOMNode(this);
  },
  render: function render() {
    var props = this.props;
    var value = props.value,
        prefixCls = props.prefixCls,
        showOk = props.showOk,
        timePicker = props.timePicker,
        renderFooter = props.renderFooter;

    var footerEl = null;
    var extraFooter = renderFooter();
    if (props.showToday || timePicker || extraFooter) {
      var _cx;

      var nowEl = void 0;
      if (props.showToday) {
        nowEl = react_default.a.createElement(TodayButton, extends_default()({}, props, { value: value }));
      }
      var okBtn = void 0;
      if (showOk === true || showOk !== false && !!props.timePicker) {
        okBtn = react_default.a.createElement(OkButton, props);
      }
      var timePickerBtn = void 0;
      if (!!props.timePicker) {
        timePickerBtn = react_default.a.createElement(TimePickerButton, props);
      }

      var footerBtn = void 0;
      if (nowEl || timePickerBtn || okBtn) {
        footerBtn = react_default.a.createElement(
          'span',
          { className: prefixCls + '-footer-btn' },
          mapSelf([nowEl, timePickerBtn, okBtn])
        );
      }
      var cls = classnames_default()((_cx = {}, _cx[prefixCls + '-footer'] = true, _cx[prefixCls + '-footer-show-ok'] = okBtn, _cx));
      footerEl = react_default.a.createElement(
        'div',
        { className: cls },
        extraFooter,
        footerBtn
      );
    }
    return footerEl;
  }
});

/* harmony default export */ var calendar_CalendarFooter = (CalendarFooter);
// CONCATENATED MODULE: ./node_modules/rc-calendar/es/mixin/CalendarMixin.js






function CalendarMixin_noop() {}

function getNow() {
  return moment_default()();
}

function getNowByCurrentStateValue(value) {
  var ret = void 0;
  if (value) {
    ret = getTodayTime(value);
  } else {
    ret = getNow();
  }
  return ret;
}

var CalendarMixin = {
  propTypes: {
    value: prop_types_default.a.object,
    defaultValue: prop_types_default.a.object,
    onKeyDown: prop_types_default.a.func
  },

  getDefaultProps: function getDefaultProps() {
    return {
      onKeyDown: CalendarMixin_noop
    };
  },
  getInitialState: function getInitialState() {
    var props = this.props;
    var value = props.value || props.defaultValue || getNow();
    return {
      value: value,
      selectedValue: props.selectedValue || props.defaultSelectedValue
    };
  },
  componentWillReceiveProps: function componentWillReceiveProps(nextProps) {
    var value = nextProps.value;
    var selectedValue = nextProps.selectedValue;

    if ('value' in nextProps) {
      value = value || nextProps.defaultValue || getNowByCurrentStateValue(this.state.value);
      this.setState({
        value: value
      });
    }
    if ('selectedValue' in nextProps) {
      this.setState({
        selectedValue: selectedValue
      });
    }
  },
  onSelect: function onSelect(value, cause) {
    if (value) {
      this.setValue(value);
    }
    this.setSelectedValue(value, cause);
  },
  renderRoot: function renderRoot(newProps) {
    var _className;

    var props = this.props;
    var prefixCls = props.prefixCls;

    var className = (_className = {}, _className[prefixCls] = 1, _className[prefixCls + '-hidden'] = !props.visible, _className[props.className] = !!props.className, _className[newProps.className] = !!newProps.className, _className);

    return react_default.a.createElement(
      'div',
      {
        ref: this.saveRoot,
        className: '' + classnames_default()(className),
        style: this.props.style,
        tabIndex: '0',
        onKeyDown: this.onKeyDown
      },
      newProps.children
    );
  },
  setSelectedValue: function setSelectedValue(selectedValue, cause) {
    // if (this.isAllowedDate(selectedValue)) {
    if (!('selectedValue' in this.props)) {
      this.setState({
        selectedValue: selectedValue
      });
    }
    this.props.onSelect(selectedValue, cause);
    // }
  },
  setValue: function setValue(value) {
    var originalValue = this.state.value;
    if (!('value' in this.props)) {
      this.setState({
        value: value
      });
    }
    if (originalValue && value && !originalValue.isSame(value) || !originalValue && value || originalValue && !value) {
      this.props.onChange(value);
    }
  },
  isAllowedDate: function isAllowedDate(value) {
    var disabledDate = this.props.disabledDate;
    var disabledTime = this.props.disabledTime;
    return util_isAllowedDate(value, disabledDate, disabledTime);
  }
};

/* harmony default export */ var mixin_CalendarMixin = (CalendarMixin);
// CONCATENATED MODULE: ./node_modules/rc-calendar/es/locale/en_US.js
/* harmony default export */ var en_US = ({
  today: 'Today',
  now: 'Now',
  backToToday: 'Back to today',
  ok: 'Ok',
  clear: 'Clear',
  month: 'Month',
  year: 'Year',
  timeSelect: 'select time',
  dateSelect: 'select date',
  weekSelect: 'Choose a week',
  monthSelect: 'Choose a month',
  yearSelect: 'Choose a year',
  decadeSelect: 'Choose a decade',
  yearFormat: 'YYYY',
  dateFormat: 'M/D/YYYY',
  dayFormat: 'D',
  dateTimeFormat: 'M/D/YYYY HH:mm:ss',
  monthBeforeYear: true,
  previousMonth: 'Previous month (PageUp)',
  nextMonth: 'Next month (PageDown)',
  previousYear: 'Last year (Control + left)',
  nextYear: 'Next year (Control + right)',
  previousDecade: 'Last decade',
  nextDecade: 'Next decade',
  previousCentury: 'Last century',
  nextCentury: 'Next century'
});
// CONCATENATED MODULE: ./node_modules/rc-calendar/es/mixin/CommonMixin.js



function CommonMixin_noop() {}

/* harmony default export */ var CommonMixin = ({
  propTypes: {
    className: prop_types_default.a.string,
    locale: prop_types_default.a.object,
    style: prop_types_default.a.object,
    visible: prop_types_default.a.bool,
    onSelect: prop_types_default.a.func,
    prefixCls: prop_types_default.a.string,
    onChange: prop_types_default.a.func,
    onOk: prop_types_default.a.func
  },

  getDefaultProps: function getDefaultProps() {
    return {
      locale: en_US,
      style: {},
      visible: true,
      prefixCls: 'rc-calendar',
      className: '',
      onSelect: CommonMixin_noop,
      onChange: CommonMixin_noop,
      onClear: CommonMixin_noop,
      renderFooter: function renderFooter() {
        return null;
      },
      renderSidebar: function renderSidebar() {
        return null;
      }
    };
  },
  shouldComponentUpdate: function shouldComponentUpdate(nextProps) {
    return this.props.visible || nextProps.visible;
  },
  getFormat: function getFormat() {
    var format = this.props.format;
    var _props = this.props,
        locale = _props.locale,
        timePicker = _props.timePicker;

    if (!format) {
      if (timePicker) {
        format = locale.dateTimeFormat;
      } else {
        format = locale.dateFormat;
      }
    }
    return format;
  },
  focus: function focus() {
    if (this.rootInstance) {
      this.rootInstance.focus();
    }
  },
  saveRoot: function saveRoot(root) {
    this.rootInstance = root;
  }
});
// CONCATENATED MODULE: ./node_modules/rc-calendar/es/date/DateInput.js






var DateInput = create_react_class_default()({
  displayName: 'DateInput',

  propTypes: {
    prefixCls: prop_types_default.a.string,
    timePicker: prop_types_default.a.object,
    value: prop_types_default.a.object,
    disabledTime: prop_types_default.a.any,
    format: prop_types_default.a.string,
    locale: prop_types_default.a.object,
    disabledDate: prop_types_default.a.func,
    onChange: prop_types_default.a.func,
    onClear: prop_types_default.a.func,
    placeholder: prop_types_default.a.string,
    onSelect: prop_types_default.a.func,
    selectedValue: prop_types_default.a.object
  },

  getInitialState: function getInitialState() {
    var selectedValue = this.props.selectedValue;
    return {
      str: selectedValue && selectedValue.format(this.props.format) || '',
      invalid: false
    };
  },
  componentWillReceiveProps: function componentWillReceiveProps(nextProps) {
    this.cachedSelectionStart = this.dateInputInstance.selectionStart;
    this.cachedSelectionEnd = this.dateInputInstance.selectionEnd;
    // when popup show, click body will call this, bug!
    var selectedValue = nextProps.selectedValue;
    this.setState({
      str: selectedValue && selectedValue.format(nextProps.format) || '',
      invalid: false
    });
  },
  componentDidUpdate: function componentDidUpdate() {
    if (!this.state.invalid) {
      this.dateInputInstance.setSelectionRange(this.cachedSelectionStart, this.cachedSelectionEnd);
    }
  },
  onInputChange: function onInputChange(event) {
    var str = event.target.value;
    this.setState({
      str: str
    });
    var value = void 0;
    var _props = this.props,
        disabledDate = _props.disabledDate,
        format = _props.format,
        onChange = _props.onChange;

    if (str) {
      var parsed = moment_default()(str, format, true);
      if (!parsed.isValid()) {
        this.setState({
          invalid: true
        });
        return;
      }
      value = this.props.value.clone();
      value.year(parsed.year()).month(parsed.month()).date(parsed.date()).hour(parsed.hour()).minute(parsed.minute()).second(parsed.second());

      if (value && (!disabledDate || !disabledDate(value))) {
        var originalValue = this.props.selectedValue;
        if (originalValue && value) {
          if (!originalValue.isSame(value)) {
            onChange(value);
          }
        } else if (originalValue !== value) {
          onChange(value);
        }
      } else {
        this.setState({
          invalid: true
        });
        return;
      }
    } else {
      onChange(null);
    }
    this.setState({
      invalid: false
    });
  },
  onClear: function onClear() {
    this.setState({
      str: ''
    });
    this.props.onClear(null);
  },
  getRootDOMNode: function getRootDOMNode() {
    return react_dom_default.a.findDOMNode(this);
  },
  focus: function focus() {
    if (this.dateInputInstance) {
      this.dateInputInstance.focus();
    }
  },
  saveDateInput: function saveDateInput(dateInput) {
    this.dateInputInstance = dateInput;
  },
  render: function render() {
    var props = this.props;
    var _state = this.state,
        invalid = _state.invalid,
        str = _state.str;
    var locale = props.locale,
        prefixCls = props.prefixCls,
        placeholder = props.placeholder;

    var invalidClass = invalid ? prefixCls + '-input-invalid' : '';
    return react_default.a.createElement(
      'div',
      { className: prefixCls + '-input-wrap' },
      react_default.a.createElement(
        'div',
        { className: prefixCls + '-date-input-wrap' },
        react_default.a.createElement('input', {
          ref: this.saveDateInput,
          className: prefixCls + '-input ' + invalidClass,
          value: str,
          disabled: props.disabled,
          placeholder: placeholder,
          onChange: this.onInputChange
        })
      ),
      props.showClear ? react_default.a.createElement('a', {
        className: prefixCls + '-clear-btn',
        role: 'button',
        title: locale.clear,
        onClick: this.onClear
      }) : null
    );
  }
});

/* harmony default export */ var date_DateInput = (DateInput);
// CONCATENATED MODULE: ./node_modules/rc-calendar/es/util/toTime.js
function goStartMonth(time) {
  return time.clone().startOf('month');
}

function goEndMonth(time) {
  return time.clone().endOf('month');
}

function toTime_goTime(time, direction, unit) {
  return time.clone().add(direction, unit);
}

function includesTime() {
  var timeList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
  var time = arguments[1];
  var unit = arguments[2];

  return timeList.some(function (t) {
    return t.isSame(time, unit);
  });
}
// CONCATENATED MODULE: ./node_modules/rc-calendar/es/Calendar.js















function Calendar_noop() {}

var Calendar = create_react_class_default()({
  displayName: 'Calendar',

  propTypes: {
    prefixCls: prop_types_default.a.string,
    className: prop_types_default.a.string,
    style: prop_types_default.a.object,
    defaultValue: prop_types_default.a.object,
    value: prop_types_default.a.object,
    selectedValue: prop_types_default.a.object,
    mode: prop_types_default.a.oneOf(['time', 'date', 'month', 'year', 'decade']),
    locale: prop_types_default.a.object,
    showDateInput: prop_types_default.a.bool,
    showWeekNumber: prop_types_default.a.bool,
    showToday: prop_types_default.a.bool,
    showOk: prop_types_default.a.bool,
    onSelect: prop_types_default.a.func,
    onOk: prop_types_default.a.func,
    onKeyDown: prop_types_default.a.func,
    timePicker: prop_types_default.a.element,
    dateInputPlaceholder: prop_types_default.a.any,
    onClear: prop_types_default.a.func,
    onChange: prop_types_default.a.func,
    onPanelChange: prop_types_default.a.func,
    disabledDate: prop_types_default.a.func,
    disabledTime: prop_types_default.a.any,
    renderFooter: prop_types_default.a.func,
    renderSidebar: prop_types_default.a.func
  },

  mixins: [CommonMixin, mixin_CalendarMixin],

  getDefaultProps: function getDefaultProps() {
    return {
      showToday: true,
      showDateInput: true,
      timePicker: null,
      onOk: Calendar_noop,
      onPanelChange: Calendar_noop
    };
  },
  getInitialState: function getInitialState() {
    return {
      mode: this.props.mode || 'date'
    };
  },
  componentWillReceiveProps: function componentWillReceiveProps(nextProps) {
    if ('mode' in nextProps && this.state.mode !== nextProps.mode) {
      this.setState({ mode: nextProps.mode });
    }
  },
  onKeyDown: function onKeyDown(event) {
    if (event.target.nodeName.toLowerCase() === 'input') {
      return undefined;
    }
    var keyCode = event.keyCode;
    // mac
    var ctrlKey = event.ctrlKey || event.metaKey;
    var disabledDate = this.props.disabledDate;
    var value = this.state.value;

    switch (keyCode) {
      case KeyCode["a" /* default */].DOWN:
        this.goTime(1, 'weeks');
        event.preventDefault();
        return 1;
      case KeyCode["a" /* default */].UP:
        this.goTime(-1, 'weeks');
        event.preventDefault();
        return 1;
      case KeyCode["a" /* default */].LEFT:
        if (ctrlKey) {
          this.goTime(-1, 'years');
        } else {
          this.goTime(-1, 'days');
        }
        event.preventDefault();
        return 1;
      case KeyCode["a" /* default */].RIGHT:
        if (ctrlKey) {
          this.goTime(1, 'years');
        } else {
          this.goTime(1, 'days');
        }
        event.preventDefault();
        return 1;
      case KeyCode["a" /* default */].HOME:
        this.setValue(goStartMonth(this.state.value));
        event.preventDefault();
        return 1;
      case KeyCode["a" /* default */].END:
        this.setValue(goEndMonth(this.state.value));
        event.preventDefault();
        return 1;
      case KeyCode["a" /* default */].PAGE_DOWN:
        this.goTime(1, 'month');
        event.preventDefault();
        return 1;
      case KeyCode["a" /* default */].PAGE_UP:
        this.goTime(-1, 'month');
        event.preventDefault();
        return 1;
      case KeyCode["a" /* default */].ENTER:
        if (!disabledDate || !disabledDate(value)) {
          this.onSelect(value, {
            source: 'keyboard'
          });
        }
        event.preventDefault();
        return 1;
      default:
        this.props.onKeyDown(event);
        return 1;
    }
  },
  onClear: function onClear() {
    this.onSelect(null);
    this.props.onClear();
  },
  onOk: function onOk() {
    var selectedValue = this.state.selectedValue;

    if (this.isAllowedDate(selectedValue)) {
      this.props.onOk(selectedValue);
    }
  },
  onDateInputChange: function onDateInputChange(value) {
    this.onSelect(value, {
      source: 'dateInput'
    });
  },
  onDateTableSelect: function onDateTableSelect(value) {
    var timePicker = this.props.timePicker;
    var selectedValue = this.state.selectedValue;

    if (!selectedValue && timePicker) {
      var timePickerDefaultValue = timePicker.props.defaultValue;
      if (timePickerDefaultValue) {
        syncTime(timePickerDefaultValue, value);
      }
    }
    this.onSelect(value);
  },
  onToday: function onToday() {
    var value = this.state.value;

    var now = getTodayTime(value);
    this.onSelect(now, {
      source: 'todayButton'
    });
  },
  onPanelChange: function onPanelChange(value, mode) {
    var props = this.props,
        state = this.state;

    if (!('mode' in props)) {
      this.setState({ mode: mode });
    }
    props.onPanelChange(value || state.value, mode);
  },
  getRootDOMNode: function getRootDOMNode() {
    return react_dom_default.a.findDOMNode(this);
  },
  openTimePicker: function openTimePicker() {
    this.onPanelChange(null, 'time');
  },
  closeTimePicker: function closeTimePicker() {
    this.onPanelChange(null, 'date');
  },
  goTime: function goTime(direction, unit) {
    this.setValue(toTime_goTime(this.state.value, direction, unit));
  },
  render: function render() {
    var props = this.props,
        state = this.state;
    var locale = props.locale,
        prefixCls = props.prefixCls,
        disabledDate = props.disabledDate,
        dateInputPlaceholder = props.dateInputPlaceholder,
        timePicker = props.timePicker,
        disabledTime = props.disabledTime;
    var value = state.value,
        selectedValue = state.selectedValue,
        mode = state.mode;

    var showTimePicker = mode === 'time';
    var disabledTimeConfig = showTimePicker && disabledTime && timePicker ? getTimeConfig(selectedValue, disabledTime) : null;

    var timePickerEle = null;

    if (timePicker && showTimePicker) {
      var timePickerProps = extends_default()({
        showHour: true,
        showSecond: true,
        showMinute: true
      }, timePicker.props, disabledTimeConfig, {
        onChange: this.onDateInputChange,
        value: selectedValue,
        disabledTime: disabledTime
      });

      if (timePicker.props.defaultValue !== undefined) {
        timePickerProps.defaultOpenValue = timePicker.props.defaultValue;
      }

      timePickerEle = react_default.a.cloneElement(timePicker, timePickerProps);
    }

    var dateInputElement = props.showDateInput ? react_default.a.createElement(date_DateInput, {
      format: this.getFormat(),
      key: 'date-input',
      value: value,
      locale: locale,
      placeholder: dateInputPlaceholder,
      showClear: true,
      disabledTime: disabledTime,
      disabledDate: disabledDate,
      onClear: this.onClear,
      prefixCls: prefixCls,
      selectedValue: selectedValue,
      onChange: this.onDateInputChange
    }) : null;
    var children = [props.renderSidebar(), react_default.a.createElement(
      'div',
      { className: prefixCls + '-panel', key: 'panel' },
      dateInputElement,
      react_default.a.createElement(
        'div',
        { className: prefixCls + '-date-panel' },
        react_default.a.createElement(calendar_CalendarHeader, {
          locale: locale,
          mode: mode,
          value: value,
          onValueChange: this.setValue,
          onPanelChange: this.onPanelChange,
          showTimePicker: showTimePicker,
          prefixCls: prefixCls
        }),
        timePicker && showTimePicker ? react_default.a.createElement(
          'div',
          { className: prefixCls + '-time-picker' },
          react_default.a.createElement(
            'div',
            { className: prefixCls + '-time-picker-panel' },
            timePickerEle
          )
        ) : null,
        react_default.a.createElement(
          'div',
          { className: prefixCls + '-body' },
          react_default.a.createElement(date_DateTable, {
            locale: locale,
            value: value,
            selectedValue: selectedValue,
            prefixCls: prefixCls,
            dateRender: props.dateRender,
            onSelect: this.onDateTableSelect,
            disabledDate: disabledDate,
            showWeekNumber: props.showWeekNumber
          })
        ),
        react_default.a.createElement(calendar_CalendarFooter, {
          showOk: props.showOk,
          renderFooter: props.renderFooter,
          locale: locale,
          prefixCls: prefixCls,
          showToday: props.showToday,
          disabledTime: disabledTime,
          showTimePicker: showTimePicker,
          showDateInput: props.showDateInput,
          timePicker: timePicker,
          selectedValue: selectedValue,
          value: value,
          disabledDate: disabledDate,
          okDisabled: !this.isAllowedDate(selectedValue),
          onOk: this.onOk,
          onSelect: this.onSelect,
          onToday: this.onToday,
          onOpenTimePicker: this.openTimePicker,
          onCloseTimePicker: this.closeTimePicker
        })
      )
    )];

    return this.renderRoot({
      children: children,
      className: props.showWeekNumber ? prefixCls + '-week-number' : ''
    });
  }
});

/* harmony default export */ var es_Calendar = (Calendar);
// CONCATENATED MODULE: ./node_modules/rc-calendar/es/index.js


/* harmony default export */ var es = __webpack_exports__["default"] = (es_Calendar);
// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ src_value; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* reexport */ array; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* reexport */ src_basis; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* reexport */ basisClosed; });
__webpack_require__.d(__webpack_exports__, "g", function() { return /* reexport */ date; });
__webpack_require__.d(__webpack_exports__, "m", function() { return /* reexport */ number; });
__webpack_require__.d(__webpack_exports__, "n", function() { return /* reexport */ object; });
__webpack_require__.d(__webpack_exports__, "r", function() { return /* reexport */ round; });
__webpack_require__.d(__webpack_exports__, "s", function() { return /* reexport */ string; });
__webpack_require__.d(__webpack_exports__, "t", function() { return /* reexport */ interpolateTransformCss; });
__webpack_require__.d(__webpack_exports__, "u", function() { return /* reexport */ interpolateTransformSvg; });
__webpack_require__.d(__webpack_exports__, "v", function() { return /* reexport */ zoom; });
__webpack_require__.d(__webpack_exports__, "o", function() { return /* reexport */ src_rgb; });
__webpack_require__.d(__webpack_exports__, "p", function() { return /* reexport */ rgbBasis; });
__webpack_require__.d(__webpack_exports__, "q", function() { return /* reexport */ rgbBasisClosed; });
__webpack_require__.d(__webpack_exports__, "j", function() { return /* reexport */ src_hsl; });
__webpack_require__.d(__webpack_exports__, "k", function() { return /* reexport */ hslLong; });
__webpack_require__.d(__webpack_exports__, "l", function() { return /* reexport */ lab; });
__webpack_require__.d(__webpack_exports__, "h", function() { return /* reexport */ src_hcl; });
__webpack_require__.d(__webpack_exports__, "i", function() { return /* reexport */ hclLong; });
__webpack_require__.d(__webpack_exports__, "e", function() { return /* reexport */ src_cubehelix; });
__webpack_require__.d(__webpack_exports__, "f", function() { return /* reexport */ cubehelixLong; });
__webpack_require__.d(__webpack_exports__, "w", function() { return /* reexport */ quantize; });

// EXTERNAL MODULE: ./node_modules/d3-color/index.js + 5 modules
var d3_color = __webpack_require__(77);

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/basis.js
function basis(t1, v0, v1, v2, v3) {
  var t2 = t1 * t1, t3 = t2 * t1;
  return ((1 - 3 * t1 + 3 * t2 - t3) * v0
      + (4 - 6 * t2 + 3 * t3) * v1
      + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2
      + t3 * v3) / 6;
}

/* harmony default export */ var src_basis = (function(values) {
  var n = values.length - 1;
  return function(t) {
    var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),
        v1 = values[i],
        v2 = values[i + 1],
        v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,
        v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;
    return basis((t - i / n) * n, v0, v1, v2, v3);
  };
});

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/basisClosed.js


/* harmony default export */ var basisClosed = (function(values) {
  var n = values.length;
  return function(t) {
    var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),
        v0 = values[(i + n - 1) % n],
        v1 = values[i % n],
        v2 = values[(i + 1) % n],
        v3 = values[(i + 2) % n];
    return basis((t - i / n) * n, v0, v1, v2, v3);
  };
});

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/constant.js
/* harmony default export */ var constant = (function(x) {
  return function() {
    return x;
  };
});

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/color.js


function linear(a, d) {
  return function(t) {
    return a + t * d;
  };
}

function exponential(a, b, y) {
  return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {
    return Math.pow(a + t * b, y);
  };
}

function color_hue(a, b) {
  var d = b - a;
  return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);
}

function gamma(y) {
  return (y = +y) === 1 ? nogamma : function(a, b) {
    return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);
  };
}

function nogamma(a, b) {
  var d = b - a;
  return d ? linear(a, d) : constant(isNaN(a) ? b : a);
}

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/rgb.js





/* harmony default export */ var src_rgb = ((function rgbGamma(y) {
  var color = gamma(y);

  function rgb(start, end) {
    var r = color((start = Object(d3_color["f" /* rgb */])(start)).r, (end = Object(d3_color["f" /* rgb */])(end)).r),
        g = color(start.g, end.g),
        b = color(start.b, end.b),
        opacity = nogamma(start.opacity, end.opacity);
    return function(t) {
      start.r = r(t);
      start.g = g(t);
      start.b = b(t);
      start.opacity = opacity(t);
      return start + "";
    };
  }

  rgb.gamma = rgbGamma;

  return rgb;
})(1));

function rgbSpline(spline) {
  return function(colors) {
    var n = colors.length,
        r = new Array(n),
        g = new Array(n),
        b = new Array(n),
        i, color;
    for (i = 0; i < n; ++i) {
      color = Object(d3_color["f" /* rgb */])(colors[i]);
      r[i] = color.r || 0;
      g[i] = color.g || 0;
      b[i] = color.b || 0;
    }
    r = spline(r);
    g = spline(g);
    b = spline(b);
    color.opacity = 1;
    return function(t) {
      color.r = r(t);
      color.g = g(t);
      color.b = b(t);
      return color + "";
    };
  };
}

var rgbBasis = rgbSpline(src_basis);
var rgbBasisClosed = rgbSpline(basisClosed);

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/array.js


/* harmony default export */ var array = (function(a, b) {
  var nb = b ? b.length : 0,
      na = a ? Math.min(nb, a.length) : 0,
      x = new Array(na),
      c = new Array(nb),
      i;

  for (i = 0; i < na; ++i) x[i] = src_value(a[i], b[i]);
  for (; i < nb; ++i) c[i] = b[i];

  return function(t) {
    for (i = 0; i < na; ++i) c[i] = x[i](t);
    return c;
  };
});

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/date.js
/* harmony default export */ var date = (function(a, b) {
  var d = new Date;
  return a = +a, b -= a, function(t) {
    return d.setTime(a + b * t), d;
  };
});

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/number.js
/* harmony default export */ var number = (function(a, b) {
  return a = +a, b -= a, function(t) {
    return a + b * t;
  };
});

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/object.js


/* harmony default export */ var object = (function(a, b) {
  var i = {},
      c = {},
      k;

  if (a === null || typeof a !== "object") a = {};
  if (b === null || typeof b !== "object") b = {};

  for (k in b) {
    if (k in a) {
      i[k] = src_value(a[k], b[k]);
    } else {
      c[k] = b[k];
    }
  }

  return function(t) {
    for (k in i) c[k] = i[k](t);
    return c;
  };
});

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/string.js


var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
    reB = new RegExp(reA.source, "g");

function zero(b) {
  return function() {
    return b;
  };
}

function one(b) {
  return function(t) {
    return b(t) + "";
  };
}

/* harmony default export */ var string = (function(a, b) {
  var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b
      am, // current match in a
      bm, // current match in b
      bs, // string preceding current number in b, if any
      i = -1, // index in s
      s = [], // string constants and placeholders
      q = []; // number interpolators

  // Coerce inputs to strings.
  a = a + "", b = b + "";

  // Interpolate pairs of numbers in a & b.
  while ((am = reA.exec(a))
      && (bm = reB.exec(b))) {
    if ((bs = bm.index) > bi) { // a string precedes the next number in b
      bs = b.slice(bi, bs);
      if (s[i]) s[i] += bs; // coalesce with previous string
      else s[++i] = bs;
    }
    if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match
      if (s[i]) s[i] += bm; // coalesce with previous string
      else s[++i] = bm;
    } else { // interpolate non-matching numbers
      s[++i] = null;
      q.push({i: i, x: number(am, bm)});
    }
    bi = reB.lastIndex;
  }

  // Add remains of b.
  if (bi < b.length) {
    bs = b.slice(bi);
    if (s[i]) s[i] += bs; // coalesce with previous string
    else s[++i] = bs;
  }

  // Special optimization for only a single match.
  // Otherwise, interpolate each of the numbers and rejoin the string.
  return s.length < 2 ? (q[0]
      ? one(q[0].x)
      : zero(b))
      : (b = q.length, function(t) {
          for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
          return s.join("");
        });
});

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/value.js









/* harmony default export */ var src_value = (function(a, b) {
  var t = typeof b, c;
  return b == null || t === "boolean" ? constant(b)
      : (t === "number" ? number
      : t === "string" ? ((c = Object(d3_color["a" /* color */])(b)) ? (b = c, src_rgb) : string)
      : b instanceof d3_color["a" /* color */] ? src_rgb
      : b instanceof Date ? date
      : Array.isArray(b) ? array
      : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object
      : number)(a, b);
});

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/round.js
/* harmony default export */ var round = (function(a, b) {
  return a = +a, b -= a, function(t) {
    return Math.round(a + b * t);
  };
});

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/transform/decompose.js
var degrees = 180 / Math.PI;

var identity = {
  translateX: 0,
  translateY: 0,
  rotate: 0,
  skewX: 0,
  scaleX: 1,
  scaleY: 1
};

/* harmony default export */ var decompose = (function(a, b, c, d, e, f) {
  var scaleX, scaleY, skewX;
  if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;
  if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;
  if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;
  if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;
  return {
    translateX: e,
    translateY: f,
    rotate: Math.atan2(b, a) * degrees,
    skewX: Math.atan(skewX) * degrees,
    scaleX: scaleX,
    scaleY: scaleY
  };
});

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/transform/parse.js


var cssNode,
    cssRoot,
    cssView,
    svgNode;

function parseCss(value) {
  if (value === "none") return identity;
  if (!cssNode) cssNode = document.createElement("DIV"), cssRoot = document.documentElement, cssView = document.defaultView;
  cssNode.style.transform = value;
  value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue("transform");
  cssRoot.removeChild(cssNode);
  value = value.slice(7, -1).split(",");
  return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);
}

function parseSvg(value) {
  if (value == null) return identity;
  if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g");
  svgNode.setAttribute("transform", value);
  if (!(value = svgNode.transform.baseVal.consolidate())) return identity;
  value = value.matrix;
  return decompose(value.a, value.b, value.c, value.d, value.e, value.f);
}

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/transform/index.js



function interpolateTransform(parse, pxComma, pxParen, degParen) {

  function pop(s) {
    return s.length ? s.pop() + " " : "";
  }

  function translate(xa, ya, xb, yb, s, q) {
    if (xa !== xb || ya !== yb) {
      var i = s.push("translate(", null, pxComma, null, pxParen);
      q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});
    } else if (xb || yb) {
      s.push("translate(" + xb + pxComma + yb + pxParen);
    }
  }

  function rotate(a, b, s, q) {
    if (a !== b) {
      if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path
      q.push({i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: number(a, b)});
    } else if (b) {
      s.push(pop(s) + "rotate(" + b + degParen);
    }
  }

  function skewX(a, b, s, q) {
    if (a !== b) {
      q.push({i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: number(a, b)});
    } else if (b) {
      s.push(pop(s) + "skewX(" + b + degParen);
    }
  }

  function scale(xa, ya, xb, yb, s, q) {
    if (xa !== xb || ya !== yb) {
      var i = s.push(pop(s) + "scale(", null, ",", null, ")");
      q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});
    } else if (xb !== 1 || yb !== 1) {
      s.push(pop(s) + "scale(" + xb + "," + yb + ")");
    }
  }

  return function(a, b) {
    var s = [], // string constants and placeholders
        q = []; // number interpolators
    a = parse(a), b = parse(b);
    translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);
    rotate(a.rotate, b.rotate, s, q);
    skewX(a.skewX, b.skewX, s, q);
    scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);
    a = b = null; // gc
    return function(t) {
      var i = -1, n = q.length, o;
      while (++i < n) s[(o = q[i]).i] = o.x(t);
      return s.join("");
    };
  };
}

var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)");
var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")");

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/zoom.js
var rho = Math.SQRT2,
    rho2 = 2,
    rho4 = 4,
    epsilon2 = 1e-12;

function cosh(x) {
  return ((x = Math.exp(x)) + 1 / x) / 2;
}

function sinh(x) {
  return ((x = Math.exp(x)) - 1 / x) / 2;
}

function tanh(x) {
  return ((x = Math.exp(2 * x)) - 1) / (x + 1);
}

// p0 = [ux0, uy0, w0]
// p1 = [ux1, uy1, w1]
/* harmony default export */ var zoom = (function(p0, p1) {
  var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],
      ux1 = p1[0], uy1 = p1[1], w1 = p1[2],
      dx = ux1 - ux0,
      dy = uy1 - uy0,
      d2 = dx * dx + dy * dy,
      i,
      S;

  // Special case for u0 ≅ u1.
  if (d2 < epsilon2) {
    S = Math.log(w1 / w0) / rho;
    i = function(t) {
      return [
        ux0 + t * dx,
        uy0 + t * dy,
        w0 * Math.exp(rho * t * S)
      ];
    }
  }

  // General case.
  else {
    var d1 = Math.sqrt(d2),
        b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),
        b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),
        r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),
        r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);
    S = (r1 - r0) / rho;
    i = function(t) {
      var s = t * S,
          coshr0 = cosh(r0),
          u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));
      return [
        ux0 + u * dx,
        uy0 + u * dy,
        w0 * coshr0 / cosh(rho * s + r0)
      ];
    }
  }

  i.duration = S * 1000;

  return i;
});

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/hsl.js



function hsl(hue) {
  return function(start, end) {
    var h = hue((start = Object(d3_color["d" /* hsl */])(start)).h, (end = Object(d3_color["d" /* hsl */])(end)).h),
        s = nogamma(start.s, end.s),
        l = nogamma(start.l, end.l),
        opacity = nogamma(start.opacity, end.opacity);
    return function(t) {
      start.h = h(t);
      start.s = s(t);
      start.l = l(t);
      start.opacity = opacity(t);
      return start + "";
    };
  }
}

/* harmony default export */ var src_hsl = (hsl(color_hue));
var hslLong = hsl(nogamma);

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/lab.js



function lab(start, end) {
  var l = nogamma((start = Object(d3_color["e" /* lab */])(start)).l, (end = Object(d3_color["e" /* lab */])(end)).l),
      a = nogamma(start.a, end.a),
      b = nogamma(start.b, end.b),
      opacity = nogamma(start.opacity, end.opacity);
  return function(t) {
    start.l = l(t);
    start.a = a(t);
    start.b = b(t);
    start.opacity = opacity(t);
    return start + "";
  };
}

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/hcl.js



function hcl(hue) {
  return function(start, end) {
    var h = hue((start = Object(d3_color["c" /* hcl */])(start)).h, (end = Object(d3_color["c" /* hcl */])(end)).h),
        c = nogamma(start.c, end.c),
        l = nogamma(start.l, end.l),
        opacity = nogamma(start.opacity, end.opacity);
    return function(t) {
      start.h = h(t);
      start.c = c(t);
      start.l = l(t);
      start.opacity = opacity(t);
      return start + "";
    };
  }
}

/* harmony default export */ var src_hcl = (hcl(color_hue));
var hclLong = hcl(nogamma);

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/cubehelix.js



function cubehelix_cubehelix(hue) {
  return (function cubehelixGamma(y) {
    y = +y;

    function cubehelix(start, end) {
      var h = hue((start = Object(d3_color["b" /* cubehelix */])(start)).h, (end = Object(d3_color["b" /* cubehelix */])(end)).h),
          s = nogamma(start.s, end.s),
          l = nogamma(start.l, end.l),
          opacity = nogamma(start.opacity, end.opacity);
      return function(t) {
        start.h = h(t);
        start.s = s(t);
        start.l = l(Math.pow(t, y));
        start.opacity = opacity(t);
        return start + "";
      };
    }

    cubehelix.gamma = cubehelixGamma;

    return cubehelix;
  })(1);
}

/* harmony default export */ var src_cubehelix = (cubehelix_cubehelix(color_hue));
var cubehelixLong = cubehelix_cubehelix(nogamma);

// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/quantize.js
/* harmony default export */ var quantize = (function(interpolator, n) {
  var samples = new Array(n);
  for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));
  return samples;
});

// CONCATENATED MODULE: ./node_modules/d3-interpolate/index.js

















// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "default", function() { return /* reexport */ pages_Catalog_Catalog; });

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
var classCallCheck = __webpack_require__(9);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js
var createClass = __webpack_require__(10);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__(11);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
var getPrototypeOf = __webpack_require__(12);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
var inherits = __webpack_require__(13);

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-document-title/index.js
var react_document_title = __webpack_require__(98);
var react_document_title_default = /*#__PURE__*/__webpack_require__.n(react_document_title);

// EXTERNAL MODULE: ./node_modules/react-intl/lib/index.es.js
var index_es = __webpack_require__(4);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__(7);

// EXTERNAL MODULE: ./src/js/constants/index.js + 1 modules
var constants = __webpack_require__(15);

// EXTERNAL MODULE: ./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js + 3 modules
var styled_base_browser_esm = __webpack_require__(6);

// CONCATENATED MODULE: ./src/js/pages/Catalog/styled.js
var CatalogWrapper=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e18ni2ug0",label:"CatalogWrapper"})( true?{name:"138pfvh",styles:"margin:18px 0;"}:undefined);
// EXTERNAL MODULE: ./node_modules/antd/lib/button/style/index.js
var style = __webpack_require__(66);

// EXTERNAL MODULE: ./node_modules/antd/lib/button/index.js
var lib_button = __webpack_require__(39);
var button_default = /*#__PURE__*/__webpack_require__.n(lib_button);

// EXTERNAL MODULE: ./node_modules/antd/lib/checkbox/style/index.js
var checkbox_style = __webpack_require__(134);

// EXTERNAL MODULE: ./node_modules/antd/lib/checkbox/index.js
var lib_checkbox = __webpack_require__(61);
var checkbox_default = /*#__PURE__*/__webpack_require__.n(lib_checkbox);

// EXTERNAL MODULE: ./node_modules/antd/lib/select/style/index.js
var select_style = __webpack_require__(89);

// EXTERNAL MODULE: ./node_modules/antd/lib/select/index.js
var lib_select = __webpack_require__(36);
var select_default = /*#__PURE__*/__webpack_require__.n(lib_select);

// EXTERNAL MODULE: ./node_modules/lodash/kebabCase.js
var kebabCase = __webpack_require__(410);
var kebabCase_default = /*#__PURE__*/__webpack_require__.n(kebabCase);

// EXTERNAL MODULE: ./node_modules/lodash/forEach.js
var forEach = __webpack_require__(207);
var forEach_default = /*#__PURE__*/__webpack_require__.n(forEach);

// EXTERNAL MODULE: ./node_modules/lodash/startCase.js
var startCase = __webpack_require__(227);
var startCase_default = /*#__PURE__*/__webpack_require__.n(startCase);

// EXTERNAL MODULE: ./src/js/components/common/Filters/Filter.js
var Filter = __webpack_require__(167);

// EXTERNAL MODULE: ./src/js/constants/classes/index.js
var classes = __webpack_require__(32);

// EXTERNAL MODULE: ./src/js/components/Listings/Toolbar/DebouncedSearch.js + 1 modules
var DebouncedSearch = __webpack_require__(238);

// EXTERNAL MODULE: ./src/js/components/common/Filters/index.js + 1 modules
var common_Filters = __webpack_require__(31);

// EXTERNAL MODULE: ./src/js/constants/enums.js
var enums = __webpack_require__(17);

// EXTERNAL MODULE: ./src/js/components/common/PopUpVideoLink/PopUpVideoLink.js
var PopUpVideoLink = __webpack_require__(138);

// CONCATENATED MODULE: ./src/js/components/common/PopUpVideoLink/index.js

// CONCATENATED MODULE: ./src/js/components/Catalog/styled.js
var styled_ref= true?{name:"15bg5st-ListButton",styles:"display:flex;flex-direction:column;align-items:flex-end;background:#fff;label:ListButton;"}:undefined;var styled_ref2= true?{name:"ab9szk-ListButton",styles:"width:98px;height:30px;box-shadow:0 3px 6px 0 rgba(0,0,0,0.16);label:ListButton;"}:undefined;var styled_ListButton=function ListButton(_ref7){var _ref7$itemsQuantity=_ref7.itemsQuantity,itemsQuantity=_ref7$itemsQuantity===void 0?0:_ref7$itemsQuantity,onClick=_ref7.onClick;return Object(core_browser_esm["c" /* jsx */])("div",{css:styled_ref},Object(core_browser_esm["c" /* jsx */])(button_default.a,{type:"primary",css:styled_ref2,onClick:onClick,disabled:!itemsQuantity},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"discover.list"})),Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(classes["e" /* text5 */]," font-family:Roboto;height:16px;text-align:right;margin-top:5px;label:ListButton;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"catalog.itemsSelected",values:{itemsQuantity:itemsQuantity||0}})));};var styled_CatalogTitle=function CatalogTitle(){return Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(classes["a" /* text1 */]," margin-bottom:13px;label:CatalogTitle;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.catalog"}));};var hoveringStyle="\n  box-shadow: 0 2px 8px rgba(0, 105, 250,0.2);\n  border: solid 1px ".concat(constants["a" /* colors */].blueMed,";\n");var limitedStyle="\n  box-shadow: 0 2px 8px rgba(250, 83, 0, 0.6);\n  border: solid 1px ".concat(constants["a" /* colors */].red,";\n");var CardBase=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1u1ggh80",label:"CardBase"})("color:",constants["a" /* colors */].greyDark,";font-family:Roboto;display:inline-block;position:relative;width:184px;height:222px;background:",constants["a" /* colors */].whiteBackground,";transition:box-shadow 0.3s;box-shadow:0 1px 4px rgba(0,105,250,0.1);border-radius:4px;overflow:hidden;border:solid 1px ",constants["a" /* colors */].whiteBackground,";",function(_ref8){var selected=_ref8.selected;return selected?hoveringStyle:'';}," ",function(_ref9){var limited=_ref9.limited;return limited?limitedStyle:'';}," &:hover{",hoveringStyle,"}"+( true?"":undefined));var FiltersWrapper=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1u1ggh81",label:"FiltersWrapper"})( true?{name:"w4dnn1",styles:"border:1px solid #cdd3e0;padding:15px 10px;background-color:#fff;"}:undefined);var ItemCardCheckbox=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])(checkbox_default.a,{target:"e1u1ggh82",label:"ItemCardCheckbox"})( true?{name:"262r1f",styles:"position:absolute;top:8px;left:7.6px;& > .ant-checkbox > .ant-checkbox-inner{width:22px;height:22px;:after{width:7.85px;height:12.57px;left:6px;top:2px;}}"}:undefined);var ItemCardMoreDetails=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1u1ggh83",label:"ItemCardMoreDetails"})("position:absolute;transition:top 0.5s cubic-bezier(0.1,0.8,0.2,1);width:182px;height:222px;background-color:",constants["a" /* colors */].whiteMediumBackground,"ee;top:222px;padding:33px 11px 0 11px;",function(_ref10){var show=_ref10.show;return show?"\n    top: 0;\n  ":'';}, true?"":undefined);var ItemCardDetails=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1u1ggh84",label:"ItemCardDetails"})( true?{name:"19rbiwf",styles:"position:absolute;height:100%;width:100%;padding:14px;font-size:11px;p{margin-bottom:0;}"}:undefined);var ItemCardTitle=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1u1ggh85",label:"ItemCardTitle"})("text-align:left;font-weight:bold;font-size:",function(_ref11){var fontSize=_ref11.fontSize;return fontSize||'13px';},";line-height:",function(_ref12){var lineHeight=_ref12.lineHeight;return lineHeight||null;},";",function(_ref13){var withEllipsis=_ref13.withEllipsis;return withEllipsis?"\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    width: 154px;\n    overflow: hidden;\n  ":"";}, true?"":undefined);var _ref3= true?{name:"m8tx2t-DetailsCardTitle",styles:"padding-right:15px;label:DetailsCardTitle;"}:undefined;var styled_DetailsCardTitle=function DetailsCardTitle(_ref14){var fontSize=_ref14.fontSize,children=_ref14.children;return Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("font-kerning:none;font-weight:bold;font-size:",fontSize||'13px',";height:3em;label:DetailsCardTitle;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])("div",{css:_ref3},children));};var ItemImageContainer=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1u1ggh86",label:"ItemImageContainer"})("width:150px;height:130px;margin-bottom:20px;background:url(",function(_ref15){var mainImageUrl=_ref15.mainImageUrl;return mainImageUrl||'/assets/icons/no-logo.jpg';},") no-repeat center/contain;"+( true?"":undefined));var ListNowButton=Object(styled_base_browser_esm["a" /* default */])("button",{target:"e1u1ggh87",label:"ListNowButton"})("width:184px;margin-left:-11px;height:26px;border:none;outline:none;font:inherit;background:",constants["a" /* colors */].blueDark,";cursor:pointer;color:",constants["a" /* colors */].whiteFont,";&:hover,&:active{background:",constants["a" /* colors */].blueMed,";}&:active{margin-top:1px;}"+( true?"":undefined));var ShortDetails=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1u1ggh88",label:"ShortDetails"})( true?{name:"4to5dl",styles:"line-height:1;margin-top:3px;"}:undefined);var styled_SmallInfoRow=function SmallInfoRow(_ref16){var title=_ref16.title,titleId=_ref16.titleId,value=_ref16.value;return Object(core_browser_esm["c" /* jsx */])("p",null,titleId?Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:titleId}):title,": ",value);};var LongDetailsList=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1u1ggh89",label:"LongDetailsList"})( true?{name:"14rn8u7",styles:"margin-top:4px;height:100px;> p{line-height:1;margin-bottom:5px;}"}:undefined);var RegularItemsContainer=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1u1ggh810",label:"RegularItemsContainer"})( true?{name:"p79s79",styles:"margin-left:24px;display:flex;flex-direction:row;flex-wrap:wrap;> .catalog-item-card{margin-bottom:15px;margin-right:16px;}"}:undefined);var _ref4= true?{name:"1dg8mzi-RegularItemsHeader",styles:"padding:15px;margin-bottom:15px;display:flex;justify-content:space-between;align-items:flex-start;font-weight:bold;background:#fff;position:sticky;top:0px;z-index:3;width:1248px;box-shadow:0 1px 4px rgba(0,105,250,0.1);border-bottom-right-radius:4px;border-bottom-left-radius:4px;@media (max-width:1400px){width:unset;top:-20px;}label:RegularItemsHeader;"}:undefined;var _ref5= true?{name:"17u6yf1-RegularItemsHeader",styles:"display:flex;align-items:flex-start;label:RegularItemsHeader;"}:undefined;var styled_ref6= true?{name:"1jsztxg-RegularItemsHeader",styles:"margin-top:5px;margin-right:5px;label:RegularItemsHeader;"}:undefined;var styled_RegularItemsHeader=function RegularItemsHeader(_ref17){var selectedItemsCount=_ref17.selectedItemsCount,openListModal=_ref17.openListModal,selectAll=_ref17.selectAll,allSelected=_ref17.allSelected;return Object(core_browser_esm["c" /* jsx */])("div",{css:_ref4},Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("font-size:16px;color:",constants["a" /* colors */].blueMed,";margin-bottom:7px;label:RegularItemsHeader;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"catalog.discoverItems"})),Object(core_browser_esm["c" /* jsx */])(PopUpVideoLink["a" /* default */],{message:"Learn How It Works",videoUrl:"https://vimeo.com/497559438/5d2e845d75"})),Object(core_browser_esm["c" /* jsx */])("div",{css:_ref5},Object(core_browser_esm["c" /* jsx */])(checkbox_default.a,{checked:allSelected,onChange:function onChange(_ref18){var checked=_ref18.target.checked;return selectAll(checked);},css:styled_ref6},"Select all on this page"),Object(core_browser_esm["c" /* jsx */])(styled_ListButton,{itemsQuantity:selectedItemsCount,onClick:openListModal})));};var HotItemTag=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1u1ggh811",label:"HotItemTag"})("position:absolute;height:66px;width:66px;top:-33px;right:-33px;border-radius:50%;box-shadow:0px 1px 7px 0 rgba(0,105,250,0.15);background:no-repeat bottom 10px left 14px/13px 18px url('/assets/icons/flame.svg') ",constants["a" /* colors */].whiteBackground,";"+( true?"":undefined));var styled_MoreInfoLink=function MoreInfoLink(_ref19){var onClick=_ref19.onClick;return Object(core_browser_esm["c" /* jsx */])("a",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("font-size:12px;display:block;text-align:right;line-height:1;margin-bottom:7px;color:",constants["a" /* colors */].blueMed,";text-decoration:underline;user-select:none;&:hover,&:active{text-decoration:underline;}label:MoreInfoLink;"+( true?"":undefined)),onClick:onClick},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"catalog.moreInfo"}));};
// CONCATENATED MODULE: ./src/js/components/Catalog/Filters.js
var _dec,_class;var Option=select_default.a.Option;var Filters_ref= true?{name:"rvtbec-Filters",styles:"display:flex;align-items:center;flex-wrap:wrap;justify-content:center;label:Filters;"}:undefined;var Filters_ref2= true?{name:"1oxp961-Filters",styles:"margin-right:16px;label:Filters;"}:undefined;var Filters_ref3= true?{name:"19dboky-Filters",styles:"display:flex;align-items:center;width:130px;justify-content:space-between;label:Filters;"}:undefined;var Filters_ref4= true?{name:"10ewv8u-Filters",styles:"width:98px;height:30px;box-shadow:0 3px 6px 0 rgba(0,0,0,0.16);margin-left:auto;display:flex;align-items:center;justify-content:center;label:Filters;"}:undefined;var Filters_Filters=(_dec=Object(index_module["b" /* inject */])('catalogStore'),_dec(_class=Object(index_module["c" /* observer */])(_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(Filters,_Component);function Filters(props){var _this;Object(classCallCheck["a" /* default */])(this,Filters);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(Filters).call(this,props));_this.setCategories=function(obj,stack){var _this$props=_this.props,setCategories=_this$props.catalogItemsParams.setCategories,fetchItems=_this$props.fetchItems;setCategories(stack.map(function(_ref5){var value=_ref5.value;return"".concat(value);}));fetchItems();};_this.getConditions=function(){var arrayStructureResult=[];forEach_default()(enums["a" /* default */].CONDITION,function(val,key){if(val!==0){arrayStructureResult.push({label:startCase_default()(kebabCase_default()(key)),value:val});}});return arrayStructureResult.map(function(_ref6){var label=_ref6.label,value=_ref6.value;return Object(core_browser_esm["c" /* jsx */])(Option,{key:value,value:label},label);});};_this.state={shouldCategoriesUpdate:false};return _this;}Object(createClass["a" /* default */])(Filters,[{key:"render",value:function render(){var _this2=this;var _this$props2=this.props,_this$props2$catalogI=_this$props2.catalogItemsParams,priceFrom=_this$props2$catalogI.priceFrom,setPriceFrom=_this$props2$catalogI.setPriceFrom,priceTo=_this$props2$catalogI.priceTo,setPriceTo=_this$props2$catalogI.setPriceTo,setDeliveryTimeFrom=_this$props2$catalogI.setDeliveryTimeFrom,setDeliveryTimeTo=_this$props2$catalogI.setDeliveryTimeTo,deliveryTimeFromFormatted=_this$props2$catalogI.deliveryTimeFromFormatted,deliveryTimeToFormatted=_this$props2$catalogI.deliveryTimeToFormatted,resetValues=_this$props2$catalogI.resetValues,anyFilter=_this$props2$catalogI.anyFilter,deliveryTimeOrCategoriesChanged=_this$props2$catalogI.deliveryTimeOrCategoriesChanged,setAvailableItemsForListing=_this$props2$catalogI.setAvailableItemsForListing,setConditions=_this$props2$catalogI.setConditions,conditions=_this$props2$catalogI.conditions,fetchItems=_this$props2.fetchItems,categoriesTree=_this$props2.categoriesTree;return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(FiltersWrapper,null,Object(core_browser_esm["c" /* jsx */])("div",{css:Filters_ref},Object(core_browser_esm["c" /* jsx */])(Filter["a" /* default */],{intlKey:"catalog.deliveryTime",extraCSS:" flex-direction: column; margin-right: 10px; "},Object(core_browser_esm["c" /* jsx */])(common_Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(common_Filters["c" /* Input */],{type:"date",onChange:function onChange(e){setDeliveryTimeFrom(new Date(e.target.value).getTime()/1000);fetchItems();},width:"150px",value:deliveryTimeFromFormatted}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.to"})),Object(core_browser_esm["c" /* jsx */])(common_Filters["c" /* Input */],{type:"date",onChange:function onChange(e){setDeliveryTimeTo(new Date(e.target.value).getTime()/1000);fetchItems();},width:"150px",value:deliveryTimeToFormatted,css:Filters_ref2}))),Object(core_browser_esm["c" /* jsx */])(Filter["a" /* default */],{intlKey:"catalog.priceRange",extraCSS:" flex-direction: column; margin-right: 10px; "},Object(core_browser_esm["c" /* jsx */])(common_Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])("span",null,"$"),Object(core_browser_esm["c" /* jsx */])(DebouncedSearch["a" /* default */],{fetchPage:fetchItems,filterValue:priceFrom,setFilter:function setFilter(e){var _ref7,_e$target;setPriceFrom((_ref7=e===null||e===void 0?void 0:(_e$target=e.target)===null||_e$target===void 0?void 0:_e$target.value)!==null&&_ref7!==void 0?_ref7:e);},placeholder:"",searchInputProps:{width:'62px',height:'22px',showIcon:false}}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.to"})),Object(core_browser_esm["c" /* jsx */])("span",null,"$"),Object(core_browser_esm["c" /* jsx */])(DebouncedSearch["a" /* default */],{fetchPage:fetchItems,filterValue:priceTo,setFilter:function setFilter(e){var _ref8,_e$target2;setPriceTo((_ref8=e===null||e===void 0?void 0:(_e$target2=e.target)===null||_e$target2===void 0?void 0:_e$target2.value)!==null&&_ref8!==void 0?_ref8:e);},placeholder:"",searchInputProps:{width:'62px',height:'22px',showIcon:false}}))),Object(core_browser_esm["c" /* jsx */])(Filter["a" /* default */],{intlKey:"catalog.availability",extraCSS:" flex-direction: column; margin-right: 20px; "},Object(core_browser_esm["c" /* jsx */])("div",{css:Filters_ref3},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"catalog.onlyAvailable"}),Object(core_browser_esm["c" /* jsx */])(checkbox_default.a,{onChange:function onChange(e){setAvailableItemsForListing(e.target.checked);fetchItems();}}))),Object(core_browser_esm["c" /* jsx */])(Filter["a" /* default */],{intlKey:"listingsPage.category",extraCSS:" flex-direction: column; margin-right: 10px; "},Object(core_browser_esm["c" /* jsx */])(Catalog_CustomDropdownTree,{key:categoriesTree.length?'filled':'empty',data:categoriesTree,onChange:this.setCategories,disabled:!categoriesTree.length,shouldUpdate:this.state.shouldCategoriesUpdate})),Object(core_browser_esm["c" /* jsx */])(Filter["a" /* default */],{intlKey:"catalog.condition",extraCSS:" flex-direction: column; margin-right: 10px; "},Object(core_browser_esm["c" /* jsx */])(select_default.a,{mode:"multiple",style:{width:'180px'},placeholder:"Select a condition...",value:conditions,onChange:function onChange(value){setConditions(value);fetchItems();}},this.getConditions()))),anyFilter&&Object(core_browser_esm["c" /* jsx */])(button_default.a,{type:"link",css:Filters_ref4,onClick:function onClick(){if(deliveryTimeOrCategoriesChanged){resetValues();_this2.setState({shouldCategoriesUpdate:true},// make the dropdown tree re-render
function(){return _this2.setState({shouldCategoriesUpdate:false});});// make it stop re-rendering
fetchItems();}else{resetValues();}}},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"orders.clearFilters"}))));}}]);return Filters;}(react["Component"]))||_class)||_class);/* harmony default export */ var Catalog_Filters = (Filters_Filters);
// EXTERNAL MODULE: ./node_modules/antd/lib/collapse/style/index.js
var collapse_style = __webpack_require__(408);

// EXTERNAL MODULE: ./node_modules/antd/lib/collapse/index.js
var collapse = __webpack_require__(229);
var collapse_default = /*#__PURE__*/__webpack_require__.n(collapse);

// EXTERNAL MODULE: ./node_modules/antd/lib/carousel/style/index.js
var carousel_style = __webpack_require__(275);

// EXTERNAL MODULE: ./node_modules/antd/lib/carousel/index.js
var carousel = __webpack_require__(151);
var carousel_default = /*#__PURE__*/__webpack_require__.n(carousel);

// EXTERNAL MODULE: ./src/js/components/common/IconSvg/index.js
var IconSvg = __webpack_require__(14);

// CONCATENATED MODULE: ./src/js/components/Catalog/HotItemsContainer.js
var HotItemsContainer_ref= true?{name:"495jzb-HotItemsContainer",styles:"display:flex;align-items:center;label:HotItemsContainer;"}:undefined;var HotItemsContainer_HotItemsContainer=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(HotItemsContainer,_Component);function HotItemsContainer(props){var _this;Object(classCallCheck["a" /* default */])(this,HotItemsContainer);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(HotItemsContainer).call(this,props));_this.handlePanels=function(panels){var setHotItemsOpened=_this.props.setHotItemsOpened;var isOpened=panels.length===1&&panels[0]==='1';_this.setState({hotItemsOpened:isOpened});setHotItemsOpened(isOpened);};_this.state={hotItemsOpened:true};return _this;}Object(createClass["a" /* default */])(HotItemsContainer,[{key:"render",value:function render(){var _this$props=this.props,children=_this$props.children,setVisibleIndexStart=_this$props.setVisibleIndexStart;var hotItemsOpened=this.state.hotItemsOpened;return Object(core_browser_esm["c" /* jsx */])(collapse_default.a,{bordered:false,defaultActiveKey:['1'],onChange:this.handlePanels},Object(core_browser_esm["c" /* jsx */])(collapse_default.a.Panel,{showArrow:false,key:"1",css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("background-color:",constants["a" /* colors */].whiteMediumBackground,";.ant-collapse-header{padding-left:24px !important;background-color:",constants["a" /* colors */].whiteLightBackground,";}.ant-collapse-content.ant-collapse-content-active{height:222px;margin:14px 0;}label:HotItemsContainer;"+( true?"":undefined)),header:Object(core_browser_esm["c" /* jsx */])("span",{css:HotItemsContainer_ref},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"flame",width:"13",height:"18.6",marginRight:"9px"}),Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("font-size:",constants["b" /* fontSize */].medium,";color:",constants["a" /* colors */].blueMed,";text-decoration:underline;height:18px;user-select:none;label:HotItemsContainer;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"catalog.hotItems"})),Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"more-arrow",size:"11",marginLeft:"17px",rotate:hotItemsOpened?0:'-90deg',style:{transition:'transform 0.25s'}}))},Object(core_browser_esm["c" /* jsx */])(carousel_default.a,{dots:false,arrows:true,infinite:false,slidesToShow:6,slidesToScroll:6,afterChange:function afterChange(idx){return setVisibleIndexStart(idx);},css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("margin:0 12px 0 24px;:before{content:' ';display:block;position:absolute;top:0;height:222px;z-index:1;width:70px;background:linear-gradient( to right,",constants["a" /* colors */].whiteMediumBackground,",",constants["a" /* colors */].whiteMediumBackground,"00 );pointer-events:none;}:after{content:' ';display:block;position:absolute;top:0;right:0;height:222px;width:70px;background:linear-gradient( to left,",constants["a" /* colors */].whiteMediumBackground,",",constants["a" /* colors */].whiteMediumBackground,"00 );pointer-events:none;}.slick-arrow{z-index:9;width:26px;height:26px;box-shadow:0px 1px 7px 0 rgba(0,105,250,0.15);border:solid 1px ",constants["a" /* colors */].greyInputBorder,";border-radius:13px;&.slick-prev{background:no-repeat center/6px 11px url(/assets/icons/left-hot-items.svg) ",constants["a" /* colors */].whiteLightBackground,";left:-7px;}&.slick-next{background:no-repeat center/6px 11px url(/assets/icons/right-hot-items.svg) ",constants["a" /* colors */].whiteLightBackground,";right:5px;}&,&:hover,&:focus{background-color:",constants["a" /* colors */].whiteLightBackground,";}}label:HotItemsContainer;"+( true?"":undefined))},children)));}}]);return HotItemsContainer;}(react["Component"]);/* harmony default export */ var Catalog_HotItemsContainer = (HotItemsContainer_HotItemsContainer);
// CONCATENATED MODULE: ./src/js/components/Catalog/CatalogControls.js
var CatalogControls_class;var CatalogControls_ref= true?{name:"tvvzpb-CatalogControls",styles:"position:relative;margin:0 24px;label:CatalogControls;"}:undefined;var CatalogControls_ref2= true?{name:"d3ydw7-css",styles:"margin-bottom:11px;label:css;"}:undefined;var CatalogControls_CatalogControls=Object(index_es["d" /* injectIntl */])(CatalogControls_class=Object(index_module["c" /* observer */])(CatalogControls_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(CatalogControls,_Component);function CatalogControls(){Object(classCallCheck["a" /* default */])(this,CatalogControls);return Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(CatalogControls).apply(this,arguments));}Object(createClass["a" /* default */])(CatalogControls,[{key:"render",value:function render(){var _this$props=this.props,fetchItems=_this$props.fetchItems,catalogItemsParams=_this$props.catalogItemsParams,formatMessage=_this$props.intl.formatMessage,categoriesTree=_this$props.categoriesTree;var text=catalogItemsParams.text,setText=catalogItemsParams.setText;return Object(core_browser_esm["c" /* jsx */])("div",{css:CatalogControls_ref},Object(core_browser_esm["c" /* jsx */])(styled_CatalogTitle,null),Object(core_browser_esm["c" /* jsx */])(DebouncedSearch["a" /* default */],{fetchPage:fetchItems,filterValue:text,setFilter:function setFilter(e){var _ref3,_e$target;setText((_ref3=e===null||e===void 0?void 0:(_e$target=e.target)===null||_e$target===void 0?void 0:_e$target.value)!==null&&_ref3!==void 0?_ref3:e);},placeholder:formatMessage({id:'common.search'}),searchInputProps:{width:'227px',height:'25px',css:CatalogControls_ref2}}),Object(core_browser_esm["c" /* jsx */])(Catalog_Filters,{fetchItems:fetchItems,catalogItemsParams:catalogItemsParams,categoriesTree:categoriesTree}));}}]);return CatalogControls;}(react["Component"]))||CatalogControls_class)||CatalogControls_class;/* harmony default export */ var Catalog_CatalogControls = (CatalogControls_CatalogControls);
// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 3 modules
var slicedToArray = __webpack_require__(64);

// CONCATENATED MODULE: ./src/js/components/Catalog/ItemCard.js
var ItemCard_ref= true?{name:"de04m3",styles:"color:whitesmoke;font-size:10px;font-weight:bold;"}:undefined;function ItemCard(_ref2){var selected=_ref2.selected,setSelected=_ref2.setSelected,id=_ref2.id,isHot=_ref2.isHot,open=_ref2.open,openListModal=_ref2.openListModal,_ref2$item=_ref2.item,mainImageUrl=_ref2$item.mainImageUrl,_ref2$item$title=_ref2$item.title,title=_ref2$item$title===void 0?'':_ref2$item$title,shortTitle=_ref2$item.shortTitle,price=_ref2$item.price,retailPrice=_ref2$item.retailPrice,status=_ref2$item.status,shippingTime=_ref2$item.shippingTime,shipTo=_ref2$item.shipTo,returns=_ref2$item.returns,handlingTime=_ref2$item.handlingTime,location=_ref2$item.location,limited=_ref2$item.limited,condition=_ref2$item.condition;// used for showing the item details
var _useState=Object(react["useState"])(false),_useState2=Object(slicedToArray["a" /* default */])(_useState,2),hovering=_useState2[0],setHovering=_useState2[1];var hideProperty=function hideProperty(property){return property!==null;};return Object(core_browser_esm["c" /* jsx */])(CardBase,{selected:selected,limited:limited,onMouseEnter:function onMouseEnter(){return setHovering(true);},onMouseLeave:function onMouseLeave(){return setHovering(false);},className:"catalog-item-card"},Object(core_browser_esm["c" /* jsx */])(ItemCardDetails,null,Object(core_browser_esm["c" /* jsx */])(ItemImageContainer,{mainImageUrl:mainImageUrl}),Object(core_browser_esm["c" /* jsx */])(ItemCardTitle,{withEllipsis:true,fontSize:"12px"},title),Object(core_browser_esm["c" /* jsx */])(ShortDetails,null,Object(core_browser_esm["c" /* jsx */])(styled_SmallInfoRow,{titleId:"catalog.wholesalePrice",value:"$".concat(price)}),Object(core_browser_esm["c" /* jsx */])(styled_SmallInfoRow,{titleId:"catalog.retailPrice",value:"$".concat(retailPrice)}))),Object(core_browser_esm["c" /* jsx */])(ItemCardMoreDetails,{show:hovering},Object(core_browser_esm["c" /* jsx */])(styled_DetailsCardTitle,null,shortTitle),Object(core_browser_esm["c" /* jsx */])(LongDetailsList,null,hideProperty(status)&&Object(core_browser_esm["c" /* jsx */])(styled_SmallInfoRow,{titleId:"listingsPage.statuses",value:status}),hideProperty(location)&&Object(core_browser_esm["c" /* jsx */])(styled_SmallInfoRow,{titleId:"catalog.location",value:location}),hideProperty(handlingTime)&&Object(core_browser_esm["c" /* jsx */])(styled_SmallInfoRow,{titleId:"listing.handlingTime",value:handlingTime}),hideProperty(shippingTime)&&Object(core_browser_esm["c" /* jsx */])(styled_SmallInfoRow,{titleId:"orders.estimatedShippingTimeRange",value:shippingTime}),hideProperty(shipTo)&&Object(core_browser_esm["c" /* jsx */])(styled_SmallInfoRow,{titleId:"catalog.shipTo",value:shipTo}),hideProperty(returns)&&Object(core_browser_esm["c" /* jsx */])(styled_SmallInfoRow,{titleId:"listing.returns",value:returns}),hideProperty(condition)&&Object(core_browser_esm["c" /* jsx */])(styled_SmallInfoRow,{titleId:"catalog.condition",value:condition})),Object(core_browser_esm["c" /* jsx */])(styled_MoreInfoLink,{onClick:function onClick(){return open(id);}}),!limited?Object(core_browser_esm["c" /* jsx */])(ListNowButton,{onClick:openListModal},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"catalog.listNow"})):null),limited?Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("background-color:",constants["a" /* colors */].red,";width:70%;position:absolute;overflow:hidden;white-space:nowrap;border-bottom-right-radius:50px;padding:0 10px;height:auto;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])("h4",{css:ItemCard_ref},"Not Available For Listing")):Object(core_browser_esm["c" /* jsx */])(ItemCardCheckbox,{checked:selected,onChange:function onChange(_ref3){var checked=_ref3.target.checked;return setSelected(checked,id);}}),isHot?Object(core_browser_esm["c" /* jsx */])(HotItemTag,null):null);}/* harmony default export */ var Catalog_ItemCard = (ItemCard);
// EXTERNAL MODULE: ./node_modules/antd/lib/modal/style/index.js
var modal_style = __webpack_require__(88);

// EXTERNAL MODULE: ./node_modules/antd/lib/modal/index.js
var modal = __webpack_require__(55);
var modal_default = /*#__PURE__*/__webpack_require__.n(modal);

// EXTERNAL MODULE: ./src/js/components/common/ItemImage/index.js
var ItemImage = __webpack_require__(243);

// EXTERNAL MODULE: ./src/js/constants/theme.js
var theme = __webpack_require__(28);

// EXTERNAL MODULE: ./src/js/components/common/SingleItem/index.js + 1 modules
var SingleItem = __webpack_require__(106);

// EXTERNAL MODULE: ./src/js/components/common/styled.js
var styled = __webpack_require__(35);

// CONCATENATED MODULE: ./src/js/HOC/conditional.js
/* harmony default export */ var conditional = (function(conditionField,conditionTester){if(conditionField&&conditionTester){return function(Component){return function(props){var conditionalValue=props[conditionField];if(conditionTester(conditionalValue)){return new Component(props);}return null;};};}return function(){return null;};});
// EXTERNAL MODULE: ./src/js/components/common/InfoRow/index.js + 1 modules
var InfoRow = __webpack_require__(58);

// CONCATENATED MODULE: ./src/js/components/common/ValueNotNullInfoRow/ValueNotNullInfoRow.js
/* harmony default export */ var ValueNotNullInfoRow = (conditional('value',function(x){return x!==null;})(InfoRow["a" /* default */]));
// CONCATENATED MODULE: ./src/js/components/common/ValueNotNullInfoRow/index.js

// CONCATENATED MODULE: ./src/js/components/Catalog/ItemModal.js
var ItemModal_dec,ItemModal_class;var ItemModal_ref= true?{name:"djit94-ItemModal",styles:".ant-modal-content{border-radius:4px;.ant-modal-close > span{width:40px;height:40px;line-height:40px;}}label:ItemModal;"}:undefined;var ItemModal_ref2= true?{name:"1d7fgeb-ItemModal",styles:"display:flex;label:ItemModal;"}:undefined;var ItemModal_ref3= true?{name:"st68zi-ItemModal",styles:"display:inline-block;width:282px;label:ItemModal;"}:undefined;var ItemModal_ref4= true?{name:"30kgms-ItemModal",styles:"overflow-y:scroll;height:180px;width:290px;label:ItemModal;"}:undefined;var ItemModal_ref5= true?{name:"1ecua3o-ItemModal",styles:"cursor:pointer;label:ItemModal;"}:undefined;var ItemModal_ref6= true?{name:"gis21g-ItemModal",styles:"width:350px;height:510px;display:flex;flex-direction:column;min-height:0;margin-left:20px;label:ItemModal;"}:undefined;var ItemModal_ref7= true?{name:"3gjwnh-ItemModal",styles:"flex-grow:1;display:flex;flex-direction:column;min-height:0;label:ItemModal;"}:undefined;var _ref8= true?{name:"1ehx8tm-ItemModal",styles:"padding-bottom:0;margin-bottom:10px;label:ItemModal;"}:undefined;var _ref9= true?{name:"1m4hzmq-ItemModal",styles:"overflow-y:scroll;flex-grow:1;min-height:0;& > div{label,span{font-size:12px;}}label:ItemModal;"}:undefined;var _ref10= true?{name:"1hlbnyy-ItemModal",styles:"white-space:pre-line;label:ItemModal;"}:undefined;var _ref11= true?{name:"nfkun5-ItemModal",styles:"padding:10px 10px 0 0;display:flex;flex-direction:row-reverse;align-items:center;label:ItemModal;"}:undefined;var _ref12= true?{name:"1y4mbb2-ItemModal",styles:"width:98px;height:30px;box-shadow:0 3px 6px 0 rgba(0,0,0,0.16);margin-left:20px;label:ItemModal;"}:undefined;var ItemModal_ItemModal=(ItemModal_dec=Object(index_module["b" /* inject */])('catalogStore'),ItemModal_dec(ItemModal_class=Object(index_module["c" /* observer */])(ItemModal_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(ItemModal,_Component);function ItemModal(props){var _this;Object(classCallCheck["a" /* default */])(this,ItemModal);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(ItemModal).call(this,props));_this.onCancelModal=function(){var onCancel=_this.props.onCancel;onCancel();_this.setState({mainImage:''});};_this.state={mainImage:''};return _this;}Object(createClass["a" /* default */])(ItemModal,[{key:"render",value:function render(){var _this2=this;var _this$props=this.props,openListModal=_this$props.openListModal,openedItem=_this$props.openedItem,_this$props$catalogSt=_this$props.catalogStore,itemReference=_this$props$catalogSt.itemReference,otherPageItem=_this$props$catalogSt.otherPageItem,isMissing=_this$props.isMissing;var currentItem=isMissing?otherPageItem:itemReference(openedItem);var isPromotion=currentItem.isPromotion,images=currentItem.images,mainImageUrl=currentItem.mainImageUrl,title=currentItem.title,price=currentItem.price,retailPrice=currentItem.retailPrice,status=currentItem.status,shippingTime=currentItem.shippingTime,shipTo=currentItem.shipTo,returns=currentItem.returns,handlingTime=currentItem.handlingTime,location=currentItem.location,htmlStrippedDescription=currentItem.htmlStrippedDescription,quantity=currentItem.quantity,weightString=currentItem.weightString,dimensionsString=currentItem.dimensionsString,identifier=currentItem.identifier,identifierType=currentItem.identifierType,condition=currentItem.condition,categoryName=currentItem.categoryName,listingLimit=currentItem.listingLimit;return Object(core_browser_esm["c" /* jsx */])(modal_default.a,{visible:openedItem!==null,title:null,footer:null,width:680,bodyStyle:{height:'532px',padding:'10px'},css:ItemModal_ref,onCancel:this.onCancelModal},openedItem?Object(core_browser_esm["c" /* jsx */])("div",{css:ItemModal_ref2},Object(core_browser_esm["c" /* jsx */])("div",{css:ItemModal_ref3},Object(core_browser_esm["c" /* jsx */])(ItemImage["a" /* MainImage */],{src:this.state.mainImage?this.state.mainImage:mainImageUrl,height:"324px"}),Object(core_browser_esm["c" /* jsx */])("div",{className:images.length>6?"scroll-1":"",css:images.length>6?ItemModal_ref4:""},Object(core_browser_esm["c" /* jsx */])(ItemImage["c" /* SmallImagesContainer */],null,images.length>0?images.map(function(url,key){return Object(core_browser_esm["c" /* jsx */])(ItemImage["b" /* SmallImage */],{css:ItemModal_ref5,key:"".concat(url,"-").concat(key),src:url,onClick:function onClick(){return _this2.setState({mainImage:url});}});}):Object(core_browser_esm["c" /* jsx */])(ItemImage["b" /* SmallImage */],{src:"no-src"})))),Object(core_browser_esm["c" /* jsx */])("div",{css:ItemModal_ref6},Object(core_browser_esm["c" /* jsx */])("div",{css:ItemModal_ref7},Object(core_browser_esm["c" /* jsx */])(SingleItem["g" /* ItemName */],{css:_ref8},Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(classes["c" /* text2Medium */],";font-size:",theme["e" /* theme */].fontSize.large,";padding-bottom:0;label:ItemModal;"+( true?"":undefined))},title)),Object(core_browser_esm["c" /* jsx */])("div",{className:"scroll-1",css:_ref9},Object(core_browser_esm["c" /* jsx */])(styled["d" /* InfoRowContainer */],null,Object(core_browser_esm["c" /* jsx */])(styled["h" /* Label */],null,Object(core_browser_esm["c" /* jsx */])("span",{style:{fontWeight:'bold'}},identifierType," ")," ",identifier)),Object(core_browser_esm["c" /* jsx */])(ValueNotNullInfoRow,{titleId:"catalog.wholesalePrice",value:"$".concat(price),labelWidth:"140px"}),Object(core_browser_esm["c" /* jsx */])(ValueNotNullInfoRow,{valueStyle:{textDecoration:'line-through'},titleId:"catalog.retailPrice",value:"$".concat(retailPrice),labelWidth:"140px"}),Object(core_browser_esm["c" /* jsx */])(ValueNotNullInfoRow,{titleId:"listingsPage.statuses",value:status,labelWidth:"140px"}),Object(core_browser_esm["c" /* jsx */])(ValueNotNullInfoRow,{titleId:"catalog.location",value:location,labelWidth:"140px"}),Object(core_browser_esm["c" /* jsx */])(ValueNotNullInfoRow,{titleId:"listing.handlingTime",value:handlingTime,labelWidth:"140px"}),Object(core_browser_esm["c" /* jsx */])(ValueNotNullInfoRow,{titleId:"orders.estimatedShippingTimeRange",value:shippingTime,labelWidth:"140px"}),Object(core_browser_esm["c" /* jsx */])(ValueNotNullInfoRow,{titleId:"catalog.shipTo",value:shipTo,labelWidth:"140px"}),Object(core_browser_esm["c" /* jsx */])(ValueNotNullInfoRow,{titleId:"listing.returns",value:returns,labelWidth:"140px"}),Object(core_browser_esm["c" /* jsx */])(styled["p" /* Separator */],null),Object(core_browser_esm["c" /* jsx */])(ValueNotNullInfoRow,{titleId:"common.condition",value:"".concat(condition),labelWidth:"140px"}),Object(core_browser_esm["c" /* jsx */])(ValueNotNullInfoRow,{titleId:"listingsPage.category",value:"".concat(categoryName),labelWidth:"140px"}),Object(core_browser_esm["c" /* jsx */])(ValueNotNullInfoRow,{titleId:"common.qty",value:quantity,labelWidth:"140px"}),Object(core_browser_esm["c" /* jsx */])(ValueNotNullInfoRow,{titleId:"discover.productDimensions",value:Object(core_browser_esm["c" /* jsx */])("span",{css:_ref10},dimensionsString),labelWidth:"140px"}),Object(core_browser_esm["c" /* jsx */])(ValueNotNullInfoRow,{titleId:"common.weight",value:weightString,labelWidth:"140px"}),Object(core_browser_esm["c" /* jsx */])(ValueNotNullInfoRow,{titleId:"catalog.hotItem",value:isPromotion?'Yes':null,labelWidth:"140px"}),htmlStrippedDescription&&Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(styled["i" /* LabelColContainer */],{width:"140px"},Object(core_browser_esm["c" /* jsx */])(styled["h" /* Label */],null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"discover.productDescription"}))),Object(core_browser_esm["c" /* jsx */])(styled["g" /* InputRow */],null,Object(core_browser_esm["c" /* jsx */])(styled["f" /* InfoValue */],{style:{marginRight:'25px'}},htmlStrippedDescription)))),Object(core_browser_esm["c" /* jsx */])("div",{css:_ref11},listingLimit>0?Object(core_browser_esm["c" /* jsx */])(button_default.a,{type:"primary",css:_ref12,onClick:function onClick(){_this2.onCancelModal();openListModal();}},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"catalog.listNow"})):false)))):null);}}]);return ItemModal;}(react["Component"]))||ItemModal_class)||ItemModal_class);/* harmony default export */ var Catalog_ItemModal = (ItemModal_ItemModal);
// EXTERNAL MODULE: ./node_modules/antd/lib/popover/style/index.js
var popover_style = __webpack_require__(95);

// EXTERNAL MODULE: ./node_modules/antd/lib/popover/index.js
var popover = __webpack_require__(44);
var popover_default = /*#__PURE__*/__webpack_require__.n(popover);

// EXTERNAL MODULE: ./node_modules/antd/lib/input/style/index.js
var input_style = __webpack_require__(102);

// EXTERNAL MODULE: ./node_modules/antd/lib/input/index.js
var input = __webpack_require__(52);
var input_default = /*#__PURE__*/__webpack_require__.n(input);

// EXTERNAL MODULE: ./node_modules/lodash/fp/getOr.js
var getOr = __webpack_require__(82);
var getOr_default = /*#__PURE__*/__webpack_require__.n(getOr);

// EXTERNAL MODULE: ./src/js/components/common/WideButton/index.js + 1 modules
var WideButton = __webpack_require__(209);

// EXTERNAL MODULE: ./src/js/utils/eNumsConverters.js
var eNumsConverters = __webpack_require__(126);

// EXTERNAL MODULE: ./src/js/components/common/FlexStyle/index.js + 1 modules
var FlexStyle = __webpack_require__(45);

// EXTERNAL MODULE: ./src/js/components/common/Checkbox/checkbox.js
var Checkbox_checkbox = __webpack_require__(260);

// EXTERNAL MODULE: ./src/js/components/common/spinner/index.js + 1 modules
var spinner = __webpack_require__(74);

// EXTERNAL MODULE: ./src/js/utils/Discover.js
var Discover = __webpack_require__(83);

// EXTERNAL MODULE: ./src/js/components/common/Dropdown/index.js + 1 modules
var Dropdown = __webpack_require__(47);

// CONCATENATED MODULE: ./src/js/components/Catalog/ListModal.js
var ListModal_dec,_dec2,_dec3,_dec4,ListModal_class;// import { themeColors } from '../../constants/themes';
var EBAY_US=enums["a" /* default */].DESTINATION_MARKETPLACE.EBAY_US;var AMAZON_US=enums["a" /* default */].SOURCE_MARKETPLACE.AMAZON_US;var WARNING=enums["a" /* default */].TOAST_TYPES.WARNING;var _ENUMS$STRATEGY=enums["a" /* default */].STRATEGY,FIXED_PROFIT=_ENUMS$STRATEGY.FIXED_PROFIT,PENETRATION=_ENUMS$STRATEGY.PENETRATION;var PRICING=enums["a" /* default */].SETTINGS_TABS.PRICING;var ListModal_Option=select_default.a.Option;var VeroCheckSettings=[{name:"Your Vero List",value:0},{name:"Triplemars Vero List",value:1},{name:"Triplemars + Your Vero List (default)",value:2}];var ListModal_ref= true?{name:"vcux8d-ListModal",styles:".ant-modal-content{border-radius:4px;.ant-modal-close > span{width:40px;height:40px;line-height:40px;}}label:ListModal;"}:undefined;var ListModal_ref2= true?{name:"3bcva4-ListModal",styles:"flex-direction:row-reverse;align-items:center;label:ListModal;"}:undefined;var ListModal_ref3= true?{name:"1i9iozl-ListModal",styles:"width:98px;height:30px;box-shadow:0 3px 6px 0 rgba(0,0,0,0.16);margin-left:20px;label:ListModal;"}:undefined;var ListModal_ListModal=(ListModal_dec=Object(index_module["b" /* inject */])('toastsStore'),_dec2=Object(index_module["b" /* inject */])('discoveryStore'),_dec3=Object(index_module["b" /* inject */])('settingsStore'),_dec4=Object(index_module["b" /* inject */])('sessionStore'),ListModal_dec(ListModal_class=_dec2(ListModal_class=_dec3(ListModal_class=_dec4(ListModal_class=Object(index_es["d" /* injectIntl */])(ListModal_class=Object(index_module["c" /* observer */])(ListModal_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(ListModal,_Component);function ListModal(props){var _this;Object(classCallCheck["a" /* default */])(this,ListModal);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(ListModal).call(this,props));_this.setBreakEven=function(e){var profit=_this.state.profit;var breakEven=getOr_default()('','target.value',e);var badFormat=!(/^[0-9]*$/g.test(breakEven)&&/^[0-9]*$/g.test(profit));// && /^([0-9]*[.])?[0-9]*$/g.test(fixedFee)
_this.setState({breakEven:breakEven,badFormat:badFormat});};_this.setProfit=function(e){var breakEven=_this.state.breakEven;var profit=getOr_default()('','target.value',e);var badFormat=!(/^[0-9]*$/g.test(breakEven)&&/^[0-9]*$/g.test(profit));// && /^([0-9]*[.])?[0-9]*$/g.test(fixedFee)
_this.setState({profit:profit,badFormat:badFormat});};_this.getListingOptions=function(){var _this$props=_this.props,_this$props$discovery=_this$props.discoveryStore,discoverMarket=_this$props$discovery.discoverMarket,sellerAccountCode=_this$props$discovery.sellerAccountCode,listingMarket=_this$props$discovery.listingMarket,setStrategy=_this$props$discovery.setStrategy,fetchListingOptions=_this$props.settingsStore.listing.fetchListingOptions;fetchListingOptions(Object(Discover["f" /* convertSourceMarketsEnumsToStrings */])(discoverMarket),sellerAccountCode,Object(Discover["e" /* convertDestinationMarketsEnumsToStrings */])(listingMarket)).then(function(){var defaultStrategyType=_this.props.settingsStore.listing.listingOptions.defaultStrategyType;setStrategy(defaultStrategyType===4||defaultStrategyType===0?'ranged':defaultStrategyType);});};_this.initializeForms=function(){var _this$props2=_this.props,discoveryStore=_this$props2.discoveryStore,startLoading=_this$props2.startLoading,stopLoading=_this$props2.stopLoading;var setListingSelected=discoveryStore.setListingSelected,getSellersAccounts=discoveryStore.getSellersAccounts,setDiscoverMarket=discoveryStore.setDiscoverMarket;startLoading();_this.setState({formsInitialized:true});setDiscoverMarket(AMAZON_US);setListingSelected(EBAY_US);getSellersAccounts().then(function(resp){if(resp&&resp.length){_this.handleAccountSelect(JSON.stringify({id:resp[0].id,name:resp[0].name}));}stopLoading();});};_this.handleAccountSelect=function(account){var _this$props3=_this.props,discoveryStore=_this$props3.discoveryStore,toastsStore=_this$props3.toastsStore,isNonApi=_this$props3.sessionStore.isNonApi;_this.getListingOptions();discoveryStore.setSellerAccount(JSON.parse(account));_this.setState({spinnerShown:true});discoveryStore.getStrategyDefaults(enums["a" /* default */].NEW_DISCOVERY_SOURCE_NAMES.CATALOG).then(function(response){if(response){if(Object(Discover["e" /* convertDestinationMarketsEnumsToStrings */])(discoveryStore.listingMarket)!=='AZD_US'){discoveryStore.getPoliciesForSellerAccount().then(function(policies){_this.setState({spinnerShown:false});if((!policies||!policies.length)&&!isNonApi){toastsStore.showToast({type:WARNING,message:'No seller policies found, try again!'});}});}discoveryStore.setStrategy(Number(Object.keys(response.toJSON())[0]));var _this$props$discovery2=_this.props.discoveryStore,strategies=_this$props$discovery2.strategies,discoverStrategy=_this$props$discovery2.discoverStrategy;_this.setState({breakEven:strategies.get("".concat(discoverStrategy)).properties.breakEven,profit:strategies.get("".concat(discoverStrategy)).properties.profit});}else{_this.setState({spinnerShown:false});}}).catch(function(e){console.error(e);});};_this.toggleStrategy=function(){var editStrategy=_this.state.editStrategy;_this.setState({editStrategy:!editStrategy});};_this.saveStrategyProperties=function(){var _this$props$discovery3=_this.props.discoveryStore,strategies=_this$props$discovery3.strategies,discoverStrategy=_this$props$discovery3.discoverStrategy;var _this$state=_this.state,profit=_this$state.profit,breakEven=_this$state.breakEven;strategies.get("".concat(discoverStrategy)).setProperties(FIXED_PROFIT,'profit',profit);strategies.get("".concat(discoverStrategy)).setProperties(FIXED_PROFIT,'breakEven',breakEven);_this.toggleStrategy();};_this.handleShowListingMessage=function(){return modal_default.a.info({title:'Listing Ongoing',content:Object(core_browser_esm["c" /* jsx */])("span",null,"The listing process has started for the item you selected. You can check the status of the listing in the",' ',Object(core_browser_esm["c" /* jsx */])("a",{href:"/discover/main",target:"_blank"},"Discovery page"),", or you can list even more items."),okText:'List more items',onOk:function onOk(){}});};_this.state={formsInitialized:false,spinnerShown:false,badFormat:false,editStrategy:false,profit:'',breakEven:''};return _this;}Object(createClass["a" /* default */])(ListModal,[{key:"componentDidMount",value:function componentDidMount(){var initialized=this.props.discoveryStore.initialized;if(initialized){this.initializeForms();}}},{key:"componentDidUpdate",value:function componentDidUpdate(){if(this.props.discoveryStore.initialized&&!this.state.formsInitialized){this.initializeForms();}}},{key:"render",value:function render(){var _this2=this;var _this$props4=this.props,formatMessage=_this$props4.intl.formatMessage,visible=_this$props4.visible,onCancel=_this$props4.onCancel,listItems=_this$props4.listItems,selectedItemsCount=_this$props4.selectedItemsCount,singleItemId=_this$props4.singleItemId,startLoading=_this$props4.startLoading,stopLoading=_this$props4.stopLoading,loading=_this$props4.loading,toggleSettings=_this$props4.settingsStore.toggleSettings,_this$props4$discover=_this$props4.discoveryStore,_this$props4$discover2=_this$props4$discover.sellersAccounts,sellersAccounts=_this$props4$discover2===void 0?['']:_this$props4$discover2,sellerAccountCode=_this$props4$discover.sellerAccountCode,sellerAccountName=_this$props4$discover.sellerAccountName,strategies=_this$props4$discover.strategies,discoverStrategy=_this$props4$discover.discoverStrategy,setStrategy=_this$props4$discover.setStrategy,rangedProfitSelected=_this$props4$discover.rangedProfitSelected,penetrationProfitSelected=_this$props4$discover.penetrationProfitSelected,getVeroCheckSetting=_this$props4$discover.getVeroCheckSetting,skipVeroValidation=_this$props4$discover.skipVeroValidation,updateDiscoverySettings=_this$props4$discover.updateDiscoverySettings,fetchDiscoverySettings=_this$props4$discover.fetchDiscoverySettings;var _this$state2=this.state,breakEven=_this$state2.breakEven,profit=_this$state2.profit,editStrategy=_this$state2.editStrategy,badFormat=_this$state2.badFormat,spinnerShown=_this$state2.spinnerShown;var loadedStrategies=strategies.size?[Object.keys(strategies.toJSON())[0]]:[FIXED_PROFIT];return Object(core_browser_esm["c" /* jsx */])(modal_default.a,{visible:visible,title:Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"discover.list"}),footer:null,width:800,css:ListModal_ref,onCancel:onCancel},spinnerShown&&Object(core_browser_esm["c" /* jsx */])(spinner["a" /* default */],null),Object(core_browser_esm["c" /* jsx */])(FlexStyle["e" /* RowFlex */],{style:{width:'800px',margin:'0px auto 20px',alignItems:'center'}},Object(core_browser_esm["c" /* jsx */])(WideButton["a" /* default */],{big:true,title:formatMessage({id:'discovery.destination'}),value:Object(core_browser_esm["c" /* jsx */])(select_default.a,{value:EBAY_US},Object(core_browser_esm["c" /* jsx */])(ListModal_Option,{value:EBAY_US},Object(eNumsConverters["a" /* eNumToIntel */])('DESTINATION_MARKETPLACE',EBAY_US)))}),Object(core_browser_esm["c" /* jsx */])(WideButton["a" /* default */],{big:true,title:formatMessage({id:'discover.selectedAccount'}),value:Object(core_browser_esm["c" /* jsx */])(select_default.a,{value:JSON.stringify({id:sellerAccountCode,name:sellerAccountName}),onChange:this.handleAccountSelect},sellersAccounts.map(function(account){return Object(core_browser_esm["c" /* jsx */])(ListModal_Option,{value:JSON.stringify({id:account.id,name:account.name}),key:"sellers-account-".concat(account.id)},account.name);}),Object(core_browser_esm["c" /* jsx */])(ListModal_Option,{value:JSON.stringify({id:'',name:''})}))}),Object(core_browser_esm["c" /* jsx */])("div",{style:{position:'relative'}},Object(core_browser_esm["c" /* jsx */])(WideButton["a" /* default */],{big:true,title:formatMessage({id:'discovery.strategy'}),value:editStrategy?Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])("span",null,"Break Even: "),Object(core_browser_esm["c" /* jsx */])(input_default.a,{value:breakEven,onChange:this.setBreakEven,style:{width:'50px'}}),Object(core_browser_esm["c" /* jsx */])("span",{style:{marginLeft:'10px'}},"Profit (%): "),Object(core_browser_esm["c" /* jsx */])(input_default.a,{value:profit,onChange:this.setProfit,style:{width:'50px'}})):Object(core_browser_esm["c" /* jsx */])(select_default.a,{value:discoverStrategy||loadedStrategies[0],onChange:function onChange(value){return setStrategy(value);}},loadedStrategies.map(function(strategy){return Object(core_browser_esm["c" /* jsx */])(ListModal_Option,{value:Number(strategy||0),key:"sellers-account-".concat(strategy)},strategy&&Object(eNumsConverters["a" /* eNumToIntel */])('pricingStrategies',strategy),strategy&&strategies.get(strategy)&&",\n                            Break Even ".concat(strategies.get(strategy).properties.breakEven,",\n                            Profit ").concat(strategies.get(strategy).properties.profit,"%\n                            ").concat(strategies.get(strategy).properties.fixedFee!==undefined?", Fixed Fee ".concat(strategies.get(strategy).properties.fixedFee):'',"\n                           "));}),Object(core_browser_esm["c" /* jsx */])(ListModal_Option,{value:"ranged"},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"pricing.rangedProfit",defaultMessage:"Ranged Profit"})),Object(core_browser_esm["c" /* jsx */])(ListModal_Option,{value:PENETRATION},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"pricing.penetration",defaultMessage:"Penetration Profit"})))})),!badFormat&&Object(core_browser_esm["c" /* jsx */])("a",null,editStrategy?Object(core_browser_esm["c" /* jsx */])("span",{style:{display:'flex',flexDirection:'column'}},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"v-green",size:16,onClick:function onClick(){return _this2.saveStrategyProperties();},marginBottom:"10px"}),Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"x-pink",size:16,onClick:function onClick(){return _this2.toggleStrategy();}})):Object(core_browser_esm["c" /* jsx */])(popover_default.a,{arrowPointAtCenter:true,title:null,content:"Edit Strategy"},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"pencil",size:16,onClick:function onClick(){if(rangedProfitSelected||penetrationProfitSelected)return toggleSettings(PRICING);return _this2.toggleStrategy();}})))),Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(classes["e" /* text5 */]," font-family:Roboto;height:16px;text-align:right;margin-bottom:10px;label:ListModal;"+( true?"":undefined))},!!selectedItemsCount&&Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"catalog.itemsSelected",values:{itemsQuantity:selectedItemsCount}}),!selectedItemsCount&&singleItemId&&Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"catalog.itemsSelected",values:{itemsQuantity:1}})),Object(core_browser_esm["c" /* jsx */])(FlexStyle["e" /* RowFlex */],{style:{alignSelf:'flex-start',fontSize:constants["b" /* fontSize */].medium,flexDirection:'column'}},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"settingsModal.veroDropdown"}),Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{width:"180px",style:{marginBottom:"15px"},value:getVeroCheckSetting,disabled:skipVeroValidation,onChange:function onChange(value){updateDiscoverySettings({veroCheckSetting:value}).then(function(){fetchDiscoverySettings();// this.setState({ veroCheckPref: value })
});}},VeroCheckSettings.map(function(vero){return Object(core_browser_esm["c" /* jsx */])(ListModal_Option,{key:vero.name,value:vero.value},vero.name);}))),Object(core_browser_esm["c" /* jsx */])(FlexStyle["e" /* RowFlex */],{css:ListModal_ref2},Object(core_browser_esm["c" /* jsx */])(button_default.a,{type:"primary",css:ListModal_ref3,disabled:loading||!singleItemId&&!selectedItemsCount,onClick:function onClick(){startLoading();listItems(singleItemId).then(function(){stopLoading();onCancel();// showStatusMessage();
_this2.handleShowListingMessage();});}},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"catalog.listNow"})),Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(Checkbox_checkbox["a" /* default */],{checked:skipVeroValidation,onChange:function onChange(e){updateDiscoverySettings({skipVeroEnabled:e.target.checked}).then(function(){fetchDiscoverySettings();// this.setState({ veroCheckPref: value })
});},table:true}),Object(core_browser_esm["c" /* jsx */])("span",{style:{marginLeft:'10px'}},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"discover.skipVeroCheck",defaultMessage:"Skip VERO check"})))));}}]);return ListModal;}(react["Component"]))||ListModal_class)||ListModal_class)||ListModal_class)||ListModal_class)||ListModal_class)||ListModal_class);/* harmony default export */ var Catalog_ListModal = (ListModal_ListModal);
// EXTERNAL MODULE: ./node_modules/antd/lib/pagination/style/index.js
var pagination_style = __webpack_require__(307);

// EXTERNAL MODULE: ./node_modules/antd/lib/pagination/index.js
var pagination = __webpack_require__(224);
var pagination_default = /*#__PURE__*/__webpack_require__.n(pagination);

// CONCATENATED MODULE: ./src/js/components/Catalog/RegularItems.js
var RegularItems_dec,RegularItems_class;var RegularItems_ref= true?{name:"cnvugp-RegularItems",styles:"text-align:center;margin-top:20px;label:RegularItems;"}:undefined;var RegularItems_RegularItems=(RegularItems_dec=Object(index_module["b" /* inject */])('catalogStore'),RegularItems_dec(RegularItems_class=Object(index_module["c" /* observer */])(RegularItems_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(RegularItems,_Component);function RegularItems(props){var _this;Object(classCallCheck["a" /* default */])(this,RegularItems);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(RegularItems).call(this,props));_this.loadPage=function(pg){var appContentRef=_this.state.appContentRef;var _this$props=_this.props,loadPage=_this$props.catalogStore.loadPage,startLoading=_this$props.startLoading,stopLoading=_this$props.stopLoading;appContentRef.scrollTop=0;startLoading();loadPage(pg).then(function(){stopLoading();});};_this.state={appContentRef:document.getElementById('tm-app-content')};return _this;}Object(createClass["a" /* default */])(RegularItems,[{key:"render",value:function render(){var _this$props2=this.props,pushLocationAndOpen=_this$props2.pushLocationAndOpen,_this$props2$catalogS=_this$props2.catalogStore,items=_this$props2$catalogS.items,setSelectedItem=_this$props2$catalogS.setSelectedItem,itemReference=_this$props2$catalogS.itemReference,selectAll=_this$props2$catalogS.selectAll,allSelected=_this$props2$catalogS.allSelected,_this$props2$catalogS2=_this$props2$catalogS.catalogItemsPagination,totalResults=_this$props2$catalogS2.totalResults,pageSize=_this$props2$catalogS2.pageSize,pageNumber=_this$props2$catalogS2.pageNumber,_openListModal=_this$props2.openListModal,selectedItemsCount=_this$props2.selectedItemsCount;return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(styled_RegularItemsHeader,{selectedItemsCount:selectedItemsCount,openListModal:_openListModal,selectAll:selectAll,allSelected:allSelected}),Object(core_browser_esm["c" /* jsx */])(RegularItemsContainer,null,items.map(function(val){return Object(core_browser_esm["c" /* jsx */])(Catalog_ItemCard,{key:val.id,id:val.id,isHot:val.isPromotion,setSelected:setSelectedItem,selected:itemReference(val.id).selected,open:pushLocationAndOpen,item:val,openListModal:function openListModal(){return _openListModal({instantListItemId:"".concat(val.id)});}});})),Object(core_browser_esm["c" /* jsx */])(pagination_default.a,{defaultCurrent:1,defaultPageSize:pageSize,current:pageNumber,onChange:this.loadPage,total:totalResults,css:RegularItems_ref}));}}]);return RegularItems;}(react["Component"]))||RegularItems_class)||RegularItems_class);/* harmony default export */ var Catalog_RegularItems = (RegularItems_RegularItems);
// EXTERNAL MODULE: ./node_modules/react-dropdown-tree-select/dist/react-dropdown-tree-select.js
var react_dropdown_tree_select = __webpack_require__(680);
var react_dropdown_tree_select_default = /*#__PURE__*/__webpack_require__.n(react_dropdown_tree_select);

// CONCATENATED MODULE: ./src/js/components/Catalog/CustomDropdownTree.js
var CustomDropdownTree_ref= true?{name:"laq8uq-CustomDropdownTree",styles:"margin-right:16px;font-size:12px;label:CustomDropdownTree;"}:undefined;var CustomDropdownTree_ref2= true?{name:"k1huqt-CustomDropdownTree",styles:"&.custom-dropdown-tree{.tag-item .tag-remove{margin:0 5px;font-size:1.25em;font-weight:bold;color:#3c3c3c;}.dropdown-trigger{border-radius:19px;padding:0 11px;}.toggle{font-weight:bold;font-style:normal;margin:0 5px;cursor:pointer;&.collapsed::after{content:'+';}&.expanded::after{content:'-';}}.dropdown-content{z-index:4;}}label:CustomDropdownTree;"}:undefined;var CustomDropdownTree_CustomDropdownTree=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(CustomDropdownTree,_Component);function CustomDropdownTree(props){var _this;Object(classCallCheck["a" /* default */])(this,CustomDropdownTree);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(CustomDropdownTree).call(this,props));_this.state={data:props.data};return _this;}Object(createClass["a" /* default */])(CustomDropdownTree,[{key:"shouldComponentUpdate",value:function shouldComponentUpdate(){return this.props.shouldUpdate;}},{key:"render",value:function render(){var data=this.state.data;var onChange=this.props.onChange;return Object(core_browser_esm["c" /* jsx */])("div",{css:CustomDropdownTree_ref},Object(core_browser_esm["c" /* jsx */])(react_dropdown_tree_select_default.a,{keepTreeOnSearch:true,keepChildrenOnSearch:true,clearSearchOnChange:true,data:data,onChange:onChange,className:"custom-dropdown-tree",css:CustomDropdownTree_ref2}));}}]);return CustomDropdownTree;}(react["Component"]);/* harmony default export */ var Catalog_CustomDropdownTree = (CustomDropdownTree_CustomDropdownTree);
// EXTERNAL MODULE: ./node_modules/react-player/lib/ReactPlayer.js
var ReactPlayer = __webpack_require__(265);
var ReactPlayer_default = /*#__PURE__*/__webpack_require__.n(ReactPlayer);

// EXTERNAL MODULE: ./src/js/components/VideoThumbnail/styled.js + 1 modules
var VideoThumbnail_styled = __webpack_require__(206);

// EXTERNAL MODULE: ./src/js/components/VideoPlayer/styled.js
var VideoPlayer_styled = __webpack_require__(291);

// CONCATENATED MODULE: ./src/js/components/ServiceAgreement/ServiceAgreement.js
var ServiceAgreement_ref= true?{name:"ykrejp-ServiceAgreement",styles:"font-family:sans-serif;background-color:#fff;color:black;padding:0 11px 11px;label:ServiceAgreement;"}:undefined;var ServiceAgreement_ServiceAgreement=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(ServiceAgreement,_Component);function ServiceAgreement(){Object(classCallCheck["a" /* default */])(this,ServiceAgreement);return Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(ServiceAgreement).apply(this,arguments));}Object(createClass["a" /* default */])(ServiceAgreement,[{key:"render",value:function render(){/* eslint-disable */return Object(core_browser_esm["c" /* jsx */])("div",{className:"page","data-page-number":"2",css:ServiceAgreement_ref},Object(core_browser_esm["c" /* jsx */])("div",{className:"page","data-page-number":"2"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p1"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null,' ',"SERVICE ",Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," AGREEMENT",' '),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p1"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"}," Last updated January 12, 2021 ")),Object(core_browser_esm["c" /* jsx */])("p",{className:"p2"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"This Service Agreement is made and entered into as of today (the \u201C",Object(core_browser_esm["c" /* jsx */])("strong",null," Effective Date ")," \u201D) by and between TRIPLEMARS LLP (\u201C",Object(core_browser_esm["c" /* jsx */])("strong",null," Triplemars ")," \u201D or \" ",Object(core_browser_esm["c" /* jsx */])("strong",null," The Company ")," \"), a US limited liability partnership, with offices located at 20200 W. Dixie Hwy, Miami FL and the entity or individual (\u201C",Object(core_browser_esm["c" /* jsx */])("strong",null," Client ")," \u201D).",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"By signing up for the services as specified hereunder (\u201C",Object(core_browser_esm["c" /* jsx */])("strong",null," Service ")," s\u201D) in Company's official website (the \"",' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Website ")," \"), services provided exclusively by Triplemars, you are agreeing to be bound by the following terms and conditions (\u201C",Object(core_browser_esm["c" /* jsx */])("strong",null," Service Agreement ")," \u201D). The Services offered by Triplemars under this Service Agreement include various services to assist you in managing your online business. By agreeing to this Service Agreement, you hereby allow Triplemars to access your account in any online platform, such as eBay, Amazon, Walmart etc. and handle it, including the performance of various actions on your behalf, tracking number upload and any other functions allowed by the API of destination website. This Agreement shall automatically apply on any new features or tools added to the current Service.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Triplemars reserves the right to update and change the Service Agreement from time to time by posting updates and changes to the Triplemars website. You are advised to check the Service Agreement from time to time for any updates or changes that may impact you, and you shall have no suit and/or claim and/or demand towards Triplemars or anyone on its behalf, regarding such updates in the Service Agreement.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"This Service Agreement and any additional schedules attached hereto (collectively, this \u201C",Object(core_browser_esm["c" /* jsx */])("strong",null," Agreement ")," \u201D), including any updates or changes made to the Agreement as described above, constitute the entire agreement between the parties concerning Client\u2019s use of the Service. All schedules attached hereto are incorporated herein by reference. This Agreement replaces and supersedes any prior verbal understandings, written communications and representations.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p5"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p5"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p5"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p7"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," TERMS AND CONDITIONS "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p8"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("br",null),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"The Service performs arbitrage between Client\u2019s online retail store (\u201C",Object(core_browser_esm["c" /* jsx */])("strong",null," Destination ")," \u201D) on any website supported by the platform, and products sold on the source by identifying the prevailing prices for products on the destination that are sold for less on the source. The Service locates products of interest on the source based on Client's definitions, dynamically post content for applicable products into the Client\u2019s destination store and the pricing agent automatically monitors competitor listings & inventory on variety of sources, and re-prices the items according to the determined pricing strategy, as defined by the client. ",Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," The system may update the listing page accordingly based upon pre-configured rules. It is the user's responsibility to monitor the processes from time to time and update the data according to their needs. It is the user\u2019s responsibility to follow up on orders and purchases and to ensure that their accounts are connected to the system and are in good condition. It is also the user\u2019s responsibility to ensure that there is a balance in the source market for automated shopping.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"When Client\u2019s customers order a product from the Client\u2019s Store, the Service transfer the customer\u2019s information and Client's payment to the source and then the product will be drop-shipped to the customer from the source. Client will select all relevant parameters applicable to the arbitrage such as, product selection, (optional) required price differential between applicable products on the source and destination, and price competitiveness adjustments applicable to products offered through the Client\u2019s destination Store. Client agrees the service software, as part of its requirement to stand out versus same listings on the destination creates SEO optimized listing pages, this may change the listing pages with the Triplemars default template. You can choose between several templates that will be used to create new listed items that are listed through Triplemars.",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," Client agrees that all changes that are made through the system such as: pricing, images, templates, shipping polices, handling time and any other listing parameter are subject to change by the system and Triplemars are not liable and not responsible to do any change back to the original parameters.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," The Services "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s2"}," Balance services "),' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"- as a condition for using the Service, you must first charge balance into your account at TRIPLEMARS. ",Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," Balance charging is done by PayPal or Pioneer payments.",' '),Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"It is the user's responsibility to load Balance in a timely manner to have sufficient funds for purchases. Failure to maintain sufficient balance on the account, will result in the failure to place purchases.",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," User can submit a request to withdraw their TRIPLEMARS balance at any time by contacting TRIPLEMARS support team.",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," The withdraw will be completed once TRIPLEMARS has verified that the requesting party is free of debts for any of the services that were provided to the user by TRIPLEMARS.",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," Withdraw process time is three business days.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s2"}," Auto-reload payments "),' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"- using reference transaction allows to automatically charge funds into the account when the account balance reaches an amount according to the user\u2019s definition.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s2"}," \u201CBuy it for me\u201D services "),' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"\u2013 in this service TRIPLEMARS offers the client a solution for product sourcing / order fulfillment. ",Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," Client is required to connect their destination store (such as eBay etc.) to TRIPLEMARS.",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," Once an order is placed on the Client\u2019s destination store, TRIPLEMARS purchases the product for the Client according to the latter's demand. Purchase is made from a source defined by the client (Amazon, Walmart etc.). ",Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," Payment for the purchase is made using the Client\u2019s balance on TRIPLEMARS.",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," It is the Client\u2019s responsibility to ensure there is enough balance on their account at any time to fulfil their orders. Failure to maintain sufficient balance on the account, will result in the failure to place purchases.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',". The service also includes return services. It is the Client's responsibility to monitor the processes from time to time and update the data according to their needs. It is the Client\u2019s responsibility to follow up on orders and purchases and to ensure that their accounts are connected to the system and are in good condition.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p9"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s2"}," TRIPLEMARS catalog "),' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"\u2013 this service allows our customers to enjoy access to a large variety of products sourced out from suppliers around the globe. The identity of such suppliers shall not be reviled to the users of the service.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p9"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"The suppliers of the products offered under the TRILEMARS catalog shall be responsible for all matters relating to the products and their supply, and which are not explicitly under TRIPLEMARS's responsibility in accordance to this Service Agreement, including but not limited to issues relating to the supplier's delivery and return policies, the product's price and quality, any defects to the products, the right relating to the products and any infringement thereof.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p10"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"By agreeing to this Service Agreement, you hereby agree that TRIPLEMARS shall not be responsible and in no way liable, and you waive any claim and/or demand and/or argument against TRIPLEMARS, with regard to the matters which are under the supplier's sole",' '),Object(core_browser_esm["c" /* jsx */])("span",{className:"s4"}," responsibility, as stated hereinabove. ")),Object(core_browser_esm["c" /* jsx */])("p",{className:"p11"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p12"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Monitoring Services "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p13"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"TRIPLEMARS exercises its best efforts to monitor price and availability of items accurately. The user hereby waives any claim or complaint against TRIPLEMARS for any price or inventory monitoring inaccuracy, which may occur from time to time.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s2"}," Tracking Number Auto-Update ")),Object(core_browser_esm["c" /* jsx */])("p",{className:"p13"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"This service allows automatic updating of tracking numbers for items purchased on Amazon",' '),Object(core_browser_esm["c" /* jsx */])("span",{className:"s5"}," in Client's eBay account. ")),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"The Service is provided through a third party, please see conditions in the \"Third Party Services\" clause of this Agreement. Additional fees apply.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p14"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Third Party Services "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Any third-party service you use on Triplemars is under your full responsibility. It is your responsibility to comply with the terms of use of the third parties. By accepting this agreement, you agree to use Triplemars in a legal and legit usage only.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"TRIPLEMARS does not hold any product inventory and does not provide logistics services (storage, shipping, returns etc.). We will not be liable for quality of products, lost or damaged packages etc. All of the above services are provided by a third party and are not under the control or responsibility of TRIPLEMARS in any way. By agreeing to these Terms of Service, you declare that you will not have any claims against TRIPLEMARS for any third-party services provided by TRIPLEMARS.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Fees "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Subscription fees are calculated and charged monthly and are non-refundable.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Fulfilment fees are charged from Client\u2019s TRIPLEMARS balance per transaction.",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," Service fees are indicated on the pricing page. ",Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," Triplemars Transaction Fees are charged from your Triplemars balance per transaction upon transaction completion.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p15",dir:"rtl"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"The fees are as shown on our pricing page at",' ',Object(core_browser_esm["c" /* jsx */])("a",{href:"https://www.triplemars.com/pricing"},' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"s6"}," https://www.triplemars.com/pricing "),' '),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p15",dir:"rtl"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"At your request, we may upgrade your subscription plan.",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," Fees for the updated plan shall be charged on the date of registration for the plan. Remaining fees from previous plan, in case there are any, shall be deducted from the updated plan\u2019s fees.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Items are counted and billed as long as they exist in the system, whether in \u201Cactive\u201D, \u201Cout of stock\u201D or \u201Cended\u201D status.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Service pricing may vary from time to time. You are advised to check the Service Agreement from time to time for any updates or changes that may impact you,",' '),Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"and you shall have no suit and/or claim and/or demand towards Triplemars or anyone on its behalf, regarding such updates in the Service Agreement.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Termination of Subscription "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p8"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s7"},' ',"It is the user's sole responsibility to cancel the subscription in a timely manner.",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," TRIPLEMARS",' '),' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"will not refund any subscription payments in part or in whole due to any reason or circumstances that led to the cancellation of the subscription.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p16"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Subscription cancellation will take effect at the end of the period that was purchased in the last payment. ",Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," Between the time of cancellation and the end of the payment period, the user will have access to use the purchased services in full.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"In the event of a disconnection from the Service, we will credit the registered PayPal or Payoneer account on the Client\u2019s account with the remaining balance, after completing all payments for orders made before termination. Withdraw process time is three business days.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Upon termination of the subscription, TRIPLEMARS will immediately discontinue all services on the account and the execution of all actions in the account will be solely the responsibility of the Client, including product purchase and returns.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Grant of Rights "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Triplemars hereby grants Client a nonexclusive, non-transferable, non-sublicensable right to access and use the Service within the scope of use set forth in this Agreement during the term of this Agreement. Client is responsible for all activities conducted under its User logins on the Service. Client shall receive access to the most current version of the Service made available to Triplemars\u2019 customers generally.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Communications "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"By signing this Agreement, you hereby grant Triplemars the right to transfer your contract and contact information. Triplemars may send you information regarding new products and services and other marketing communications unless you notify Triplemars, as applicable, that you wish to opt out of receiving such communications. Client understands that even if it so opts out, it nevertheless will continue receiving system messages and other communications relating to the operation of Triplemars Services.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p14"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Listings "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Listings are pre-defined to be listed on the destination with a no ending period and are subject to fees by the destination website. By Accepting this Agreement, you allow Triplemars to update items on your destination account as out of stock, allow listings to keep running with zero inventory. You hereby understand that such listings can be charged for a fee monthly, when listed with no time limit. Triplemars will not be responsible for any damage or any loss of money as a result of the use of Triplemars system either in a direct or indirect usage. Triplemars is working with multiple of third-party APIs, which can provide inaccurate data from time to time.",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," Your use of Triplemars and all its web program solutions is entirely at your own risk and you agree to take the risk of using Triplemars for managing your data, knowing it can fail to update, or update wrong data, and you confirm that we will not be held liable for any losses that may result from using our software.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Fees "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p15",dir:"rtl"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Ended items "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"changing an item status from \u201Cactive\u201D to \u201Cended\u201D is done manually by the user. ",Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," Items in \u201Cended\u201D status are still billed by Triplemars.",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," Ended items Can be relisted though the Destination only, and cannot be relisted through Triplemars, unless listed as new items.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," VERO "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p17"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"The Verified Rights Owner (VeRO) program allows owners of intellectual property (IP) rights and their authorized representatives to report eBay listings that may infringe on those rights. VeRO embodies our commitment to provide a safe place to buy and sell, which respects property owners' rights.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p17"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Listing VERO items is under your responsibility .",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," Triplemars will not be liable, in any case, for any result of VERO listings using Triplemars system.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p18"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p17"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"VERO Scan and find features \u2013 this feature does not ensure 100% VERO protection",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Using this feature may result in the deletion of few or many listings.",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," Triplemars will not be liable for defect or losses caused as a result of the use of this tool.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"An item that was tracked as a VERO item and was deleted as a result, will change to \u201Cended\u201D status automatically.",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," The item however remains counted as a listing on Triplemars, which carries listing costs on Triplemars.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Financial Reports "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"The reports produced by the system are designed for business overview. Our reports are not a substitute for CPA reports.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p19"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p14"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Third parties on Triplemars "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Any third-party service you use on Triplemars is under your full responsibility. It is your responsibility to comply with the terms of use of the third parties. By accepting this agreement, you agree to use Triplemars in a legal and legit usage only.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Triplemars does not hold any product inventory and does not provide logistics services (storage, shipping, returns etc.). We will not be liable for quality of products, lost or damaged packages etc. All of the above services are provided by a third party and are not under the control or responsibility of Triplemars in any way. By agreeing to these Terms of Service, you declare that you will not have any claims against Triplemars for any third-party services provided by Triplemars.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p20"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Use of Data "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Reports produced by TRIPLEMARS are designed to enable business overview. TRIPLEMARS reports are not a substitute for tax reports.",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," All tax obligations that are applicable to you by law remain in effect and are not part of the Service provided by Triplemars.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p14"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Accounts "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"When you create an account, you also agree to maintain the security of your password and accept all risks of unauthorized access to your account. Your account is personal and cannot be shared or forwarded to another person.",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," We may suspend your account on Triplemars if you do that. ",Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 "),' ',"Triplemars secures all your information and encrypts your passwords but is not responsible for any security issue on your account or data and you hereby waive any claim in this regard. If you suspect any service security breaches, please let us know as soon as possible.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p19"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p14"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," User Account "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"To access certain features or functionalities of Triplemars Service, you will be required to become a registered user by way of choosing a unique username and choosing, or being assigned, a password (referred to as \u201CUser Account\u201D).",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"During registration you are required to provide accurate, complete and current information about yourself as requested. You may not choose a username, or provide other user information, that misrepresents you as another person or misleads others to think so. The Company may, in its sole discretion, refuse to approve misleading or offensive usernames.\xA0",Object(core_browser_esm["c" /* jsx */])("br",null)," Unless permitted by your User Account type or expressly authorized by the Company, you may not create User Account primarily intended to promote a product or service or create multiple User Accounts.\xA0",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("br",null)," Children under 18 years of age who would like to become a registered user, are required to have a parent or guardian review and complete the registration process, which may include age verification steps in addition to the standard process. Any transmission of personally identifiable information by children is subject to the conditions of our Privacy Policy. A parent or guardian of any user under 18 years of age who is a minor, shall be responsible for such user\u2019s compliance with these Terms and shall be the person reading and accepting these Terms and making any representations and undertakings required hereunder. By registering a User Account for yourself you hereby declare that you are over 18 years of age; by registering or assisting in registration of a User Account for a user under 18 years of age, you hereby declare that you are such user\u2019s parent or guardian and are over 18 years of age.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p14"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("br",null)," You are solely responsible for maintaining the safety of your password. You understand and agree that any use made from your User Account shall be deemed to be made by you and you shall be solely liable for such use. ",Object(core_browser_esm["c" /* jsx */])("br",null),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p14"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Payments & Taxes "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Use of the Triplemars Website and/or Service is subject to payment. Monthly payment is upfront and there will be no partial refund for any reason.",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," Prices may be revised at any time without notice.",' '),Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"You are advised to check the Service Agreement from time to time for any updates or changes regarding the pricing of the Service. Payment is recurrent on a monthly basis. Subscription will be automatically renewed at the end of the term, unless you notify us otherwise by cancelling the recurring payment on your personal settings page. Cancellation may be subject to cancellation fees. Please see the Website for more details.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"We reserve the right to cancel any transaction that we have reason to believe to have been fraudulently made, including by an unauthorized use of a credit card, debit card, or other payment method.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p15",dir:"rtl"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"By registering to the Website, you expressly agree not to request a \u2018charge back\u2019 of any fees or payments for said registration, and that no dispute with us will be raised with or adjudicated by the credit card company. Rather, you agree to contact us directly to resolve the issue or obtain a refund pursuant to applicable law.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Keep your password secure. You are fully responsible for all activity, liability and damage resulting from your failure to maintain password confidentiality. You agree to immediately notify us of any unauthorized use of your password or any breach of security. You also agree that we cannot and will not be liable for any loss or damage arising from your failure to keep your password secure. You agree not to provide your username and password information in combination to any other party other than us without our express written permission. You must always keep your account information up-to-date and accurate, including a valid email address.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s2"}," Credit Cards Payments ")),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Credit card transactions are processed through Checkout.com\u2019s payments solutions.",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," Transaction details are examined and approved by Riskified.com, raising the level of safety on the site significantly and preventing frau transactions. ",Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 "),' ',"The funds are cleared to our",' '),' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"s8"}," EU "),' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"}," entity, with offices as detailed on SCHEDULE A ")),Object(core_browser_esm["c" /* jsx */])("p",{className:"p15",dir:"rtl"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s2"}," PayPal Reference transactions Service ")),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"When placing a payment on Triplemars, a reference transaction ID is generated. You can use the reference transaction ID later to initiate subsequent transactions. As a merchant, we can use a reference transaction ID to capture future payments against a billing agreement. The capture future payment transaction is a reference transaction.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s2"}," Cancelling PayPal Reference transactions Service ")),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"You can choose to disconnect from the service at any time by clicking the \"Disconnect Service\" button on our WEBSITE.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s2"}," Taxes ")),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"You are solely responsible for any taxes on payments that you pay or obtain through the Website. ",Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," Amounts payable hereunder do not include any applicable Taxes, which, if applicable, will be charged to and paid by Client. Taxes arising from sales of products from Client\u2019s eBay Store are the sole responsibility of Client as seller of such products.",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," We will deduct applicable charges and taxes from any payable amounts, that you may be required to pay by law.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p20"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p14"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," No Abuse or Interference "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Any use of the Website or of the Service other than the Intended Use and unless expressly authorized by the Company, constitutes a contravention of this Service Agreement. You agree not to abuse, disrupt, or interfere with, the Service in any way, and not to violate this Agreement in any way, nor to allow use by others in such a way as to violate this Agreement.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"In particular, but without limitation, you agree not to do any of the following: (i) use the Website or the Service to engage in any activity that constitutes competition with the Service or the Company; (ii) disguise yourself as the Company or any person or entity or misrepresent your affiliation with the Company or any person or entity, or to disguise or misrepresent the origin of any content posted to the Website or made available through the Service; (iii) interfere with the full and complete display of advertisements on the Website pages; (iv) use the Website or the Service as a forwarding service to another website or link to the Website using any non-standard linking method; (v) use any method to intercept or expropriate any system data or information from the Website without the express written permission of the Company; (vi) use any robot, spider, other automatic device, or manual process to crawl, index, or copy the Website web pages or the content contained herein without the express written permission of the Company; (vii) use the Website or the Service in any way to harass another person or entity in any way; (viii) gain unauthorized access to other computers or networks through hacking or other means, or compromise the security of any account or site, or make the unauthorized use of the username or password of another user; (ix) collect or store personal data, or solicit personal identifying information including passwords, about other Website users unless specifically authorized by such users; (x) transfer any information held by a third party without such party\u2019s knowledge or consent; (xi) engage in any activity that interferes with or disrupts the operation of the Service servers or networks associated with the Service or places an undue burden on it or limits, negatively affects, or interferes with, other users' ability to use the Service or the Website; (xii) make excessive or otherwise harmful automated use of the Website or the Service, including using scripts to add people to your list or to post or send comments; (xiii) transmit spam, bulk, \u201Cjunk mail\u201D or unsolicited communications, including in particular unsolicited advertising or promotional materials; conduct surveys, questionnaires, competitions, chain letters and \"pyramid games/schemes,\" or any other form of solicitation; (xiv) disseminate, publish or upload any material containing or transmitting software viruses of any kind (including \"trojan horses\" and \"worms\") or any other computer code, file, program or routine designed to damage, detrimentally interfere with, surreptitiously intercept or expropriate any system, data or personal information or damage, interrupt, destroy or limit the functionality of any computer software or hardware or telecommunications equipment of any party; (xv) contravene any requirements, procedures, policies or regulations of networks associated with the Service.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p21",dir:"rtl"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p14"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Compliance with Laws "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"You hereby agree not to use Triplemars Service to engage in any activity that is unlawful under the laws of any jurisdiction to which you or the Company may be subject, or that violates any applicable local, state, national or international law.\xA0 You agree to comply with all applicable laws and rules regarding online conduct, acceptable content and the transmission and export of technical data.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"By signing this Agreement, you specifically agree not to do anything harmful to minors in any way, not to promote or provide instructional information about illegal activities, not to promote physical harm or injury against any individual, group or governmental entity, nor to promote any act of cruelty to animals. ",Object(core_browser_esm["c" /* jsx */])("br",null)," Triplemars reserves the right to report any wrongdoing that the we may become aware of to the applicable government agencies or to take other appropriate action permitted by law.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p14"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Legal rights and intellectual property rights "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Your User Account may enable you to add, create, upload, submit, distribute, or post content on the Website. We do not claim ownership of any content of any kind (including, without limitation, information, data, text, sound, video, audio, music, logo, graphic image, picture, photograph, illustration, animation, sketch, simulation, software, computer code, application, format, protocol, database, interface, character, mark, symbol, icon, concept, know-how, technique or idea, or any combination, design, layout or presentation thereof) that you post, submit or make available for inclusion on the Website or through the Service (\" ",Object(core_browser_esm["c" /* jsx */])("strong",null," User Content ")," \").",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"By adding, creating, uploading, submitting, distributing or posting any User Content on the Website or through the Service, you represent and warrant to us that: (i) you have all the rights necessary to post such User Content and to grant the license described below; (ii) such User Content does not infringe in any manner any right of or duty toward any third party (including, without limitation, any trademark, copyright, or other intellectual property right, any rights of publicity or privacy), does not violate any laws or regulations, and does not otherwise result in any consumer fraud, product liability, tort, breach of contract, injury, damage or harm of any kind to any person or entity; (iii) your User Content does not contain any information that you or any third party may consider confidential or proprietary; (iv) your User Content is not false or misleading.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"To enable the Company to provide the Service, you hereby, by posting any User Content, grant the Company a worldwide perpetual irrevocable, royalty-free and fully sublicensable license to use, distribute, reproduce, modify, adapt, publish, translate, create derivative works from, publicly perform, and publicly display your User Content (in whole or in part) in any format or medium now known or later developed. If any laws prevent such licensing, you agree never to make any claim against the Company for the use of User Content. You grant the Company or its sublicensees, at their option, the right to use the name that you submit in connection with such User Content.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p20"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p14"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Content Restriction "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"This Website and Services may be used by minors. You agree that you are solely and fully responsible for any User Content in whatever form posted to the Website or through the Service from your User Account. In particular, without limiting the Company\u2019s discretion, you agree not to make any use of the Website or the Service to post or make available in any manner, including by way of the inclusion of any hyperlinks, any User Content that: (i) is unlawful, or promotes any activity that is unlawful, under the laws of any jurisdiction to which you or the Company may be subject; (ii) is harmful, threatening, advocating violence, harassing, defamatory, indecent or obscene (including without limitation any images or depictions of child abuse, child pornography, or minors engaged in sexual conduct or explicitly sexual situations) or otherwise unsuitable for minors; (iii) contains unauthorized disclosure of personal information or is invasive of any person\u2019s privacy; (iv) infringes, including by way of improper or unauthorized hyperlinking, any party\u2019s intellectual property rights, including in particular any patent, trademark, trade secret, copyright; (v) is protected against disclosure under any law or under contractual or fiduciary relationships (such as inside information, proprietary and confidential information learned or disclosed as part of employment relationships or under nondisclosure agreements); (vi) is falsified, deceptive or misleading, including without limitation the use of forged headers or otherwise manipulated identifiers in order to disguise its origin, or lacking author attribution, copyright notice, or any other information necessary to avoid making it misleading; (vii) holds the Company or any of its affiliates, employees or shareholders up to public scorn.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Third Party Content "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"The Company has no obligation to pre-screen or otherwise monitor any other third-party content, including User Content available on the Website or accessible through the Service. The Company has no control over the content of any hyperlinked third-party websites and shall have no obligation to review the content of such sites.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"The Company makes no representations or endorsements regarding the quality, safety, truth, accuracy, reliability, completeness, condition or usefulness of any third-party content posted on the Website, hyperlinks to third-party websites outside of the Website, or any content posted on third-party websites. The Company is, in particular, not liable for the terms and consequences of any commercial transaction concluded as a result of any advertisement or any professional advice placed on or available through the Website. You agree that you must evaluate, and bear all risks associated with the use of any User Content or other third-party content or with the use of any third-party websites and if you choose to use such third-party sites, you shall be responsible for reviewing and complying with their terms of use.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"You understand that by accessing certain areas of the Website, such as any forum, message-board, or chat-room, or using the Services otherwise than the Monitored Content, you may be exposed to content that is inaccurate, misleading, objectionable, offensive, indecent or otherwise inappropriate, especially for children.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p19"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Account Termination or Suspension "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"We reserve the right to close your account or take other appropriate actions if you violate the terms of this Agreement or any policies or terms on any Triplemars website in whole or in part.\xA0",Object(core_browser_esm["c" /* jsx */])("br",null)," ",Object(core_browser_esm["c" /* jsx */])("br",null)," We may modify or close your account for any reason or no reason at any time with or without prior notice, and without liability of any kind or nature to you or any third party. We may also suspend your access to your account (including the funds in your account) if you (a) have violated these terms, (b) pose an unacceptable risk to us, or (c) provide any false, incomplete, inaccurate, or misleading information or otherwise engage in fraudulent or illegal conduct.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"If your account is terminated for any reason or no reason you agree: (a) to immediately stop using your account; (b) that we reserve the right, but have no obligation, to delete your information and account data stored on our servers; and (c) that we shall not be liable to you or any third party for termination of your account or deletion of your information or account data.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"You may terminate or close your account at any time. Upon closure of an account, any pending transactions will be cancelled, and we will erase your balance from your account",' '),Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"and credit the registered PayPal on your account with the remaining balance. Any funds that we are holding in custody for you at the time of closure, less any applicable fees, will be paid out to you. If an investigation is pending at the time you close your account, we may hold your funds as described herein until such investigation is resolved. If you are later determined to be entitled to some or all of the funds in dispute, we will release those funds to you.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p20"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p14"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Modifications to Service "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"The Company reserves the right, in its sole discretion and at any time, to modify, suspend or discontinue the Service or any part thereof, with or without notice to you, to remove any content whatsoever, and to restrict any activities, services or access thereto.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"You agree that the Company shall have no liability to any damage that you experience, due to any modification, suspension or discontinuance of the Service. The Company shall have no liability for any scheduled or unplanned system outages, including due to any third party acts or any other outages of web host providers or the Internet infrastructure and network external to the Website and the Service, and in particular for the resulting unavailability of the Website, any resultant loss of data or any resultant delay or non-delivery of information.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s10"},' ',Object(core_browser_esm["c" /* jsx */])("br",null),' '),' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Triplemars Intellectual Property "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"You acknowledge and agree that the Company owns all right, title and interest, including without limitation all intellectual property rights \u2013 meaning any and all rights existing from time to time under patent law, copyright law, trade secret law, trademark law, unfair competition law, any other proprietary rights and any applications, renewals, extensions and restorations thereof, now or hereafter in force and effect worldwide \u2013 in and to the Website and the Services, including the Website name and software used to operate the Website and the Services and including all content of the Website and the Services other than content owned by third parties, whether or not copyright notice has been included in relation to specific information. The Website and all content thereof is protected by United States and international copyright and trademark laws.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"You acknowledge and agree that the Company\u2019s name and the Company\u2019s logo are owned by the Company, whether registered as trademarks of the Company or not.",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," You are not authorized to use Company's logo or name, or any other trademarks of the Company, whether registered or unregistered. ",Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," Ownership of all such trademarks and the goodwill associated therewith remains with Company.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("br",null)," Nothing in these terms, on the Website or in the Service shall be construed as granting any right or license with regard to any content, material or trademark contained, used or displayed on the Website or through the Service without the express prior written permission of the rights owner.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"You hereby agree not to (i) copy, reprint, reproduce, publish, adapt, modify, translate, distribute, transmit, display, perform, prepare derivative works from, any parts of the Website or the Services or content appearing therein (except your User Content), in any form elsewhere, without prior written consent of the Company; (ii) reproduce, decompile, reverse engineer, disassemble, modify, create derivative works from, or in any way attempt to derive source code from, the Service or related software or the Website or related software or content, in whole or in part; (iii) remove, obscure, or alter the Company\u2019s copyright notice, trademarks, or other proprietary rights notices or legend contained within the Website or the Service. We specifically permit links to the Website from other websites.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p20"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p14"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Third Party Intellectual Property "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"You acknowledge and agree that rights in any third-party content (including any content licensed by the Company, advertisements and User Content) presented to you through the Service or contained on the Website or in any other websites to which this Website links, including copyright, trademarks, logos, service marks, patents or other proprietary rights and any other intellectual property rights not owned by the Company, belong to their respective owners.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"We respect the intellectual property rights of others and as our client you are obligated to do the same. Triplemars has the right, in appropriate circumstances and at our discretion, to disable and/or close accounts, which are charged with infringing the copyrights or other intellectual property rights of others.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p14"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Privacy "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Your privacy is important to us. To the extent of certain limited information about you may be collected during your use of the Site, such collection shall be subject to the Company\u2019s Privacy Policy. Your use of the Service is subject to and shall be deemed to constitute your acceptance of the Company's Privacy Policy.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p14"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Indemnification "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"You are solely responsible for your actions and for your User Account when using the Website and the Service. You agree to indemnify, defend, and hold harmless the Company, its owners, subsidiaries, affiliates, officers, directors, employees, consultants, advisors, agents and shareholders from and against any and all claims, demands, actions, damages, losses, costs, expenses, and fees (including reasonable attorneys\u2019 fees), royalties and liabilities of any kind and of any nature that may be incurred as a result of or arising from or in connection with: (i) any information (including, without limitation, your User Content or any other content) posted on the Website or made available through the Service by you; (ii) your use of the Website or the Service; (iii) your violation of these Terms; (iv) your violation of any applicable laws; (v) your violation of any rights of any third party; (vi) any of the above made from your User Account.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"The Company shall conduct its defense in any such third-party claim or proceeding in its sole discretion and you shall fully cooperate with the Company for such purpose.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p20"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p14"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Governing Law "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"The substantive laws of the State of Florida US shall govern the Terms of Use and the relationship between you and the Company and any other matter connected with, or deriving from, the Website or the Service, notwithstanding your actual place of residence. The competent courts located in Florida, US shall have exclusive personal jurisdiction over any lawsuits arising from or relating to these Terms or your use of the Website or the Service and you hereby agree to submit to the exclusive personal jurisdiction of such courts for such purpose.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"You agree that regardless of any statute or law to the contrary, but to the extent permitted by law, any claim or cause of action arising out of or related to use of the Website, the Service or these Terms must be filed within six (6) months after such claim or cause of action arose or it will be forever barred.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p20"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p20"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p14"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s2"}," General Provisions ")),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Entire Agreement "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"These Terms of Use and any documents expressly incorporated by reference, including the Privacy Policy, constitute the entire agreement between you and the Company with respect to the subject matter hereof, and supersedes any other agreement, proposals and communications, written or oral, between the Company and you.",' ',Object(core_browser_esm["c" /* jsx */])("span",{className:"Apple-converted-space"}," \xA0 ")," Unless otherwise specifically stated in writing, there are no other terms, conditions, or obligations between the parties relating to the use of the Website or the Service, other than those contained in these Terms.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Relationship "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"No agency, partnership, joint venture, employee-employer or franchiser-franchisee relationship is intended or created by these Terms between you and the Company. The agreement pursuant to these Terms is between you and Company and is not intended to be for the benefit of any third party, and no third party shall have any right to enforce any term hereof.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"If any dispute arises between you and any third party, you understand and agree that the Company is under no obligation to become involved and you hereby release the Company from any and all liability arising out of, or in any way related to, such disputes as set forth in the ",Object(core_browser_esm["c" /* jsx */])("strong",null," Limitation of Liability section ")," hereinunder.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Headings "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"The section headings in these Terms are for convenience only and have no legal or contractual effect",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p19"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Survival "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Any protection of intellectual property rights, any of your representations and warranties and any limitations on liability explicitly set forth herein, shall remain in full force and effect notwithstanding any termination of your use of the Service.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Severability "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"If any provision of these Terms is found by a court of competent jurisdiction to be invalid or unenforceable, any other provisions of these Terms will continue in full force and effect and you agree that the court should endeavor to give maximum effect to the parties\u2019 intentions as reflected in the provision.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Waiver "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"Any waiver of any provision of these Terms will be effective only if made in writing and signed by the Company; any delay or failure of the Company to exercise or enforce any right or provision of these Terms shall not constitute a waiver of such right or provision.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Assignment "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"You may not assign your rights or delegate your responsibilities hereunder without the express written permission of the Company. The Company may, at any time, assign its rights or delegate its obligations hereunder without notice to you.\xA0",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p4"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," Disclaimers, Limitation of Liability and Indemnification "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p3"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',"THE SERVICE AND ANY OTHER SERVICE AND CONTENT INCLUDED ON OR OTHERWISE MADE AVAILABLE TO YOU THROUGH THE SERVICE ARE PROVIDED TO YOU ON AN AS IS OR AS AVAILABLE BASIS WITHOUT ANY REPRESENTATIONS OR WARRANTIES OF ANY KIND. WE DISCLAIM ANY AND ALL OTHER WARRANTIES AND REPRESENTATIONS (EXPRESS OR IMPLIED, ORAL OR WRITTEN) WITH RESPECT TO THE SERVICE AND CONTENT INCLUDED ON OR OTHERWISE MADE AVAILABLE TO YOU THROUGH THE SERVICE WHETHER ALLEGED TO ARISE BY OPERATION OF LAW, BY REASON OF CUSTOM OR USAGE IN THE TRADE, BY COURSE OF DEALING OR OTHERWISE. IN NO EVENT WILL THE COMPANY BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY KIND ARISING OUT OF OR IN CONNECTION WITH THE SERVICE OR ANY OTHER SERVICE AND CONTENT INCLUDED ON OR OTHERWISE MADE AVAILABLE TO YOU THROUGH THE SERVICE, REGARDLESS OF THE FORM OF ACTION, WHETHER IN CONTRACT, TORT, STRICT LIABILITY OR OTHERWISE, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES OR ARE AWARE OF THE POSSIBILITY OF SUCH DAMAGES.",' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p1"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"},' ',Object(core_browser_esm["c" /* jsx */])("strong",null," SCHEDULE A "),' ')),Object(core_browser_esm["c" /* jsx */])("p",{className:"p22"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p23"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s2"}," Contact us ")),Object(core_browser_esm["c" /* jsx */])("p",{className:"p24"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p23"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"}," TRIPLEMARS LLP ")),Object(core_browser_esm["c" /* jsx */])("p",{className:"p23"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"}," 20200 W. Dixie Hwy, STE 1005 ")),Object(core_browser_esm["c" /* jsx */])("p",{className:"p23"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"}," Miami, FL 33180 ")),Object(core_browser_esm["c" /* jsx */])("p",{className:"p23"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s1"}," USA ")),Object(core_browser_esm["c" /* jsx */])("p",{className:"p25"},"\xA0"),Object(core_browser_esm["c" /* jsx */])("p",{className:"p26"},Object(core_browser_esm["c" /* jsx */])("span",{className:"s2"},' ',Object(core_browser_esm["c" /* jsx */])("a",{href:"mailto:support@triplemars.com"}," support@triplemars.com "),' ')));/* eslint-enable */}}]);return ServiceAgreement;}(react["Component"]);/* harmony default export */ var components_ServiceAgreement_ServiceAgreement = (ServiceAgreement_ServiceAgreement);
// CONCATENATED MODULE: ./src/js/components/ServiceAgreement/index.js

// EXTERNAL MODULE: ./src/assets/icons/space-ship.svg
var space_ship = __webpack_require__(681);
var space_ship_default = /*#__PURE__*/__webpack_require__.n(space_ship);

// CONCATENATED MODULE: ./src/js/components/Catalog/CatalogTermsAndConditons.js
var CatalogTermsAndConditons_dec,CatalogTermsAndConditons_class;var CatalogTermsAndConditons_ref= true?{name:"bstntn-CatalogTermsAndConditions",styles:"width:100%;dsiplay:flex;align-items:flex-start;label:CatalogTermsAndConditions;"}:undefined;var CatalogTermsAndConditons_ref2= true?{name:"18eyns1-CatalogTermsAndConditions",styles:"font-size:25px;margin-bottom:20px;letter-spacing:3px;font-weight:bold;label:CatalogTermsAndConditions;"}:undefined;var CatalogTermsAndConditons_ref3= true?{name:"abxmqf-CatalogTermsAndConditions",styles:"font-size:1rem;label:CatalogTermsAndConditions;"}:undefined;var CatalogTermsAndConditons_ref4= true?{name:"1hwqidi-CatalogTermsAndConditions",styles:"margin-bottom:10px;font-weight:500;label:CatalogTermsAndConditions;"}:undefined;var CatalogTermsAndConditons_ref5= true?{name:"1hwqidi-CatalogTermsAndConditions",styles:"margin-bottom:10px;font-weight:500;label:CatalogTermsAndConditions;"}:undefined;var CatalogTermsAndConditons_ref6= true?{name:"1hwqidi-CatalogTermsAndConditions",styles:"margin-bottom:10px;font-weight:500;label:CatalogTermsAndConditions;"}:undefined;var CatalogTermsAndConditons_ref7= true?{name:"13jdr47-CatalogTermsAndConditions",styles:"margin-bottom:40px;font-weight:500;label:CatalogTermsAndConditions;"}:undefined;var CatalogTermsAndConditons_ref8= true?{name:"1or6oac-CatalogTermsAndConditions",styles:"margin-bottom:10px;label:CatalogTermsAndConditions;"}:undefined;var CatalogTermsAndConditons_ref9= true?{name:"1rod5or-CatalogTermsAndConditions",styles:"width:100%;label:CatalogTermsAndConditions;"}:undefined;var CatalogTermsAndConditons_ref10= true?{name:"31y373-CatalogTermsAndConditions",styles:"width:100%;margin-left:15px;label:CatalogTermsAndConditions;"}:undefined;var CatalogTermsAndConditons_ref11= true?{name:"v3h1gc-CatalogTermsAndConditions",styles:"width:550px;height:40vh;overflow-y:scroll;margin-bottom:10px;label:CatalogTermsAndConditions;"}:undefined;var CatalogTermsAndConditons_ref12= true?{name:"1edxaup-CatalogTermsAndConditions",styles:"margin:15px 0px;display:flex;align-items:center;label:CatalogTermsAndConditions;"}:undefined;var _ref13= true?{name:"1xglnly-CatalogTermsAndConditions",styles:"margin-left:2px;label:CatalogTermsAndConditions;"}:undefined;var CatalogTermsAndConditons_ref14= true?{name:"45kzfe-CatalogTermsAndConditions",styles:"color:blue;text-decoration:underline;margin-left:5px;cursor:pointer;label:CatalogTermsAndConditions;"}:undefined;var _ref15= true?{name:"sjzy96-CatalogTermsAndConditions",styles:"display:flex;label:CatalogTermsAndConditions;"}:undefined;var CatalogTermsAndConditons_ref16= true?{name:"vpkd8g-CatalogTermsAndConditions",styles:"margin-right:20px;label:CatalogTermsAndConditions;"}:undefined;var CatalogTermsAndConditons_CatalogTermsAndConditions=(CatalogTermsAndConditons_dec=Object(index_module["b" /* inject */])('catalogStore'),CatalogTermsAndConditons_dec(CatalogTermsAndConditons_class=Object(index_module["c" /* observer */])(CatalogTermsAndConditons_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(CatalogTermsAndConditions,_Component);function CatalogTermsAndConditions(props){var _this;Object(classCallCheck["a" /* default */])(this,CatalogTermsAndConditions);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(CatalogTermsAndConditions).call(this,props));_this.state={openVideoModal:false,showTerms:false,checkedTerms:false};return _this;}Object(createClass["a" /* default */])(CatalogTermsAndConditions,[{key:"render",value:function render(){var _this2=this;var _this$props=this.props,updateTermsAccepted=_this$props.catalogStore.updateTermsAccepted,startLoading=_this$props.startLoading,stopLoading=_this$props.stopLoading;var _this$state=this.state,showTerms=_this$state.showTerms,openVideoModal=_this$state.openVideoModal,checkedTerms=_this$state.checkedTerms;return Object(core_browser_esm["c" /* jsx */])(styled["k" /* PageDisabledBlocker */],null,Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("margin:0 auto;margin-top:20px;width:700px;line-height:1;background:#ffffff;display:flex;flex-direction:column;margin-top:20px;align-items:center;justify-content:center;border-radius:10px;padding:20px;background-color:",constants["a" /* colors */].whiteLightBackground,";label:CatalogTermsAndConditions;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])("div",{css:CatalogTermsAndConditons_ref},Object(core_browser_esm["c" /* jsx */])("div",{css:CatalogTermsAndConditons_ref2},"Welcome to triplemars Catalog!"),!showTerms?Object(core_browser_esm["c" /* jsx */])("div",{css:CatalogTermsAndConditons_ref3},Object(core_browser_esm["c" /* jsx */])("ul",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("list-style:url(",space_ship_default.a,");margin-left:20px;label:CatalogTermsAndConditions;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])("li",{css:CatalogTermsAndConditons_ref4},"Discover and list items from ",Object(core_browser_esm["c" /* jsx */])("span",null,"merchants")," who are interested in selling their inventory online."),Object(core_browser_esm["c" /* jsx */])("li",{css:CatalogTermsAndConditons_ref5},"See what`s trending now or filter the catalog according to your specifications."),Object(core_browser_esm["c" /* jsx */])("li",{css:CatalogTermsAndConditons_ref6},"Full item information is provided, including location and shipping details."),Object(core_browser_esm["c" /* jsx */])("li",{css:CatalogTermsAndConditons_ref7},"Merchants and merchandise are thouroughly checked by TripleMars in order to provide top quality items and service.")),Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("font-weight:bold;margin-bottom:5px;margin-left:2px;color:",constants["a" /* colors */].blue,";label:CatalogTermsAndConditions;"+( true?"":undefined))},"Check out the video below to get glimpse and learn more:"),Object(core_browser_esm["c" /* jsx */])("div",{css:CatalogTermsAndConditons_ref8},' ',"You can always find this video (and others) in the Learning Center.")):null),!showTerms?Object(core_browser_esm["c" /* jsx */])("div",{css:CatalogTermsAndConditons_ref9},Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(VideoThumbnail_styled["a" /* ThumbnailContainer */],{css:CatalogTermsAndConditons_ref10,inPlaylist:false},Object(core_browser_esm["c" /* jsx */])(VideoThumbnail_styled["c" /* ThumbnailImage */],{onClick:function onClick(){return _this2.setState({openVideoModal:true});},url:"https://vimeo.com/497559438/5d2e845d75",inPlaylist:false}),Object(core_browser_esm["c" /* jsx */])(VideoThumbnail_styled["e" /* ThumbnailText */],{title:"Catalog presentation",description:"This video is a short presentation of Catalog",watched:true,setWatched:false,inPlaylist:false})),openVideoModal?Object(core_browser_esm["c" /* jsx */])(VideoPlayer_styled["b" /* VideoModal */],{onCancel:function onCancel(){return _this2.setState({openVideoModal:false});},visible:true,width:0,centered:true,footer:null},Object(core_browser_esm["c" /* jsx */])(ReactPlayer_default.a,{url:"https://vimeo.com/497559438/5d2e845d75",onProgress:this.onProgress,width:800,height:450,playing:true})):null)):null,showTerms?Object(core_browser_esm["c" /* jsx */])("div",{css:CatalogTermsAndConditons_ref11},Object(core_browser_esm["c" /* jsx */])(components_ServiceAgreement_ServiceAgreement,null)):null,Object(core_browser_esm["c" /* jsx */])("div",{css:CatalogTermsAndConditons_ref12},Object(core_browser_esm["c" /* jsx */])(checkbox_default.a,{checked:checkedTerms,onClick:function onClick(){return _this2.setState({checkedTerms:!checkedTerms});}}),Object(core_browser_esm["c" /* jsx */])("div",{css:_ref13},"I read and agree the catalog",Object(core_browser_esm["c" /* jsx */])("span",{css:CatalogTermsAndConditons_ref14,onClick:function onClick(){return _this2.setState({showTerms:true});}},"Terms Of Use"),".")),Object(core_browser_esm["c" /* jsx */])("div",{css:_ref15},Object(core_browser_esm["c" /* jsx */])(button_default.a,{disabled:!checkedTerms,css:CatalogTermsAndConditons_ref16,onClick:function onClick(){startLoading();updateTermsAccepted(true).then(function(){stopLoading();});},type:"primary"},"Continue"),showTerms?Object(core_browser_esm["c" /* jsx */])(button_default.a,{onClick:function onClick(){_this2.setState({showTerms:false});},type:"default"},"Back"):null)));}}]);return CatalogTermsAndConditions;}(react["Component"]))||CatalogTermsAndConditons_class)||CatalogTermsAndConditons_class);/* harmony default export */ var CatalogTermsAndConditons = (CatalogTermsAndConditons_CatalogTermsAndConditions);
// CONCATENATED MODULE: ./src/js/components/Catalog/CatalogMaintenance.js
var FlexWrapper=Object(styled_base_browser_esm["a" /* default */])("div",{target:"ed42a7g0",label:"FlexWrapper"})( true?{name:"o95hma",styles:"display:flex;align-items:start;position:fixed;bottom:0;width:1073.28px;justify-content:center;@media (min-height:800px){flex-direction:column-reverse;align-items:center;justify-content:space-between;height:calc(100% - 140px);}"}:undefined);var TextWrapper=Object(styled_base_browser_esm["a" /* default */])("div",{target:"ed42a7g1",label:"TextWrapper"})( true?{name:"cr9gg2",styles:"margin-left:-10em;max-width:400px;@media (min-height:800px){max-width:1248px;margin-left:0;}"}:undefined);var CatalogMaintenance_CatalogMaintenance=function CatalogMaintenance(_ref){var intl=_ref.intl;return Object(core_browser_esm["c" /* jsx */])(FlexWrapper,null,Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"404-discoveries",width:680,height:500}),Object(core_browser_esm["c" /* jsx */])(TextWrapper,null,Object(core_browser_esm["c" /* jsx */])("h1",{style:{textAlign:'center',fontSize:'25px'}},intl.formatMessage({id:'common.comingSoon!'})),Object(core_browser_esm["c" /* jsx */])("h2",{style:{textAlign:'center',fontSize:'20px'}},intl.formatMessage({id:'common.catalogMaintenance'}))));};/* harmony default export */ var Catalog_CatalogMaintenance = (Object(index_es["d" /* injectIntl */])(Object(index_module["c" /* observer */])(CatalogMaintenance_CatalogMaintenance)));
// CONCATENATED MODULE: ./src/js/components/Catalog/index.js

// CONCATENATED MODULE: ./src/js/pages/Catalog/Catalog.js
var Catalog_dec,Catalog_dec2,Catalog_dec3,Catalog_class;var Catalog_ref= true?{name:"1pbmxns-Catalog",styles:"text-align:center;label:Catalog;"}:undefined;var Catalog_ref2= true?{name:"1pd76bg-Catalog",styles:"position:absolute;bottom:0;left:50%;transform:translateX(-50%);label:Catalog;"}:undefined;var Catalog_Catalog=(Catalog_dec=Object(index_module["b" /* inject */])('routingStore'),Catalog_dec2=Object(index_module["b" /* inject */])('catalogStore'),Catalog_dec3=Object(index_module["b" /* inject */])('settingsStore'),Catalog_dec(Catalog_class=Catalog_dec2(Catalog_class=Catalog_dec3(Catalog_class=Object(index_module["c" /* observer */])(Catalog_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(Catalog,_Component);function Catalog(props){var _this;Object(classCallCheck["a" /* default */])(this,Catalog);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(Catalog).call(this,props));_this.startLoading=function(){_this.setState(function(_ref3){var spinnerShown=_ref3.spinnerShown;return{spinnerShown:spinnerShown+1};});};_this.stopLoading=function(){_this.setState(function(_ref4){var spinnerShown=_ref4.spinnerShown;return{spinnerShown:spinnerShown-1};});};_this.pushLocationAndOpen=function(id){var _this$props=_this.props,browserHistory=_this$props.routingStore.browserHistory,_this$props$catalogSt=_this$props.catalogStore,itemReference=_this$props$catalogSt.itemReference,fetchItem=_this$props$catalogSt.fetchItem;browserHistory.push("/catalog?opened-item-id=".concat(id));if(itemReference(id)){_this.openModal(id);}else{fetchItem(id).then(function(){return _this.openModal(id,true);});}};_this.pushLocationAndClose=function(){var browserHistory=_this.props.routingStore.browserHistory;browserHistory.push('/catalog');_this.closeModal();};_this.openModal=function(id){var isMissing=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;_this.setState({openedItem:id,isMissing:isMissing});};_this.closeModal=function(){_this.setState({openedItem:null});};_this.openListModal=function(_ref5){var _ref5$instantListItem=_ref5.instantListItemId,instantListItemId=_ref5$instantListItem===void 0?null:_ref5$instantListItem;_this.setState({listModalVisible:true,instantListItemId:instantListItemId});};_this.closeListModal=function(){_this.setState({listModalVisible:false});};_this.state={openedItem:null,isMissing:false,spinnerShown:0,listModalVisible:false,instantListItemId:null};return _this;}Object(createClass["a" /* default */])(Catalog,[{key:"componentDidMount",value:function componentDidMount(){var _this2=this;var _this$props2=this.props,initStore=_this$props2.catalogStore.initStore,query=_this$props2.location.query;this.startLoading();initStore().then(function(){_this2.stopLoading();});if(query['opened-item-id']){this.pushLocationAndOpen(query['opened-item-id']);}}},{key:"componentDidUpdate",value:function componentDidUpdate(prevProps){var _this3=this;var prevQuery=prevProps.location.query;var _this$props3=this.props,thisQuery=_this$props3.location.query,_this$props3$catalogS=_this$props3.catalogStore,itemReference=_this$props3$catalogS.itemReference,fetchItem=_this$props3$catalogS.fetchItem;if(!prevQuery['opened-item-id']&&thisQuery['opened-item-id']){if(itemReference(thisQuery['opened-item-id'])){this.openModal(thisQuery['opened-item-id']);}else{fetchItem(thisQuery['opened-item-id']).then(function(){return _this3.openModal(thisQuery['opened-item-id'],true);});}}else if(prevQuery['opened-item-id']&&!thisQuery['opened-item-id']){this.closeModal();}}},{key:"componentWillUnmount",value:function componentWillUnmount(){var resetValues=this.props.catalogStore.catalogItemsParams.resetValues;resetValues();}},{key:"render",value:function render(){var _this4=this;var _this$props4=this.props,_this$props4$catalogS=_this$props4.catalogStore,setHotItemsOpened=_this$props4$catalogS.setHotItemsOpened,hotItems=_this$props4$catalogS.hotItems,listParams=_this$props4$catalogS.listParams,setSelectedItem=_this$props4$catalogS.setSelectedItem,selectedItemsCount=_this$props4$catalogS.selectedItemsCount,listItems=_this$props4$catalogS.listItems,loadPage=_this$props4$catalogS.loadPage,catalogItemsParams=_this$props4$catalogS.catalogItemsParams,categoriesTree=_this$props4$catalogS.categoriesTree,itemReference=_this$props4$catalogS.itemReference,setVisibleIndexStart=_this$props4$catalogS.setVisibleIndexStart,termsAccepted=_this$props4$catalogS.termsAccepted,_this$props4$settings=_this$props4.settingsStore,defaultCurrencyId=_this$props4$settings.markets.defaultCurrencyId,currentPlan=_this$props4$settings.subscription.currentPlan,isBetaUser=_this$props4$settings.userProfile.isBetaUser;var _this$state=this.state,openedItem=_this$state.openedItem,isMissing=_this$state.isMissing,spinnerShown=_this$state.spinnerShown,listModalVisible=_this$state.listModalVisible,instantListItemId=_this$state.instantListItemId;var isMantainance=true;return Object(core_browser_esm["c" /* jsx */])("div",{hidden:!currentPlan},isMantainance&&!isBetaUser?Object(core_browser_esm["c" /* jsx */])(Catalog_CatalogMaintenance,null):Object(core_browser_esm["c" /* jsx */])(react_document_title_default.a,{title:"".concat(constants["d" /* title */]," | Catalog")},defaultCurrencyId==='USD'?Object(core_browser_esm["c" /* jsx */])(CatalogWrapper,null,Object(core_browser_esm["c" /* jsx */])(Catalog_CatalogControls,{selectedItemsCount:selectedItemsCount,openListModal:this.openListModal,categoriesTree:categoriesTree,fetchItems:function fetchItems(){_this4.startLoading();loadPage(1).then(function(){_this4.stopLoading();});},catalogItemsParams:catalogItemsParams}),Object(core_browser_esm["c" /* jsx */])(Catalog_HotItemsContainer,{setVisibleIndexStart:setVisibleIndexStart,setHotItemsOpened:setHotItemsOpened},hotItems.map(function(val){return Object(core_browser_esm["c" /* jsx */])(Catalog_ItemCard,{key:"hot-".concat(val.id),id:val.id,setSelected:setSelectedItem,selected:itemReference(val.id).selected,isHot:true,item:val,open:_this4.pushLocationAndOpen,openListModal:function openListModal(){return _this4.openListModal({instantListItemId:"".concat(val.id)});}});})),Object(core_browser_esm["c" /* jsx */])(Catalog_RegularItems,{pushLocationAndOpen:this.pushLocationAndOpen,startLoading:this.startLoading,stopLoading:this.stopLoading,loading:spinnerShown>0,openListModal:this.openListModal,selectedItemsCount:selectedItemsCount}),Object(core_browser_esm["c" /* jsx */])(Catalog_ItemModal,{openedItem:openedItem,isMissing:isMissing,onCancel:this.pushLocationAndClose,setSelected:setSelectedItem,openListModal:function openListModal(){return _this4.openListModal({instantListItemId:openedItem});}}),// don't change the visibility logic
// it fixes a bug and I don't know why it works
listModalVisible&&Object(core_browser_esm["c" /* jsx */])(Catalog_ListModal,{visible:true,onCancel:this.closeListModal,listItems:listItems,startLoading:this.startLoading,stopLoading:this.stopLoading,listParams:listParams,selectedItemsCount:selectedItemsCount,singleItemId:instantListItemId}),spinnerShown>0&&Object(core_browser_esm["c" /* jsx */])(spinner["a" /* default */],null),!termsAccepted&&Object(core_browser_esm["c" /* jsx */])(CatalogTermsAndConditons,{startLoading:this.startLoading,stopLoading:this.stopLoading})):Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])("h1",{css:Catalog_ref},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"catalog.ukCurrencyMessage",values:{region:defaultCurrencyId==='GBP'?'UK':'Canada'}})),Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{css:Catalog_ref2,type:"404-discoveries",width:680,height:500}))));}}]);return Catalog;}(react["Component"]))||Catalog_class)||Catalog_class)||Catalog_class)||Catalog_class);/* harmony default export */ var pages_Catalog_Catalog = (Catalog_Catalog);
// CONCATENATED MODULE: ./src/js/pages/Catalog/index.js

// EXPORTS
__webpack_require__.d(__webpack_exports__, "g", function() { return /* reexport */ newInterval; });
__webpack_require__.d(__webpack_exports__, "h", function() { return /* reexport */ src_millisecond; });
__webpack_require__.d(__webpack_exports__, "i", function() { return /* reexport */ milliseconds; });
__webpack_require__.d(__webpack_exports__, "L", function() { return /* reexport */ src_millisecond; });
__webpack_require__.d(__webpack_exports__, "M", function() { return /* reexport */ milliseconds; });
__webpack_require__.d(__webpack_exports__, "r", function() { return /* reexport */ src_second; });
__webpack_require__.d(__webpack_exports__, "s", function() { return /* reexport */ seconds; });
__webpack_require__.d(__webpack_exports__, "V", function() { return /* reexport */ src_second; });
__webpack_require__.d(__webpack_exports__, "W", function() { return /* reexport */ seconds; });
__webpack_require__.d(__webpack_exports__, "j", function() { return /* reexport */ src_minute; });
__webpack_require__.d(__webpack_exports__, "k", function() { return /* reexport */ minutes; });
__webpack_require__.d(__webpack_exports__, "e", function() { return /* reexport */ src_hour; });
__webpack_require__.d(__webpack_exports__, "f", function() { return /* reexport */ hours; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ src_day; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* reexport */ days; });
__webpack_require__.d(__webpack_exports__, "B", function() { return /* reexport */ sunday; });
__webpack_require__.d(__webpack_exports__, "C", function() { return /* reexport */ sundays; });
__webpack_require__.d(__webpack_exports__, "t", function() { return /* reexport */ sunday; });
__webpack_require__.d(__webpack_exports__, "u", function() { return /* reexport */ sundays; });
__webpack_require__.d(__webpack_exports__, "l", function() { return /* reexport */ monday; });
__webpack_require__.d(__webpack_exports__, "m", function() { return /* reexport */ mondays; });
__webpack_require__.d(__webpack_exports__, "x", function() { return /* reexport */ tuesday; });
__webpack_require__.d(__webpack_exports__, "y", function() { return /* reexport */ tuesdays; });
__webpack_require__.d(__webpack_exports__, "z", function() { return /* reexport */ wednesday; });
__webpack_require__.d(__webpack_exports__, "A", function() { return /* reexport */ wednesdays; });
__webpack_require__.d(__webpack_exports__, "v", function() { return /* reexport */ thursday; });
__webpack_require__.d(__webpack_exports__, "w", function() { return /* reexport */ thursdays; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* reexport */ friday; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* reexport */ fridays; });
__webpack_require__.d(__webpack_exports__, "p", function() { return /* reexport */ saturday; });
__webpack_require__.d(__webpack_exports__, "q", function() { return /* reexport */ saturdays; });
__webpack_require__.d(__webpack_exports__, "n", function() { return /* reexport */ src_month; });
__webpack_require__.d(__webpack_exports__, "o", function() { return /* reexport */ months; });
__webpack_require__.d(__webpack_exports__, "D", function() { return /* reexport */ src_year; });
__webpack_require__.d(__webpack_exports__, "E", function() { return /* reexport */ years; });
__webpack_require__.d(__webpack_exports__, "N", function() { return /* reexport */ src_utcMinute; });
__webpack_require__.d(__webpack_exports__, "O", function() { return /* reexport */ utcMinutes; });
__webpack_require__.d(__webpack_exports__, "J", function() { return /* reexport */ src_utcHour; });
__webpack_require__.d(__webpack_exports__, "K", function() { return /* reexport */ utcHours; });
__webpack_require__.d(__webpack_exports__, "F", function() { return /* reexport */ src_utcDay; });
__webpack_require__.d(__webpack_exports__, "G", function() { return /* reexport */ utcDays; });
__webpack_require__.d(__webpack_exports__, "fb", function() { return /* reexport */ utcSunday; });
__webpack_require__.d(__webpack_exports__, "gb", function() { return /* reexport */ utcSundays; });
__webpack_require__.d(__webpack_exports__, "X", function() { return /* reexport */ utcSunday; });
__webpack_require__.d(__webpack_exports__, "Y", function() { return /* reexport */ utcSundays; });
__webpack_require__.d(__webpack_exports__, "P", function() { return /* reexport */ utcMonday; });
__webpack_require__.d(__webpack_exports__, "Q", function() { return /* reexport */ utcMondays; });
__webpack_require__.d(__webpack_exports__, "bb", function() { return /* reexport */ utcTuesday; });
__webpack_require__.d(__webpack_exports__, "cb", function() { return /* reexport */ utcTuesdays; });
__webpack_require__.d(__webpack_exports__, "db", function() { return /* reexport */ utcWednesday; });
__webpack_require__.d(__webpack_exports__, "eb", function() { return /* reexport */ utcWednesdays; });
__webpack_require__.d(__webpack_exports__, "Z", function() { return /* reexport */ utcThursday; });
__webpack_require__.d(__webpack_exports__, "ab", function() { return /* reexport */ utcThursdays; });
__webpack_require__.d(__webpack_exports__, "H", function() { return /* reexport */ utcFriday; });
__webpack_require__.d(__webpack_exports__, "I", function() { return /* reexport */ utcFridays; });
__webpack_require__.d(__webpack_exports__, "T", function() { return /* reexport */ utcSaturday; });
__webpack_require__.d(__webpack_exports__, "U", function() { return /* reexport */ utcSaturdays; });
__webpack_require__.d(__webpack_exports__, "R", function() { return /* reexport */ src_utcMonth; });
__webpack_require__.d(__webpack_exports__, "S", function() { return /* reexport */ utcMonths; });
__webpack_require__.d(__webpack_exports__, "hb", function() { return /* reexport */ src_utcYear; });
__webpack_require__.d(__webpack_exports__, "ib", function() { return /* reexport */ utcYears; });

// CONCATENATED MODULE: ./node_modules/d3-time/src/interval.js
var t0 = new Date,
    t1 = new Date;

function newInterval(floori, offseti, count, field) {

  function interval(date) {
    return floori(date = new Date(+date)), date;
  }

  interval.floor = interval;

  interval.ceil = function(date) {
    return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;
  };

  interval.round = function(date) {
    var d0 = interval(date),
        d1 = interval.ceil(date);
    return date - d0 < d1 - date ? d0 : d1;
  };

  interval.offset = function(date, step) {
    return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;
  };

  interval.range = function(start, stop, step) {
    var range = [], previous;
    start = interval.ceil(start);
    step = step == null ? 1 : Math.floor(step);
    if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date
    do range.push(previous = new Date(+start)), offseti(start, step), floori(start);
    while (previous < start && start < stop);
    return range;
  };

  interval.filter = function(test) {
    return newInterval(function(date) {
      if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);
    }, function(date, step) {
      if (date >= date) {
        if (step < 0) while (++step <= 0) {
          while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty
        } else while (--step >= 0) {
          while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty
        }
      }
    });
  };

  if (count) {
    interval.count = function(start, end) {
      t0.setTime(+start), t1.setTime(+end);
      floori(t0), floori(t1);
      return Math.floor(count(t0, t1));
    };

    interval.every = function(step) {
      step = Math.floor(step);
      return !isFinite(step) || !(step > 0) ? null
          : !(step > 1) ? interval
          : interval.filter(field
              ? function(d) { return field(d) % step === 0; }
              : function(d) { return interval.count(0, d) % step === 0; });
    };
  }

  return interval;
}

// CONCATENATED MODULE: ./node_modules/d3-time/src/millisecond.js


var millisecond = newInterval(function() {
  // noop
}, function(date, step) {
  date.setTime(+date + step);
}, function(start, end) {
  return end - start;
});

// An optimized implementation for this simple case.
millisecond.every = function(k) {
  k = Math.floor(k);
  if (!isFinite(k) || !(k > 0)) return null;
  if (!(k > 1)) return millisecond;
  return newInterval(function(date) {
    date.setTime(Math.floor(date / k) * k);
  }, function(date, step) {
    date.setTime(+date + step * k);
  }, function(start, end) {
    return (end - start) / k;
  });
};

/* harmony default export */ var src_millisecond = (millisecond);
var milliseconds = millisecond.range;

// CONCATENATED MODULE: ./node_modules/d3-time/src/duration.js
var durationSecond = 1e3;
var durationMinute = 6e4;
var durationHour = 36e5;
var durationDay = 864e5;
var durationWeek = 6048e5;

// CONCATENATED MODULE: ./node_modules/d3-time/src/second.js



var second = newInterval(function(date) {
  date.setTime(Math.floor(date / durationSecond) * durationSecond);
}, function(date, step) {
  date.setTime(+date + step * durationSecond);
}, function(start, end) {
  return (end - start) / durationSecond;
}, function(date) {
  return date.getUTCSeconds();
});

/* harmony default export */ var src_second = (second);
var seconds = second.range;

// CONCATENATED MODULE: ./node_modules/d3-time/src/minute.js



var minute = newInterval(function(date) {
  date.setTime(Math.floor(date / durationMinute) * durationMinute);
}, function(date, step) {
  date.setTime(+date + step * durationMinute);
}, function(start, end) {
  return (end - start) / durationMinute;
}, function(date) {
  return date.getMinutes();
});

/* harmony default export */ var src_minute = (minute);
var minutes = minute.range;

// CONCATENATED MODULE: ./node_modules/d3-time/src/hour.js



var hour = newInterval(function(date) {
  var offset = date.getTimezoneOffset() * durationMinute % durationHour;
  if (offset < 0) offset += durationHour;
  date.setTime(Math.floor((+date - offset) / durationHour) * durationHour + offset);
}, function(date, step) {
  date.setTime(+date + step * durationHour);
}, function(start, end) {
  return (end - start) / durationHour;
}, function(date) {
  return date.getHours();
});

/* harmony default export */ var src_hour = (hour);
var hours = hour.range;

// CONCATENATED MODULE: ./node_modules/d3-time/src/day.js



var day = newInterval(function(date) {
  date.setHours(0, 0, 0, 0);
}, function(date, step) {
  date.setDate(date.getDate() + step);
}, function(start, end) {
  return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;
}, function(date) {
  return date.getDate() - 1;
});

/* harmony default export */ var src_day = (day);
var days = day.range;

// CONCATENATED MODULE: ./node_modules/d3-time/src/week.js



function weekday(i) {
  return newInterval(function(date) {
    date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
    date.setHours(0, 0, 0, 0);
  }, function(date, step) {
    date.setDate(date.getDate() + step * 7);
  }, function(start, end) {
    return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;
  });
}

var sunday = weekday(0);
var monday = weekday(1);
var tuesday = weekday(2);
var wednesday = weekday(3);
var thursday = weekday(4);
var friday = weekday(5);
var saturday = weekday(6);

var sundays = sunday.range;
var mondays = monday.range;
var tuesdays = tuesday.range;
var wednesdays = wednesday.range;
var thursdays = thursday.range;
var fridays = friday.range;
var saturdays = saturday.range;

// CONCATENATED MODULE: ./node_modules/d3-time/src/month.js


var month = newInterval(function(date) {
  date.setDate(1);
  date.setHours(0, 0, 0, 0);
}, function(date, step) {
  date.setMonth(date.getMonth() + step);
}, function(start, end) {
  return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;
}, function(date) {
  return date.getMonth();
});

/* harmony default export */ var src_month = (month);
var months = month.range;

// CONCATENATED MODULE: ./node_modules/d3-time/src/year.js


var year = newInterval(function(date) {
  date.setMonth(0, 1);
  date.setHours(0, 0, 0, 0);
}, function(date, step) {
  date.setFullYear(date.getFullYear() + step);
}, function(start, end) {
  return end.getFullYear() - start.getFullYear();
}, function(date) {
  return date.getFullYear();
});

// An optimized implementation for this simple case.
year.every = function(k) {
  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) {
    date.setFullYear(Math.floor(date.getFullYear() / k) * k);
    date.setMonth(0, 1);
    date.setHours(0, 0, 0, 0);
  }, function(date, step) {
    date.setFullYear(date.getFullYear() + step * k);
  });
};

/* harmony default export */ var src_year = (year);
var years = year.range;

// CONCATENATED MODULE: ./node_modules/d3-time/src/utcMinute.js



var utcMinute = newInterval(function(date) {
  date.setUTCSeconds(0, 0);
}, function(date, step) {
  date.setTime(+date + step * durationMinute);
}, function(start, end) {
  return (end - start) / durationMinute;
}, function(date) {
  return date.getUTCMinutes();
});

/* harmony default export */ var src_utcMinute = (utcMinute);
var utcMinutes = utcMinute.range;

// CONCATENATED MODULE: ./node_modules/d3-time/src/utcHour.js



var utcHour = newInterval(function(date) {
  date.setUTCMinutes(0, 0, 0);
}, function(date, step) {
  date.setTime(+date + step * durationHour);
}, function(start, end) {
  return (end - start) / durationHour;
}, function(date) {
  return date.getUTCHours();
});

/* harmony default export */ var src_utcHour = (utcHour);
var utcHours = utcHour.range;

// CONCATENATED MODULE: ./node_modules/d3-time/src/utcDay.js



var utcDay = newInterval(function(date) {
  date.setUTCHours(0, 0, 0, 0);
}, function(date, step) {
  date.setUTCDate(date.getUTCDate() + step);
}, function(start, end) {
  return (end - start) / durationDay;
}, function(date) {
  return date.getUTCDate() - 1;
});

/* harmony default export */ var src_utcDay = (utcDay);
var utcDays = utcDay.range;

// CONCATENATED MODULE: ./node_modules/d3-time/src/utcWeek.js



function utcWeekday(i) {
  return newInterval(function(date) {
    date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
    date.setUTCHours(0, 0, 0, 0);
  }, function(date, step) {
    date.setUTCDate(date.getUTCDate() + step * 7);
  }, function(start, end) {
    return (end - start) / durationWeek;
  });
}

var utcSunday = utcWeekday(0);
var utcMonday = utcWeekday(1);
var utcTuesday = utcWeekday(2);
var utcWednesday = utcWeekday(3);
var utcThursday = utcWeekday(4);
var utcFriday = utcWeekday(5);
var utcSaturday = utcWeekday(6);

var utcSundays = utcSunday.range;
var utcMondays = utcMonday.range;
var utcTuesdays = utcTuesday.range;
var utcWednesdays = utcWednesday.range;
var utcThursdays = utcThursday.range;
var utcFridays = utcFriday.range;
var utcSaturdays = utcSaturday.range;

// CONCATENATED MODULE: ./node_modules/d3-time/src/utcMonth.js


var utcMonth = newInterval(function(date) {
  date.setUTCDate(1);
  date.setUTCHours(0, 0, 0, 0);
}, function(date, step) {
  date.setUTCMonth(date.getUTCMonth() + step);
}, function(start, end) {
  return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;
}, function(date) {
  return date.getUTCMonth();
});

/* harmony default export */ var src_utcMonth = (utcMonth);
var utcMonths = utcMonth.range;

// CONCATENATED MODULE: ./node_modules/d3-time/src/utcYear.js


var utcYear = newInterval(function(date) {
  date.setUTCMonth(0, 1);
  date.setUTCHours(0, 0, 0, 0);
}, function(date, step) {
  date.setUTCFullYear(date.getUTCFullYear() + step);
}, function(start, end) {
  return end.getUTCFullYear() - start.getUTCFullYear();
}, function(date) {
  return date.getUTCFullYear();
});

// An optimized implementation for this simple case.
utcYear.every = function(k) {
  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) {
    date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);
    date.setUTCMonth(0, 1);
    date.setUTCHours(0, 0, 0, 0);
  }, function(date, step) {
    date.setUTCFullYear(date.getUTCFullYear() + step * k);
  });
};

/* harmony default export */ var src_utcYear = (utcYear);
var utcYears = utcYear.range;

// CONCATENATED MODULE: ./node_modules/d3-time/index.js





























// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "default", function() { return /* reexport */ pages_EducationCenter_EducationCenter; });

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
var classCallCheck = __webpack_require__(9);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js
var createClass = __webpack_require__(10);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__(11);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
var getPrototypeOf = __webpack_require__(12);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
var inherits = __webpack_require__(13);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
var assertThisInitialized = __webpack_require__(16);

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__(7);

// EXTERNAL MODULE: ./node_modules/react-document-title/index.js
var react_document_title = __webpack_require__(98);
var react_document_title_default = /*#__PURE__*/__webpack_require__.n(react_document_title);

// EXTERNAL MODULE: ./node_modules/react-intl/lib/index.es.js
var index_es = __webpack_require__(4);

// EXTERNAL MODULE: ./src/js/constants/index.js + 1 modules
var constants = __webpack_require__(15);

// EXTERNAL MODULE: ./node_modules/antd/lib/select/style/index.js
var style = __webpack_require__(89);

// EXTERNAL MODULE: ./node_modules/antd/lib/select/index.js
var lib_select = __webpack_require__(36);
var select_default = /*#__PURE__*/__webpack_require__.n(lib_select);

// EXTERNAL MODULE: ./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js + 3 modules
var styled_base_browser_esm = __webpack_require__(6);

// CONCATENATED MODULE: ./src/js/components/EducationSection/EducationCenterTitledContainer.js
var Option=select_default.a.Option;var SectionTitle=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"er9d30a0",label:"SectionTitle"})("font-family:Stolzl;font-size:",function(props){return props.titleFontSize?props.titleFontSize:'12px';},";font-weight:bold;line-height:1.15;text-align:left;color:#3f435c;padding:5.8px 0 6.2px;display:flex;justify-content:space-between;align-items:center;",function(props){return props.titleHeight?"height: ".concat(props.titleHeight,";"):null;}, true?"":undefined);var _ref= true?{name:"1stiuw3-EducationCenterTitledContainer",styles:"display:flex;justify-content:space-between;label:EducationCenterTitledContainer;"}:undefined;var _ref2= true?{name:"q7xyjt-EducationCenterTitledContainer",styles:"display:flex;label:EducationCenterTitledContainer;"}:undefined;var _ref3= true?{name:"v9un78-EducationCenterTitledContainer",styles:"margin-top:2px;margin-right:5px;label:EducationCenterTitledContainer;"}:undefined;var EducationCenterTitledContainer_EducationCenterTitledContainer=function EducationCenterTitledContainer(props){var availableLanguagesFiltered=props.type==="Course"?props.availableLanguages:props.availableLanguages;return Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("min-height:100px;width:100%;display:inline-block;",props.fullHeight?'height: 100%;':'',"label:EducationCenterTitledContainer;"+( true?"":undefined))},!props.noTitle&&Object(core_browser_esm["c" /* jsx */])("div",{css:_ref},Object(core_browser_esm["c" /* jsx */])(SectionTitle,{titleFontSize:props.titleFontSize,titleHeight:props.titleHeight},props.title,props.titleButton),Object(core_browser_esm["c" /* jsx */])("div",{css:_ref2},Object(core_browser_esm["c" /* jsx */])("div",{css:_ref3},"Select Language"),Object(core_browser_esm["c" /* jsx */])(select_default.a,{value:props.language,onChange:function onChange(value){props.setLanguage(value);props.fetchSection(props.type,value);}},availableLanguagesFiltered===null||availableLanguagesFiltered===void 0?void 0:availableLanguagesFiltered.map(function(language){return Object(core_browser_esm["c" /* jsx */])(Option,{value:language,key:language},language);})))),Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("padding:",props.padding?props.padding:'16px 22px',";background-color:#fff;box-shadow:0px 1px 7px 0 rgba(0,105,250,0.07);",props.fullColFlex&&"\n            display: flex;\n            flex-direction: column;\n            height: calc(100% - 25px);\n            justify-content: space-around;\n          ","label:EducationCenterTitledContainer;"+( true?"":undefined))},props.children));};
// EXTERNAL MODULE: ./src/js/components/common/TitledContainer/index.js + 1 modules
var TitledContainer = __webpack_require__(242);

// EXTERNAL MODULE: ./node_modules/antd/lib/carousel/style/index.js
var carousel_style = __webpack_require__(275);

// EXTERNAL MODULE: ./node_modules/antd/lib/carousel/index.js
var carousel = __webpack_require__(151);
var carousel_default = /*#__PURE__*/__webpack_require__.n(carousel);

// EXTERNAL MODULE: ./node_modules/react-router/es/index.js + 32 modules
var es = __webpack_require__(50);

// EXTERNAL MODULE: ./src/js/components/common/IconSvg/index.js
var IconSvg = __webpack_require__(14);

// CONCATENATED MODULE: ./src/js/components/common/LinkButton/LinkButton.js
var LinkButton_LinkButton=function LinkButton(props){return Object(core_browser_esm["c" /* jsx */])("a",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("font-family:Roboto;font-size:",constants["b" /* fontSize */].medium,";line-height:1.07;letter-spacing:0px;text-align:left;color:",constants["a" /* colors */].blueMed,";text-decoration:underline;",props.position?"position: ".concat(props.position,";"):''," ",props.right?"right: ".concat(props.right,";"):''," ",props.left?"left: ".concat(props.left,";"):''," ",props.top?"top: ".concat(props.top,";"):''," ",props.bottom?"bottom: ".concat(props.bottom,";"):'',"label:LinkButton;"+( true?"":undefined)),onClick:function onClick(e){return props.onClick(e);}},props.children);};/* harmony default export */ var common_LinkButton_LinkButton = (LinkButton_LinkButton);
// CONCATENATED MODULE: ./src/js/components/common/LinkButton/index.js

// EXTERNAL MODULE: ./src/js/components/common/styled.js
var styled = __webpack_require__(35);

// EXTERNAL MODULE: ./src/js/constants/themes.js
var themes = __webpack_require__(18);

// EXTERNAL MODULE: ./src/js/constants/theme.js
var theme = __webpack_require__(28);

// CONCATENATED MODULE: ./src/js/pages/EducationCenter/styled.js
var styled_ref= true?{name:"18ljvk1-VideosCarousel",styles:"display:flex;justify-content:space-between;align-items:center;div.ant-carousel{width:96%;}label:VideosCarousel;"}:undefined;var styled_ref2= true?{name:"pptynb-VideosCarousel",styles:"padding:40px 11px;margin-left:-22px;&:hover{cursor:pointer;}label:VideosCarousel;"}:undefined;var styled_ref3= true?{name:"vhskd-VideosCarousel",styles:"display:inline-block;width:27px;margin-left:-22px;label:VideosCarousel;"}:undefined;var _ref4= true?{name:"1qa3nwx-VideosCarousel",styles:"ul.slick-dots{display:none !important;}label:VideosCarousel;"}:undefined;var _ref5= true?{name:"yfbt7u-VideosCarousel",styles:"padding:40px 11px;margin-right:-22px;&:hover{cursor:pointer;}label:VideosCarousel;"}:undefined;var _ref6= true?{name:"nr004w-VideosCarousel",styles:"display:inline-block;width:27px;margin-right:-22px;label:VideosCarousel;"}:undefined;var styled_VideosCarousel=function VideosCarousel(props){return Object(core_browser_esm["c" /* jsx */])("div",{css:styled_ref},props.showLeft?Object(core_browser_esm["c" /* jsx */])("div",{css:styled_ref2,onClick:function onClick(){return props.carouselRef.current.prev();}},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"left-more-arrow",width:5,height:10})):Object(core_browser_esm["c" /* jsx */])("div",{css:styled_ref3}),Object(core_browser_esm["c" /* jsx */])(carousel_default.a,{css:_ref4,ref:props.carouselRef,beforeChange:function beforeChange(from,to){return props.onCarouselChange(to);}},props.children),props.showRight?Object(core_browser_esm["c" /* jsx */])("div",{css:_ref5,onClick:function onClick(){return props.carouselRef.current.next();}},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"right-more-arrow",width:5,height:10})):Object(core_browser_esm["c" /* jsx */])("div",{css:_ref6}));};var TopHalf=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1vj99fi0",label:"TopHalf"})( true?{name:"15mf7n9",styles:"padding:0 72px 20px 72px;&>div>div:nth-of-type(1){padding:11px 0;}"}:undefined);var EducationText=Object(styled_base_browser_esm["a" /* default */])("span",{target:"e1vj99fi1",label:"EducationText"})("font-family:Stolzl;font-size:",function(_ref12){var _ref12$size=_ref12.size,size=_ref12$size===void 0?theme["b" /* fontSize */].medium:_ref12$size;return size;},";font-weight:500;line-height:1.56;text-align:left;margin-left:10px;",function(_ref13){var linkColors=_ref13.linkColors;return linkColors?"\n    color: ".concat(themes["c" /* buttonNormal */]," !important;\n    &:hover {\n      color: ").concat(themes["b" /* buttonHover */]," !important;\n    }\n  "):"\n    color: ".concat(themes["d" /* themeColors */].eggplantBlue,";\n  ");}, true?"":undefined);var _ref7= true?{name:"1srrvhu-EducationBar",styles:"padding:20px 72px 20px 20px;&,&>div{display:flex;justify-content:space-between;align-items:center;}&>div>input{width:227px;}label:EducationBar;"}:undefined;var styled_EducationBar=function EducationBar(props){return Object(core_browser_esm["c" /* jsx */])("div",{css:_ref7},Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"telescope",size:30}),props.showCurrentPlaylist?Object(core_browser_esm["c" /* jsx */])(es["b" /* Link */],{to:"/learning"},Object(core_browser_esm["c" /* jsx */])(EducationText,{size:theme["b" /* fontSize */].large,linkColors:true},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"educationCenter.learningCenter"}),"  >")):Object(core_browser_esm["c" /* jsx */])(EducationText,{size:theme["b" /* fontSize */].large},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"educationCenter.learningCenter"})),props.showCurrentPlaylist&&Object(core_browser_esm["c" /* jsx */])(EducationText,{size:theme["b" /* fontSize */].large},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"dashboard.currentPlaylist"}))),Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(styled["o" /* SearchInput */],{placeholder:"",onChange:props.searchHandler})));};var styled_Container=function Container(props){return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(styled_EducationBar,{searchHandler:props.searchHandler,showCurrentPlaylist:props.showCurrentPlaylist}),Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,props.children));};var Heading=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"e1vj99fi2",label:"Heading"})( true?{name:"15rw6ke",styles:"display:flex;margin:20px;font-size:20px;justify-content:center;"}:undefined);// implement a carousel AROUND the TopSection
var _ref8= true?{name:"192v0na-TopSection",styles:"height:106px;display:flex;justify-content:space-around;label:TopSection;"}:undefined;var styled_TopSection=function TopSection(props){return Object(core_browser_esm["c" /* jsx */])("div",{css:_ref8},props.children);};var _ref9= true?{name:"1q0494n-ViewMore",styles:"position:relative;label:ViewMore;"}:undefined;var styled_ViewMore=function ViewMore(props){return Object(core_browser_esm["c" /* jsx */])("div",{css:_ref9},Object(core_browser_esm["c" /* jsx */])(common_LinkButton_LinkButton,{position:"absolute",right:"1em",top:"4px",onClick:function onClick(e){props.onClick(e);}},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"educationCenter.viewMorePlaylists"})));};var _ref10= true?{name:"19tjdhz-Background",styles:"width:140px;height:345px;overflow:hidden;position:absolute;label:Background;"}:undefined;var _ref11= true?{name:"1tda5ug-Background",styles:"position:absolute;bottom:34px;right:0;width:40px;height:74px;overflow:hidden;label:Background;"}:undefined;var styled_Background=function Background(props){return Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("width:1248px;min-height:347px;background-color:",themes["d" /* themeColors */].backgroundLightBlue,";position:relative;height:calc(100% - 267px);label:Background;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])("div",{css:_ref10},Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("border-radius:50%;width:345px;height:345px;margin-left:-205px;background-color:",themes["d" /* themeColors */].backgroundDarkBlue,";label:Background;"+( true?"":undefined))})),Object(core_browser_esm["c" /* jsx */])("div",{css:_ref11},Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("border-radius:50%;width:74px;height:74px;margin-right:-37px;background-color:",themes["d" /* themeColors */].backgroundDarkBlue,";label:Background;"+( true?"":undefined))})),props.children);};var styled_BottomHalf=function BottomHalf(props){return Object(core_browser_esm["c" /* jsx */])(styled_Background,null,Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("display:flex;padding:0 72px 0;position:relative;justify-content:",props.children.length>1?'space-between':'center',";height:100%;&>div{max-width:533px;height:100%;>div:nth-of-type(1){padding:11px 0;}>div:nth-of-type(2){padding:30px 0;height:calc(100% - 78px);}}label:BottomHalf;"+( true?"":undefined))},props.children));};
// EXTERNAL MODULE: ./src/js/components/VideoThumbnail/styled.js + 1 modules
var VideoThumbnail_styled = __webpack_require__(206);

// EXTERNAL MODULE: ./node_modules/react-player/lib/ReactPlayer.js
var ReactPlayer = __webpack_require__(265);
var ReactPlayer_default = /*#__PURE__*/__webpack_require__.n(ReactPlayer);

// EXTERNAL MODULE: ./src/js/components/VideoPlayer/styled.js
var VideoPlayer_styled = __webpack_require__(291);

// CONCATENATED MODULE: ./src/js/components/VideoPlayer/VideoPlayer.js
var _dec,_class;var VideoPlayer_VideoPlayer=(_dec=Object(index_module["b" /* inject */])('educationStore'),_dec(_class=Object(index_module["c" /* observer */])(_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(VideoPlayer,_Component);function VideoPlayer(props){var _this;Object(classCallCheck["a" /* default */])(this,VideoPlayer);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(VideoPlayer).call(this,props));_this.saveWatchInfo=_this.saveWatchInfo.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));_this.onProgress=_this.onProgress.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));_this.onCancel=_this.onCancel.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));_this.onCancelNext=_this.onCancelNext.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));_this.state={played:0,playedSeconds:0};return _this;}Object(createClass["a" /* default */])(VideoPlayer,[{key:"onCancelNext",value:function onCancelNext(){if(this.nextVideoTimer){clearTimeout(this.nextVideoTimer);this.props.educationStore.nextVideoStopLoading();}}},{key:"onProgress",value:function onProgress(_ref){var played=_ref.played,playedSeconds=_ref.playedSeconds;var educationStore=this.props.educationStore;this.setState({played:played,playedSeconds:playedSeconds});if(played>=0.9){// marks video as watched
// store function returns if video is already watched
this.saveWatchInfo();}if(played===1){educationStore.nextVideoStartLoading();this.nextVideoTimer=setTimeout(function(){educationStore.nextVideoStopLoading();educationStore.currentVideo.playNext();},educationStore.countdown*1000);}}},{key:"onCancel",value:function onCancel(){this.saveWatchInfo();this.props.onCancel();}},{key:"saveWatchInfo",value:function saveWatchInfo(){var educationStore=this.props.educationStore;var _this$state=this.state,played=_this$state.played,playedSeconds=_this$state.playedSeconds;educationStore.currentVideo.saveWatchInfo(played,playedSeconds);}},{key:"render",value:function render(){var educationStore=this.props.educationStore;// const {url, title, description, watched} = educationStore.currentVideo;
var currentVideo=educationStore.currentVideo,nextVideoLoading=educationStore.nextVideoLoading;return Object(core_browser_esm["c" /* jsx */])(VideoPlayer_styled["b" /* VideoModal */],{onCancel:this.onCancel,visible:true,width:0,centered:true,footer:null},Object(core_browser_esm["c" /* jsx */])(ReactPlayer_default.a,{url:currentVideo.url,onProgress:this.onProgress,width:800,height:450,playing:true}),nextVideoLoading&&Object(core_browser_esm["c" /* jsx */])(VideoPlayer_styled["a" /* CountDown */],{message:"Next Video will automatically start",width:800,height:450,animationTime:"".concat(educationStore.countdown,"s"),onCancelNext:this.onCancelNext}));}}]);return VideoPlayer;}(react["Component"]))||_class)||_class);/* harmony default export */ var components_VideoPlayer_VideoPlayer = (VideoPlayer_VideoPlayer);
// EXTERNAL MODULE: ./src/js/components/common/TmModal/index.js
var TmModal = __webpack_require__(112);

// CONCATENATED MODULE: ./src/js/components/VideoThumbnail/VideoThumbnail.js
var VideoThumbnail_dec,_dec2,VideoThumbnail_class;var VideoThumbnail_VideoThumbnail=(VideoThumbnail_dec=Object(index_module["b" /* inject */])('educationStore'),_dec2=Object(index_module["b" /* inject */])('settingsStore'),VideoThumbnail_dec(VideoThumbnail_class=_dec2(VideoThumbnail_class=Object(index_module["c" /* observer */])(VideoThumbnail_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(VideoThumbnail,_Component);function VideoThumbnail(props){var _this;Object(classCallCheck["a" /* default */])(this,VideoThumbnail);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(VideoThumbnail).call(this,props));_this.handleCancelAlert=function(e){console.log(e);_this.setState({isCourseAlertOpened:false});};_this.openVideoModal=_this.openVideoModal.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));_this.closeVideoModal=_this.closeVideoModal.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));_this.setWatched=_this.setWatched.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));_this.state={isVideoOpened:false,isValidCourseAccess:false,isCourseAlertOpened:false};return _this;}Object(createClass["a" /* default */])(VideoThumbnail,[{key:"setWatched",value:function setWatched(){var _this$props=this.props,identifier=_this$props.identifier,educationStore=_this$props.educationStore;educationStore.videoRefById(identifier).setVideoWatched();}},{key:"openVideoModal",value:function openVideoModal(){var _this2=this;var _this$props2=this.props,educationStore=_this$props2.educationStore,identifier=_this$props2.identifier,settingsStore=_this$props2.settingsStore;var userHasCourse=settingsStore.subscription.userHasCourse;if(userHasCourse){educationStore.validateCourseAccess().then(function(response){var isValidCourseAccess=response.isValid;if(isValidCourseAccess){educationStore.setCurrentVideo(identifier);_this2.setState({isVideoOpened:true,isValidCourseAccess:true});}else{_this2.setState({isValidCourseAccess:false,isCourseAlertOpened:true});}});}else{educationStore.setCurrentVideo(identifier);this.setState({isVideoOpened:true});}}},{key:"closeVideoModal",value:function closeVideoModal(){this.setState({isVideoOpened:false});}},{key:"render",value:function render(){var _this3=this;var _this$state=this.state,isVideoOpened=_this$state.isVideoOpened,isValidCourseAccess=_this$state.isValidCourseAccess,isCourseAlertOpened=_this$state.isCourseAlertOpened;var _this$props3=this.props,educationStore=_this$props3.educationStore,_this$props3$inPlayli=_this$props3.inPlaylist,inPlaylist=_this$props3$inPlayli===void 0?false:_this$props3$inPlayli,identifier=_this$props3.identifier;if(!identifier){null;}var _educationStore$video=educationStore.videoRefById(identifier),url=_educationStore$video.url,title=_educationStore$video.title,description=_educationStore$video.description,watched=_educationStore$video.watched,createdDatetime=_educationStore$video.createdDatetime;var createdDate=new Date(createdDatetime);var now=new Date();var NewDaysInMs=7*24*60*60*1000;var timeDiffInMs=now.getTime()-createdDate.getTime();var isNew=timeDiffInMs<NewDaysInMs;return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(VideoThumbnail_styled["a" /* ThumbnailContainer */],{inPlaylist:inPlaylist},Object(core_browser_esm["c" /* jsx */])(VideoThumbnail_styled["c" /* ThumbnailImage */],{onClick:this.openVideoModal,url:url,inPlaylist:inPlaylist}),Object(core_browser_esm["c" /* jsx */])(VideoThumbnail_styled["e" /* ThumbnailText */],{title:title,description:description,watched:watched,setWatched:this.setWatched,inPlaylist:inPlaylist,isNew:isNew})),isVideoOpened&&isValidCourseAccess?Object(core_browser_esm["c" /* jsx */])(components_VideoPlayer_VideoPlayer,{onCancel:this.closeVideoModal}):null,isCourseAlertOpened?Object(core_browser_esm["c" /* jsx */])(TmModal["a" /* default */],{type:"warning",title:"Invalid access",visible:!isValidCourseAccess,cancelButton:{text:'Close',clickHandler:function clickHandler(){_this3.handleCancelAlert();}}},Object(core_browser_esm["c" /* jsx */])("div",null,"Sorry, We allow to watch the course from maximum 2 devices. ",Object(core_browser_esm["c" /* jsx */])("br",null),"You already connected from 2 different devices and this is the third device. ",Object(core_browser_esm["c" /* jsx */])("br",null),"Please login from one of the other devices you used before")):null);}}]);return VideoThumbnail;}(react["Component"]))||VideoThumbnail_class)||VideoThumbnail_class)||VideoThumbnail_class);/* harmony default export */ var components_VideoThumbnail_VideoThumbnail = (VideoThumbnail_VideoThumbnail);
// CONCATENATED MODULE: ./src/js/components/VideoThumbnail/VideoThumbnailDashboard.js
var VideoThumbnailDashboard_dec,VideoThumbnailDashboard_dec2,VideoThumbnailDashboard_class;var VideoThumbnailDashboard_VideoThumbnailDashboard=(VideoThumbnailDashboard_dec=Object(index_module["b" /* inject */])('educationStore'),VideoThumbnailDashboard_dec2=Object(index_module["b" /* inject */])('settingsStore'),VideoThumbnailDashboard_dec(VideoThumbnailDashboard_class=VideoThumbnailDashboard_dec2(VideoThumbnailDashboard_class=Object(index_module["c" /* observer */])(VideoThumbnailDashboard_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(VideoThumbnailDashboard,_Component);function VideoThumbnailDashboard(props){var _this;Object(classCallCheck["a" /* default */])(this,VideoThumbnailDashboard);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(VideoThumbnailDashboard).call(this,props));_this.handleCancelAlert=function(e){console.log(e);_this.setState({isCourseAlertOpened:false});};_this.openVideoModal=_this.openVideoModal.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));_this.closeVideoModal=_this.closeVideoModal.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));_this.setWatched=_this.setWatched.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));_this.state={isVideoOpened:false,isValidCourseAccess:false,isCourseAlertOpened:false};return _this;}Object(createClass["a" /* default */])(VideoThumbnailDashboard,[{key:"setWatched",value:function setWatched(){var _this$props=this.props,identifier=_this$props.identifier,educationStore=_this$props.educationStore;educationStore.videoRefById(identifier).setVideoWatched();}},{key:"openVideoModal",value:function openVideoModal(){var _this2=this;var _this$props2=this.props,educationStore=_this$props2.educationStore,identifier=_this$props2.identifier,settingsStore=_this$props2.settingsStore;var userHasCourse=settingsStore.subscription.userHasCourse;if(userHasCourse){educationStore.validateCourseAccess().then(function(response){var isValidCourseAccess=response.isValid;if(isValidCourseAccess){educationStore.setCurrentVideo(identifier);_this2.setState({isVideoOpened:true,isValidCourseAccess:true});}else{_this2.setState({isValidCourseAccess:false,isCourseAlertOpened:true});}});}else{educationStore.setCurrentVideo(identifier);this.setState({isVideoOpened:true});}}},{key:"closeVideoModal",value:function closeVideoModal(){this.setState({isVideoOpened:false});}},{key:"render",value:function render(){var _this3=this;var _this$state=this.state,isVideoOpened=_this$state.isVideoOpened,isValidCourseAccess=_this$state.isValidCourseAccess,isCourseAlertOpened=_this$state.isCourseAlertOpened;var _this$props3=this.props,educationStore=_this$props3.educationStore,_this$props3$inPlayli=_this$props3.inPlaylist,inPlaylist=_this$props3$inPlayli===void 0?false:_this$props3$inPlayli,identifier=_this$props3.identifier;if(!identifier){null;}var _educationStore$video=educationStore.videoRefById(identifier),url=_educationStore$video.url;return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(VideoThumbnail_styled["b" /* ThumbnailContainerDashboard */],{inPlaylist:inPlaylist},Object(core_browser_esm["c" /* jsx */])(VideoThumbnail_styled["d" /* ThumbnailImageDashboard */],{onClick:this.openVideoModal,url:url,inPlaylist:inPlaylist,style:{width:'300px',height:'200px'}})),isVideoOpened&&isValidCourseAccess?Object(core_browser_esm["c" /* jsx */])(components_VideoPlayer_VideoPlayer,{onCancel:this.closeVideoModal}):null,isCourseAlertOpened?Object(core_browser_esm["c" /* jsx */])(TmModal["a" /* default */],{type:"warning",title:"Invalid access",visible:!isValidCourseAccess,cancelButton:{text:'Close',clickHandler:function clickHandler(){_this3.handleCancelAlert();}}},Object(core_browser_esm["c" /* jsx */])("div",null,"Sorry, We allow to watch the course from maximum 2 devices. ",Object(core_browser_esm["c" /* jsx */])("br",null),"You already connected from 2 different devices and this is the third device. ",Object(core_browser_esm["c" /* jsx */])("br",null),"Please login from one of the other devices you used before")):null);}}]);return VideoThumbnailDashboard;}(react["Component"]))||VideoThumbnailDashboard_class)||VideoThumbnailDashboard_class)||VideoThumbnailDashboard_class);/* harmony default export */ var VideoThumbnail_VideoThumbnailDashboard = (VideoThumbnailDashboard_VideoThumbnailDashboard);
// CONCATENATED MODULE: ./src/js/components/VideoThumbnail/index.js

// EXTERNAL MODULE: ./node_modules/antd/lib/collapse/style/index.js
var collapse_style = __webpack_require__(408);

// EXTERNAL MODULE: ./node_modules/antd/lib/collapse/index.js
var collapse = __webpack_require__(229);
var collapse_default = /*#__PURE__*/__webpack_require__.n(collapse);

// EXTERNAL MODULE: ./node_modules/antd/lib/tag/style/index.js
var tag_style = __webpack_require__(218);

// EXTERNAL MODULE: ./node_modules/antd/lib/tag/index.js
var tag = __webpack_require__(130);
var tag_default = /*#__PURE__*/__webpack_require__.n(tag);

// CONCATENATED MODULE: ./src/js/components/EducationSection/styled.js
var SectionContainer=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1373ea50",label:"SectionContainer"})("min-height:187px;height:100%;overflow-y:scroll;div.ant-collapse{border:0;div.ant-collapse-item{border:0;margin-bottom:14px;div.ant-collapse-header{padding-top:0;padding-bottom:0;line-height:1.23;height:19px;font-size:13px;color:",themes["d" /* themeColors */].dirtyBlue,";display:inline-block;>i{line-height:1.23;color:",themes["d" /* themeColors */].blue,";}div.ant-collapse-extra{line-height:2;cursor:auto;margin-left:5px;font-size:9.5px;height:19px;color:#52c41a;background:#f6ffed;border-color:#b7eb8f;border-radius:10px;border:1px solid #d9d9d9;padding:0 7px;}}}div.ant-collapse-item:last-child{margin-bottom:0;}}"+( true?"":undefined));
// CONCATENATED MODULE: ./src/js/components/EducationSection/EducationSection.js
var EducationSection_dec,EducationSection_dec2,EducationSection_class;var EducationSection_ref= true?{name:"1k6f2y8-EducationSection",styles:"line-height:2;cursor:auto;margin-left:5px;font-size:9.5px;height:19px;label:EducationSection;"}:undefined;var EducationSection_EducationSection=(EducationSection_dec=Object(index_module["b" /* inject */])('educationStore'),EducationSection_dec2=Object(index_module["b" /* inject */])('onboardingStore'),EducationSection_dec(EducationSection_class=EducationSection_dec2(EducationSection_class=Object(index_module["c" /* observer */])(EducationSection_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(EducationSection,_Component);function EducationSection(props){var _this;Object(classCallCheck["a" /* default */])(this,EducationSection);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(EducationSection).call(this,props));_this.openPlaylist=_this.openPlaylist.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));return _this;}Object(createClass["a" /* default */])(EducationSection,[{key:"componentDidMount",value:function componentDidMount(){var _this$props$education=this.props.educationStore,currentPlaylistRef=_this$props$education.currentPlaylistRef,showCurrentPlaylist=_this$props$education.showCurrentPlaylist;var _this$props$onboardin=this.props.onboardingStore,setOpenCourseFromOnboarding=_this$props$onboardin.setOpenCourseFromOnboarding,openCourseFromOnboarding=_this$props$onboardin.openCourseFromOnboarding;var _this$props=this.props,sectionIndex=_this$props.sectionIndex,educationStore=_this$props.educationStore;var searchInput=educationStore.searchInput;var _educationStore$secti=educationStore.sections[sectionIndex],playlists=_educationStore$secti.playlists,filteredPlaylists=_educationStore$secti.filteredPlaylists;var usedPlaylists=searchInput?filteredPlaylists:playlists;if(openCourseFromOnboarding){this.openPlaylist([usedPlaylists[0].id]);setOpenCourseFromOnboarding(false);}if(showCurrentPlaylist){this.openPlaylist([currentPlaylistRef.id]);}}},{key:"openPlaylist",value:function openPlaylist(keys){var _this$props2=this.props,educationStore=_this$props2.educationStore,sectionIndex=_this$props2.sectionIndex;educationStore.sections[sectionIndex].setActivePlaylists(keys);// the change is not detectable so we need to forceUpdate
this.forceUpdate();keys.forEach(function(key){if(key){educationStore.sections[sectionIndex].loadPlaylist(key);}});}},{key:"render",value:function render(){var _this$props3=this.props,sectionIndex=_this$props3.sectionIndex,educationStore=_this$props3.educationStore;var searchInput=educationStore.searchInput;var _educationStore$secti2=educationStore.sections[sectionIndex],playlists=_educationStore$secti2.playlists,activePlaylists=_educationStore$secti2.activePlaylists,filteredPlaylists=_educationStore$secti2.filteredPlaylists;var usedPlaylists=searchInput?filteredPlaylists:playlists;return Object(core_browser_esm["c" /* jsx */])(SectionContainer,{className:"scroll-1"},Object(core_browser_esm["c" /* jsx */])(collapse_default.a,{onChange:this.openPlaylist,activeKey:activePlaylists},usedPlaylists.map(function(playlist){var _playlist$subtitle;return Object(core_browser_esm["c" /* jsx */])(collapse_default.a.Panel,{header:Object(core_browser_esm["c" /* jsx */])("div",null,playlist.title,((_playlist$subtitle=playlist.subtitle)===null||_playlist$subtitle===void 0?void 0:_playlist$subtitle.length)>0&&Object(core_browser_esm["c" /* jsx */])(tag_default.a,{color:"green",css:EducationSection_ref},"NEW")),key:"".concat(playlist.id),extra:Object(core_browser_esm["c" /* jsx */])("p",null,playlist.subtitle)},searchInput&&playlist.filteredVideos.length!==0?playlist.filteredVideos.map(function(video){return Object(core_browser_esm["c" /* jsx */])(components_VideoThumbnail_VideoThumbnail,{key:video.videoId,identifier:video.id,inPlaylist:true});}):'',!searchInput&&playlist.videos.length!==0?playlist.videos.map(function(video){return Object(core_browser_esm["c" /* jsx */])(components_VideoThumbnail_VideoThumbnail,{key:video.videoId,identifier:video.id,inPlaylist:true});}):'');})));}}]);return EducationSection;}(react["Component"]))||EducationSection_class)||EducationSection_class)||EducationSection_class);/* harmony default export */ var components_EducationSection_EducationSection = (EducationSection_EducationSection);
// CONCATENATED MODULE: ./src/js/components/EducationSection/index.js

// EXTERNAL MODULE: ./src/js/components/common/IconPng/index.js
var IconPng = __webpack_require__(140);

// EXTERNAL MODULE: ./node_modules/antd/lib/modal/style/index.js
var modal_style = __webpack_require__(88);

// EXTERNAL MODULE: ./node_modules/antd/lib/modal/index.js
var modal = __webpack_require__(55);
var modal_default = /*#__PURE__*/__webpack_require__.n(modal);

// CONCATENATED MODULE: ./src/js/components/OnboardingScreens/PromotionPopUp/styled.js
var CustomModal=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])(modal_default.a,{target:"eev4yd0",label:"CustomModal"})( true?{name:"dxpn0h",styles:"transition:width 0.5s;padding:0;& .ant-modal-body{padding:0;border-radius:0;height:100%;}& .ant-modal-content{box-shadow:none;background-color:transparent;}& .ant-modal-close-x{color:red;}"}:undefined);
// CONCATENATED MODULE: ./src/js/components/OnboardingScreens/PromotionPopUp/PromotionPopUp.js
var PromotionPopUp_dec,PromotionPopUp_class;var PromotionPopUp_PromotionPopUp=(PromotionPopUp_dec=Object(index_module["b" /* inject */])('onboardingStore'),PromotionPopUp_dec(PromotionPopUp_class=Object(index_es["d" /* injectIntl */])(PromotionPopUp_class=Object(index_module["c" /* observer */])(PromotionPopUp_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(PromotionPopUp,_Component);function PromotionPopUp(props){var _this;Object(classCallCheck["a" /* default */])(this,PromotionPopUp);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(PromotionPopUp).call(this,props));_this.state={};return _this;}Object(createClass["a" /* default */])(PromotionPopUp,[{key:"render",value:function render(){var _this$props$onboardin=this.props.onboardingStore,setPromotionModalOpen=_this$props$onboardin.setPromotionModalOpen,promotionModalOpen=_this$props$onboardin.promotionModalOpen,toggleWizard=_this$props$onboardin.toggleWizard,setWizardStep=_this$props$onboardin.setWizardStep;return Object(core_browser_esm["c" /* jsx */])(CustomModal,{mask:false,visible:promotionModalOpen,footer:null,onCancel:function onCancel(){return setPromotionModalOpen(false);},width:610},Object(core_browser_esm["c" /* jsx */])(IconPng["a" /* default */],{boxShadow:true,type:"banner_promotion_console",width:688,height:680,onClick:function onClick(){setWizardStep(1);setPromotionModalOpen(false);toggleWizard();}}));}}]);return PromotionPopUp;}(react["Component"]))||PromotionPopUp_class)||PromotionPopUp_class)||PromotionPopUp_class);/* harmony default export */ var OnboardingScreens_PromotionPopUp_PromotionPopUp = (PromotionPopUp_PromotionPopUp);
// CONCATENATED MODULE: ./src/js/components/OnboardingScreens/PromotionPopUp/index.js

// CONCATENATED MODULE: ./src/js/pages/EducationCenter/EducationCenter.js
var EducationCenter_dec,EducationCenter_dec2,_dec3,EducationCenter_class;var EducationCenter_EducationCenter=(EducationCenter_dec=Object(index_module["b" /* inject */])('routingStore'),EducationCenter_dec2=Object(index_module["b" /* inject */])('educationStore'),_dec3=Object(index_module["b" /* inject */])('settingsStore'),EducationCenter_dec(EducationCenter_class=EducationCenter_dec2(EducationCenter_class=_dec3(EducationCenter_class=Object(index_es["d" /* injectIntl */])(EducationCenter_class=Object(index_module["c" /* observer */])(EducationCenter_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(EducationCenter,_Component);function EducationCenter(props){var _this;Object(classCallCheck["a" /* default */])(this,EducationCenter);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(EducationCenter).call(this,props));_this.onCarouselChange=_this.onCarouselChange.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));_this.state={currentRecommendedPage:0,historyListener:null};return _this;}Object(createClass["a" /* default */])(EducationCenter,[{key:"componentDidMount",value:function componentDidMount(){var _this$props=this.props,isCurrentPath=_this$props.routingStore.isCurrentPath,_this$props$education=_this$props.educationStore,showCurrentPlaylist=_this$props$education.showCurrentPlaylist,setShowCurrentPlaylist=_this$props$education.setShowCurrentPlaylist,initStore=_this$props$education.initStore;initStore();this.carousel=react_default.a.createRef();if(isCurrentPath('/learning/currentPlaylist')){if(!showCurrentPlaylist){setShowCurrentPlaylist(true);}}else if(showCurrentPlaylist){setShowCurrentPlaylist(false);}this.initializeLocationListener();}},{key:"componentWillUnmount",value:function componentWillUnmount(){var historyListener=this.state.historyListener;if(historyListener){historyListener();}}},{key:"onCarouselChange",value:function onCarouselChange(currentRecommendedPage){this.setState({currentRecommendedPage:currentRecommendedPage});}},{key:"initializeLocationListener",value:function initializeLocationListener(){var _this$props2=this.props,browserHistory=_this$props2.routingStore.browserHistory,setShowCurrentPlaylist=_this$props2.educationStore.setShowCurrentPlaylist;this.setState({historyListener:browserHistory.listen(function(location){if(location.pathname==='/learning/currentPlaylist'){setShowCurrentPlaylist(true);// this.forceUpdate();
}else if(location.pathname==='/learning'){setShowCurrentPlaylist(false);}})});}},{key:"render",value:function render(){var _this$props3=this.props,intl=_this$props3.intl,educationStore=_this$props3.educationStore,settingsStore=_this$props3.settingsStore;var searchInput=educationStore.searchInput,initialized=educationStore.initialized,updateSearchInput=educationStore.updateSearchInput,showCurrentPlaylist=educationStore.showCurrentPlaylist,currentPlaylistRef=educationStore.currentPlaylistRef;var formatMessage=intl.formatMessage;var _settingsStore$subscr=settingsStore.subscription,currentPlan=_settingsStore$subscr.currentPlan,userHasCourse=_settingsStore$subscr.userHasCourse;if(!initialized||showCurrentPlaylist&&currentPlaylistRef.id===''){return Object(core_browser_esm["c" /* jsx */])(react_document_title_default.a,{title:userHasCourse?"".concat(constants["d" /* title */]," | Online Course"):"".concat(constants["d" /* title */]," | Learning Center")},Object(core_browser_esm["c" /* jsx */])(styled_Container,null,Object(core_browser_esm["c" /* jsx */])("div",{className:"loader"})));}var recommendedVideos=educationStore.recommendedVideos.slice();var currentRecommendedPage=this.state.currentRecommendedPage;var recommendedPages=[];while(recommendedVideos.length){recommendedPages.push(recommendedVideos.splice(0,3));}var usedSections=searchInput?educationStore.filteredSections:educationStore.sections;return Object(core_browser_esm["c" /* jsx */])("div",{hidden:!currentPlan&&!userHasCourse},Object(core_browser_esm["c" /* jsx */])(react_document_title_default.a,{title:userHasCourse?"".concat(constants["d" /* title */]," | Online Course"):"".concat(constants["d" /* title */]," | Learning Center")},Object(core_browser_esm["c" /* jsx */])(styled_Container,{searchHandler:updateSearchInput,showCurrentPlaylist:showCurrentPlaylist},!userHasCourse&&Object(core_browser_esm["c" /* jsx */])(TopHalf,null,Object(core_browser_esm["c" /* jsx */])(TitledContainer["a" /* TitledContainer */],{titleFontSize:"15px",title:formatMessage({id:'educationCenter.recommended'})},Object(core_browser_esm["c" /* jsx */])(styled_VideosCarousel,{onCarouselChange:this.onCarouselChange,carouselRef:this.carousel,showLeft:currentRecommendedPage>0,showRight:currentRecommendedPage<recommendedPages.length-1},recommendedPages.map(function(recommendedVideosGroup){return Object(core_browser_esm["c" /* jsx */])(styled_TopSection,{key:"parentOf".concat(recommendedVideosGroup[0].videoId)},recommendedVideosGroup.map(function(video){return Object(core_browser_esm["c" /* jsx */])(components_VideoThumbnail_VideoThumbnail,{key:video.videoId,identifier:video.id});}));})))),Object(core_browser_esm["c" /* jsx */])(styled_BottomHalf,null,usedSections.map(function(value,index){return Object(core_browser_esm["c" /* jsx */])(EducationCenterTitledContainer_EducationCenterTitledContainer,{titleFontSize:"15px",title:value.title,key:value.id,availableLanguages:value.availableLanguages,language:value.language,setLanguage:value.setLanguage,fetchSection:value.fetchSection,type:value.type},Object(core_browser_esm["c" /* jsx */])(components_EducationSection_EducationSection,{sectionIndex:index}));})))),Object(core_browser_esm["c" /* jsx */])(OnboardingScreens_PromotionPopUp_PromotionPopUp,null));}}]);return EducationCenter;}(react["Component"]))||EducationCenter_class)||EducationCenter_class)||EducationCenter_class)||EducationCenter_class)||EducationCenter_class);/* harmony default export */ var pages_EducationCenter_EducationCenter = (EducationCenter_EducationCenter);
// CONCATENATED MODULE: ./src/js/pages/EducationCenter/index.js
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "default", function() { return /* reexport */ pages_TripleCloud_TripleCloud; });

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
var classCallCheck = __webpack_require__(9);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js
var createClass = __webpack_require__(10);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__(11);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
var getPrototypeOf = __webpack_require__(12);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
var inherits = __webpack_require__(13);

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-document-title/index.js
var react_document_title = __webpack_require__(98);
var react_document_title_default = /*#__PURE__*/__webpack_require__.n(react_document_title);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__(7);

// EXTERNAL MODULE: ./src/js/constants/index.js + 1 modules
var constants = __webpack_require__(15);

// EXTERNAL MODULE: ./src/js/components/common/styled.js
var styled = __webpack_require__(35);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread.js
var objectSpread = __webpack_require__(27);

// EXTERNAL MODULE: ./node_modules/antd/lib/modal/style/index.js
var style = __webpack_require__(88);

// EXTERNAL MODULE: ./node_modules/antd/lib/modal/index.js
var modal = __webpack_require__(55);
var modal_default = /*#__PURE__*/__webpack_require__.n(modal);

// EXTERNAL MODULE: ./node_modules/react-intl/lib/index.es.js
var index_es = __webpack_require__(4);

// EXTERNAL MODULE: ./node_modules/antd/lib/checkbox/style/index.js
var checkbox_style = __webpack_require__(134);

// EXTERNAL MODULE: ./node_modules/antd/lib/checkbox/index.js
var lib_checkbox = __webpack_require__(61);
var checkbox_default = /*#__PURE__*/__webpack_require__.n(lib_checkbox);

// EXTERNAL MODULE: ./node_modules/antd/lib/select/style/index.js
var select_style = __webpack_require__(89);

// EXTERNAL MODULE: ./node_modules/antd/lib/select/index.js
var lib_select = __webpack_require__(36);
var select_default = /*#__PURE__*/__webpack_require__.n(lib_select);

// EXTERNAL MODULE: ./node_modules/moment/moment.js
var moment = __webpack_require__(23);
var moment_default = /*#__PURE__*/__webpack_require__.n(moment);

// EXTERNAL MODULE: ./node_modules/antd/lib/button/style/index.js
var button_style = __webpack_require__(66);

// EXTERNAL MODULE: ./node_modules/antd/lib/button/index.js
var lib_button = __webpack_require__(39);
var button_default = /*#__PURE__*/__webpack_require__.n(lib_button);

// EXTERNAL MODULE: ./src/js/utils/parsers.js
var parsers = __webpack_require__(93);

// EXTERNAL MODULE: ./src/js/components/common/IconSvg/index.js
var IconSvg = __webpack_require__(14);

// EXTERNAL MODULE: ./src/js/constants/themes.js
var themes = __webpack_require__(18);

// CONCATENATED MODULE: ./src/js/components/TripleCloud/styled.js
var iconByStatus={active:Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"v-green",size:15}),pending:Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"clock",size:15}),rebooting:Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"reconnect",size:15})};var styled_VMGlobalAction=function VMGlobalAction(_ref3){var disabled=_ref3.disabled,onClick=_ref3.onClick,msgId=_ref3.msgId,iconType=_ref3.iconType;return Object(core_browser_esm["c" /* jsx */])(button_default.a,{type:"secondary",css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("border:0;",disabled&&"\n        &,&:hover{\n          color: ".concat(themes["d" /* themeColors */].grey,";\n          cursor: disabled;\n        }\n      "),"label:VMGlobalAction;"+( true?"":undefined)),onClick:disabled?null:onClick},!!iconType&&Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:iconType,size:20,marginRight:"5px",color:disabled?themes["d" /* themeColors */].grey:themes["c" /* buttonNormal */]}),!!msgId&&Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:msgId}));};var styled_ref= true?{name:"nh9g0z-VMStatus",styles:"vertical-align:bottom;margin-left:5px;line-height:1;label:VMStatus;"}:undefined;var styled_VMStatus=function VMStatus(_ref4){var status=_ref4.status;return Object(core_browser_esm["c" /* jsx */])("span",null,iconByStatus[status],Object(core_browser_esm["c" /* jsx */])("span",{css:styled_ref},Object(parsers["a" /* capitalizeFirst */])(status)));};var styled_ref2= true?{name:"1gcwy8u-CellActionTitle",styles:"cursor:pointer;label:CellActionTitle;"}:undefined;var styled_CellActionTitle=function CellActionTitle(_ref5){var msgId=_ref5.msgId,iconType=_ref5.iconType;return Object(core_browser_esm["c" /* jsx */])("div",{css:styled_ref2},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:iconType,size:15,marginRight:"5px"}),Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:msgId}));};
// EXTERNAL MODULE: ./src/js/components/common/FlexStyle/index.js + 1 modules
var FlexStyle = __webpack_require__(45);

// EXTERNAL MODULE: ./src/js/components/common/Dropdown/index.js + 1 modules
var Dropdown = __webpack_require__(47);

// CONCATENATED MODULE: ./src/js/components/TripleCloud/cellActions.js
var menuActions=["rebootMachine","editMachine","editFirewall","delete"];var actionsIndexes={"rebootMachine":0,"editMachine":1,"editFirewall":2,"delete":3};
// CONCATENATED MODULE: ./src/js/components/TripleCloud/VMCheckAll.js
var _dec,_class;var VMCheckAll_VMCheckAll=(_dec=Object(index_module["b" /* inject */])('vmStore'),_dec(_class=Object(index_module["c" /* observer */])(_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(VMCheckAll,_Component);function VMCheckAll(){Object(classCallCheck["a" /* default */])(this,VMCheckAll);return Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(VMCheckAll).apply(this,arguments));}Object(createClass["a" /* default */])(VMCheckAll,[{key:"render",value:function render(){var _this$props$vmStore=this.props.vmStore,allSelected=_this$props$vmStore.allSelected,selectAll=_this$props$vmStore.selectAll;return Object(core_browser_esm["c" /* jsx */])(checkbox_default.a,{checked:allSelected,onChange:function onChange(_ref){var checked=_ref.target.checked;selectAll(checked);}});}}]);return VMCheckAll;}(react["Component"]))||_class)||_class);/* harmony default export */ var TripleCloud_VMCheckAll = (VMCheckAll_VMCheckAll);
// CONCATENATED MODULE: ./src/js/components/TripleCloud/vmcolumns.js
var Option=select_default.a.Option;var menuActionIcons=['reload','desktop','cluster','delete'];var VMCheckbox=Object(index_module["b" /* inject */])('vmStore')(Object(index_module["c" /* observer */])(function(_ref5){var machinesById=_ref5.vmStore.machinesById,id=_ref5.id;return machinesById[id].machineRef.isProcessing?null:Object(core_browser_esm["c" /* jsx */])(checkbox_default.a,{checked:machinesById[id].machineRef.selected,onChange:function onChange(_ref6){var checked=_ref6.target.checked;machinesById[id].machineRef.setSelected(checked);}});}));var vmcolumns_ref= true?{name:"ypqs21-columns",styles:"display:flex;justify-content:space-between;align-items:center;label:columns;"}:undefined;var vmcolumns_ref2= true?{name:"1m4wk8t-columns",styles:"overflow:hidden;text-overflow:ellipsis;label:columns;"}:undefined;var vmcolumns_ref3= true?{name:"117drwb-columns",styles:"justify-content:flex-start;label:columns;"}:undefined;var vmcolumns_ref4= true?{name:"117drwb-columns",styles:"justify-content:flex-start;label:columns;"}:undefined;var columns=[{key:'selected',name:'',width:50,formatter:function formatter(_ref7){var id=_ref7.row.id;return Object(core_browser_esm["c" /* jsx */])(VMCheckbox,{id:id});},headerRenderer:Object(core_browser_esm["c" /* jsx */])(TripleCloud_VMCheckAll,null)},{key:'vnc_address',name:'Connect',width:70,formatter:function formatter(_ref8){var value=_ref8.value,_ref8$row=_ref8.row,isActive=_ref8$row.isActive,worksOnCurrentIP=_ref8$row.worksOnCurrentIP,currentPlanId=_ref8$row.currentPlanId;return value&&isActive&&worksOnCurrentIP&&!!currentPlanId?Object(core_browser_esm["c" /* jsx */])("a",{rel:"noopener noreferrer",target:"_blank",href:value},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"link-connected",size:20})):Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"link-disconnected",size:20});}},{key:'name',name:'Virtual Machine',width:200,formatter:function formatter(_ref9){var value=_ref9.value,_ref9$row=_ref9.row,id=_ref9$row.id,callCellAction=_ref9$row.callCellAction,isProcessing=_ref9$row.isProcessing;return Object(core_browser_esm["c" /* jsx */])("div",{css:vmcolumns_ref},Object(core_browser_esm["c" /* jsx */])("span",{css:vmcolumns_ref2},value),!isProcessing&&Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{dropdownMatchSelectWidth:false,value:"",arrow:true},menuActions.map(function(act,idx){return Object(core_browser_esm["c" /* jsx */])(Option,{key:act,onClick:function onClick(){return callCellAction(id,idx,[actionsIndexes.delete,actionsIndexes.rebootMachine].indexOf(idx)!==-1?value:null);}},Object(core_browser_esm["c" /* jsx */])(styled_CellActionTitle,{msgId:"triplecloud.".concat(act),iconType:menuActionIcons[idx]}));})));}},{key:'status',name:'Status',width:130,formatter:function formatter(_ref10){var value=_ref10.value,_ref10$row=_ref10.row,worksOnCurrentIP=_ref10$row.worksOnCurrentIP,isPending=_ref10$row.isPending;return Object(core_browser_esm["c" /* jsx */])(FlexStyle["e" /* RowFlex */],{css:vmcolumns_ref3},Object(core_browser_esm["c" /* jsx */])(styled_VMStatus,{status:isPending||worksOnCurrentIP&&!isPending?value:'disconnected'}));}},{key:'details',name:'Details',formatter:function formatter(_ref11){var value=_ref11.value,_ref11$row=_ref11.row,worksOnCurrentIP=_ref11$row.worksOnCurrentIP,isPending=_ref11$row.isPending;return Object(core_browser_esm["c" /* jsx */])(FlexStyle["e" /* RowFlex */],{css:vmcolumns_ref4},Object(core_browser_esm["c" /* jsx */])("div",null,isPending||worksOnCurrentIP&&!isPending?value:Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"triplecloud.notOnWhitelist"})));}},{key:'formattedLocation',name:'Location',width:150,formatter:function formatter(_ref12){var value=_ref12.value;return Object(core_browser_esm["c" /* jsx */])("div",null,value);}},{key:'created_at',name:'Date created',width:150,formatter:function formatter(_ref13){var value=_ref13.value;return Object(core_browser_esm["c" /* jsx */])("div",null,moment_default.a.utc(value).local().format('MMM-DD-YYYY HH:mm'));}},{key:'updated_at',name:'Date modified',width:150,formatter:function formatter(_ref14){var value=_ref14.value;return Object(core_browser_esm["c" /* jsx */])("div",null,moment_default.a.utc(value).local().format('MMM-DD-YYYY HH:mm'));}}];/* harmony default export */ var vmcolumns = (columns);
// EXTERNAL MODULE: ./src/js/components/common/Table/index.js + 1 modules
var Table = __webpack_require__(219);

// EXTERNAL MODULE: ./node_modules/antd/lib/input/style/index.js
var input_style = __webpack_require__(102);

// EXTERNAL MODULE: ./node_modules/antd/lib/input/index.js
var input = __webpack_require__(52);
var input_default = /*#__PURE__*/__webpack_require__.n(input);

// CONCATENATED MODULE: ./src/js/components/common/InputValidation/InputWarning.js
var InputWarning_InputWarning=function InputWarning(_ref){var condition=_ref.condition,errorMessage=_ref.errorMessage;return Object(core_browser_esm["c" /* jsx */])("h4",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("position:absolute;bottom:0;color:",constants["a" /* colors */].pinkDark,";label:InputWarning;"+( true?"":undefined))},condition&&"* ".concat(errorMessage));};/* harmony default export */ var InputValidation_InputWarning = (InputWarning_InputWarning);
// CONCATENATED MODULE: ./src/js/components/common/InputValidation/InputWarningWrapper.js
var InputWarningWrapper_ref= true?{name:"16wu58k-InputWarningWrapper",styles:"height:80px;position:relative;label:InputWarningWrapper;"}:undefined;var InputWarningWrapper_InputWarningWrapper=function InputWarningWrapper(_ref2){var children=_ref2.children,condition=_ref2.condition,errorMessage=_ref2.errorMessage;return Object(core_browser_esm["c" /* jsx */])("div",{css:InputWarningWrapper_ref},children,Object(core_browser_esm["c" /* jsx */])(InputValidation_InputWarning,{condition:condition,errorMessage:errorMessage}));};/* harmony default export */ var InputValidation_InputWarningWrapper = (InputWarningWrapper_InputWarningWrapper);
// CONCATENATED MODULE: ./src/js/components/common/InputValidation/index.js

// CONCATENATED MODULE: ./src/js/components/TripleCloud/EditVirtualMachine.js
var EditVirtualMachine_class;var EditVirtualMachine_EditVirtualMachine=Object(index_es["d" /* injectIntl */])(EditVirtualMachine_class=Object(index_module["c" /* observer */])(EditVirtualMachine_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(EditVirtualMachine,_Component);function EditVirtualMachine(){var _getPrototypeOf2;var _this;Object(classCallCheck["a" /* default */])(this,EditVirtualMachine);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=Object(possibleConstructorReturn["a" /* default */])(this,(_getPrototypeOf2=Object(getPrototypeOf["a" /* default */])(EditVirtualMachine)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.onEnter=function(e){var onEnter=_this.props.onEnter;if(e.keyCode===13){onEnter();}};return _this;}Object(createClass["a" /* default */])(EditVirtualMachine,[{key:"componentDidMount",value:function componentDidMount(){document.addEventListener('keydown',this.onEnter);}},{key:"componentWillUnmount",value:function componentWillUnmount(){document.removeEventListener('keydown',this.onEnter);}},{key:"render",value:function render(){var _this$props=this.props,formatMessage=_this$props.intl.formatMessage,machineEditParams=_this$props.machineEditParams,errorsVisible=_this$props.errorsVisible;return machineEditParams?Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(InputValidation_InputWarningWrapper,{key:"name",condition:!machineEditParams.name.trim()&&errorsVisible,errorMessage:formatMessage({id:'triplecloud.nameRequired'})},Object(core_browser_esm["c" /* jsx */])("h3",null,formatMessage({id:'common.name'})),Object(core_browser_esm["c" /* jsx */])(input_default.a,{value:machineEditParams.name,onChange:function onChange(_ref){var value=_ref.target.value;machineEditParams.setName(value);}})),Object(core_browser_esm["c" /* jsx */])(InputValidation_InputWarningWrapper,{key:"details",condition:false,errorMessage:""},Object(core_browser_esm["c" /* jsx */])("h3",null,formatMessage({id:'triplecloud.details'})),Object(core_browser_esm["c" /* jsx */])(input_default.a,{value:machineEditParams.details,onChange:function onChange(_ref2){var value=_ref2.target.value;machineEditParams.setDetails(value);}}))):null;}}]);return EditVirtualMachine;}(react["Component"]))||EditVirtualMachine_class)||EditVirtualMachine_class;/* harmony default export */ var TripleCloud_EditVirtualMachine = (EditVirtualMachine_EditVirtualMachine);
// EXTERNAL MODULE: ./src/js/constants/classes/index.js
var classes = __webpack_require__(32);

// CONCATENATED MODULE: ./src/js/components/TripleCloud/CreateFirewall.js
var CreateFirewall_class;var CreateFirewall_CreateFirewall=Object(index_es["d" /* injectIntl */])(CreateFirewall_class=Object(index_module["c" /* observer */])(CreateFirewall_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(CreateFirewall,_Component);function CreateFirewall(){var _getPrototypeOf2;var _this;Object(classCallCheck["a" /* default */])(this,CreateFirewall);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=Object(possibleConstructorReturn["a" /* default */])(this,(_getPrototypeOf2=Object(getPrototypeOf["a" /* default */])(CreateFirewall)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.onEnter=function(e){var onEnter=_this.props.onEnter;if(e.keyCode===13){onEnter();}};return _this;}Object(createClass["a" /* default */])(CreateFirewall,[{key:"componentDidMount",value:function componentDidMount(){document.addEventListener('keydown',this.onEnter);}},{key:"componentWillUnmount",value:function componentWillUnmount(){document.removeEventListener('keydown',this.onEnter);}},{key:"render",value:function render(){var _this$props=this.props,formatMessage=_this$props.intl.formatMessage,_this$props$firewallC=_this$props.firewallCreateParams,ip_address=_this$props$firewallC.ip_address,setIP=_this$props$firewallC.setIP,details=_this$props$firewallC.details,setDetails=_this$props$firewallC.setDetails,createParamsValid=_this$props$firewallC.createParamsValid,errorsVisible=_this$props.errorsVisible;return Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(InputValidation_InputWarningWrapper,{key:"ip_address",condition:!createParamsValid&&errorsVisible,errorMessage:formatMessage({id:'triplecloud.ipRequired'})},Object(core_browser_esm["c" /* jsx */])("h3",null,formatMessage({id:'triplecloud.ip'})),Object(core_browser_esm["c" /* jsx */])(input_default.a,{value:ip_address,onChange:function onChange(_ref){var value=_ref.target.value;setIP(value);}})),Object(core_browser_esm["c" /* jsx */])(InputValidation_InputWarningWrapper,{key:"details",condition:false,errorMessage:""},Object(core_browser_esm["c" /* jsx */])("h3",null,formatMessage({id:'triplecloud.details'})),Object(core_browser_esm["c" /* jsx */])(input_default.a,{value:details,onChange:function onChange(_ref2){var value=_ref2.target.value;setDetails(value);}})));}}]);return CreateFirewall;}(react["Component"]))||CreateFirewall_class)||CreateFirewall_class;/* harmony default export */ var TripleCloud_CreateFirewall = (CreateFirewall_CreateFirewall);
// CONCATENATED MODULE: ./src/js/components/TripleCloud/FirewallsList.js
var FirewallsList_class;var FirewallsList_ref= true?{name:"25x7os-FirewallsList",styles:"font-size:0.66em;label:FirewallsList;"}:undefined;var FirewallsList_ref2= true?{name:"1epjwhj-FirewallsList",styles:"margin-bottom:10px;label:FirewallsList;"}:undefined;var FirewallsList_ref3= true?{name:"1ha3l3r-FirewallsList",styles:"margin-right:20px;label:FirewallsList;"}:undefined;var FirewallsList_ref4= true?{name:"ckcgmt-FirewallsList",styles:"align-items:center;justify-content:space-between;label:FirewallsList;"}:undefined;var FirewallsList_ref5= true?{name:"zb0xm1-FirewallsList",styles:"width:80%;label:FirewallsList;"}:undefined;var FirewallsList_ref6= true?{name:"wrnftk-FirewallsList",styles:"width:80%;margin-left:10px;label:FirewallsList;"}:undefined;var FirewallsList_ref7= true?{name:"1ha3l3r-FirewallsList",styles:"margin-right:20px;label:FirewallsList;"}:undefined;var FirewallsList_ref8= true?{name:"cw610l-FirewallsList",styles:"min-height:22px;label:FirewallsList;"}:undefined;var FirewallsList_FirewallsList=Object(index_module["c" /* observer */])(FirewallsList_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(FirewallsList,_Component);function FirewallsList(){Object(classCallCheck["a" /* default */])(this,FirewallsList);return Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(FirewallsList).apply(this,arguments));}Object(createClass["a" /* default */])(FirewallsList,[{key:"componentWillUnmount",value:function componentWillUnmount(){var cancel=this.props.cancel;cancel();}},{key:"render",value:function render(){var _this$props=this.props,firewalls=_this$props.firewalls,whitelistCurrentIP=_this$props.whitelistCurrentIP,IPOnCurrentWhitelist=_this$props.IPOnCurrentWhitelist,deleteFirewall=_this$props.deleteFirewall,firewallEditParams=_this$props.firewallEditParams,firewallCreateParams=_this$props.firewallCreateParams,setEditedFirewall=_this$props.setEditedFirewall,editVisible=_this$props.editVisible,cancel=_this$props.cancel,updateFirewall=_this$props.updateFirewall,createVisible=_this$props.createVisible,createErrorsVisible=_this$props.createErrorsVisible,showCreate=_this$props.showCreate,onEnter=_this$props.onEnter;return createVisible?Object(core_browser_esm["c" /* jsx */])(TripleCloud_CreateFirewall,{firewallCreateParams:firewallCreateParams,errorsVisible:createErrorsVisible,onEnter:onEnter}):Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("margin-bottom:10px;",classes["a" /* text1 */],"label:FirewallsList;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"triplecloud.allowedIPs"})),Object(core_browser_esm["c" /* jsx */])("div",{css:FirewallsList_ref},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"triplecloud.firewallInfo"}))),Object(core_browser_esm["c" /* jsx */])("div",null,firewalls.map(function(fw){return Object(core_browser_esm["c" /* jsx */])("div",{key:fw.id,css:FirewallsList_ref2},fw.isCurrentIP&&Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"triplecloud.currentIP"})),Object(core_browser_esm["c" /* jsx */])(FlexStyle["e" /* RowFlex */],{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(classes["d" /* text3 */]," font-size:",constants["b" /* fontSize */].large,";padding:5px 0;align-items:center;justify-content:space-between;&:hover{background-color:",constants["a" /* colors */].whiteDarkBackground,";}label:FirewallsList;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])("span",null,fw.ip_address),Object(core_browser_esm["c" /* jsx */])("div",{css:FirewallsList_ref3},editVisible===false&&Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{fwid:fw.id,type:"pencil",onClick:function onClick(){return setEditedFirewall(fw);},size:18,marginRight:"20px",color:themes["c" /* buttonNormal */]}),Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"delete",onClick:function onClick(){return deleteFirewall(fw.id,fw.ip_address);},size:17,color:themes["c" /* buttonNormal */]})))),editVisible===fw.id?Object(core_browser_esm["c" /* jsx */])(FlexStyle["e" /* RowFlex */],{css:FirewallsList_ref4},Object(core_browser_esm["c" /* jsx */])("div",{css:FirewallsList_ref5},Object(core_browser_esm["c" /* jsx */])("span",null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"triplecloud.details"})),Object(core_browser_esm["c" /* jsx */])(input_default.a,{autoFocus:true,css:FirewallsList_ref6,value:firewallEditParams.details||'',onChange:function onChange(_ref9){var value=_ref9.target.value;firewallEditParams.setDetails(value);},onPressEnter:updateFirewall})),Object(core_browser_esm["c" /* jsx */])("div",{css:FirewallsList_ref7},(firewallEditParams.details||'')!==(fw.details||'')&&Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"v",onClick:updateFirewall,size:18,color:themes["c" /* buttonNormal */],marginRight:"20px"}),Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"x",onClick:cancel,size:18,color:themes["c" /* buttonNormal */]}))):Object(core_browser_esm["c" /* jsx */])("div",{css:FirewallsList_ref8},fw.details));})),Object(core_browser_esm["c" /* jsx */])(FlexStyle["e" /* RowFlex */],{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("margin-top:10px;padding-top:10px;border-top:1px solid ",constants["a" /* colors */].greyInputBorder,";justify-content:flex-start;& > button{margin-right:20px;}label:FirewallsList;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(button_default.a,{type:"secondary",onClick:showCreate},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"triplecloud.addNewIP"})),!IPOnCurrentWhitelist&&Object(core_browser_esm["c" /* jsx */])(button_default.a,{onClick:whitelistCurrentIP,type:"primary"},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"triplecloud.whitelistThisMachine"}))));}}]);return FirewallsList;}(react["Component"]))||FirewallsList_class;/* harmony default export */ var TripleCloud_FirewallsList = (FirewallsList_FirewallsList);
// CONCATENATED MODULE: ./src/js/components/TripleCloud/VMTable.js
var VMTable_dec,_dec2,VMTable_class;var VMTable_confirm=modal_default.a.confirm;var VMTable_VMTable=(VMTable_dec=Object(index_module["b" /* inject */])('settingsStore'),_dec2=Object(index_module["b" /* inject */])('vmStore'),VMTable_dec(VMTable_class=_dec2(VMTable_class=Object(index_es["d" /* injectIntl */])(VMTable_class=Object(index_module["c" /* observer */])(VMTable_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(VMTable,_Component);function VMTable(props){var _this;Object(classCallCheck["a" /* default */])(this,VMTable);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(VMTable).call(this,props));_this.setEditedFirewall=function(fw){var setInitialFWEditParams=_this.props.vmStore.setInitialFWEditParams;setInitialFWEditParams(fw);_this.setState({fwDetailsEditVisible:fw.id});};_this.callCellAction=function(id,action,param){var _this$props=_this.props,_this$props$vmStore=_this$props.vmStore,deleteMachine=_this$props$vmStore.deleteMachine,rebootMachine=_this$props$vmStore.rebootMachine,formatMessage=_this$props.intl.formatMessage;switch(action){case actionsIndexes.rebootMachine:{VMTable_confirm({content:Object(core_browser_esm["c" /* jsx */])("h3",null,formatMessage({id:'triplecloud.rebootWarning'},{name:param})),onOk:function onOk(){return rebootMachine(id);},onCancel:function onCancel(){}});return true;}case actionsIndexes.editMachine:{_this.openMachineEditModal(id);return true;}case actionsIndexes.editFirewall:{_this.openFWWModal(id);return true;}case actionsIndexes.delete:{VMTable_confirm({content:Object(core_browser_esm["c" /* jsx */])("h3",null,formatMessage({id:'triplecloud.deleteWarning'},{name:param})),onOk:function onOk(){return deleteMachine(id);},onCancel:function onCancel(){}});return true;}default:return false;}};_this.toggleEditErrors=function(val){_this.setState({machineEditErrorsVisible:val});};_this.openMachineEditModal=function(id){var loadEditParams=_this.props.vmStore.loadEditParams;loadEditParams(id);_this.setState({machineEditModalVisible:true});};_this.closeModal=function(){var resetData=_this.props.vmStore.machineEditParams.resetData;_this.setState({machineEditModalVisible:false,machineEditErrorsVisible:false});resetData();};_this.openFWWModal=function(machineId){var _this$props$vmStore2=_this.props.vmStore,loadFWEditParams=_this$props$vmStore2.loadFWEditParams,loadFWCreateParams=_this$props$vmStore2.loadFWCreateParams;loadFWEditParams(machineId);loadFWCreateParams(machineId);_this.setState({editFWWModalVisible:true});};_this.closeFWWModal=function(){_this.setState({editFWWModalVisible:false});};_this.showMachineEditErrors=function(){_this.toggleEditErrors(true);};_this.editMachine=function(){var updateMachine=_this.props.vmStore.updateMachine;updateMachine().then(function(){_this.closeModal();});};_this.whitelistCurrentIP=function(){var whitelistCurrentIP=_this.props.vmStore.whitelistCurrentIP;whitelistCurrentIP();};_this.deleteFirewall=function(id,ip){var _this$props2=_this.props,deleteFirewall=_this$props2.vmStore.deleteFirewall,formatMessage=_this$props2.intl.formatMessage;VMTable_confirm({content:Object(core_browser_esm["c" /* jsx */])("h3",null,formatMessage({id:'triplecloud.deleteFWWarning'},{ip:ip})),onOk:function onOk(){return deleteFirewall(id);},onCancel:function onCancel(){}});};_this.showFWCreate=function(){_this.setState({fwCreateVisible:true});};_this.showFWCreateErrors=function(){_this.setState({fwCreateErrorsVisible:true});};_this.cancelFWDetailsEdit=function(){_this.setState({fwDetailsEditVisible:false,fwCreateVisible:false,fwCreateErrorsVisible:false});};_this.updateFirewall=function(){var updateFirewall=_this.props.vmStore.updateFirewall;updateFirewall().then(function(){_this.cancelFWDetailsEdit();});};_this.createFirewall=function(){var createFirewall=_this.props.vmStore.createFirewall;createFirewall().then(function(){_this.cancelFWDetailsEdit();});};_this.state={machineEditModalVisible:false,machineEditErrorsVisible:false,editFWWModalVisible:false,fwDetailsEditVisible:false,fwCreateVisible:false,fwCreateErrorsVisible:false};return _this;}Object(createClass["a" /* default */])(VMTable,[{key:"componentDidMount",value:function componentDidMount(){var initVMStore=this.props.vmStore.initVMStore;initVMStore();}},{key:"render",value:function render(){var _this2=this,_machinesById$firewal,_ref6,_machinesById$firewal2,_machinesById$firewal3,_ref7,_machinesById$firewal4,_machinesById$firewal5;var _this$props3=this.props,_this$props3$vmStore=_this$props3.vmStore,filteredMachines=_this$props3$vmStore.filteredMachines,machineEditParams=_this$props3$vmStore.machineEditParams,firewallEditParams=_this$props3$vmStore.firewallEditParams,machinesById=_this$props3$vmStore.machinesById,IPOnCurrentWhitelist=_this$props3$vmStore.IPOnCurrentWhitelist,firewallCreateParams=_this$props3$vmStore.firewallCreateParams,currentPlanId=_this$props3.settingsStore.subscription.currentPlanId,formatMessage=_this$props3.intl.formatMessage;var _this$state=this.state,machineEditModalVisible=_this$state.machineEditModalVisible,editFWWModalVisible=_this$state.editFWWModalVisible,machineEditErrorsVisible=_this$state.machineEditErrorsVisible,fwDetailsEditVisible=_this$state.fwDetailsEditVisible,fwCreateVisible=_this$state.fwCreateVisible,fwCreateErrorsVisible=_this$state.fwCreateErrorsVisible;return Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(Table["a" /* default */],{columns:vmcolumns,rowGetter:function rowGetter(i){var _ref,_filteredMachines$i,_ref2,_filteredMachines$i2,_ref3,_filteredMachines$i3,_ref4,_filteredMachines$i4,_ref5,_filteredMachines$i5;return Object(objectSpread["a" /* default */])({},filteredMachines[i],{formattedLocation:(_ref=(_filteredMachines$i=filteredMachines[i])===null||_filteredMachines$i===void 0?void 0:_filteredMachines$i.formattedLocation)!==null&&_ref!==void 0?_ref:'',worksOnCurrentIP:(_ref2=(_filteredMachines$i2=filteredMachines[i])===null||_filteredMachines$i2===void 0?void 0:_filteredMachines$i2.worksOnCurrentIP)!==null&&_ref2!==void 0?_ref2:false,isPending:(_ref3=(_filteredMachines$i3=filteredMachines[i])===null||_filteredMachines$i3===void 0?void 0:_filteredMachines$i3.isPending)!==null&&_ref3!==void 0?_ref3:false,isActive:(_ref4=(_filteredMachines$i4=filteredMachines[i])===null||_filteredMachines$i4===void 0?void 0:_filteredMachines$i4.isActive)!==null&&_ref4!==void 0?_ref4:false,isProcessing:(_ref5=(_filteredMachines$i5=filteredMachines[i])===null||_filteredMachines$i5===void 0?void 0:_filteredMachines$i5.isProcessing)!==null&&_ref5!==void 0?_ref5:false,callCellAction:_this2.callCellAction,currentPlanId:currentPlanId});},rowsCount:filteredMachines.length// getCellActions={this.getCellActions}
}),Object(core_browser_esm["c" /* jsx */])(modal_default.a,{visible:machineEditModalVisible,title:formatMessage({id:'triplecloud.editVM'}),onCancel:this.closeModal,onOk:machineEditParams.editParamsValid?this.editMachine:this.showMachineEditErrors},Object(core_browser_esm["c" /* jsx */])(TripleCloud_EditVirtualMachine,{machineEditParams:machineEditParams,errorsVisible:machineEditErrorsVisible,onEnter:machineEditParams.editParamsValid?this.editMachine:this.showMachineEditErrors})),Object(core_browser_esm["c" /* jsx */])(modal_default.a,{key:(_machinesById$firewal=machinesById[firewallEditParams.machineId])!==null&&_machinesById$firewal!==void 0?_machinesById$firewal:'fwmodal',visible:editFWWModalVisible,title:(_ref6=(_machinesById$firewal2=machinesById[firewallEditParams.machineId])===null||_machinesById$firewal2===void 0?void 0:(_machinesById$firewal3=_machinesById$firewal2.machineRef)===null||_machinesById$firewal3===void 0?void 0:_machinesById$firewal3.name)!==null&&_ref6!==void 0?_ref6:formatMessage({id:'triplecloud.editFWW'}),onCancel:this.closeFWWModal,onOk:firewallCreateParams.createParamsValid?this.createFirewall:this.showFWCreateErrors,footer:fwCreateVisible?undefined:null},editFWWModalVisible&&Object(core_browser_esm["c" /* jsx */])(TripleCloud_FirewallsList,{firewalls:(_ref7=(_machinesById$firewal4=machinesById[firewallEditParams.machineId])===null||_machinesById$firewal4===void 0?void 0:(_machinesById$firewal5=_machinesById$firewal4.machineRef)===null||_machinesById$firewal5===void 0?void 0:_machinesById$firewal5.firewalls)!==null&&_ref7!==void 0?_ref7:[],firewallEditParams:firewallEditParams,whitelistCurrentIP:this.whitelistCurrentIP,IPOnCurrentWhitelist:IPOnCurrentWhitelist,deleteFirewall:this.deleteFirewall,updateFirewall:this.updateFirewall,editVisible:fwDetailsEditVisible,cancel:this.cancelFWDetailsEdit,setEditedFirewall:this.setEditedFirewall,showCreate:this.showFWCreate,createVisible:fwCreateVisible,firewallCreateParams:firewallCreateParams,createErrorsVisible:fwCreateErrorsVisible,onEnter:firewallCreateParams.createParamsValid?this.createFirewall:this.showFWCreateErrors})));}}]);return VMTable;}(react["Component"]))||VMTable_class)||VMTable_class)||VMTable_class)||VMTable_class);/* harmony default export */ var TripleCloud_VMTable = (VMTable_VMTable);
// EXTERNAL MODULE: ./src/js/components/common/Checkbox/checkbox.js
var Checkbox_checkbox = __webpack_require__(260);

// CONCATENATED MODULE: ./src/js/components/TripleCloud/CreateVirtualMachine.js
var CreateVirtualMachine_class;var CreateVirtualMachine_Option=select_default.a.Option;var CreateVirtualMachine_ref= true?{name:"wo4ifd-CreateVirtualMachine",styles:"margin-bottom:30px;label:CreateVirtualMachine;"}:undefined;var CreateVirtualMachine_ref2= true?{name:"1rnexev-CreateVirtualMachine",styles:"font-size:1.25em;label:CreateVirtualMachine;"}:undefined;var CreateVirtualMachine_ref3= true?{name:"qgmcjf-CreateVirtualMachine",styles:"display:block;label:CreateVirtualMachine;"}:undefined;var CreateVirtualMachine_CreateVirtualMachine=Object(index_es["d" /* injectIntl */])(CreateVirtualMachine_class=Object(index_module["c" /* observer */])(CreateVirtualMachine_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(CreateVirtualMachine,_Component);function CreateVirtualMachine(){var _getPrototypeOf2;var _this;Object(classCallCheck["a" /* default */])(this,CreateVirtualMachine);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=Object(possibleConstructorReturn["a" /* default */])(this,(_getPrototypeOf2=Object(getPrototypeOf["a" /* default */])(CreateVirtualMachine)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.onEnter=function(e){var onEnter=_this.props.onEnter;if(e.keyCode===13){onEnter();}};return _this;}Object(createClass["a" /* default */])(CreateVirtualMachine,[{key:"componentDidMount",value:function componentDidMount(){document.addEventListener('keydown',this.onEnter);}},{key:"componentWillUnmount",value:function componentWillUnmount(){document.removeEventListener('keydown',this.onEnter);}},{key:"render",value:function render(){var _this$props=this.props,toggleAgreement=_this$props.toggleAgreement,isAgreed=_this$props.isAgreed,formatMessage=_this$props.intl.formatMessage,_this$props$machineCr=_this$props.machineCreateParams,name=_this$props$machineCr.name,setName=_this$props$machineCr.setName,location_id=_this$props$machineCr.location_id,setLocation=_this$props$machineCr.setLocation,details=_this$props$machineCr.details,setDetails=_this$props$machineCr.setDetails,locations=_this$props.locations,errorsVisible=_this$props.errorsVisible;return Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])("h2",{css:CreateVirtualMachine_ref},formatMessage({id:'triplecloud.pricingStart'}),Object(core_browser_esm["c" /* jsx */])("strong",{css:CreateVirtualMachine_ref2},formatMessage({id:'triplecloud.pricingPrice'})),formatMessage({id:'triplecloud.pricingEnd'})),Object(core_browser_esm["c" /* jsx */])(InputValidation_InputWarningWrapper,{key:"name",condition:!name.trim()&&errorsVisible,errorMessage:formatMessage({id:'triplecloud.nameRequired'})},Object(core_browser_esm["c" /* jsx */])("h3",null,formatMessage({id:'common.name'})),Object(core_browser_esm["c" /* jsx */])(input_default.a,{value:name,onChange:function onChange(_ref4){var value=_ref4.target.value;setName(value);}})),Object(core_browser_esm["c" /* jsx */])(InputValidation_InputWarningWrapper,{key:"location",condition:false,errorMessage:""},Object(core_browser_esm["c" /* jsx */])("h3",null,formatMessage({id:'triplecloud.location'})),Object(core_browser_esm["c" /* jsx */])(select_default.a,{css:CreateVirtualMachine_ref3,value:location_id,onChange:setLocation},locations.map(function(_ref5){var selectOptionFormat=_ref5.selectOptionFormat,id=_ref5.id;return Object(core_browser_esm["c" /* jsx */])(CreateVirtualMachine_Option,{key:id,value:id},selectOptionFormat);}))),Object(core_browser_esm["c" /* jsx */])(InputValidation_InputWarningWrapper,{key:"details",condition:false,errorMessage:""},Object(core_browser_esm["c" /* jsx */])("h3",null,formatMessage({id:'triplecloud.details'})),Object(core_browser_esm["c" /* jsx */])(input_default.a,{value:details,onChange:function onChange(_ref6){var value=_ref6.target.value;setDetails(value);}})),Object(core_browser_esm["c" /* jsx */])(Checkbox_checkbox["a" /* default */],{onChange:function onChange(e){toggleAgreement(e.target.checked);},checked:isAgreed},formatMessage({id:'triplecloud.agreement'})));}}]);return CreateVirtualMachine;}(react["Component"]))||CreateVirtualMachine_class)||CreateVirtualMachine_class;/* harmony default export */ var TripleCloud_CreateVirtualMachine = (CreateVirtualMachine_CreateVirtualMachine);
// CONCATENATED MODULE: ./src/js/components/TripleCloud/VMActionsBar.js
var VMActionsBar_dec,VMActionsBar_class;var VMActionsBar_confirm=modal_default.a.confirm;var VMActionsBar_ref= true?{name:"a55xfc-VMActionsBar",styles:"margin:10px 0;align-items:center;@media (min-height:700px){margin-top:calc(50vh - 350px);}label:VMActionsBar;"}:undefined;var VMActionsBar_ref2= true?{name:"5d7el7-VMActionsBar",styles:"margin-right:15px;label:VMActionsBar;"}:undefined;var VMActionsBar_ref3= true?{name:"fc0fs4-VMActionsBar",styles:".ant-modal-body{padding-top:12px;}label:VMActionsBar;"}:undefined;var VMActionsBar_VMActionsBar=(VMActionsBar_dec=Object(index_module["b" /* inject */])('vmStore'),VMActionsBar_dec(VMActionsBar_class=Object(index_es["d" /* injectIntl */])(VMActionsBar_class=Object(index_module["c" /* observer */])(VMActionsBar_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(VMActionsBar,_Component);function VMActionsBar(props){var _this;Object(classCallCheck["a" /* default */])(this,VMActionsBar);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(VMActionsBar).call(this,props));_this.toggleAgreement=function(checked){_this.setState({isAgreed:checked});};_this.toggleCreateModal=function(val){_this.setState({createModalVisible:val});};_this.toggleCreateErrors=function(val){_this.setState({createErrorsVisible:val});};_this.closeModal=function(){var resetData=_this.props.vmStore.machineCreateParams.resetData;_this.setState({createModalVisible:false,createErrorsVisible:false});resetData();};_this.openModal=function(){_this.toggleCreateModal(true);};_this.showErrors=function(){_this.toggleCreateErrors(true);};_this.createMachine=function(){var createMachine=_this.props.vmStore.createMachine;createMachine().then(function(){_this.closeModal();});};_this.bulkReboot=function(){var _this$props=_this.props,bulkReboot=_this$props.vmStore.bulkReboot,formatMessage=_this$props.intl.formatMessage;VMActionsBar_confirm({content:Object(core_browser_esm["c" /* jsx */])("h3",null,formatMessage({id:'triplecloud.bulkRebootWarning'})),onOk:function onOk(){return bulkReboot();},onCancel:function onCancel(){}});};_this.bulkDelete=function(){var _this$props2=_this.props,bulkDelete=_this$props2.vmStore.bulkDelete,formatMessage=_this$props2.intl.formatMessage;VMActionsBar_confirm({content:Object(core_browser_esm["c" /* jsx */])("h3",null,formatMessage({id:'triplecloud.bulkDeleteWarning'})),onOk:function onOk(){return bulkDelete();},onCancel:function onCancel(){}});};_this.state={createModalVisible:false,createErrorsVisible:false,isAgreed:false};return _this;}Object(createClass["a" /* default */])(VMActionsBar,[{key:"render",value:function render(){var _this$state=this.state,createModalVisible=_this$state.createModalVisible,createErrorsVisible=_this$state.createErrorsVisible,isAgreed=_this$state.isAgreed;var _this$props3=this.props,_this$props3$vmStore=_this$props3.vmStore,locations=_this$props3$vmStore.locations,machineCreateParams=_this$props3$vmStore.machineCreateParams,selectedMachinesIds=_this$props3$vmStore.selectedMachinesIds,setSearchText=_this$props3$vmStore.setSearchText,searchText=_this$props3$vmStore.searchText,formatMessage=_this$props3.intl.formatMessage;return Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])("h1",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(classes["a" /* text1 */],";margin-right:68px;label:VMActionsBar;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"triplecloud.triplecloud"})),Object(core_browser_esm["c" /* jsx */])(FlexStyle["e" /* RowFlex */],{css:VMActionsBar_ref},Object(core_browser_esm["c" /* jsx */])(styled["o" /* SearchInput */],{placeholder:formatMessage({id:'common.search'}),value:searchText,onChange:function onChange(_ref4){var value=_ref4.target.value;return setSearchText(value);},width:"227px",height:"25px",css:VMActionsBar_ref2}),Object(core_browser_esm["c" /* jsx */])(styled_VMGlobalAction,{onClick:this.openModal,disabled:!locations.length,msgId:"common.create",iconType:"plus-circle-no-bg"}),Object(core_browser_esm["c" /* jsx */])(styled_VMGlobalAction,{onClick:this.bulkReboot,disabled:!selectedMachinesIds.length,msgId:"triplecloud.reboot",iconType:"reload"}),Object(core_browser_esm["c" /* jsx */])(styled_VMGlobalAction,{onClick:this.bulkDelete,disabled:!selectedMachinesIds.length,msgId:"triplecloud.delete",iconType:"delete"})),Object(core_browser_esm["c" /* jsx */])(modal_default.a,{visible:createModalVisible,title:formatMessage({id:'triplecloud.createVM'}),onCancel:this.closeModal,onOk:machineCreateParams.createParamsValid?this.createMachine:this.showErrors,okButtonProps:{disabled:!isAgreed},css:VMActionsBar_ref3},Object(core_browser_esm["c" /* jsx */])(TripleCloud_CreateVirtualMachine,{isAgreed:isAgreed,toggleAgreement:this.toggleAgreement,locations:locations,machineCreateParams:machineCreateParams,errorsVisible:createErrorsVisible,onEnter:machineCreateParams.createParamsValid?this.createMachine:this.showErrors})));}}]);return VMActionsBar;}(react["Component"]))||VMActionsBar_class)||VMActionsBar_class)||VMActionsBar_class);/* harmony default export */ var TripleCloud_VMActionsBar = (VMActionsBar_VMActionsBar);
// CONCATENATED MODULE: ./src/js/components/TripleCloud/index.js

// EXTERNAL MODULE: ./src/js/components/common/spinner/index.js + 1 modules
var spinner = __webpack_require__(74);

// CONCATENATED MODULE: ./src/js/pages/TripleCloud/TripleCloud.js
var TripleCloud_dec,TripleCloud_dec2,TripleCloud_class;var TripleCloud_TripleCloud=(TripleCloud_dec=Object(index_module["b" /* inject */])('vmStore'),TripleCloud_dec2=Object(index_module["b" /* inject */])('settingsStore'),TripleCloud_dec(TripleCloud_class=TripleCloud_dec2(TripleCloud_class=Object(index_module["c" /* observer */])(TripleCloud_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(TripleCloud,_Component);function TripleCloud(){Object(classCallCheck["a" /* default */])(this,TripleCloud);return Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(TripleCloud).apply(this,arguments));}Object(createClass["a" /* default */])(TripleCloud,[{key:"render",value:function render(){var _this$props=this.props,anyLoading=_this$props.vmStore.anyLoading,currentPlan=_this$props.settingsStore.subscription.currentPlan;return Object(core_browser_esm["c" /* jsx */])("div",{hidden:!currentPlan},Object(core_browser_esm["c" /* jsx */])(react_document_title_default.a,{title:"".concat(constants["d" /* title */]," | TripleCloud")},Object(core_browser_esm["c" /* jsx */])(styled["j" /* PageContainer */],null,Object(core_browser_esm["c" /* jsx */])(TripleCloud_VMActionsBar,null),Object(core_browser_esm["c" /* jsx */])(TripleCloud_VMTable,null),anyLoading&&Object(core_browser_esm["c" /* jsx */])(spinner["a" /* default */],null))));}}]);return TripleCloud;}(react["Component"]))||TripleCloud_class)||TripleCloud_class)||TripleCloud_class);/* harmony default export */ var pages_TripleCloud_TripleCloud = (TripleCloud_TripleCloud);
// CONCATENATED MODULE: ./src/js/pages/TripleCloud/index.js

// EXPORTS
__webpack_require__.d(__webpack_exports__, "b", function() { return /* reexport */ defaultLocale; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ defaultLocale_format; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* reexport */ defaultLocale_formatPrefix; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* reexport */ src_locale; });
__webpack_require__.d(__webpack_exports__, "e", function() { return /* reexport */ formatSpecifier; });
__webpack_require__.d(__webpack_exports__, "f", function() { return /* reexport */ precisionFixed; });
__webpack_require__.d(__webpack_exports__, "g", function() { return /* reexport */ precisionPrefix; });
__webpack_require__.d(__webpack_exports__, "h", function() { return /* reexport */ precisionRound; });

// CONCATENATED MODULE: ./node_modules/d3-format/src/formatDecimal.js
// Computes the decimal coefficient and exponent of the specified number x with
// significant digits p, where x is positive and p is in [1, 21] or undefined.
// For example, formatDecimal(1.23) returns ["123", 0].
/* harmony default export */ var formatDecimal = (function(x, p) {
  if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) return null; // NaN, ±Infinity
  var i, coefficient = x.slice(0, i);

  // The string returned by toExponential either has the form \d\.\d+e[-+]\d+
  // (e.g., 1.2e+3) or the form \de[-+]\d+ (e.g., 1e+3).
  return [
    coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,
    +x.slice(i + 1)
  ];
});

// CONCATENATED MODULE: ./node_modules/d3-format/src/exponent.js


/* harmony default export */ var src_exponent = (function(x) {
  return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;
});

// CONCATENATED MODULE: ./node_modules/d3-format/src/formatGroup.js
/* harmony default export */ var formatGroup = (function(grouping, thousands) {
  return function(value, width) {
    var i = value.length,
        t = [],
        j = 0,
        g = grouping[0],
        length = 0;

    while (i > 0 && g > 0) {
      if (length + g + 1 > width) g = Math.max(1, width - length);
      t.push(value.substring(i -= g, i + g));
      if ((length += g + 1) > width) break;
      g = grouping[j = (j + 1) % grouping.length];
    }

    return t.reverse().join(thousands);
  };
});

// CONCATENATED MODULE: ./node_modules/d3-format/src/formatNumerals.js
/* harmony default export */ var formatNumerals = (function(numerals) {
  return function(value) {
    return value.replace(/[0-9]/g, function(i) {
      return numerals[+i];
    });
  };
});

// CONCATENATED MODULE: ./node_modules/d3-format/src/formatDefault.js
/* harmony default export */ var formatDefault = (function(x, p) {
  x = x.toPrecision(p);

  out: for (var n = x.length, i = 1, i0 = -1, i1; i < n; ++i) {
    switch (x[i]) {
      case ".": i0 = i1 = i; break;
      case "0": if (i0 === 0) i0 = i; i1 = i; break;
      case "e": break out;
      default: if (i0 > 0) i0 = 0; break;
    }
  }

  return i0 > 0 ? x.slice(0, i0) + x.slice(i1 + 1) : x;
});

// CONCATENATED MODULE: ./node_modules/d3-format/src/formatPrefixAuto.js


var prefixExponent;

/* harmony default export */ var formatPrefixAuto = (function(x, p) {
  var d = formatDecimal(x, p);
  if (!d) return x + "";
  var coefficient = d[0],
      exponent = d[1],
      i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,
      n = coefficient.length;
  return i === n ? coefficient
      : i > n ? coefficient + new Array(i - n + 1).join("0")
      : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i)
      : "0." + new Array(1 - i).join("0") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!
});

// CONCATENATED MODULE: ./node_modules/d3-format/src/formatRounded.js


/* harmony default export */ var formatRounded = (function(x, p) {
  var d = formatDecimal(x, p);
  if (!d) return x + "";
  var coefficient = d[0],
      exponent = d[1];
  return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient
      : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1)
      : coefficient + new Array(exponent - coefficient.length + 2).join("0");
});

// CONCATENATED MODULE: ./node_modules/d3-format/src/formatTypes.js




/* harmony default export */ var formatTypes = ({
  "": formatDefault,
  "%": function(x, p) { return (x * 100).toFixed(p); },
  "b": function(x) { return Math.round(x).toString(2); },
  "c": function(x) { return x + ""; },
  "d": function(x) { return Math.round(x).toString(10); },
  "e": function(x, p) { return x.toExponential(p); },
  "f": function(x, p) { return x.toFixed(p); },
  "g": function(x, p) { return x.toPrecision(p); },
  "o": function(x) { return Math.round(x).toString(8); },
  "p": function(x, p) { return formatRounded(x * 100, p); },
  "r": formatRounded,
  "s": formatPrefixAuto,
  "X": function(x) { return Math.round(x).toString(16).toUpperCase(); },
  "x": function(x) { return Math.round(x).toString(16); }
});

// CONCATENATED MODULE: ./node_modules/d3-format/src/formatSpecifier.js


// [[fill]align][sign][symbol][0][width][,][.precision][type]
var re = /^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$/i;

function formatSpecifier(specifier) {
  return new FormatSpecifier(specifier);
}

formatSpecifier.prototype = FormatSpecifier.prototype; // instanceof

function FormatSpecifier(specifier) {
  if (!(match = re.exec(specifier))) throw new Error("invalid format: " + specifier);

  var match,
      fill = match[1] || " ",
      align = match[2] || ">",
      sign = match[3] || "-",
      symbol = match[4] || "",
      zero = !!match[5],
      width = match[6] && +match[6],
      comma = !!match[7],
      precision = match[8] && +match[8].slice(1),
      type = match[9] || "";

  // The "n" type is an alias for ",g".
  if (type === "n") comma = true, type = "g";

  // Map invalid types to the default format.
  else if (!formatTypes[type]) type = "";

  // If zero fill is specified, padding goes after sign and before digits.
  if (zero || (fill === "0" && align === "=")) zero = true, fill = "0", align = "=";

  this.fill = fill;
  this.align = align;
  this.sign = sign;
  this.symbol = symbol;
  this.zero = zero;
  this.width = width;
  this.comma = comma;
  this.precision = precision;
  this.type = type;
}

FormatSpecifier.prototype.toString = function() {
  return this.fill
      + this.align
      + this.sign
      + this.symbol
      + (this.zero ? "0" : "")
      + (this.width == null ? "" : Math.max(1, this.width | 0))
      + (this.comma ? "," : "")
      + (this.precision == null ? "" : "." + Math.max(0, this.precision | 0))
      + this.type;
};

// CONCATENATED MODULE: ./node_modules/d3-format/src/identity.js
/* harmony default export */ var identity = (function(x) {
  return x;
});

// CONCATENATED MODULE: ./node_modules/d3-format/src/locale.js








var prefixes = ["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];

/* harmony default export */ var src_locale = (function(locale) {
  var group = locale.grouping && locale.thousands ? formatGroup(locale.grouping, locale.thousands) : identity,
      currency = locale.currency,
      decimal = locale.decimal,
      numerals = locale.numerals ? formatNumerals(locale.numerals) : identity,
      percent = locale.percent || "%";

  function newFormat(specifier) {
    specifier = formatSpecifier(specifier);

    var fill = specifier.fill,
        align = specifier.align,
        sign = specifier.sign,
        symbol = specifier.symbol,
        zero = specifier.zero,
        width = specifier.width,
        comma = specifier.comma,
        precision = specifier.precision,
        type = specifier.type;

    // Compute the prefix and suffix.
    // For SI-prefix, the suffix is lazily computed.
    var prefix = symbol === "$" ? currency[0] : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "",
        suffix = symbol === "$" ? currency[1] : /[%p]/.test(type) ? percent : "";

    // What format function should we use?
    // Is this an integer type?
    // Can this type generate exponential notation?
    var formatType = formatTypes[type],
        maybeSuffix = !type || /[defgprs%]/.test(type);

    // Set the default precision if not specified,
    // or clamp the specified precision to the supported range.
    // For significant precision, it must be in [1, 21].
    // For fixed precision, it must be in [0, 20].
    precision = precision == null ? (type ? 6 : 12)
        : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))
        : Math.max(0, Math.min(20, precision));

    function format(value) {
      var valuePrefix = prefix,
          valueSuffix = suffix,
          i, n, c;

      if (type === "c") {
        valueSuffix = formatType(value) + valueSuffix;
        value = "";
      } else {
        value = +value;

        // Perform the initial formatting.
        var valueNegative = value < 0;
        value = formatType(Math.abs(value), precision);

        // If a negative value rounds to zero during formatting, treat as positive.
        if (valueNegative && +value === 0) valueNegative = false;

        // Compute the prefix and suffix.
        valuePrefix = (valueNegative ? (sign === "(" ? sign : "-") : sign === "-" || sign === "(" ? "" : sign) + valuePrefix;
        valueSuffix = (type === "s" ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : "");

        // Break the formatted value into the integer “value” part that can be
        // grouped, and fractional or exponential “suffix” part that is not.
        if (maybeSuffix) {
          i = -1, n = value.length;
          while (++i < n) {
            if (c = value.charCodeAt(i), 48 > c || c > 57) {
              valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;
              value = value.slice(0, i);
              break;
            }
          }
        }
      }

      // If the fill character is not "0", grouping is applied before padding.
      if (comma && !zero) value = group(value, Infinity);

      // Compute the padding.
      var length = valuePrefix.length + value.length + valueSuffix.length,
          padding = length < width ? new Array(width - length + 1).join(fill) : "";

      // If the fill character is "0", grouping is applied after padding.
      if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = "";

      // Reconstruct the final output based on the desired alignment.
      switch (align) {
        case "<": value = valuePrefix + value + valueSuffix + padding; break;
        case "=": value = valuePrefix + padding + value + valueSuffix; break;
        case "^": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;
        default: value = padding + valuePrefix + value + valueSuffix; break;
      }

      return numerals(value);
    }

    format.toString = function() {
      return specifier + "";
    };

    return format;
  }

  function formatPrefix(specifier, value) {
    var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier)),
        e = Math.max(-8, Math.min(8, Math.floor(src_exponent(value) / 3))) * 3,
        k = Math.pow(10, -e),
        prefix = prefixes[8 + e / 3];
    return function(value) {
      return f(k * value) + prefix;
    };
  }

  return {
    format: newFormat,
    formatPrefix: formatPrefix
  };
});

// CONCATENATED MODULE: ./node_modules/d3-format/src/defaultLocale.js


var defaultLocale_locale;
var defaultLocale_format;
var defaultLocale_formatPrefix;

defaultLocale({
  decimal: ".",
  thousands: ",",
  grouping: [3],
  currency: ["$", ""]
});

function defaultLocale(definition) {
  defaultLocale_locale = src_locale(definition);
  defaultLocale_format = defaultLocale_locale.format;
  defaultLocale_formatPrefix = defaultLocale_locale.formatPrefix;
  return defaultLocale_locale;
}

// CONCATENATED MODULE: ./node_modules/d3-format/src/precisionFixed.js


/* harmony default export */ var precisionFixed = (function(step) {
  return Math.max(0, -src_exponent(Math.abs(step)));
});

// CONCATENATED MODULE: ./node_modules/d3-format/src/precisionPrefix.js


/* harmony default export */ var precisionPrefix = (function(step, value) {
  return Math.max(0, Math.max(-8, Math.min(8, Math.floor(src_exponent(value) / 3))) * 3 - src_exponent(Math.abs(step)));
});

// CONCATENATED MODULE: ./node_modules/d3-format/src/precisionRound.js


/* harmony default export */ var precisionRound = (function(step, max) {
  step = Math.abs(step), max = Math.abs(max) - step;
  return Math.max(0, src_exponent(max) - src_exponent(step)) + 1;
});

// CONCATENATED MODULE: ./node_modules/d3-format/index.js







// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ Curve_Curve; });

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isArray.js
var isArray = __webpack_require__(71);
var isArray_default = /*#__PURE__*/__webpack_require__.n(isArray);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/upperFirst.js
var upperFirst = __webpack_require__(286);
var upperFirst_default = /*#__PURE__*/__webpack_require__.n(upperFirst);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isFunction.js
var isFunction = __webpack_require__(51);
var isFunction_default = /*#__PURE__*/__webpack_require__.n(isFunction);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/noop.js
/* harmony default export */ var noop = (function() {});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/curve/basis.js
function point(that, x, y) {
  that._context.bezierCurveTo(
    (2 * that._x0 + that._x1) / 3,
    (2 * that._y0 + that._y1) / 3,
    (that._x0 + 2 * that._x1) / 3,
    (that._y0 + 2 * that._y1) / 3,
    (that._x0 + 4 * that._x1 + x) / 6,
    (that._y0 + 4 * that._y1 + y) / 6
  );
}

function Basis(context) {
  this._context = context;
}

Basis.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x0 = this._x1 =
    this._y0 = this._y1 = NaN;
    this._point = 0;
  },
  lineEnd: function() {
    switch (this._point) {
      case 3: point(this, this._x1, this._y1); // proceed
      case 2: this._context.lineTo(this._x1, this._y1); break;
    }
    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
    this._line = 1 - this._line;
  },
  point: function(x, y) {
    x = +x, y = +y;
    switch (this._point) {
      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
      case 1: this._point = 2; break;
      case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed
      default: point(this, x, y); break;
    }
    this._x0 = this._x1, this._x1 = x;
    this._y0 = this._y1, this._y1 = y;
  }
};

/* harmony default export */ var basis = (function(context) {
  return new Basis(context);
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/curve/basisClosed.js



function BasisClosed(context) {
  this._context = context;
}

BasisClosed.prototype = {
  areaStart: noop,
  areaEnd: noop,
  lineStart: function() {
    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =
    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;
    this._point = 0;
  },
  lineEnd: function() {
    switch (this._point) {
      case 1: {
        this._context.moveTo(this._x2, this._y2);
        this._context.closePath();
        break;
      }
      case 2: {
        this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);
        this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);
        this._context.closePath();
        break;
      }
      case 3: {
        this.point(this._x2, this._y2);
        this.point(this._x3, this._y3);
        this.point(this._x4, this._y4);
        break;
      }
    }
  },
  point: function(x, y) {
    x = +x, y = +y;
    switch (this._point) {
      case 0: this._point = 1; this._x2 = x, this._y2 = y; break;
      case 1: this._point = 2; this._x3 = x, this._y3 = y; break;
      case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;
      default: point(this, x, y); break;
    }
    this._x0 = this._x1, this._x1 = x;
    this._y0 = this._y1, this._y1 = y;
  }
};

/* harmony default export */ var basisClosed = (function(context) {
  return new BasisClosed(context);
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/curve/basisOpen.js


function BasisOpen(context) {
  this._context = context;
}

BasisOpen.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x0 = this._x1 =
    this._y0 = this._y1 = NaN;
    this._point = 0;
  },
  lineEnd: function() {
    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
    this._line = 1 - this._line;
  },
  point: function(x, y) {
    x = +x, y = +y;
    switch (this._point) {
      case 0: this._point = 1; break;
      case 1: this._point = 2; break;
      case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;
      case 3: this._point = 4; // proceed
      default: point(this, x, y); break;
    }
    this._x0 = this._x1, this._x1 = x;
    this._y0 = this._y1, this._y1 = y;
  }
};

/* harmony default export */ var basisOpen = (function(context) {
  return new BasisOpen(context);
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/curve/linearClosed.js


function LinearClosed(context) {
  this._context = context;
}

LinearClosed.prototype = {
  areaStart: noop,
  areaEnd: noop,
  lineStart: function() {
    this._point = 0;
  },
  lineEnd: function() {
    if (this._point) this._context.closePath();
  },
  point: function(x, y) {
    x = +x, y = +y;
    if (this._point) this._context.lineTo(x, y);
    else this._point = 1, this._context.moveTo(x, y);
  }
};

/* harmony default export */ var linearClosed = (function(context) {
  return new LinearClosed(context);
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/curve/linear.js
function Linear(context) {
  this._context = context;
}

Linear.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._point = 0;
  },
  lineEnd: function() {
    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
    this._line = 1 - this._line;
  },
  point: function(x, y) {
    x = +x, y = +y;
    switch (this._point) {
      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
      case 1: this._point = 2; // proceed
      default: this._context.lineTo(x, y); break;
    }
  }
};

/* harmony default export */ var linear = (function(context) {
  return new Linear(context);
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/curve/monotone.js
function sign(x) {
  return x < 0 ? -1 : 1;
}

// Calculate the slopes of the tangents (Hermite-type interpolation) based on
// the following paper: Steffen, M. 1990. A Simple Method for Monotonic
// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.
// NOV(II), P. 443, 1990.
function slope3(that, x2, y2) {
  var h0 = that._x1 - that._x0,
      h1 = x2 - that._x1,
      s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),
      s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),
      p = (s0 * h1 + s1 * h0) / (h0 + h1);
  return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;
}

// Calculate a one-sided slope.
function slope2(that, t) {
  var h = that._x1 - that._x0;
  return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;
}

// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations
// "you can express cubic Hermite interpolation in terms of cubic Bézier curves
// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1".
function monotone_point(that, t0, t1) {
  var x0 = that._x0,
      y0 = that._y0,
      x1 = that._x1,
      y1 = that._y1,
      dx = (x1 - x0) / 3;
  that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);
}

function MonotoneX(context) {
  this._context = context;
}

MonotoneX.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x0 = this._x1 =
    this._y0 = this._y1 =
    this._t0 = NaN;
    this._point = 0;
  },
  lineEnd: function() {
    switch (this._point) {
      case 2: this._context.lineTo(this._x1, this._y1); break;
      case 3: monotone_point(this, this._t0, slope2(this, this._t0)); break;
    }
    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
    this._line = 1 - this._line;
  },
  point: function(x, y) {
    var t1 = NaN;

    x = +x, y = +y;
    if (x === this._x1 && y === this._y1) return; // Ignore coincident points.
    switch (this._point) {
      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
      case 1: this._point = 2; break;
      case 2: this._point = 3; monotone_point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;
      default: monotone_point(this, this._t0, t1 = slope3(this, x, y)); break;
    }

    this._x0 = this._x1, this._x1 = x;
    this._y0 = this._y1, this._y1 = y;
    this._t0 = t1;
  }
}

function MonotoneY(context) {
  this._context = new ReflectContext(context);
}

(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {
  MonotoneX.prototype.point.call(this, y, x);
};

function ReflectContext(context) {
  this._context = context;
}

ReflectContext.prototype = {
  moveTo: function(x, y) { this._context.moveTo(y, x); },
  closePath: function() { this._context.closePath(); },
  lineTo: function(x, y) { this._context.lineTo(y, x); },
  bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }
};

function monotoneX(context) {
  return new MonotoneX(context);
}

function monotoneY(context) {
  return new MonotoneY(context);
}

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/curve/natural.js
function Natural(context) {
  this._context = context;
}

Natural.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x = [];
    this._y = [];
  },
  lineEnd: function() {
    var x = this._x,
        y = this._y,
        n = x.length;

    if (n) {
      this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);
      if (n === 2) {
        this._context.lineTo(x[1], y[1]);
      } else {
        var px = controlPoints(x),
            py = controlPoints(y);
        for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {
          this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);
        }
      }
    }

    if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();
    this._line = 1 - this._line;
    this._x = this._y = null;
  },
  point: function(x, y) {
    this._x.push(+x);
    this._y.push(+y);
  }
};

// See https://www.particleincell.com/2012/bezier-splines/ for derivation.
function controlPoints(x) {
  var i,
      n = x.length - 1,
      m,
      a = new Array(n),
      b = new Array(n),
      r = new Array(n);
  a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];
  for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];
  a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];
  for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];
  a[n - 1] = r[n - 1] / b[n - 1];
  for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];
  b[n - 1] = (x[n] + a[n - 1]) / 2;
  for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];
  return [a, b];
}

/* harmony default export */ var natural = (function(context) {
  return new Natural(context);
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/curve/step.js
function Step(context, t) {
  this._context = context;
  this._t = t;
}

Step.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._x = this._y = NaN;
    this._point = 0;
  },
  lineEnd: function() {
    if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);
    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
    if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;
  },
  point: function(x, y) {
    x = +x, y = +y;
    switch (this._point) {
      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
      case 1: this._point = 2; // proceed
      default: {
        if (this._t <= 0) {
          this._context.lineTo(this._x, y);
          this._context.lineTo(x, y);
        } else {
          var x1 = this._x * (1 - this._t) + x * this._t;
          this._context.lineTo(x1, this._y);
          this._context.lineTo(x1, y);
        }
        break;
      }
    }
    this._x = x, this._y = y;
  }
};

/* harmony default export */ var step = (function(context) {
  return new Step(context, 0.5);
});

function stepBefore(context) {
  return new Step(context, 0);
}

function stepAfter(context) {
  return new Step(context, 1);
}

// EXTERNAL MODULE: ./node_modules/d3-path/index.js + 1 modules
var d3_path = __webpack_require__(129);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-shape/src/array.js
var array = __webpack_require__(316);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-shape/src/constant.js
var constant = __webpack_require__(105);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/point.js
function point_x(p) {
  return p[0];
}

function point_y(p) {
  return p[1];
}

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/line.js






/* harmony default export */ var src_line = (function(x, y) {
  var defined = Object(constant["a" /* default */])(true),
      context = null,
      curve = linear,
      output = null;

  x = typeof x === "function" ? x : (x === undefined) ? point_x : Object(constant["a" /* default */])(x);
  y = typeof y === "function" ? y : (y === undefined) ? point_y : Object(constant["a" /* default */])(y);

  function line(data) {
    var i,
        n = (data = Object(array["a" /* default */])(data)).length,
        d,
        defined0 = false,
        buffer;

    if (context == null) output = curve(buffer = Object(d3_path["a" /* path */])());

    for (i = 0; i <= n; ++i) {
      if (!(i < n && defined(d = data[i], i, data)) === defined0) {
        if (defined0 = !defined0) output.lineStart();
        else output.lineEnd();
      }
      if (defined0) output.point(+x(d, i, data), +y(d, i, data));
    }

    if (buffer) return output = null, buffer + "" || null;
  }

  line.x = function(_) {
    return arguments.length ? (x = typeof _ === "function" ? _ : Object(constant["a" /* default */])(+_), line) : x;
  };

  line.y = function(_) {
    return arguments.length ? (y = typeof _ === "function" ? _ : Object(constant["a" /* default */])(+_), line) : y;
  };

  line.defined = function(_) {
    return arguments.length ? (defined = typeof _ === "function" ? _ : Object(constant["a" /* default */])(!!_), line) : defined;
  };

  line.curve = function(_) {
    return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;
  };

  line.context = function(_) {
    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;
  };

  return line;
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/area.js







/* harmony default export */ var src_area = (function(x0, y0, y1) {
  var x1 = null,
      defined = Object(constant["a" /* default */])(true),
      context = null,
      curve = linear,
      output = null;

  x0 = typeof x0 === "function" ? x0 : (x0 === undefined) ? point_x : Object(constant["a" /* default */])(+x0);
  y0 = typeof y0 === "function" ? y0 : (y0 === undefined) ? Object(constant["a" /* default */])(0) : Object(constant["a" /* default */])(+y0);
  y1 = typeof y1 === "function" ? y1 : (y1 === undefined) ? point_y : Object(constant["a" /* default */])(+y1);

  function area(data) {
    var i,
        j,
        k,
        n = (data = Object(array["a" /* default */])(data)).length,
        d,
        defined0 = false,
        buffer,
        x0z = new Array(n),
        y0z = new Array(n);

    if (context == null) output = curve(buffer = Object(d3_path["a" /* path */])());

    for (i = 0; i <= n; ++i) {
      if (!(i < n && defined(d = data[i], i, data)) === defined0) {
        if (defined0 = !defined0) {
          j = i;
          output.areaStart();
          output.lineStart();
        } else {
          output.lineEnd();
          output.lineStart();
          for (k = i - 1; k >= j; --k) {
            output.point(x0z[k], y0z[k]);
          }
          output.lineEnd();
          output.areaEnd();
        }
      }
      if (defined0) {
        x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);
        output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);
      }
    }

    if (buffer) return output = null, buffer + "" || null;
  }

  function arealine() {
    return src_line().defined(defined).curve(curve).context(context);
  }

  area.x = function(_) {
    return arguments.length ? (x0 = typeof _ === "function" ? _ : Object(constant["a" /* default */])(+_), x1 = null, area) : x0;
  };

  area.x0 = function(_) {
    return arguments.length ? (x0 = typeof _ === "function" ? _ : Object(constant["a" /* default */])(+_), area) : x0;
  };

  area.x1 = function(_) {
    return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : Object(constant["a" /* default */])(+_), area) : x1;
  };

  area.y = function(_) {
    return arguments.length ? (y0 = typeof _ === "function" ? _ : Object(constant["a" /* default */])(+_), y1 = null, area) : y0;
  };

  area.y0 = function(_) {
    return arguments.length ? (y0 = typeof _ === "function" ? _ : Object(constant["a" /* default */])(+_), area) : y0;
  };

  area.y1 = function(_) {
    return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : Object(constant["a" /* default */])(+_), area) : y1;
  };

  area.lineX0 =
  area.lineY0 = function() {
    return arealine().x(x0).y(y0);
  };

  area.lineY1 = function() {
    return arealine().x(x0).y(y1);
  };

  area.lineX1 = function() {
    return arealine().x(x1).y(y0);
  };

  area.defined = function(_) {
    return arguments.length ? (defined = typeof _ === "function" ? _ : Object(constant["a" /* default */])(!!_), area) : defined;
  };

  area.curve = function(_) {
    return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;
  };

  area.context = function(_) {
    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;
  };

  return area;
});

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__(25);
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/types.js
var types = __webpack_require__(42);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/DataUtils.js
var DataUtils = __webpack_require__(24);

// CONCATENATED MODULE: ./node_modules/recharts/es6/shape/Curve.js
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }





function _extends() { _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 _extends.apply(this, arguments); }

function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

/**
 * @fileOverview Curve
 */





var CURVE_FACTORIES = {
  curveBasisClosed: basisClosed,
  curveBasisOpen: basisOpen,
  curveBasis: basis,
  curveLinearClosed: linearClosed,
  curveLinear: linear,
  curveMonotoneX: monotoneX,
  curveMonotoneY: monotoneY,
  curveNatural: natural,
  curveStep: step,
  curveStepAfter: stepAfter,
  curveStepBefore: stepBefore
};

var Curve_defined = function defined(p) {
  return p.x === +p.x && p.y === +p.y;
};

var getX = function getX(p) {
  return p.x;
};

var getY = function getY(p) {
  return p.y;
};

var Curve_getCurveFactory = function getCurveFactory(type, layout) {
  if (isFunction_default()(type)) {
    return type;
  }

  var name = "curve".concat(upperFirst_default()(type));

  if (name === 'curveMonotone' && layout) {
    return CURVE_FACTORIES["".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];
  }

  return CURVE_FACTORIES[name] || linear;
};

var Curve_Curve = /*#__PURE__*/function (_PureComponent) {
  _inherits(Curve, _PureComponent);

  var _super = _createSuper(Curve);

  function Curve() {
    _classCallCheck(this, Curve);

    return _super.apply(this, arguments);
  }

  _createClass(Curve, [{
    key: "getPath",
    value:
    /**
     * Calculate the path of curve
     * @return {String} path
     */
    function getPath() {
      var _this$props = this.props,
          type = _this$props.type,
          points = _this$props.points,
          baseLine = _this$props.baseLine,
          layout = _this$props.layout,
          connectNulls = _this$props.connectNulls;
      var curveFactory = Curve_getCurveFactory(type, layout);
      var formatPoints = connectNulls ? points.filter(function (entry) {
        return Curve_defined(entry);
      }) : points;
      var lineFunction;

      if (isArray_default()(baseLine)) {
        var formatBaseLine = connectNulls ? baseLine.filter(function (base) {
          return Curve_defined(base);
        }) : baseLine;
        var areaPoints = formatPoints.map(function (entry, index) {
          return _objectSpread(_objectSpread({}, entry), {}, {
            base: formatBaseLine[index]
          });
        });

        if (layout === 'vertical') {
          lineFunction = src_area().y(getY).x1(getX).x0(function (d) {
            return d.base.x;
          });
        } else {
          lineFunction = src_area().x(getX).y1(getY).y0(function (d) {
            return d.base.y;
          });
        }

        lineFunction.defined(Curve_defined).curve(curveFactory);
        return lineFunction(areaPoints);
      }

      if (layout === 'vertical' && Object(DataUtils["h" /* isNumber */])(baseLine)) {
        lineFunction = src_area().y(getY).x1(getX).x0(baseLine);
      } else if (Object(DataUtils["h" /* isNumber */])(baseLine)) {
        lineFunction = src_area().x(getX).y1(getY).y0(baseLine);
      } else {
        lineFunction = src_line().x(getX).y(getY);
      }

      lineFunction.defined(Curve_defined).curve(curveFactory);
      return lineFunction(formatPoints);
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props2 = this.props,
          className = _this$props2.className,
          points = _this$props2.points,
          path = _this$props2.path,
          pathRef = _this$props2.pathRef;

      if ((!points || !points.length) && !path) {
        return null;
      }

      var realPath = points && points.length ? this.getPath() : path;
      return /*#__PURE__*/react_default.a.createElement("path", _extends({}, Object(types["c" /* filterProps */])(this.props), Object(types["a" /* adaptEventHandlers */])(this.props), {
        className: classnames_default()('recharts-curve', className),
        d: realPath,
        ref: pathRef
      }));
    }
  }]);

  return Curve;
}(react["PureComponent"]);
Curve_Curve.defaultProps = {
  type: 'linear',
  points: [],
  connectNulls: false
};// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "default", function() { return /* reexport */ pages_Reports_Reports; });

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
var classCallCheck = __webpack_require__(9);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js
var createClass = __webpack_require__(10);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__(11);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
var getPrototypeOf = __webpack_require__(12);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
var inherits = __webpack_require__(13);

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);

// EXTERNAL MODULE: ./node_modules/react-document-title/index.js
var react_document_title = __webpack_require__(98);
var react_document_title_default = /*#__PURE__*/__webpack_require__.n(react_document_title);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__(7);

// EXTERNAL MODULE: ./src/js/components/common/HeaderBar/index.js + 1 modules
var HeaderBar = __webpack_require__(251);

// EXTERNAL MODULE: ./src/js/constants/index.js + 1 modules
var constants = __webpack_require__(15);

// EXTERNAL MODULE: ./src/js/components/common/styled.js
var styled = __webpack_require__(35);

// EXTERNAL MODULE: ./node_modules/antd/lib/checkbox/style/index.js
var style = __webpack_require__(134);

// EXTERNAL MODULE: ./node_modules/antd/lib/checkbox/index.js
var lib_checkbox = __webpack_require__(61);
var checkbox_default = /*#__PURE__*/__webpack_require__.n(lib_checkbox);

// EXTERNAL MODULE: ./node_modules/react-intl/lib/index.es.js
var index_es = __webpack_require__(4);

// EXTERNAL MODULE: ./node_modules/emotion-theming/dist/emotion-theming.browser.esm.js
var emotion_theming_browser_esm = __webpack_require__(187);

// EXTERNAL MODULE: ./src/js/constants/classes/index.js
var classes = __webpack_require__(32);

// EXTERNAL MODULE: ./src/js/utils/format-date.js
var format_date = __webpack_require__(168);

// EXTERNAL MODULE: ./src/js/components/common/CollapseBar/index.js + 1 modules
var CollapseBar = __webpack_require__(170);

// EXTERNAL MODULE: ./src/js/components/common/Multiselect/index.js + 2 modules
var Multiselect = __webpack_require__(174);

// EXTERNAL MODULE: ./src/js/constants/orders/index.js + 1 modules
var orders = __webpack_require__(103);

// EXTERNAL MODULE: ./src/js/components/common/TagBar/index.js + 1 modules
var TagBar = __webpack_require__(309);

// EXTERNAL MODULE: ./src/js/components/common/Filters/index.js + 1 modules
var Filters = __webpack_require__(31);

// CONCATENATED MODULE: ./src/js/components/Reports/AdvancedSearch/AdvancedSearch.js
var _dec,_class;// import Dropdown from '../../common/Dropdown';
// import { STATUS_TITLES } from '../../../constants/orders/status-list';
var MultiOption=Multiselect["a" /* default */].Option;// const { Option } = Select;
// const { failed } = STATUS_TITLES;
var dateInputWidth='125px';var inputWidth='70px';var buttonStyle= true?{name:"1mf79ux-buttonStyle",styles:"margin-top:10px;label:buttonStyle;"}:undefined;var _ref= true?{name:"dgblt7-AdvancedSearch",styles:"line-height:22px;label:AdvancedSearch;"}:undefined;var _ref2= true?{name:"dgblt7-AdvancedSearch",styles:"line-height:22px;label:AdvancedSearch;"}:undefined;var AdvancedSearch_AdvancedSearch=(_dec=Object(index_module["b" /* inject */])('ordersStore'),Object(emotion_theming_browser_esm["b" /* withTheme */])(_class=_dec(_class=Object(index_module["c" /* observer */])(_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(AdvancedSearch,_Component);function AdvancedSearch(){Object(classCallCheck["a" /* default */])(this,AdvancedSearch);return Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(AdvancedSearch).apply(this,arguments));}Object(createClass["a" /* default */])(AdvancedSearch,[{key:"render",value:function render(){var ordersStore=this.props.ordersStore;var fetchTableData=ordersStore.fetchTableData,isAdvancedBarOpen=ordersStore.isAdvancedBarOpen,toggleAdvancedBar=ordersStore.toggleAdvancedBar,filterValues=ordersStore.filterValues;var statuses=filterValues.statuses,buyerOrderDateFrom=filterValues.buyerOrderDateFrom,buyerOrderDateTo=filterValues.buyerOrderDateTo,destinationPriceFrom=filterValues.destinationPriceFrom,destinationPriceTo=filterValues.destinationPriceTo,profitFrom=filterValues.profitFrom,profitTo=filterValues.profitTo,estimatedShippingTimeFrom=filterValues.estimatedShippingTimeFrom,estimatedShippingTimeTo=filterValues.estimatedShippingTimeTo,ebayGlobalShippingProgram=filterValues.ebayGlobalShippingProgram,lateShipment=filterValues.lateShipment,setBuyerOrderDateFrom=filterValues.setBuyerOrderDateFrom,setBuyerOrderDateTo=filterValues.setBuyerOrderDateTo,setDestinationPriceFrom=filterValues.setDestinationPriceFrom,setDestinationPriceTo=filterValues.setDestinationPriceTo,setProfitFrom=filterValues.setProfitFrom,setProfitTo=filterValues.setProfitTo,setEstimatedShippingTimeFrom=filterValues.setEstimatedShippingTimeFrom,setEstimatedShippingTimeTo=filterValues.setEstimatedShippingTimeTo,setGlobalShippingProgramm=filterValues.setGlobalShippingProgramm,setLateShipment=filterValues.setLateShipment,selectStatus=filterValues.selectStatus,toggleSellectAllStatuses=filterValues.toggleSellectAllStatuses,orderStatusesObj=filterValues.orderStatusesObj;return Object(core_browser_esm["c" /* jsx */])(react["Fragment"],null,Object(core_browser_esm["c" /* jsx */])(CollapseBar["a" /* default */],{titleId:"common.advancedSearch",toogleBar:toggleAdvancedBar,open:isAdvancedBarOpen,as:"h2",padding:"10px 0",buttonStyle:buttonStyle,titleElements:Object(core_browser_esm["c" /* jsx */])(TagBar["a" /* default */],{filterValues:filterValues,intlSection:"orders",buttonStyle:buttonStyle})},Object(core_browser_esm["c" /* jsx */])(Filters["a" /* BarContainer */],{style:{position:'relative'}},Object(core_browser_esm["c" /* jsx */])("form",{css:Filters["f" /* formStyle */]},Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"common.orderStatus"},Object(core_browser_esm["c" /* jsx */])(Multiselect["a" /* default */],{toggleSellectAllAccounts:function toggleSellectAllAccounts(){return toggleSellectAllStatuses(orders["c" /* statusList */].length);},values:statuses,name:"orderStatus",height:"22px"},orders["c" /* statusList */].map(function(_ref3){var status=_ref3.status,title=_ref3.title;return Object(core_browser_esm["c" /* jsx */])(MultiOption,{value:status,key:status,onClick:function onClick(){return selectStatus(title);},checked:orderStatusesObj[title]!==undefined},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"orders.".concat(status)}));}))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"orders.buyerOrderDateRange"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"date",value:Object(format_date["a" /* decodeDate */])(buyerOrderDateFrom),onChange:setBuyerOrderDateFrom,width:dateInputWidth}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.to"})),Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"date",value:Object(format_date["a" /* decodeDate */])(buyerOrderDateTo),onChange:setBuyerOrderDateTo,width:dateInputWidth}))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"orders.destinationPriceRange"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"number",value:destinationPriceFrom,onChange:setDestinationPriceFrom,width:inputWidth}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},' ',Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.to"})),Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"number",value:destinationPriceTo,onChange:setDestinationPriceTo,width:inputWidth}))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"common.profit"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"number",value:profitFrom,onChange:setProfitFrom,width:inputWidth}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},' ',Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.to"})),Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"number",value:profitTo,onChange:setProfitTo,width:inputWidth}))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"orders.estimatedShippingTimeRange"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"number",value:estimatedShippingTimeFrom,onChange:setEstimatedShippingTimeFrom,width:inputWidth}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},' ',Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.to"})),Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"number",value:estimatedShippingTimeTo,onChange:setEstimatedShippingTimeTo,width:inputWidth}))),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"orders.ebayGlobalShippingProgram"},Object(core_browser_esm["c" /* jsx */])(checkbox_default.a,{checked:ebayGlobalShippingProgram,onChange:setGlobalShippingProgramm,css:_ref})),Object(core_browser_esm["c" /* jsx */])(Filters["e" /* default */],{intlKey:"orders.lateShipment"},Object(core_browser_esm["c" /* jsx */])(checkbox_default.a,{checked:lateShipment,onChange:setLateShipment,css:_ref2}))),Object(core_browser_esm["c" /* jsx */])(Filters["b" /* Button */],{type:"primary",htmlType:"submit",clickHandler:function clickHandler(){return fetchTableData();},cssProps:Filters["g" /* submitButtonStyle */]},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.search"})))));}}]);return AdvancedSearch;}(react["Component"]))||_class)||_class)||_class);/* harmony default export */ var Reports_AdvancedSearch_AdvancedSearch = (AdvancedSearch_AdvancedSearch);
// CONCATENATED MODULE: ./src/js/components/Reports/AdvancedSearch/index.js

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
var assertThisInitialized = __webpack_require__(16);

// EXTERNAL MODULE: ./src/js/components/common/Filters/Filter.js
var Filter = __webpack_require__(167);

// EXTERNAL MODULE: ./src/js/components/common/HeaderBar/SelectAccountsPanel.js
var SelectAccountsPanel = __webpack_require__(403);

// EXTERNAL MODULE: ./src/js/components/common/Button/index.js
var Button = __webpack_require__(30);

// EXTERNAL MODULE: ./src/js/components/common/IconSvg/index.js
var IconSvg = __webpack_require__(14);

// EXTERNAL MODULE: ./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js + 3 modules
var styled_base_browser_esm = __webpack_require__(6);

// CONCATENATED MODULE: ./src/js/components/Reports/styled.js
var ReportsRow=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e11kzk2k0",label:"ReportsRow"})( true?{name:"1rdgd3v",styles:"width:100%;display:flex;margin-bottom:12px;"}:undefined);var ReportsTitle=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e11kzk2k1",label:"ReportsTitle"})(classes["a" /* text1 */]," align-self:center;"+( true?"":undefined));var ReportsFiltersWrapper=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e11kzk2k2",label:"ReportsFiltersWrapper"})( true?{name:"vmxavl",styles:"width:100%;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 20px;>div{margin-bottom:0;>label{line-height:unset;margin-bottom:5px;}}"}:undefined);
// CONCATENATED MODULE: ./src/js/components/Reports/SalesReport/SalesReport.js
var SalesReport_dec,SalesReport_class;var SalesReport_ref= true?{name:"1emjd6k-SalesReport",styles:"min-width:300px;display:flex;label:SalesReport;"}:undefined;var SalesReport_SalesReport=(SalesReport_dec=Object(index_module["b" /* inject */])('ordersStore'),SalesReport_dec(SalesReport_class=Object(index_module["c" /* observer */])(SalesReport_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(SalesReport,_Component);function SalesReport(props){var _this;Object(classCallCheck["a" /* default */])(this,SalesReport);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(SalesReport).call(this,props));_this.genRep=_this.genRep.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));return _this;}Object(createClass["a" /* default */])(SalesReport,[{key:"genRep",value:function genRep(){var generateReport=this.props.ordersStore.generateReport;generateReport();}},{key:"render",value:function render(){var _this$props$ordersSto=this.props.ordersStore,accountsBar=_this$props$ordersSto.accountsBar,_this$props$ordersSto2=_this$props$ordersSto.reportsFilters,setToDate=_this$props$ordersSto2.setToDate,setFromDate=_this$props$ordersSto2.setFromDate,toDate=_this$props$ordersSto2.toDate,fromDate=_this$props$ordersSto2.fromDate;return Object(core_browser_esm["c" /* jsx */])(ReportsRow,null,Object(core_browser_esm["c" /* jsx */])(styled["u" /* TableWrapper */],{style:{height:'80px',display:'flex',width:'160px',justifyContent:'center',marginRight:'10px'}},Object(core_browser_esm["c" /* jsx */])(ReportsTitle,null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"reports.salesReport",defaul:"Sales Report"}))),Object(core_browser_esm["c" /* jsx */])(styled["u" /* TableWrapper */],{style:{height:'80px',width:'calc(100% - 160px)',zIndex:11}},Object(core_browser_esm["c" /* jsx */])(ReportsFiltersWrapper,null,Object(core_browser_esm["c" /* jsx */])(Filter["a" /* default */],{intlKey:"orders.buyerOrderDateRange"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"date",onChange:setFromDate,width:"150px"}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.to"})),Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"date",onChange:setToDate,width:"150px"}))),Object(core_browser_esm["c" /* jsx */])(Filter["a" /* default */],{intlKey:"API.selectDestination"},Object(core_browser_esm["c" /* jsx */])("div",{css:SalesReport_ref},Object(core_browser_esm["c" /* jsx */])(SelectAccountsPanel["a" /* default */],{accountsProps:accountsBar,small:true}))),Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:this.genRep,disabled:!toDate||!fromDate||!accountsBar.selectedSellerAccounts.length,cssProps:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("height:40px;border-radius:20px;font-size:",constants["b" /* fontSize */].medium,";label:SalesReport;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"reports.generate",defaultMessage:"Generate Report"}),Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"copy",size:20,marginLeft:"10px"})))));}}]);return SalesReport;}(react["Component"]))||SalesReport_class)||SalesReport_class);/* harmony default export */ var Reports_SalesReport_SalesReport = (SalesReport_SalesReport);
// CONCATENATED MODULE: ./src/js/components/Reports/SalesReport/index.js

// EXTERNAL MODULE: ./node_modules/moment/moment.js
var moment = __webpack_require__(23);
var moment_default = /*#__PURE__*/__webpack_require__.n(moment);

// EXTERNAL MODULE: ./src/js/utils/downloadFile.js
var downloadFile = __webpack_require__(139);

// EXTERNAL MODULE: ./src/js/components/common/spinner/index.js + 1 modules
var spinner = __webpack_require__(74);

// EXTERNAL MODULE: ./src/js/components/common/Dropdown/index.js + 1 modules
var Dropdown = __webpack_require__(47);

// CONCATENATED MODULE: ./src/js/components/Reports/BalanceReport/TransactionTypeSelect.js
var TransactionTypeSelect_class;var height='32px';var width='413px';var sHeight='22px';var Option=Dropdown["a" /* default */].Option;var types=[{name:'All',value:''},{name:'Withdraw',value:'WITHDRAW'},{name:'Refund',value:'REFUND'},{name:'Refund Manual',value:'REFUND_MANUAL'},{name:'Deposit',value:'DEPOSIT'},{name:'Deposit Manual',value:'DEPOSIT_MANUAL'}];var TransactionTypeSelect_TransactionTypeSelect=Object(index_module["c" /* observer */])(TransactionTypeSelect_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(TransactionTypeSelect,_Component);function TransactionTypeSelect(){Object(classCallCheck["a" /* default */])(this,TransactionTypeSelect);return Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(TransactionTypeSelect).apply(this,arguments));}Object(createClass["a" /* default */])(TransactionTypeSelect,[{key:"render",value:function render(){var _this$props=this.props,_this$props$small=_this$props.small,small=_this$props$small===void 0?false:_this$props$small,transactionType=_this$props.transactionType,setType=_this$props.setType;return Object(core_browser_esm["c" /* jsx */])(react["Fragment"],null,Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{fontSize:"14px",height:small?sHeight:height,width:width,value:transactionType,onChange:function onChange(e){return setType(e);}},types.map(function(type){return Object(core_browser_esm["c" /* jsx */])(Option,{key:type.value,value:type.value},type.name);})));}}]);return TransactionTypeSelect;}(react["Component"]))||TransactionTypeSelect_class;/* harmony default export */ var BalanceReport_TransactionTypeSelect = (TransactionTypeSelect_TransactionTypeSelect);
// CONCATENATED MODULE: ./src/js/components/Reports/BalanceReport/BalanceReport.js
var BalanceReport_dec,BalanceReport_class;var BalanceReport_BalanceReport=(BalanceReport_dec=Object(index_module["b" /* inject */])('settingsStore'),BalanceReport_dec(BalanceReport_class=Object(index_module["c" /* observer */])(BalanceReport_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(BalanceReport,_Component);function BalanceReport(props){var _this;Object(classCallCheck["a" /* default */])(this,BalanceReport);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(BalanceReport).call(this,props));_this.state={spinnerShown:false};_this.genRep=_this.genRep.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));return _this;}Object(createClass["a" /* default */])(BalanceReport,[{key:"genRep",value:function genRep(){var _this2=this;var fetchTransactions=this.props.settingsStore.balance.fetchTransactions;this.setState({spinnerShown:true});fetchTransactions(true).then(function(resp){if(resp){var reportsData=_this2.props.settingsStore.balance.reportsData;Object(downloadFile["a" /* default */])(reportsData,"Balance report ".concat(moment_default()().format('MMM D YYYY HH:mm'),".csv"),'text/csv');}_this2.setState({spinnerShown:false});});}},{key:"render",value:function render(){var _this$props$settingsS=this.props.settingsStore.balance.reportsFilters,setToDate=_this$props$settingsS.setToDate,setFromDate=_this$props$settingsS.setFromDate,toDate=_this$props$settingsS.toDate,fromDate=_this$props$settingsS.fromDate,transactionType=_this$props$settingsS.transactionType,setType=_this$props$settingsS.setType;var spinnerShown=this.state.spinnerShown;return Object(core_browser_esm["c" /* jsx */])(ReportsRow,null,Object(core_browser_esm["c" /* jsx */])(styled["u" /* TableWrapper */],{style:{height:'80px',display:'flex',width:'160px',justifyContent:'center',marginRight:'10px'}},Object(core_browser_esm["c" /* jsx */])(ReportsTitle,null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"reports.balanceReport",defaul:"Balance Report"}))),Object(core_browser_esm["c" /* jsx */])(styled["u" /* TableWrapper */],{style:{height:'80px',width:'calc(100% - 160px)'}},Object(core_browser_esm["c" /* jsx */])(ReportsFiltersWrapper,null,Object(core_browser_esm["c" /* jsx */])(Filter["a" /* default */],{intlKey:"balance.transactionsDateRange"},Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"date",onChange:setFromDate,width:"150px"}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.to"})),Object(core_browser_esm["c" /* jsx */])(Filters["c" /* Input */],{type:"date",onChange:setToDate,width:"150px"}))),Object(core_browser_esm["c" /* jsx */])(Filter["a" /* default */],{intlKey:"balance.transactionType"},Object(core_browser_esm["c" /* jsx */])(BalanceReport_TransactionTypeSelect,{small:true,setType:setType,transactionType:transactionType})),Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:this.genRep,disabled:!toDate||!fromDate||spinnerShown,cssProps:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("height:40px;border-radius:20px;font-size:",constants["b" /* fontSize */].medium,";label:BalanceReport;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"reports.generate",defaultMessage:"Generate Report"}),Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"copy",size:20,marginLeft:"10px"})))),spinnerShown&&Object(core_browser_esm["c" /* jsx */])(spinner["a" /* default */],null));}}]);return BalanceReport;}(react["Component"]))||BalanceReport_class)||BalanceReport_class);/* harmony default export */ var Reports_BalanceReport_BalanceReport = (BalanceReport_BalanceReport);
// CONCATENATED MODULE: ./src/js/components/Reports/BalanceReport/index.js

// CONCATENATED MODULE: ./src/js/components/Reports/index.js

// CONCATENATED MODULE: ./src/js/pages/Reports/Reports.js
var Reports_dec,_dec2,Reports_class;var Reports_Reports=(Reports_dec=Object(index_module["b" /* inject */])('sessionStore'),_dec2=Object(index_module["b" /* inject */])('settingsStore'),Reports_dec(Reports_class=_dec2(Reports_class=Object(index_module["c" /* observer */])(Reports_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(Reports,_Component);function Reports(){Object(classCallCheck["a" /* default */])(this,Reports);return Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(Reports).apply(this,arguments));}Object(createClass["a" /* default */])(Reports,[{key:"render",value:function render(){var isBifmUser=this.props.sessionStore.isBifmUser;return Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])(react_document_title_default.a,{title:"".concat(constants["d" /* title */]," | Reports")},Object(core_browser_esm["c" /* jsx */])(styled["j" /* PageContainer */],null,Object(core_browser_esm["c" /* jsx */])(HeaderBar["a" /* default */],{headingId:"common.reports"}),!isBifmUser&&Object(core_browser_esm["c" /* jsx */])(Reports_SalesReport_SalesReport,null),Object(core_browser_esm["c" /* jsx */])(Reports_BalanceReport_BalanceReport,null))));}}]);return Reports;}(react["Component"]))||Reports_class)||Reports_class)||Reports_class);/* harmony default export */ var pages_Reports_Reports = (Reports_Reports);
// CONCATENATED MODULE: ./src/js/pages/Reports/index.js

// EXPORTS
__webpack_require__.d(__webpack_exports__, "w", function() { return /* binding */ getValueByDataKey; });
__webpack_require__.d(__webpack_exports__, "m", function() { return /* binding */ getDomainOfDataByKey; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ ChartUtils_calculateActiveTickIndex; });
__webpack_require__.d(__webpack_exports__, "q", function() { return /* binding */ getMainColorOfGraphicItem; });
__webpack_require__.d(__webpack_exports__, "p", function() { return /* binding */ ChartUtils_getLegendProps; });
__webpack_require__.d(__webpack_exports__, "h", function() { return /* binding */ ChartUtils_getBarSizeList; });
__webpack_require__.d(__webpack_exports__, "g", function() { return /* binding */ ChartUtils_getBarPosition; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ ChartUtils_appendOffsetOfLegend; });
__webpack_require__.d(__webpack_exports__, "z", function() { return /* binding */ ChartUtils_parseErrorBarsOfAxis; });
__webpack_require__.d(__webpack_exports__, "n", function() { return /* binding */ getDomainOfItemsWithSameAxis; });
__webpack_require__.d(__webpack_exports__, "x", function() { return /* binding */ isCategoricalAxis; });
__webpack_require__.d(__webpack_exports__, "l", function() { return /* binding */ getCoordinatesOfGrid; });
__webpack_require__.d(__webpack_exports__, "t", function() { return /* binding */ ChartUtils_getTicksOfAxis; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* binding */ ChartUtils_combineEventHandlers; });
__webpack_require__.d(__webpack_exports__, "A", function() { return /* binding */ ChartUtils_parseScale; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ checkDomainOfScale; });
__webpack_require__.d(__webpack_exports__, "e", function() { return /* binding */ findPositionOfBar; });
__webpack_require__.d(__webpack_exports__, "C", function() { return /* binding */ ChartUtils_truncateByDomain; });
__webpack_require__.d(__webpack_exports__, "r", function() { return /* binding */ ChartUtils_getStackGroupsByAxisId; });
__webpack_require__.d(__webpack_exports__, "u", function() { return /* binding */ ChartUtils_getTicksOfScale; });
__webpack_require__.d(__webpack_exports__, "k", function() { return /* binding */ ChartUtils_getCateCoordinateOfLine; });
__webpack_require__.d(__webpack_exports__, "j", function() { return /* binding */ ChartUtils_getCateCoordinateOfBar; });
__webpack_require__.d(__webpack_exports__, "i", function() { return /* binding */ getBaseValueOfBar; });
__webpack_require__.d(__webpack_exports__, "s", function() { return /* binding */ ChartUtils_getStackedDataOfItem; });
__webpack_require__.d(__webpack_exports__, "o", function() { return /* binding */ getDomainOfStackGroups; });
__webpack_require__.d(__webpack_exports__, "B", function() { return /* binding */ ChartUtils_parseSpecifiedDomain; });
__webpack_require__.d(__webpack_exports__, "f", function() { return /* binding */ ChartUtils_getBandSizeOfAxis; });
__webpack_require__.d(__webpack_exports__, "y", function() { return /* binding */ ChartUtils_parseDomainOfCategoryAxis; });
__webpack_require__.d(__webpack_exports__, "v", function() { return /* binding */ ChartUtils_getTooltipItem; });

// UNUSED EXPORTS: getDomainOfErrorBars, offsetSign, offsetPositive, getStackedData, calculateDomainOfTicks, MIN_VALUE_REG, MAX_VALUE_REG

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isEqual.js
var isEqual = __webpack_require__(172);
var isEqual_default = /*#__PURE__*/__webpack_require__.n(isEqual);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/sortBy.js
var sortBy = __webpack_require__(314);
var sortBy_default = /*#__PURE__*/__webpack_require__.n(sortBy);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isNaN.js
var lodash_isNaN = __webpack_require__(261);
var isNaN_default = /*#__PURE__*/__webpack_require__.n(lodash_isNaN);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/upperFirst.js
var upperFirst = __webpack_require__(286);
var upperFirst_default = /*#__PURE__*/__webpack_require__.n(upperFirst);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isString.js
var isString = __webpack_require__(262);
var isString_default = /*#__PURE__*/__webpack_require__.n(isString);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isArray.js
var isArray = __webpack_require__(71);
var isArray_default = /*#__PURE__*/__webpack_require__.n(isArray);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/max.js
var lodash_max = __webpack_require__(230);
var max_default = /*#__PURE__*/__webpack_require__.n(lodash_max);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/min.js
var lodash_min = __webpack_require__(386);
var min_default = /*#__PURE__*/__webpack_require__.n(lodash_min);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/flatMap.js
var flatMap = __webpack_require__(657);
var flatMap_default = /*#__PURE__*/__webpack_require__.n(flatMap);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isFunction.js
var isFunction = __webpack_require__(51);
var isFunction_default = /*#__PURE__*/__webpack_require__.n(isFunction);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/get.js
var get = __webpack_require__(113);
var get_default = /*#__PURE__*/__webpack_require__.n(get);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isNil.js
var isNil = __webpack_require__(48);
var isNil_default = /*#__PURE__*/__webpack_require__.n(isNil);

// EXTERNAL MODULE: ./node_modules/decimal.js-light/decimal.js
var decimal = __webpack_require__(97);
var decimal_default = /*#__PURE__*/__webpack_require__.n(decimal);

// CONCATENATED MODULE: ./node_modules/recharts-scale/es6/util/utils.js
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }

function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _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 _arrayLikeToArray(o, minLen); }

function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }

function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }

function _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; }

var identity = function identity(i) {
  return i;
};

var PLACE_HOLDER = {
  '@@functional/placeholder': true
};

var isPlaceHolder = function isPlaceHolder(val) {
  return val === PLACE_HOLDER;
};

var curry0 = function curry0(fn) {
  return function _curried() {
    if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {
      return _curried;
    }

    return fn.apply(void 0, arguments);
  };
};

var curryN = function curryN(n, fn) {
  if (n === 1) {
    return fn;
  }

  return curry0(function () {
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    var argsLength = args.filter(function (arg) {
      return arg !== PLACE_HOLDER;
    }).length;

    if (argsLength >= n) {
      return fn.apply(void 0, args);
    }

    return curryN(n - argsLength, curry0(function () {
      for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
        restArgs[_key2] = arguments[_key2];
      }

      var newArgs = args.map(function (arg) {
        return isPlaceHolder(arg) ? restArgs.shift() : arg;
      });
      return fn.apply(void 0, _toConsumableArray(newArgs).concat(restArgs));
    }));
  });
};

var curry = function curry(fn) {
  return curryN(fn.length, fn);
};
var utils_range = function range(begin, end) {
  var arr = [];

  for (var i = begin; i < end; ++i) {
    arr[i - begin] = i;
  }

  return arr;
};
var map = curry(function (fn, arr) {
  if (Array.isArray(arr)) {
    return arr.map(fn);
  }

  return Object.keys(arr).map(function (key) {
    return arr[key];
  }).map(fn);
});
var compose = function compose() {
  for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
    args[_key3] = arguments[_key3];
  }

  if (!args.length) {
    return identity;
  }

  var fns = args.reverse(); // first function can receive multiply arguments

  var firstFn = fns[0];
  var tailsFn = fns.slice(1);
  return function () {
    return tailsFn.reduce(function (res, fn) {
      return fn(res);
    }, firstFn.apply(void 0, arguments));
  };
};
var reverse = function reverse(arr) {
  if (Array.isArray(arr)) {
    return arr.reverse();
  } // can be string


  return arr.split('').reverse.join('');
};
var memoize = function memoize(fn) {
  var lastArgs = null;
  var lastResult = null;
  return function () {
    for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
      args[_key4] = arguments[_key4];
    }

    if (lastArgs && args.every(function (val, i) {
      return val === lastArgs[i];
    })) {
      return lastResult;
    }

    lastArgs = args;
    lastResult = fn.apply(void 0, args);
    return lastResult;
  };
};
// CONCATENATED MODULE: ./node_modules/recharts-scale/es6/util/arithmetic.js
/**
 * @fileOverview 一些公用的运算方法
 * @author xile611
 * @date 2015-09-17
 */


/**
 * 获取数值的位数
 * 其中绝对值属于区间[0.1, 1)， 得到的值为0
 * 绝对值属于区间[0.01, 0.1)，得到的位数为 -1
 * 绝对值属于区间[0.001, 0.01)，得到的位数为 -2
 *
 * @param  {Number} value 数值
 * @return {Integer} 位数
 */

function getDigitCount(value) {
  var result;

  if (value === 0) {
    result = 1;
  } else {
    result = Math.floor(new decimal_default.a(value).abs().log(10).toNumber()) + 1;
  }

  return result;
}
/**
 * 按照固定的步长获取[start, end)这个区间的数据
 * 并且需要处理js计算精度的问题
 *
 * @param  {Decimal} start 起点
 * @param  {Decimal} end   终点，不包含该值
 * @param  {Decimal} step  步长
 * @return {Array}         若干数值
 */


function rangeStep(start, end, step) {
  var num = new decimal_default.a(start);
  var i = 0;
  var result = []; // magic number to prevent infinite loop

  while (num.lt(end) && i < 100000) {
    result.push(num.toNumber());
    num = num.add(step);
    i++;
  }

  return result;
}
/**
 * 对数值进行线性插值
 *
 * @param  {Number} a  定义域的极点
 * @param  {Number} b  定义域的极点
 * @param  {Number} t  [0, 1]内的某个值
 * @return {Number}    定义域内的某个值
 */


var interpolateNumber = curry(function (a, b, t) {
  var newA = +a;
  var newB = +b;
  return newA + t * (newB - newA);
});
/**
 * 线性插值的逆运算
 *
 * @param  {Number} a 定义域的极点
 * @param  {Number} b 定义域的极点
 * @param  {Number} x 可以认为是插值后的一个输出值
 * @return {Number}   当x在 a ~ b这个范围内时，返回值属于[0, 1]
 */

var uninterpolateNumber = curry(function (a, b, x) {
  var diff = b - +a;
  diff = diff || Infinity;
  return (x - a) / diff;
});
/**
 * 线性插值的逆运算，并且有截断的操作
 *
 * @param  {Number} a 定义域的极点
 * @param  {Number} b 定义域的极点
 * @param  {Number} x 可以认为是插值后的一个输出值
 * @return {Number}   当x在 a ~ b这个区间内时，返回值属于[0, 1]，
 * 当x不在 a ~ b这个区间时，会截断到 a ~ b 这个区间
 */

var uninterpolateTruncation = curry(function (a, b, x) {
  var diff = b - +a;
  diff = diff || Infinity;
  return Math.max(0, Math.min(1, (x - a) / diff));
});
/* harmony default export */ var arithmetic = ({
  rangeStep: rangeStep,
  getDigitCount: getDigitCount,
  interpolateNumber: interpolateNumber,
  uninterpolateNumber: uninterpolateNumber,
  uninterpolateTruncation: uninterpolateTruncation
});
// CONCATENATED MODULE: ./node_modules/recharts-scale/es6/getNiceTickValues.js
function getNiceTickValues_toConsumableArray(arr) { return getNiceTickValues_arrayWithoutHoles(arr) || getNiceTickValues_iterableToArray(arr) || getNiceTickValues_unsupportedIterableToArray(arr) || getNiceTickValues_nonIterableSpread(); }

function getNiceTickValues_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function getNiceTickValues_iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }

function getNiceTickValues_arrayWithoutHoles(arr) { if (Array.isArray(arr)) return getNiceTickValues_arrayLikeToArray(arr); }

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || getNiceTickValues_unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _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."); }

function getNiceTickValues_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return getNiceTickValues_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 getNiceTickValues_arrayLikeToArray(o, minLen); }

function getNiceTickValues_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; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

/**
 * @fileOverview calculate tick values of scale
 * @author xile611, arcthur
 * @date 2015-09-17
 */



/**
 * Calculate a interval of a minimum value and a maximum value
 *
 * @param  {Number} min       The minimum value
 * @param  {Number} max       The maximum value
 * @return {Array} An interval
 */

function getValidInterval(_ref) {
  var _ref2 = _slicedToArray(_ref, 2),
      min = _ref2[0],
      max = _ref2[1];

  var validMin = min,
      validMax = max; // exchange

  if (min > max) {
    validMin = max;
    validMax = min;
  }

  return [validMin, validMax];
}
/**
 * Calculate the step which is easy to understand between ticks, like 10, 20, 25
 *
 * @param  {Decimal} roughStep        The rough step calculated by deviding the
 * difference by the tickCount
 * @param  {Boolean} allowDecimals    Allow the ticks to be decimals or not
 * @param  {Integer} correctionFactor A correction factor
 * @return {Decimal} The step which is easy to understand between two ticks
 */


function getFormatStep(roughStep, allowDecimals, correctionFactor) {
  if (roughStep.lte(0)) {
    return new decimal_default.a(0);
  }

  var digitCount = arithmetic.getDigitCount(roughStep.toNumber()); // The ratio between the rough step and the smallest number which has a bigger
  // order of magnitudes than the rough step

  var digitCountValue = new decimal_default.a(10).pow(digitCount);
  var stepRatio = roughStep.div(digitCountValue); // When an integer and a float multiplied, the accuracy of result may be wrong

  var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;
  var amendStepRatio = new decimal_default.a(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);
  var formatStep = amendStepRatio.mul(digitCountValue);
  return allowDecimals ? formatStep : new decimal_default.a(Math.ceil(formatStep));
}
/**
 * calculate the ticks when the minimum value equals to the maximum value
 *
 * @param  {Number}  value         The minimum valuue which is also the maximum value
 * @param  {Integer} tickCount     The count of ticks
 * @param  {Boolean} allowDecimals Allow the ticks to be decimals or not
 * @return {Array}                 ticks
 */


function getTickOfSingleValue(value, tickCount, allowDecimals) {
  var step = 1; // calculate the middle value of ticks

  var middle = new decimal_default.a(value);

  if (!middle.isint() && allowDecimals) {
    var absVal = Math.abs(value);

    if (absVal < 1) {
      // The step should be a float number when the difference is smaller than 1
      step = new decimal_default.a(10).pow(arithmetic.getDigitCount(value) - 1);
      middle = new decimal_default.a(Math.floor(middle.div(step).toNumber())).mul(step);
    } else if (absVal > 1) {
      // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1
      middle = new decimal_default.a(Math.floor(value));
    }
  } else if (value === 0) {
    middle = new decimal_default.a(Math.floor((tickCount - 1) / 2));
  } else if (!allowDecimals) {
    middle = new decimal_default.a(Math.floor(value));
  }

  var middleIndex = Math.floor((tickCount - 1) / 2);
  var fn = compose(map(function (n) {
    return middle.add(new decimal_default.a(n - middleIndex).mul(step)).toNumber();
  }), utils_range);
  return fn(0, tickCount);
}
/**
 * Calculate the step
 *
 * @param  {Number}  min              The minimum value of an interval
 * @param  {Number}  max              The maximum value of an interval
 * @param  {Integer} tickCount        The count of ticks
 * @param  {Boolean} allowDecimals    Allow the ticks to be decimals or not
 * @param  {Number}  correctionFactor A correction factor
 * @return {Object}  The step, minimum value of ticks, maximum value of ticks
 */


function calculateStep(min, max, tickCount, allowDecimals) {
  var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;

  // dirty hack (for recharts' test)
  if (!Number.isFinite((max - min) / (tickCount - 1))) {
    return {
      step: new decimal_default.a(0),
      tickMin: new decimal_default.a(0),
      tickMax: new decimal_default.a(0)
    };
  } // The step which is easy to understand between two ticks


  var step = getFormatStep(new decimal_default.a(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor); // A medial value of ticks

  var middle; // When 0 is inside the interval, 0 should be a tick

  if (min <= 0 && max >= 0) {
    middle = new decimal_default.a(0);
  } else {
    // calculate the middle value
    middle = new decimal_default.a(min).add(max).div(2); // minus modulo value

    middle = middle.sub(new decimal_default.a(middle).mod(step));
  }

  var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());
  var upCount = Math.ceil(new decimal_default.a(max).sub(middle).div(step).toNumber());
  var scaleCount = belowCount + upCount + 1;

  if (scaleCount > tickCount) {
    // When more ticks need to cover the interval, step should be bigger.
    return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);
  }

  if (scaleCount < tickCount) {
    // When less ticks can cover the interval, we should add some additional ticks
    upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;
    belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);
  }

  return {
    step: step,
    tickMin: middle.sub(new decimal_default.a(belowCount).mul(step)),
    tickMax: middle.add(new decimal_default.a(upCount).mul(step))
  };
}
/**
 * Calculate the ticks of an interval, the count of ticks will be guraranteed
 *
 * @param  {Number}  min, max      min: The minimum value, max: The maximum value
 * @param  {Integer} tickCount     The count of ticks
 * @param  {Boolean} allowDecimals Allow the ticks to be decimals or not
 * @return {Array}   ticks
 */


function getNiceTickValuesFn(_ref3) {
  var _ref4 = _slicedToArray(_ref3, 2),
      min = _ref4[0],
      max = _ref4[1];

  var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;
  var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
  // More than two ticks should be return
  var count = Math.max(tickCount, 2);

  var _getValidInterval = getValidInterval([min, max]),
      _getValidInterval2 = _slicedToArray(_getValidInterval, 2),
      cormin = _getValidInterval2[0],
      cormax = _getValidInterval2[1];

  if (cormin === -Infinity || cormax === Infinity) {
    var _values = cormax === Infinity ? [cormin].concat(getNiceTickValues_toConsumableArray(utils_range(0, tickCount - 1).map(function () {
      return Infinity;
    }))) : [].concat(getNiceTickValues_toConsumableArray(utils_range(0, tickCount - 1).map(function () {
      return -Infinity;
    })), [cormax]);

    return min > max ? reverse(_values) : _values;
  }

  if (cormin === cormax) {
    return getTickOfSingleValue(cormin, tickCount, allowDecimals);
  } // Get the step between two ticks


  var _calculateStep = calculateStep(cormin, cormax, count, allowDecimals),
      step = _calculateStep.step,
      tickMin = _calculateStep.tickMin,
      tickMax = _calculateStep.tickMax;

  var values = arithmetic.rangeStep(tickMin, tickMax.add(new decimal_default.a(0.1).mul(step)), step);
  return min > max ? reverse(values) : values;
}
/**
 * Calculate the ticks of an interval, the count of ticks won't be guraranteed
 *
 * @param  {Number}  min, max      min: The minimum value, max: The maximum value
 * @param  {Integer} tickCount     The count of ticks
 * @param  {Boolean} allowDecimals Allow the ticks to be decimals or not
 * @return {Array}   ticks
 */


function getTickValuesFn(_ref5) {
  var _ref6 = _slicedToArray(_ref5, 2),
      min = _ref6[0],
      max = _ref6[1];

  var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;
  var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
  // More than two ticks should be return
  var count = Math.max(tickCount, 2);

  var _getValidInterval3 = getValidInterval([min, max]),
      _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),
      cormin = _getValidInterval4[0],
      cormax = _getValidInterval4[1];

  if (cormin === -Infinity || cormax === Infinity) {
    return [min, max];
  }

  if (cormin === cormax) {
    return getTickOfSingleValue(cormin, tickCount, allowDecimals);
  }

  var step = getFormatStep(new decimal_default.a(cormax).sub(cormin).div(count - 1), allowDecimals, 0);
  var fn = compose(map(function (n) {
    return new decimal_default.a(cormin).add(new decimal_default.a(n).mul(step)).toNumber();
  }), utils_range);
  var values = fn(0, count).filter(function (entry) {
    return entry >= cormin && entry <= cormax;
  });
  return min > max ? reverse(values) : values;
}
/**
 * Calculate the ticks of an interval, the count of ticks won't be guraranteed,
 * but the domain will be guaranteed
 *
 * @param  {Number}  min, max      min: The minimum value, max: The maximum value
 * @param  {Integer} tickCount     The count of ticks
 * @param  {Boolean} allowDecimals Allow the ticks to be decimals or not
 * @return {Array}   ticks
 */


function getTickValuesFixedDomainFn(_ref7, tickCount) {
  var _ref8 = _slicedToArray(_ref7, 2),
      min = _ref8[0],
      max = _ref8[1];

  var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;

  // More than two ticks should be return
  var _getValidInterval5 = getValidInterval([min, max]),
      _getValidInterval6 = _slicedToArray(_getValidInterval5, 2),
      cormin = _getValidInterval6[0],
      cormax = _getValidInterval6[1];

  if (cormin === -Infinity || cormax === Infinity) {
    return [min, max];
  }

  if (cormin === cormax) {
    return [cormin];
  }

  var count = Math.max(tickCount, 2);
  var step = getFormatStep(new decimal_default.a(cormax).sub(cormin).div(count - 1), allowDecimals, 0);
  var values = [].concat(getNiceTickValues_toConsumableArray(arithmetic.rangeStep(new decimal_default.a(cormin), new decimal_default.a(cormax).sub(new decimal_default.a(0.99).mul(step)), step)), [cormax]);
  return min > max ? reverse(values) : values;
}

var getNiceTickValues = memoize(getNiceTickValuesFn);
var getTickValues = memoize(getTickValuesFn);
var getTickValuesFixedDomain = memoize(getTickValuesFixedDomainFn);
// CONCATENATED MODULE: ./node_modules/recharts-scale/es6/index.js

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-scale/src/band.js + 1 modules
var band = __webpack_require__(502);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-scale/src/linear.js
var linear = __webpack_require__(144);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-scale/src/index.js + 36 modules
var src = __webpack_require__(419);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/offset/none.js
/* harmony default export */ var none = (function(series, order) {
  if (!((n = series.length) > 1)) return;
  for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {
    s0 = s1, s1 = series[order[i]];
    for (j = 0; j < m; ++j) {
      s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];
    }
  }
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/offset/expand.js


/* harmony default export */ var expand = (function(series, order) {
  if (!((n = series.length) > 0)) return;
  for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {
    for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;
    if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;
  }
  none(series, order);
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/offset/silhouette.js


/* harmony default export */ var silhouette = (function(series, order) {
  if (!((n = series.length) > 0)) return;
  for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {
    for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;
    s0[j][1] += s0[j][0] = -y / 2;
  }
  none(series, order);
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/offset/wiggle.js


/* harmony default export */ var wiggle = (function(series, order) {
  if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;
  for (var y = 0, j = 1, s0, m, n; j < m; ++j) {
    for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {
      var si = series[order[i]],
          sij0 = si[j][1] || 0,
          sij1 = si[j - 1][1] || 0,
          s3 = (sij0 - sij1) / 2;
      for (var k = 0; k < i; ++k) {
        var sk = series[order[k]],
            skj0 = sk[j][1] || 0,
            skj1 = sk[j - 1][1] || 0;
        s3 += skj0 - skj1;
      }
      s1 += sij0, s2 += s3 * sij0;
    }
    s0[j - 1][1] += s0[j - 1][0] = y;
    if (s1) y -= s2 / s1;
  }
  s0[j - 1][1] += s0[j - 1][0] = y;
  none(series, order);
});

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-shape/src/array.js
var array = __webpack_require__(316);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-shape/src/constant.js
var constant = __webpack_require__(105);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/order/none.js
/* harmony default export */ var order_none = (function(series) {
  var n = series.length, o = new Array(n);
  while (--n >= 0) o[n] = n;
  return o;
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/stack.js





function stackValue(d, key) {
  return d[key];
}

function stackSeries(key) {
  const series = [];
  series.key = key;
  return series;
}

/* harmony default export */ var src_stack = (function() {
  var keys = Object(constant["a" /* default */])([]),
      order = order_none,
      offset = none,
      value = stackValue;

  function stack(data) {
    var sz = Array.from(keys.apply(this, arguments), stackSeries),
        i, n = sz.length, j = -1,
        oz;

    for (const d of data) {
      for (i = 0, ++j; i < n; ++i) {
        (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;
      }
    }

    for (i = 0, oz = Object(array["a" /* default */])(order(sz)); i < n; ++i) {
      sz[oz[i]].index = i;
    }

    offset(sz, oz);
    return sz;
  }

  stack.keys = function(_) {
    return arguments.length ? (keys = typeof _ === "function" ? _ : Object(constant["a" /* default */])(Array.from(_)), stack) : keys;
  };

  stack.value = function(_) {
    return arguments.length ? (value = typeof _ === "function" ? _ : Object(constant["a" /* default */])(+_), stack) : value;
  };

  stack.order = function(_) {
    return arguments.length ? (order = _ == null ? order_none : typeof _ === "function" ? _ : Object(constant["a" /* default */])(Array.from(_)), stack) : order;
  };

  stack.offset = function(_) {
    return arguments.length ? (offset = _ == null ? none : _, stack) : offset;
  };

  return stack;
});

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/DataUtils.js
var DataUtils = __webpack_require__(24);

// EXTERNAL MODULE: ./node_modules/recharts/es6/component/Legend.js + 1 modules
var Legend = __webpack_require__(382);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/ReactUtils.js
var ReactUtils = __webpack_require__(68);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/types.js
var types = __webpack_require__(42);

// CONCATENATED MODULE: ./node_modules/recharts/es6/util/ChartUtils.js













function ChartUtils_toConsumableArray(arr) { return ChartUtils_arrayWithoutHoles(arr) || ChartUtils_iterableToArray(arr) || ChartUtils_unsupportedIterableToArray(arr) || ChartUtils_nonIterableSpread(); }

function ChartUtils_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function ChartUtils_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return ChartUtils_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 ChartUtils_arrayLikeToArray(o, minLen); }

function ChartUtils_iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }

function ChartUtils_arrayWithoutHoles(arr) { if (Array.isArray(arr)) return ChartUtils_arrayLikeToArray(arr); }

function ChartUtils_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; }

function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }






 // TODO: Cause of circular dependency. Needs refactor.
// import { RadiusAxisProps, AngleAxisProps } from '../polar/types';


function getValueByDataKey(obj, dataKey, defaultValue) {
  if (isNil_default()(obj) || isNil_default()(dataKey)) {
    return defaultValue;
  }

  if (Object(DataUtils["g" /* isNumOrStr */])(dataKey)) {
    return get_default()(obj, dataKey, defaultValue);
  }

  if (isFunction_default()(dataKey)) {
    return dataKey(obj);
  }

  return defaultValue;
}
/**
 * Get domain of data by key
 * @param  {Array}   data      The data displayed in the chart
 * @param  {String}  key       The unique key of a group of data
 * @param  {String}  type      The type of axis
 * @param  {Boolean} filterNil Whether or not filter nil values
 * @return {Array} Domain of data
 */

function getDomainOfDataByKey(data, key, type, filterNil) {
  var flattenData = flatMap_default()(data, function (entry) {
    return getValueByDataKey(entry, key);
  });

  if (type === 'number') {
    var domain = flattenData.filter(function (entry) {
      return Object(DataUtils["h" /* isNumber */])(entry) || parseFloat(entry);
    });
    return domain.length ? [min_default()(domain), max_default()(domain)] : [Infinity, -Infinity];
  }

  var validateData = filterNil ? flattenData.filter(function (entry) {
    return !isNil_default()(entry);
  }) : flattenData; // 支持Date类型的x轴

  return validateData.map(function (entry) {
    return Object(DataUtils["g" /* isNumOrStr */])(entry) || entry instanceof Date ? entry : '';
  });
}
var ChartUtils_calculateActiveTickIndex = function calculateActiveTickIndex(coordinate) {
  var _ticks$length;

  var ticks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
  var unsortedTicks = arguments.length > 2 ? arguments[2] : undefined;
  var axis = arguments.length > 3 ? arguments[3] : undefined;
  var index = -1;
  var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;

  if (len > 1) {
    if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {
      var range = axis.range; // ticks are distributed in a circle

      for (var i = 0; i < len; i++) {
        var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;
        var cur = unsortedTicks[i].coordinate;
        var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;
        var sameDirectionCoord = void 0;

        if (Object(DataUtils["j" /* mathSign */])(cur - before) !== Object(DataUtils["j" /* mathSign */])(after - cur)) {
          var diffInterval = [];

          if (Object(DataUtils["j" /* mathSign */])(after - cur) === Object(DataUtils["j" /* mathSign */])(range[1] - range[0])) {
            sameDirectionCoord = after;
            var curInRange = cur + range[1] - range[0];
            diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);
            diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);
          } else {
            sameDirectionCoord = before;
            var afterInRange = after + range[1] - range[0];
            diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);
            diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);
          }

          var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];

          if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {
            index = unsortedTicks[i].index;
            break;
          }
        } else {
          var min = Math.min(before, after);
          var max = Math.max(before, after);

          if (coordinate > (min + cur) / 2 && coordinate <= (max + cur) / 2) {
            index = unsortedTicks[i].index;
            break;
          }
        }
      }
    } else {
      // ticks are distributed in a single direction
      for (var _i = 0; _i < len; _i++) {
        if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {
          index = ticks[_i].index;
          break;
        }
      }
    }
  } else {
    index = 0;
  }

  return index;
};
/**
 * Get the main color of each graphic item
 * @param  {ReactElement} item A graphic item
 * @return {String}            Color
 */

var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {
  var _ref = item,
      displayName = _ref.type.displayName; // TODO: check if displayName is valid.

  var _item$props = item.props,
      stroke = _item$props.stroke,
      fill = _item$props.fill;
  var result;

  switch (displayName) {
    case 'Line':
      result = stroke;
      break;

    case 'Area':
    case 'Radar':
      result = stroke && stroke !== 'none' ? stroke : fill;
      break;

    default:
      result = fill;
      break;
  }

  return result;
}; // TODO: Formated -> Formatted.

var ChartUtils_getLegendProps = function getLegendProps(_ref2) {
  var children = _ref2.children,
      formatedGraphicalItems = _ref2.formatedGraphicalItems,
      legendWidth = _ref2.legendWidth,
      legendContent = _ref2.legendContent;
  var legendItem = Object(ReactUtils["b" /* findChildByType */])(children, Legend["a" /* Legend */].displayName);

  if (!legendItem) {
    return null;
  }

  var legendData;

  if (legendItem.props && legendItem.props.payload) {
    legendData = legendItem.props && legendItem.props.payload;
  } else if (legendContent === 'children') {
    legendData = (formatedGraphicalItems || []).reduce(function (result, _ref3) {
      var item = _ref3.item,
          props = _ref3.props;
      var data = props.sectors || props.data || [];
      return result.concat(data.map(function (entry) {
        return {
          type: legendItem.props.iconType || item.props.legendType,
          value: entry.name,
          color: entry.fill,
          payload: entry
        };
      }));
    }, []);
  } else {
    legendData = (formatedGraphicalItems || []).map(function (_ref4) {
      var item = _ref4.item;
      var _item$props2 = item.props,
          dataKey = _item$props2.dataKey,
          name = _item$props2.name,
          legendType = _item$props2.legendType,
          hide = _item$props2.hide;
      return {
        inactive: hide,
        dataKey: dataKey,
        type: legendItem.props.iconType || legendType || 'square',
        color: getMainColorOfGraphicItem(item),
        value: name || dataKey,
        payload: item.props
      };
    });
  }

  return _objectSpread(_objectSpread(_objectSpread({}, legendItem.props), Legend["a" /* Legend */].getWithHeight(legendItem, legendWidth)), {}, {
    payload: legendData,
    item: legendItem
  });
};
/**
 * Calculate the size of all groups for stacked bar graph
 * @param  {Object} stackGroups The items grouped by axisId and stackId
 * @return {Object} The size of all groups
 */

var ChartUtils_getBarSizeList = function getBarSizeList(_ref5) {
  var globalSize = _ref5.barSize,
      _ref5$stackGroups = _ref5.stackGroups,
      stackGroups = _ref5$stackGroups === void 0 ? {} : _ref5$stackGroups;

  if (!stackGroups) {
    return {};
  }

  var result = {};
  var numericAxisIds = Object.keys(stackGroups);

  for (var i = 0, len = numericAxisIds.length; i < len; i++) {
    var sgs = stackGroups[numericAxisIds[i]].stackGroups;
    var stackIds = Object.keys(sgs);

    for (var j = 0, sLen = stackIds.length; j < sLen; j++) {
      var _sgs$stackIds$j = sgs[stackIds[j]],
          items = _sgs$stackIds$j.items,
          cateAxisId = _sgs$stackIds$j.cateAxisId;
      var barItems = items.filter(function (item) {
        return Object(ReactUtils["c" /* getDisplayName */])(item.type).indexOf('Bar') >= 0;
      });

      if (barItems && barItems.length) {
        var selfSize = barItems[0].props.barSize;
        var cateId = barItems[0].props[cateAxisId];

        if (!result[cateId]) {
          result[cateId] = [];
        }

        result[cateId].push({
          item: barItems[0],
          stackList: barItems.slice(1),
          barSize: isNil_default()(selfSize) ? globalSize : selfSize
        });
      }
    }
  }

  return result;
};
/**
 * Calculate the size of each bar and the gap between two bars
 * @param  {Number} bandSize  The size of each category
 * @param  {sizeList} sizeList  The size of all groups
 * @param  {maxBarSize} maxBarSize The maximum size of bar
 * @return {Number} The size of each bar and the gap between two bars
 */

var ChartUtils_getBarPosition = function getBarPosition(_ref6) {
  var barGap = _ref6.barGap,
      barCategoryGap = _ref6.barCategoryGap,
      bandSize = _ref6.bandSize,
      _ref6$sizeList = _ref6.sizeList,
      sizeList = _ref6$sizeList === void 0 ? [] : _ref6$sizeList,
      maxBarSize = _ref6.maxBarSize;
  var len = sizeList.length;
  if (len < 1) return null;
  var realBarGap = Object(DataUtils["d" /* getPercentValue */])(barGap, bandSize, 0, true);
  var result; // whether or not is barSize setted by user

  if (sizeList[0].barSize === +sizeList[0].barSize) {
    var useFull = false;
    var fullBarSize = bandSize / len;
    var sum = sizeList.reduce(function (res, entry) {
      return res + entry.barSize || 0;
    }, 0);
    sum += (len - 1) * realBarGap;

    if (sum >= bandSize) {
      sum -= (len - 1) * realBarGap;
      realBarGap = 0;
    }

    if (sum >= bandSize && fullBarSize > 0) {
      useFull = true;
      fullBarSize *= 0.9;
      sum = len * fullBarSize;
    }

    var offset = (bandSize - sum) / 2 >> 0;
    var prev = {
      offset: offset - realBarGap,
      size: 0
    };
    result = sizeList.reduce(function (res, entry) {
      var newRes = [].concat(ChartUtils_toConsumableArray(res), [{
        item: entry.item,
        position: {
          offset: prev.offset + prev.size + realBarGap,
          size: useFull ? fullBarSize : entry.barSize
        }
      }]);
      prev = newRes[newRes.length - 1].position;

      if (entry.stackList && entry.stackList.length) {
        entry.stackList.forEach(function (item) {
          newRes.push({
            item: item,
            position: prev
          });
        });
      }

      return newRes;
    }, []);
  } else {
    var _offset = Object(DataUtils["d" /* getPercentValue */])(barCategoryGap, bandSize, 0, true);

    if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {
      realBarGap = 0;
    }

    var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;

    if (originalSize > 1) {
      originalSize >>= 0;
    }

    var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;
    result = sizeList.reduce(function (res, entry, i) {
      var newRes = [].concat(ChartUtils_toConsumableArray(res), [{
        item: entry.item,
        position: {
          offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,
          size: size
        }
      }]);

      if (entry.stackList && entry.stackList.length) {
        entry.stackList.forEach(function (item) {
          newRes.push({
            item: item,
            position: newRes[newRes.length - 1].position
          });
        });
      }

      return newRes;
    }, []);
  }

  return result;
};
var ChartUtils_appendOffsetOfLegend = function appendOffsetOfLegend(offset, items, props, legendBox) {
  var children = props.children,
      width = props.width,
      margin = props.margin;
  var legendWidth = width - (margin.left || 0) - (margin.right || 0); // const legendHeight = height - (margin.top || 0) - (margin.bottom || 0);

  var legendProps = ChartUtils_getLegendProps({
    children: children,
    legendWidth: legendWidth
  });
  var newOffset = offset;

  if (legendProps) {
    var box = legendBox || {};
    var align = legendProps.align,
        verticalAlign = legendProps.verticalAlign,
        layout = legendProps.layout;

    if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'center') && Object(DataUtils["h" /* isNumber */])(offset[align])) {
      newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, align, newOffset[align] + (box.width || 0)));
    }

    if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && Object(DataUtils["h" /* isNumber */])(offset[verticalAlign])) {
      newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, verticalAlign, newOffset[verticalAlign] + (box.height || 0)));
    }
  }

  return newOffset;
};
var ChartUtils_getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, axisType) {
  var children = item.props.children;
  var errorBars = Object(ReactUtils["a" /* findAllByType */])(children, 'ErrorBar').filter(function (errorBarChild) {
    var direction = errorBarChild.props.direction;
    return isNil_default()(direction) || isNil_default()(axisType) ? true : axisType.indexOf(direction) >= 0;
  });

  if (errorBars && errorBars.length) {
    var keys = errorBars.map(function (errorBarChild) {
      return errorBarChild.props.dataKey;
    });
    return data.reduce(function (result, entry) {
      var entryValue = getValueByDataKey(entry, dataKey, 0);
      var mainValue = isArray_default()(entryValue) ? [min_default()(entryValue), max_default()(entryValue)] : [entryValue, entryValue];
      var errorDomain = keys.reduce(function (prevErrorArr, k) {
        var errorValue = getValueByDataKey(entry, k, 0);
        var lowerValue = mainValue[0] - Math.abs(isArray_default()(errorValue) ? errorValue[0] : errorValue);
        var upperValue = mainValue[1] + Math.abs(isArray_default()(errorValue) ? errorValue[1] : errorValue);
        return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];
      }, [Infinity, -Infinity]);
      return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];
    }, [Infinity, -Infinity]);
  }

  return null;
};
var ChartUtils_parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType) {
  var domains = items.map(function (item) {
    return ChartUtils_getDomainOfErrorBars(data, item, dataKey, axisType);
  }).filter(function (entry) {
    return !isNil_default()(entry);
  });

  if (domains && domains.length) {
    return domains.reduce(function (result, entry) {
      return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];
    }, [Infinity, -Infinity]);
  }

  return null;
};
/**
 * Get domain of data by the configuration of item element
 * @param  {Array}   data      The data displayed in the chart
 * @param  {Array}   items     The instances of item
 * @param  {String}  type      The type of axis, number - Number Axis, category - Category Axis
 * @param  {Boolean} filterNil Whether or not filter nil values
 * @return {Array}        Domain
 */

var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, filterNil) {
  var domains = items.map(function (item) {
    var dataKey = item.props.dataKey;

    if (type === 'number' && dataKey) {
      return ChartUtils_getDomainOfErrorBars(data, item, dataKey) || getDomainOfDataByKey(data, dataKey, type, filterNil);
    }

    return getDomainOfDataByKey(data, dataKey, type, filterNil);
  });

  if (type === 'number') {
    // Calculate the domain of number axis
    return domains.reduce(function (result, entry) {
      return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];
    }, [Infinity, -Infinity]);
  }

  var tag = {}; // Get the union set of category axis

  return domains.reduce(function (result, entry) {
    for (var i = 0, len = entry.length; i < len; i++) {
      if (!tag[entry[i]]) {
        tag[entry[i]] = true;
        result.push(entry[i]);
      }
    }

    return result;
  }, []);
};
var isCategoricalAxis = function isCategoricalAxis(layout, axisType) {
  return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';
};
/**
 * Calculate the Coordinates of grid
 * @param  {Array} ticks The ticks in axis
 * @param {Number} min   The minimun value of axis
 * @param {Number} max   The maximun value of axis
 * @return {Array}       Coordinates
 */

var getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, min, max) {
  var hasMin, hasMax;
  var values = ticks.map(function (entry) {
    if (entry.coordinate === min) {
      hasMin = true;
    }

    if (entry.coordinate === max) {
      hasMax = true;
    }

    return entry.coordinate;
  });

  if (!hasMin) {
    values.push(min);
  }

  if (!hasMax) {
    values.push(max);
  }

  return values;
};
/**
 * Get the ticks of an axis
 * @param  {Object}  axis The configuration of an axis
 * @param {Boolean} isGrid Whether or not are the ticks in grid
 * @param {Boolean} isAll Return the ticks of all the points or not
 * @return {Array}  Ticks
 */

var ChartUtils_getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {
  if (!axis) return null;
  var scale = axis.scale;
  var duplicateDomain = axis.duplicateDomain,
      type = axis.type,
      range = axis.range;
  var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / 2 : 0;
  offset = axis.axisType === 'angleAxis' ? Object(DataUtils["j" /* mathSign */])(range[0] - range[1]) * 2 * offset : offset; // The ticks setted by user should only affect the ticks adjacent to axis line

  if (isGrid && (axis.ticks || axis.niceTicks)) {
    return (axis.ticks || axis.niceTicks).map(function (entry) {
      var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;
      return {
        coordinate: scale(scaleContent) + offset,
        value: entry,
        offset: offset
      };
    });
  } // When axis is a categorial axis, but the type of axis is number or the scale of axis is not "auto"


  if (axis.isCategorical && axis.categoricalDomain) {
    return axis.categoricalDomain.map(function (entry, index) {
      return {
        coordinate: scale(entry) + offset,
        value: entry,
        index: index,
        offset: offset
      };
    });
  }

  if (scale.ticks && !isAll) {
    return scale.ticks(axis.tickCount).map(function (entry) {
      return {
        coordinate: scale(entry) + offset,
        value: entry,
        offset: offset
      };
    });
  } // When axis has duplicated text, serial numbers are used to generate scale


  return scale.domain().map(function (entry, index) {
    return {
      coordinate: scale(entry) + offset,
      value: duplicateDomain ? duplicateDomain[entry] : entry,
      index: index,
      offset: offset
    };
  });
};
/**
 * combine the handlers
 * @param  {Function} defaultHandler Internal private handler
 * @param  {Function} parentHandler  Handler function specified in parent component
 * @param  {Function} childHandler   Handler function specified in child component
 * @return {Function}                The combined handler
 */

var ChartUtils_combineEventHandlers = function combineEventHandlers(defaultHandler, parentHandler, childHandler) {
  var customizedHandler;

  if (isFunction_default()(childHandler)) {
    customizedHandler = childHandler;
  } else if (isFunction_default()(parentHandler)) {
    customizedHandler = parentHandler;
  }

  if (isFunction_default()(defaultHandler) || customizedHandler) {
    return function (arg1, arg2, arg3, arg4) {
      if (isFunction_default()(defaultHandler)) {
        defaultHandler(arg1, arg2, arg3, arg4);
      }

      if (isFunction_default()(customizedHandler)) {
        customizedHandler(arg1, arg2, arg3, arg4);
      }
    };
  }

  return null;
};
/**
 * Parse the scale function of axis
 * @param  {Object}   axis          The option of axis
 * @param  {String}   chartType     The displayName of chart
 * @param  {Boolean}  hasBar        if it has a bar
 * @return {Function}               The scale function
 */

var ChartUtils_parseScale = function parseScale(axis, chartType, hasBar) {
  var scale = axis.scale,
      type = axis.type,
      layout = axis.layout,
      axisType = axis.axisType;

  if (scale === 'auto') {
    if (layout === 'radial' && axisType === 'radiusAxis') {
      return {
        scale: band["a" /* default */](),
        realScaleType: 'band'
      };
    }

    if (layout === 'radial' && axisType === 'angleAxis') {
      return {
        scale: linear["a" /* default */](),
        realScaleType: 'linear'
      };
    }

    if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {
      return {
        scale: band["b" /* point */](),
        realScaleType: 'point'
      };
    }

    if (type === 'category') {
      return {
        scale: band["a" /* default */](),
        realScaleType: 'band'
      };
    }

    return {
      scale: linear["a" /* default */](),
      realScaleType: 'linear'
    };
  }

  if (isString_default()(scale)) {
    var name = "scale".concat(upperFirst_default()(scale));
    return {
      scale: (src[name] || band["b" /* point */])(),
      realScaleType: src[name] ? name : 'point'
    };
  }

  return isFunction_default()(scale) ? {
    scale: scale
  } : {
    scale: band["b" /* point */](),
    realScaleType: 'point'
  };
};
var EPS = 1e-4;
var checkDomainOfScale = function checkDomainOfScale(scale) {
  var domain = scale.domain();

  if (!domain || domain.length <= 2) {
    return;
  }

  var len = domain.length;
  var range = scale.range();
  var min = Math.min(range[0], range[1]) - EPS;
  var max = Math.max(range[0], range[1]) + EPS;
  var first = scale(domain[0]);
  var last = scale(domain[len - 1]);

  if (first < min || first > max || last < min || last > max) {
    scale.domain([domain[0], domain[len - 1]]);
  }
};
var findPositionOfBar = function findPositionOfBar(barPosition, child) {
  if (!barPosition) {
    return null;
  }

  for (var i = 0, len = barPosition.length; i < len; i++) {
    if (barPosition[i].item === child) {
      return barPosition[i].position;
    }
  }

  return null;
};
var ChartUtils_truncateByDomain = function truncateByDomain(value, domain) {
  if (!domain || domain.length !== 2 || !Object(DataUtils["h" /* isNumber */])(domain[0]) || !Object(DataUtils["h" /* isNumber */])(domain[1])) {
    return value;
  }

  var min = Math.min(domain[0], domain[1]);
  var max = Math.max(domain[0], domain[1]);
  var result = [value[0], value[1]];

  if (!Object(DataUtils["h" /* isNumber */])(value[0]) || value[0] < min) {
    result[0] = min;
  }

  if (!Object(DataUtils["h" /* isNumber */])(value[1]) || value[1] > max) {
    result[1] = max;
  }

  if (result[0] > max) {
    result[0] = max;
  }

  if (result[1] < min) {
    result[1] = min;
  }

  return result;
};
/* eslint no-param-reassign: 0 */

var ChartUtils_offsetSign = function offsetSign(series) {
  var n = series.length;

  if (n <= 0) {
    return;
  }

  for (var j = 0, m = series[0].length; j < m; ++j) {
    var positive = 0;
    var negative = 0;

    for (var i = 0; i < n; ++i) {
      var value = isNaN_default()(series[i][j][1]) ? series[i][j][0] : series[i][j][1];
      /* eslint-disable prefer-destructuring */

      if (value >= 0) {
        series[i][j][0] = positive;
        series[i][j][1] = positive + value;
        positive = series[i][j][1];
      } else {
        series[i][j][0] = negative;
        series[i][j][1] = negative + value;
        negative = series[i][j][1];
      }
      /* eslint-enable prefer-destructuring */

    }
  }
};
/* eslint no-param-reassign: 0 */

var ChartUtils_offsetPositive = function offsetPositive(series) {
  var n = series.length;

  if (n <= 0) {
    return;
  }

  for (var j = 0, m = series[0].length; j < m; ++j) {
    var positive = 0;

    for (var i = 0; i < n; ++i) {
      var value = isNaN_default()(series[i][j][1]) ? series[i][j][0] : series[i][j][1];
      /* eslint-disable prefer-destructuring */

      if (value >= 0) {
        series[i][j][0] = positive;
        series[i][j][1] = positive + value;
        positive = series[i][j][1];
      } else {
        series[i][j][0] = 0;
        series[i][j][1] = 0;
      }
      /* eslint-enable prefer-destructuring */

    }
  }
};
var STACK_OFFSET_MAP = {
  sign: ChartUtils_offsetSign,
  expand: expand,
  none: none,
  silhouette: silhouette,
  wiggle: wiggle,
  positive: ChartUtils_offsetPositive
};
var ChartUtils_getStackedData = function getStackedData(data, stackItems, offsetType) {
  var dataKeys = stackItems.map(function (item) {
    return item.props.dataKey;
  });
  var stack = src_stack().keys(dataKeys).value(function (d, key) {
    return +getValueByDataKey(d, key, 0);
  }).order(order_none).offset(STACK_OFFSET_MAP[offsetType]);
  return stack(data);
};
var ChartUtils_getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {
  if (!data) {
    return null;
  } // reversing items to affect render order (for layering)


  var items = reverseStackOrder ? _items.reverse() : _items;
  var stackGroups = items.reduce(function (result, item) {
    var _item$props3 = item.props,
        stackId = _item$props3.stackId,
        hide = _item$props3.hide;

    if (hide) {
      return result;
    }

    var axisId = item.props[numericAxisId];
    var parentGroup = result[axisId] || {
      hasStack: false,
      stackGroups: {}
    };

    if (Object(DataUtils["g" /* isNumOrStr */])(stackId)) {
      var childGroup = parentGroup.stackGroups[stackId] || {
        numericAxisId: numericAxisId,
        cateAxisId: cateAxisId,
        items: []
      };
      childGroup.items.push(item);
      parentGroup.hasStack = true;
      parentGroup.stackGroups[stackId] = childGroup;
    } else {
      parentGroup.stackGroups[Object(DataUtils["k" /* uniqueId */])('_stackId_')] = {
        numericAxisId: numericAxisId,
        cateAxisId: cateAxisId,
        items: [item]
      };
    }

    return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, parentGroup));
  }, {});
  return Object.keys(stackGroups).reduce(function (result, axisId) {
    var group = stackGroups[axisId];

    if (group.hasStack) {
      group.stackGroups = Object.keys(group.stackGroups).reduce(function (res, stackId) {
        var g = group.stackGroups[stackId];
        return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, stackId, {
          numericAxisId: numericAxisId,
          cateAxisId: cateAxisId,
          items: g.items,
          stackedData: ChartUtils_getStackedData(data, g.items, offsetType)
        }));
      }, {});
    }

    return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, group));
  }, {});
};
/**
 * get domain of ticks
 * @param  {Array} ticks Ticks of axis
 * @param  {String} type  The type of axis
 * @return {Array} domain
 */

var ChartUtils_calculateDomainOfTicks = function calculateDomainOfTicks(ticks, type) {
  if (type === 'number') {
    return [min_default()(ticks), max_default()(ticks)];
  }

  return ticks;
};
/**
 * Configure the scale function of axis
 * @param {Object} scale The scale function
 * @param {Object} opts  The configuration of axis
 * @return {Object}      null
 */

var ChartUtils_getTicksOfScale = function getTicksOfScale(scale, opts) {
  var realScaleType = opts.realScaleType,
      type = opts.type,
      tickCount = opts.tickCount,
      originalDomain = opts.originalDomain,
      allowDecimals = opts.allowDecimals;
  var scaleType = realScaleType || opts.scale;

  if (scaleType !== 'auto' && scaleType !== 'linear') {
    return null;
  }

  if (tickCount && type === 'number' && originalDomain && (originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {
    // Calculate the ticks by the number of grid when the axis is a number axis
    var domain = scale.domain();

    if (!domain.length) {
      return null;
    }

    var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);
    scale.domain(ChartUtils_calculateDomainOfTicks(tickValues, type));
    return {
      niceTicks: tickValues
    };
  }

  if (tickCount && type === 'number') {
    var _domain = scale.domain();

    var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);

    return {
      niceTicks: _tickValues
    };
  }

  return null;
};
var ChartUtils_getCateCoordinateOfLine = function getCateCoordinateOfLine(_ref7) {
  var axis = _ref7.axis,
      ticks = _ref7.ticks,
      bandSize = _ref7.bandSize,
      entry = _ref7.entry,
      index = _ref7.index,
      dataKey = _ref7.dataKey;

  if (axis.type === 'category') {
    // find coordinate of category axis by the value of category
    if (!axis.allowDuplicatedCategory && axis.dataKey && !isNil_default()(entry[axis.dataKey])) {
      var matchedTick = Object(DataUtils["a" /* findEntryInArray */])(ticks, 'value', entry[axis.dataKey]);

      if (matchedTick) {
        return matchedTick.coordinate + bandSize / 2;
      }
    }

    return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;
  }

  var value = getValueByDataKey(entry, !isNil_default()(dataKey) ? dataKey : axis.dataKey);
  return !isNil_default()(value) ? axis.scale(value) : null;
};
var ChartUtils_getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref8) {
  var axis = _ref8.axis,
      ticks = _ref8.ticks,
      offset = _ref8.offset,
      bandSize = _ref8.bandSize,
      entry = _ref8.entry,
      index = _ref8.index;

  if (axis.type === 'category') {
    return ticks[index] ? ticks[index].coordinate + offset : null;
  }

  var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);
  return !isNil_default()(value) ? axis.scale(value) - bandSize / 2 + offset : null;
};
var getBaseValueOfBar = function getBaseValueOfBar(_ref9) {
  var numericAxis = _ref9.numericAxis;
  var domain = numericAxis.scale.domain();

  if (numericAxis.type === 'number') {
    var min = Math.min(domain[0], domain[1]);
    var max = Math.max(domain[0], domain[1]);

    if (min <= 0 && max >= 0) {
      return 0;
    }

    if (max < 0) {
      return max;
    }

    return min;
  }

  return domain[0];
};
var ChartUtils_getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {
  var stackId = item.props.stackId;

  if (Object(DataUtils["g" /* isNumOrStr */])(stackId)) {
    var group = stackGroups[stackId];

    if (group && group.items.length) {
      var itemIndex = -1;

      for (var i = 0, len = group.items.length; i < len; i++) {
        if (group.items[i] === item) {
          itemIndex = i;
          break;
        }
      }

      return itemIndex >= 0 ? group.stackedData[itemIndex] : null;
    }
  }

  return null;
};

var ChartUtils_getDomainOfSingle = function getDomainOfSingle(data) {
  return data.reduce(function (result, entry) {
    return [min_default()(entry.concat([result[0]]).filter(DataUtils["h" /* isNumber */])), max_default()(entry.concat([result[1]]).filter(DataUtils["h" /* isNumber */]))];
  }, [Infinity, -Infinity]);
};

var getDomainOfStackGroups = function getDomainOfStackGroups(stackGroups, startIndex, endIndex) {
  return Object.keys(stackGroups).reduce(function (result, stackId) {
    var group = stackGroups[stackId];
    var stackedData = group.stackedData;
    var domain = stackedData.reduce(function (res, entry) {
      var s = ChartUtils_getDomainOfSingle(entry.slice(startIndex, endIndex + 1));
      return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];
    }, [Infinity, -Infinity]);
    return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];
  }, [Infinity, -Infinity]).map(function (result) {
    return result === Infinity || result === -Infinity ? 0 : result;
  });
};
var MIN_VALUE_REG = /^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;
var MAX_VALUE_REG = /^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;
var ChartUtils_parseSpecifiedDomain = function parseSpecifiedDomain(specifiedDomain, dataDomain, allowDataOverflow) {
  if (!isArray_default()(specifiedDomain)) {
    return dataDomain;
  }

  var domain = [];
  /* eslint-disable prefer-destructuring */

  if (Object(DataUtils["h" /* isNumber */])(specifiedDomain[0])) {
    domain[0] = allowDataOverflow ? specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);
  } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {
    var value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];
    domain[0] = dataDomain[0] - value;
  } else if (isFunction_default()(specifiedDomain[0])) {
    domain[0] = specifiedDomain[0](dataDomain[0]);
  } else {
    domain[0] = dataDomain[0];
  }

  if (Object(DataUtils["h" /* isNumber */])(specifiedDomain[1])) {
    domain[1] = allowDataOverflow ? specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);
  } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {
    var _value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];

    domain[1] = dataDomain[1] + _value;
  } else if (isFunction_default()(specifiedDomain[1])) {
    domain[1] = specifiedDomain[1](dataDomain[1]);
  } else {
    domain[1] = dataDomain[1];
  }
  /* eslint-enable prefer-destructuring */


  return domain;
};
/**
 * Calculate the size between two category
 * @param  {Object} axis  The options of axis
 * @param  {Array}  ticks The ticks of axis
 * @param  {Boolean} isBar if items in axis are bars
 * @return {Number} Size
 */

var ChartUtils_getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks, isBar) {
  if (axis && axis.scale && axis.scale.bandwidth) {
    var bandWidth = axis.scale.bandwidth();

    if (!isBar || bandWidth > 0) {
      return bandWidth;
    }
  }

  if (axis && ticks && ticks.length >= 2) {
    var orderedTicks = sortBy_default()(ticks, function (o) {
      return o.coordinate;
    });

    var bandSize = Infinity;

    for (var i = 1, len = orderedTicks.length; i < len; i++) {
      var cur = orderedTicks[i];
      var prev = orderedTicks[i - 1];
      bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);
    }

    return bandSize === Infinity ? 0 : bandSize;
  }

  return 0;
};
/**
 * parse the domain of a category axis when a domain is specified
 * @param   {Array}        specifiedDomain  The domain specified by users
 * @param   {Array}        calculatedDomain The domain calculated by dateKey
 * @param   {ReactElement} axisChild        The axis element
 * @returns {Array}        domains
 */

var ChartUtils_parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {
  if (!specifiedDomain || !specifiedDomain.length) {
    return calculatedDomain;
  }

  if (isEqual_default()(specifiedDomain, get_default()(axisChild, 'type.defaultProps.domain'))) {
    return calculatedDomain;
  }

  return specifiedDomain;
};
var ChartUtils_getTooltipItem = function getTooltipItem(graphicalItem, payload) {
  var _graphicalItem$props = graphicalItem.props,
      dataKey = _graphicalItem$props.dataKey,
      name = _graphicalItem$props.name,
      unit = _graphicalItem$props.unit,
      formatter = _graphicalItem$props.formatter,
      tooltipType = _graphicalItem$props.tooltipType;
  return _objectSpread(_objectSpread({}, Object(types["c" /* filterProps */])(graphicalItem)), {}, {
    dataKey: dataKey,
    unit: unit,
    formatter: formatter,
    name: name || dataKey,
    color: getMainColorOfGraphicItem(graphicalItem),
    value: getValueByDataKey(payload, dataKey),
    type: tooltipType,
    payload: payload
  });
};
// EXTERNAL MODULE: ./node_modules/d3-color/index.js + 5 modules
var d3_color = __webpack_require__(77);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-interpolate/src/basis.js
function basis(t1, v0, v1, v2, v3) {
  var t2 = t1 * t1, t3 = t2 * t1;
  return ((1 - 3 * t1 + 3 * t2 - t3) * v0
      + (4 - 6 * t2 + 3 * t3) * v1
      + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2
      + t3 * v3) / 6;
}

/* harmony default export */ var src_basis = (function(values) {
  var n = values.length - 1;
  return function(t) {
    var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),
        v1 = values[i],
        v2 = values[i + 1],
        v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,
        v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;
    return basis((t - i / n) * n, v0, v1, v2, v3);
  };
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-interpolate/src/basisClosed.js


/* harmony default export */ var basisClosed = (function(values) {
  var n = values.length;
  return function(t) {
    var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),
        v0 = values[(i + n - 1) % n],
        v1 = values[i % n],
        v2 = values[(i + 1) % n],
        v3 = values[(i + 2) % n];
    return basis((t - i / n) * n, v0, v1, v2, v3);
  };
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-interpolate/src/constant.js
/* harmony default export */ var constant = (x => () => x);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-interpolate/src/color.js


function linear(a, d) {
  return function(t) {
    return a + t * d;
  };
}

function exponential(a, b, y) {
  return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {
    return Math.pow(a + t * b, y);
  };
}

function hue(a, b) {
  var d = b - a;
  return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);
}

function gamma(y) {
  return (y = +y) === 1 ? nogamma : function(a, b) {
    return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);
  };
}

function nogamma(a, b) {
  var d = b - a;
  return d ? linear(a, d) : constant(isNaN(a) ? b : a);
}

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-interpolate/src/rgb.js





/* harmony default export */ var src_rgb = ((function rgbGamma(y) {
  var color = gamma(y);

  function rgb(start, end) {
    var r = color((start = Object(d3_color["f" /* rgb */])(start)).r, (end = Object(d3_color["f" /* rgb */])(end)).r),
        g = color(start.g, end.g),
        b = color(start.b, end.b),
        opacity = nogamma(start.opacity, end.opacity);
    return function(t) {
      start.r = r(t);
      start.g = g(t);
      start.b = b(t);
      start.opacity = opacity(t);
      return start + "";
    };
  }

  rgb.gamma = rgbGamma;

  return rgb;
})(1));

function rgbSpline(spline) {
  return function(colors) {
    var n = colors.length,
        r = new Array(n),
        g = new Array(n),
        b = new Array(n),
        i, color;
    for (i = 0; i < n; ++i) {
      color = Object(d3_color["f" /* rgb */])(colors[i]);
      r[i] = color.r || 0;
      g[i] = color.g || 0;
      b[i] = color.b || 0;
    }
    r = spline(r);
    g = spline(g);
    b = spline(b);
    color.opacity = 1;
    return function(t) {
      color.r = r(t);
      color.g = g(t);
      color.b = b(t);
      return color + "";
    };
  };
}

var rgbBasis = rgbSpline(src_basis);
var rgbBasisClosed = rgbSpline(basisClosed);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-interpolate/src/numberArray.js
/* harmony default export */ var numberArray = (function(a, b) {
  if (!b) b = [];
  var n = a ? Math.min(b.length, a.length) : 0,
      c = b.slice(),
      i;
  return function(t) {
    for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;
    return c;
  };
});

function isNumberArray(x) {
  return ArrayBuffer.isView(x) && !(x instanceof DataView);
}

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-interpolate/src/array.js



/* harmony default export */ var array = (function(a, b) {
  return (isNumberArray(b) ? numberArray : genericArray)(a, b);
});

function genericArray(a, b) {
  var nb = b ? b.length : 0,
      na = a ? Math.min(nb, a.length) : 0,
      x = new Array(na),
      c = new Array(nb),
      i;

  for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);
  for (; i < nb; ++i) c[i] = b[i];

  return function(t) {
    for (i = 0; i < na; ++i) c[i] = x[i](t);
    return c;
  };
}

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-interpolate/src/date.js
/* harmony default export */ var date = (function(a, b) {
  var d = new Date;
  return a = +a, b = +b, function(t) {
    return d.setTime(a * (1 - t) + b * t), d;
  };
});

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-interpolate/src/number.js
var number = __webpack_require__(380);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-interpolate/src/object.js


/* harmony default export */ var object = (function(a, b) {
  var i = {},
      c = {},
      k;

  if (a === null || typeof a !== "object") a = {};
  if (b === null || typeof b !== "object") b = {};

  for (k in b) {
    if (k in a) {
      i[k] = value(a[k], b[k]);
    } else {
      c[k] = b[k];
    }
  }

  return function(t) {
    for (k in i) c[k] = i[k](t);
    return c;
  };
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-interpolate/src/string.js


var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
    reB = new RegExp(reA.source, "g");

function zero(b) {
  return function() {
    return b;
  };
}

function one(b) {
  return function(t) {
    return b(t) + "";
  };
}

/* harmony default export */ var string = (function(a, b) {
  var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b
      am, // current match in a
      bm, // current match in b
      bs, // string preceding current number in b, if any
      i = -1, // index in s
      s = [], // string constants and placeholders
      q = []; // number interpolators

  // Coerce inputs to strings.
  a = a + "", b = b + "";

  // Interpolate pairs of numbers in a & b.
  while ((am = reA.exec(a))
      && (bm = reB.exec(b))) {
    if ((bs = bm.index) > bi) { // a string precedes the next number in b
      bs = b.slice(bi, bs);
      if (s[i]) s[i] += bs; // coalesce with previous string
      else s[++i] = bs;
    }
    if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match
      if (s[i]) s[i] += bm; // coalesce with previous string
      else s[++i] = bm;
    } else { // interpolate non-matching numbers
      s[++i] = null;
      q.push({i: i, x: Object(number["a" /* default */])(am, bm)});
    }
    bi = reB.lastIndex;
  }

  // Add remains of b.
  if (bi < b.length) {
    bs = b.slice(bi);
    if (s[i]) s[i] += bs; // coalesce with previous string
    else s[++i] = bs;
  }

  // Special optimization for only a single match.
  // Otherwise, interpolate each of the numbers and rejoin the string.
  return s.length < 2 ? (q[0]
      ? one(q[0].x)
      : zero(b))
      : (b = q.length, function(t) {
          for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
          return s.join("");
        });
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-interpolate/src/value.js










/* harmony default export */ var value = __webpack_exports__["a"] = (function(a, b) {
  var t = typeof b, c;
  return b == null || t === "boolean" ? constant(b)
      : (t === "number" ? number["a" /* default */]
      : t === "string" ? ((c = Object(d3_color["a" /* color */])(b)) ? (b = c, src_rgb) : string)
      : b instanceof d3_color["a" /* color */] ? src_rgb
      : b instanceof Date ? date
      : isNumberArray(b) ? numberArray
      : Array.isArray(b) ? genericArray
      : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object
      : number["a" /* default */])(a, b);
});

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ Symbols_Symbols; });

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/upperFirst.js
var upperFirst = __webpack_require__(286);
var upperFirst_default = /*#__PURE__*/__webpack_require__.n(upperFirst);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/math.js
var abs = Math.abs;
var atan2 = Math.atan2;
var cos = Math.cos;
var max = Math.max;
var min = Math.min;
var sin = Math.sin;
var sqrt = Math.sqrt;

var epsilon = 1e-12;
var pi = Math.PI;
var halfPi = pi / 2;
var tau = 2 * pi;

function acos(x) {
  return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);
}

function asin(x) {
  return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);
}

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/symbol/circle.js


/* harmony default export */ var circle = ({
  draw: function(context, size) {
    var r = Math.sqrt(size / pi);
    context.moveTo(r, 0);
    context.arc(0, 0, r, 0, tau);
  }
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/symbol/cross.js
/* harmony default export */ var cross = ({
  draw: function(context, size) {
    var r = Math.sqrt(size / 5) / 2;
    context.moveTo(-3 * r, -r);
    context.lineTo(-r, -r);
    context.lineTo(-r, -3 * r);
    context.lineTo(r, -3 * r);
    context.lineTo(r, -r);
    context.lineTo(3 * r, -r);
    context.lineTo(3 * r, r);
    context.lineTo(r, r);
    context.lineTo(r, 3 * r);
    context.lineTo(-r, 3 * r);
    context.lineTo(-r, r);
    context.lineTo(-3 * r, r);
    context.closePath();
  }
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/symbol/diamond.js
var tan30 = Math.sqrt(1 / 3),
    tan30_2 = tan30 * 2;

/* harmony default export */ var diamond = ({
  draw: function(context, size) {
    var y = Math.sqrt(size / tan30_2),
        x = y * tan30;
    context.moveTo(0, -y);
    context.lineTo(x, 0);
    context.lineTo(0, y);
    context.lineTo(-x, 0);
    context.closePath();
  }
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/symbol/square.js
/* harmony default export */ var square = ({
  draw: function(context, size) {
    var w = Math.sqrt(size),
        x = -w / 2;
    context.rect(x, x, w, w);
  }
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/symbol/star.js


var ka = 0.89081309152928522810,
    kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),
    kx = Math.sin(tau / 10) * kr,
    ky = -Math.cos(tau / 10) * kr;

/* harmony default export */ var star = ({
  draw: function(context, size) {
    var r = Math.sqrt(size * ka),
        x = kx * r,
        y = ky * r;
    context.moveTo(0, -r);
    context.lineTo(x, y);
    for (var i = 1; i < 5; ++i) {
      var a = tau * i / 5,
          c = Math.cos(a),
          s = Math.sin(a);
      context.lineTo(s * r, -c * r);
      context.lineTo(c * x - s * y, s * x + c * y);
    }
    context.closePath();
  }
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/symbol/triangle.js
var sqrt3 = Math.sqrt(3);

/* harmony default export */ var triangle = ({
  draw: function(context, size) {
    var y = -Math.sqrt(size / (sqrt3 * 3));
    context.moveTo(0, y * 2);
    context.lineTo(-sqrt3 * y, -y);
    context.lineTo(sqrt3 * y, -y);
    context.closePath();
  }
});

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/symbol/wye.js
var wye_c = -0.5,
    wye_s = Math.sqrt(3) / 2,
    k = 1 / Math.sqrt(12),
    wye_a = (k / 2 + 1) * 3;

/* harmony default export */ var wye = ({
  draw: function(context, size) {
    var r = Math.sqrt(size / wye_a),
        x0 = r / 2,
        y0 = r * k,
        x1 = x0,
        y1 = r * k + r,
        x2 = -x1,
        y2 = y1;
    context.moveTo(x0, y0);
    context.lineTo(x1, y1);
    context.lineTo(x2, y2);
    context.lineTo(wye_c * x0 - wye_s * y0, wye_s * x0 + wye_c * y0);
    context.lineTo(wye_c * x1 - wye_s * y1, wye_s * x1 + wye_c * y1);
    context.lineTo(wye_c * x2 - wye_s * y2, wye_s * x2 + wye_c * y2);
    context.lineTo(wye_c * x0 + wye_s * y0, wye_c * y0 - wye_s * x0);
    context.lineTo(wye_c * x1 + wye_s * y1, wye_c * y1 - wye_s * x1);
    context.lineTo(wye_c * x2 + wye_s * y2, wye_c * y2 - wye_s * x2);
    context.closePath();
  }
});

// EXTERNAL MODULE: ./node_modules/d3-path/index.js + 1 modules
var d3_path = __webpack_require__(129);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-shape/src/constant.js
var constant = __webpack_require__(105);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-shape/src/symbol.js










var symbols = [
  circle,
  cross,
  diamond,
  square,
  star,
  triangle,
  wye
];

/* harmony default export */ var src_symbol = (function(type, size) {
  var context = null;
  type = typeof type === "function" ? type : Object(constant["a" /* default */])(type || circle);
  size = typeof size === "function" ? size : Object(constant["a" /* default */])(size === undefined ? 64 : +size);

  function symbol() {
    var buffer;
    if (!context) context = buffer = Object(d3_path["a" /* path */])();
    type.apply(this, arguments).draw(context, +size.apply(this, arguments));
    if (buffer) return context = null, buffer + "" || null;
  }

  symbol.type = function(_) {
    return arguments.length ? (type = typeof _ === "function" ? _ : Object(constant["a" /* default */])(_), symbol) : type;
  };

  symbol.size = function(_) {
    return arguments.length ? (size = typeof _ === "function" ? _ : Object(constant["a" /* default */])(+_), symbol) : size;
  };

  symbol.context = function(_) {
    return arguments.length ? (context = _ == null ? null : _, symbol) : context;
  };

  return symbol;
});

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__(25);
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/types.js
var types = __webpack_require__(42);

// CONCATENATED MODULE: ./node_modules/recharts/es6/shape/Symbols.js
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }



function _extends() { _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 _extends.apply(this, arguments); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

/**
 * @fileOverview Curve
 */




var symbolFactories = {
  symbolCircle: circle,
  symbolCross: cross,
  symbolDiamond: diamond,
  symbolSquare: square,
  symbolStar: star,
  symbolTriangle: triangle,
  symbolWye: wye
};
var RADIAN = Math.PI / 180;

var Symbols_getSymbolFactory = function getSymbolFactory(type) {
  var name = "symbol".concat(upperFirst_default()(type));
  return symbolFactories[name] || circle;
};

var calculateAreaSize = function calculateAreaSize(size, sizeType, type) {
  if (sizeType === 'area') {
    return size;
  }

  switch (type) {
    case 'cross':
      return 5 * size * size / 9;

    case 'diamond':
      return 0.5 * size * size / Math.sqrt(3);

    case 'square':
      return size * size;

    case 'star':
      {
        var angle = 18 * RADIAN;
        return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));
      }

    case 'triangle':
      return Math.sqrt(3) * size * size / 4;

    case 'wye':
      return (21 - 10 * Math.sqrt(3)) * size * size / 8;

    default:
      return Math.PI * size * size / 4;
  }
};

var Symbols_Symbols = /*#__PURE__*/function (_PureComponent) {
  _inherits(Symbols, _PureComponent);

  var _super = _createSuper(Symbols);

  function Symbols() {
    _classCallCheck(this, Symbols);

    return _super.apply(this, arguments);
  }

  _createClass(Symbols, [{
    key: "getPath",
    value:
    /**
     * Calculate the path of curve
     * @return {String} path
     */
    function getPath() {
      var _this$props = this.props,
          size = _this$props.size,
          sizeType = _this$props.sizeType,
          type = _this$props.type;
      var symbolFactory = Symbols_getSymbolFactory(type);
      var symbol = src_symbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));
      return symbol();
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props2 = this.props,
          className = _this$props2.className,
          cx = _this$props2.cx,
          cy = _this$props2.cy,
          size = _this$props2.size;

      if (cx === +cx && cy === +cy && size === +size) {
        return /*#__PURE__*/react_default.a.createElement("path", _extends({}, Object(types["c" /* filterProps */])(this.props, true), {
          className: classnames_default()('recharts-symbols', className),
          transform: "translate(".concat(cx, ", ").concat(cy, ")"),
          d: this.getPath()
        }));
      }

      return null;
    }
  }]);

  return Symbols;
}(react["PureComponent"]);
Symbols_Symbols.defaultProps = {
  type: 'circle',
  size: 64,
  sizeType: 'area'
};

Symbols_Symbols.registerSymbol = function (key, factory) {
  symbolFactories["symbol".concat(upperFirst_default()(key))] = factory;
};// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "default", function() { return /* reexport */ pages_ExternalOrders_ExternalOrders; });

// EXTERNAL MODULE: ./node_modules/antd/lib/tabs/style/index.js
var style = __webpack_require__(274);

// EXTERNAL MODULE: ./node_modules/antd/lib/tabs/index.js
var tabs = __webpack_require__(135);
var tabs_default = /*#__PURE__*/__webpack_require__.n(tabs);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js
var regenerator = __webpack_require__(5);
var regenerator_default = /*#__PURE__*/__webpack_require__.n(regenerator);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
var asyncToGenerator = __webpack_require__(191);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
var classCallCheck = __webpack_require__(9);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js
var createClass = __webpack_require__(10);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__(11);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
var getPrototypeOf = __webpack_require__(12);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
var inherits = __webpack_require__(13);

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-document-title/index.js
var react_document_title = __webpack_require__(98);
var react_document_title_default = /*#__PURE__*/__webpack_require__.n(react_document_title);

// EXTERNAL MODULE: ./node_modules/react-intl/lib/index.es.js
var index_es = __webpack_require__(4);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__(7);

// EXTERNAL MODULE: ./src/js/constants/index.js + 1 modules
var constants = __webpack_require__(15);

// EXTERNAL MODULE: ./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js + 3 modules
var styled_base_browser_esm = __webpack_require__(6);

// CONCATENATED MODULE: ./src/js/components/ExternalOrders/styled.js
var Container=Object(styled_base_browser_esm["a" /* default */])("div",{target:"euz39nk0",label:"Container"})( true?{name:"13jrmdy",styles:"display:flex;align-items:center;padding-bottom:12px;& #exportList,& .exportList-triplemars,& a{display:none;}"}:undefined);
// EXTERNAL MODULE: ./src/js/constants/classes/index.js
var classes = __webpack_require__(32);

// EXTERNAL MODULE: ./src/js/components/common/styled.js
var styled = __webpack_require__(35);

// EXTERNAL MODULE: ./src/js/components/common/Button/Button.js
var Button = __webpack_require__(152);

// EXTERNAL MODULE: ./node_modules/antd/lib/button/style/index.js
var button_style = __webpack_require__(66);

// EXTERNAL MODULE: ./node_modules/antd/lib/button/index.js
var lib_button = __webpack_require__(39);
var button_default = /*#__PURE__*/__webpack_require__.n(lib_button);

// EXTERNAL MODULE: ./node_modules/antd/lib/input/style/index.js
var input_style = __webpack_require__(102);

// EXTERNAL MODULE: ./node_modules/antd/lib/input/index.js
var input = __webpack_require__(52);
var input_default = /*#__PURE__*/__webpack_require__.n(input);

// EXTERNAL MODULE: ./node_modules/antd/lib/select/style/index.js
var select_style = __webpack_require__(89);

// EXTERNAL MODULE: ./node_modules/antd/lib/select/index.js
var lib_select = __webpack_require__(36);
var select_default = /*#__PURE__*/__webpack_require__.n(lib_select);

// EXTERNAL MODULE: ./node_modules/moment/moment.js
var moment = __webpack_require__(23);
var moment_default = /*#__PURE__*/__webpack_require__.n(moment);

// EXTERNAL MODULE: ./src/js/components/common/Filters/index.js + 1 modules
var Filters = __webpack_require__(31);

// CONCATENATED MODULE: ./src/js/components/ExternalOrders/Filter/Filter.js
var Option=select_default.a.Option;var dateInputWidth='125px';var ordersStatuses=['New','InProgress','Fail','Success'];var Filter_ref= true?{name:"h5opy6-ExternalFilter",styles:"box-sizing:border-box;display:flex;justify-content:center;align-items:center;padding-bottom:10px;& > div,& > button{margin:10px 25px;}label:ExternalFilter;"}:undefined;var _ref2= true?{name:"1yo7ku1-ExternalFilter",styles:"width:130px;label:ExternalFilter;"}:undefined;var _ref3= true?{name:"179qdco-ExternalFilter",styles:"display:flex;align-items:center;justify-content:center;margin-bottom:20px;label:ExternalFilter;"}:undefined;var _ref4= true?{name:"10e9xh7-ExternalFilter",styles:"margin-right:15px;label:ExternalFilter;"}:undefined;var Filter_ExternalFilter=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(ExternalFilter,_Component);function ExternalFilter(){var _getPrototypeOf2;var _this;Object(classCallCheck["a" /* default */])(this,ExternalFilter);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=Object(possibleConstructorReturn["a" /* default */])(this,(_getPrototypeOf2=Object(getPrototypeOf["a" /* default */])(ExternalFilter)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.search=function(){var _this$props=_this.props,ordersParams=_this$props.ordersParams,fetchOrders=_this$props.fetchOrders,setSpinner=_this$props.setSpinner;ordersParams.setPage(1);setSpinner(true);fetchOrders().then(function(){return setSpinner(false);});};_this.clear=function(){var _this$props2=_this.props,fetchOrders=_this$props2.fetchOrders,setSpinner=_this$props2.setSpinner,clearFilters=_this$props2.ordersParams.clearFilters;clearFilters();setSpinner(true);fetchOrders().then(function(){return setSpinner(false);});};return _this;}Object(createClass["a" /* default */])(ExternalFilter,[{key:"render",value:function render(){var ordersParams=this.props.ordersParams;return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])("div",{css:Filter_ref},Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])("h3",null,"Date"),Object(core_browser_esm["c" /* jsx */])(Filters["d" /* InputWrapper */],null,Object(core_browser_esm["c" /* jsx */])(input_default.a,{type:"date",defaultValue:moment_default()(ordersParams.startDate).format('YYYY-MM-DD'),onChange:function onChange(e){return ordersParams.setStartDate(e.target.value);},width:dateInputWidth}),Object(core_browser_esm["c" /* jsx */])("span",{css:classes["f" /* text6 */]},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.to"})),Object(core_browser_esm["c" /* jsx */])(input_default.a,{type:"date",defaultValue:moment_default()(ordersParams.endDate).format('YYYY-MM-DD'),onChange:function onChange(e){return ordersParams.setEndDate(e.target.value);},width:dateInputWidth}))),Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])("h3",null,"Status"),Object(core_browser_esm["c" /* jsx */])(select_default.a,{css:_ref2,defaultValue:-1,onChange:function onChange(idx){ordersParams.setStatus(idx);}},Object(core_browser_esm["c" /* jsx */])(Option,{value:-1,key:"all"},"All"),ordersStatuses.map(function(el,i){return Object(core_browser_esm["c" /* jsx */])(Option,{value:i,key:el},el);}))),Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])("h3",null,"Input Search"),Object(core_browser_esm["c" /* jsx */])(input_default.a,{defaultValue:ordersParams.text,onChange:function onChange(e){return ordersParams.setText(e.target.value);},onPressEnter:this.search}))),Object(core_browser_esm["c" /* jsx */])("span",{css:_ref3},Object(core_browser_esm["c" /* jsx */])(button_default.a,{css:_ref4,htmlType:"submit",type:"primary",onClick:this.search},"Search"),Object(core_browser_esm["c" /* jsx */])(button_default.a,{type:"default",onClick:this.clear},"Clear Filters")));}}]);return ExternalFilter;}(react["Component"]);/* harmony default export */ var Filter = (Filter_ExternalFilter);
// EXTERNAL MODULE: ./src/js/utils/downloadFile.js
var downloadFile = __webpack_require__(139);

// EXTERNAL MODULE: ./node_modules/antd/lib/pagination/style/index.js
var pagination_style = __webpack_require__(307);

// EXTERNAL MODULE: ./node_modules/antd/lib/pagination/index.js
var pagination = __webpack_require__(224);
var pagination_default = /*#__PURE__*/__webpack_require__.n(pagination);

// EXTERNAL MODULE: ./node_modules/antd/lib/tooltip/style/index.js
var tooltip_style = __webpack_require__(308);

// EXTERNAL MODULE: ./node_modules/antd/lib/tooltip/index.js
var tooltip = __webpack_require__(184);
var tooltip_default = /*#__PURE__*/__webpack_require__.n(tooltip);

// EXTERNAL MODULE: ./node_modules/antd/lib/popover/style/index.js
var popover_style = __webpack_require__(95);

// EXTERNAL MODULE: ./node_modules/antd/lib/popover/index.js
var popover = __webpack_require__(44);
var popover_default = /*#__PURE__*/__webpack_require__.n(popover);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 3 modules
var slicedToArray = __webpack_require__(64);

// EXTERNAL MODULE: ./node_modules/react-router/es/index.js + 32 modules
var es = __webpack_require__(50);

// EXTERNAL MODULE: ./src/js/utils/numberCommaFormatter.js
var numberCommaFormatter = __webpack_require__(62);

// EXTERNAL MODULE: ./src/js/components/common/CopyToClipboard/index.js + 1 modules
var CopyToClipboard = __webpack_require__(311);

// EXTERNAL MODULE: ./node_modules/antd/lib/checkbox/style/index.js
var checkbox_style = __webpack_require__(134);

// EXTERNAL MODULE: ./node_modules/antd/lib/checkbox/index.js
var lib_checkbox = __webpack_require__(61);
var checkbox_default = /*#__PURE__*/__webpack_require__.n(lib_checkbox);

// EXTERNAL MODULE: ./src/js/components/common/Dropdown/index.js + 1 modules
var Dropdown = __webpack_require__(47);

// CONCATENATED MODULE: ./src/js/utils/errorBoundary.js
var errorBoundary_ErrorBoundary=/*#__PURE__*/function(_React$Component){Object(inherits["a" /* default */])(ErrorBoundary,_React$Component);function ErrorBoundary(props){var _this;Object(classCallCheck["a" /* default */])(this,ErrorBoundary);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(ErrorBoundary).call(this,props));_this.state={hasError:false};return _this;}Object(createClass["a" /* default */])(ErrorBoundary,[{key:"componentDidCatch",value:function componentDidCatch(){// Display fallback UI
this.setState({hasError:true});}},{key:"render",value:function render(){var hasError=this.state.hasError;var _this$props=this.props,children=_this$props.children,fallback=_this$props.fallback;if(hasError){return fallback;}return children;}}]);return ErrorBoundary;}(react_default.a.Component);
// CONCATENATED MODULE: ./src/js/components/ExternalOrders/Table/ActionsCell.js
var ActionsCell_Option=select_default.a.Option;var ActionsCell=Object(index_module["b" /* inject */])('externalOrderStore')(Object(index_module["c" /* observer */])(function(_ref){var status=_ref.status,orderId=_ref.orderId,trackingNumber=_ref.trackingNumber,isV2=_ref.isV2,_ref$externalOrderSto=_ref.externalOrderStore,tryAgain=_ref$externalOrderSto.tryAgain,tryAgainV2=_ref$externalOrderSto.tryAgainV2,forcePurchase=_ref$externalOrderSto.forcePurchase,forcePurchaseV2=_ref$externalOrderSto.forcePurchaseV2,cancelOrder=_ref$externalOrderSto.cancelOrder,cancelOrderV2=_ref$externalOrderSto.cancelOrderV2,returnOrder=_ref$externalOrderSto.returnOrder,returnOrderV2=_ref$externalOrderSto.returnOrderV2,ordersSelected=_ref$externalOrderSto.ordersSelected,handleCheckboxClick=_ref$externalOrderSto.handleCheckboxClick,isSelectedAll=_ref$externalOrderSto.isSelectedAll;var actions=[{purpose:'Fail',key:'tryAgain',intlMessage:'common.tryAgain',clickHandler:function clickHandler(){return isV2?tryAgainV2(orderId):tryAgain(orderId);}},{purpose:'Fail',key:'forcePurchase',intlMessage:'orders.forcePurchase',clickHandler:function clickHandler(){return isV2?forcePurchaseV2(orderId):forcePurchase(orderId);}},{purpose:'Success',key:'cancelOrder',intlMessage:'orders.cancelOrder',clickHandler:function clickHandler(){return isV2?cancelOrderV2(orderId):cancelOrder(orderId);}},{purpose:'Success',key:'returnOrder',intlMessage:'orders.returnOrder',clickHandler:function clickHandler(){return isV2?returnOrderV2(orderId):returnOrder(orderId);}}];// Return the option element accordingly
var getOption=function getOption(clickHandler,name,intlMessage){return Object(core_browser_esm["c" /* jsx */])(ActionsCell_Option,{onClick:clickHandler,key:name},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:intlMessage}));};// Get all the option elements for the success case
// If the tracking number exists, we return only the "returnOrder" option
// Otherwise, we return the "cancelOrder" option
var getSuccessOptions=function getSuccessOptions(){var successAction=trackingNumber?actions.find(function(action){return action.key==='returnOrder';}):actions.find(function(action){return action.key==='cancelOrder';});return getOption(successAction.clickHandler,successAction.key,successAction.intlMessage);};// Get all the option elements for the fail case
var getFailedOptions=function getFailedOptions(value){var failActions=actions.filter(function(action){return action.purpose===value;});return failActions.map(function(action){return getOption(action.clickHandler,action.key,action.intlMessage);});};// Return the option for all other cases
var getOtherOptions=function getOtherOptions(){return getOption(null,'noOption','externalOrders.noActionOption');};var getStatusList=function getStatusList(value){if(value==='Fail')return getFailedOptions(value);if(value==='Success')return getSuccessOptions();return getOtherOptions();};var getFallback=function getFallback(){return Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{dropdownMatchSelectWidth:false,value:"",arrow:true},getOption(null,'noOption','externalOrders.noActionOption'));};return Object(core_browser_esm["c" /* jsx */])(errorBoundary_ErrorBoundary,{fallback:getFallback()},Object(core_browser_esm["c" /* jsx */])("span",{style:{margin:'0 15px'}},Object(core_browser_esm["c" /* jsx */])(checkbox_default.a,{checked:isSelectedAll?true:ordersSelected.some(function(order){return order.externalOrderId===orderId;}),onChange:function onChange(){return handleCheckboxClick(orderId);}})),Object(core_browser_esm["c" /* jsx */])(Dropdown["a" /* default */],{dropdownMatchSelectWidth:false,value:"",arrow:true},getStatusList(status)));}));
// EXTERNAL MODULE: ./node_modules/antd/lib/dropdown/style/index.js
var dropdown_style = __webpack_require__(363);

// EXTERNAL MODULE: ./node_modules/antd/lib/dropdown/index.js
var dropdown = __webpack_require__(203);
var dropdown_default = /*#__PURE__*/__webpack_require__.n(dropdown);

// EXTERNAL MODULE: ./node_modules/antd/lib/menu/style/index.js
var menu_style = __webpack_require__(197);

// EXTERNAL MODULE: ./node_modules/antd/lib/menu/index.js
var menu = __webpack_require__(73);
var menu_default = /*#__PURE__*/__webpack_require__.n(menu);

// EXTERNAL MODULE: ./src/js/components/common/IconSvg/index.js
var IconSvg = __webpack_require__(14);

// EXTERNAL MODULE: ./src/js/components/common/Checkbox/checkbox.js
var Checkbox_checkbox = __webpack_require__(260);

// CONCATENATED MODULE: ./src/js/components/ExternalOrders/Table/ActionsHeader.js
var ActionsHeader=Object(index_module["b" /* inject */])('externalOrderStore')(Object(index_module["c" /* observer */])(function(_ref){var _ref$externalOrderSto=_ref.externalOrderStore,selectAllOrders=_ref$externalOrderSto.selectAllOrders,handleSelectPageOrders=_ref$externalOrderSto.handleSelectPageOrders,deselectAllOrders=_ref$externalOrderSto.deselectAllOrders,isSelectedAll=_ref$externalOrderSto.isSelectedAll,ordersSelected=_ref$externalOrderSto.ordersSelected;var handleCheckbox=function handleCheckbox(){if(isSelectedAll||ordersSelected.length>0)return deselectAllOrders();return handleSelectPageOrders();};return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])("span",{style:{marginRight:'7px'}},Object(core_browser_esm["c" /* jsx */])(Checkbox_checkbox["a" /* default */],{indeterminate:ordersSelected.length>0,checked:isSelectedAll,onChange:function onChange(){return handleCheckbox();}})),Object(core_browser_esm["c" /* jsx */])(dropdown_default.a,{key:"selectAll",trigger:['click'],overlay:Object(core_browser_esm["c" /* jsx */])(menu_default.a,null,Object(core_browser_esm["c" /* jsx */])(menu_default.a.Item,{onClick:function onClick(){selectAllOrders();},key:"select-all-oreders"},"Select All"),Object(core_browser_esm["c" /* jsx */])(menu_default.a.Item,{onClick:function onClick(){handleSelectPageOrders();},key:"select-this-page"},"This Page"))},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"more-arrow",size:15})),Object(core_browser_esm["c" /* jsx */])("div",null));}));
// CONCATENATED MODULE: ./src/js/components/ExternalOrders/Table/columns.js
var columns_ref= true?{name:"vpy4je-BuyerInfoPopover",styles:"text-overflow:ellipsis;width:130px;overflow:hidden;cursor:pointer;label:BuyerInfoPopover;"}:undefined;var columns_BuyerInfoPopover=function BuyerInfoPopover(info){var _info$split=info.split(','),_info$split2=Object(slicedToArray["a" /* default */])(_info$split,7),buyerInfoName=_info$split2[0],buyerInfoCity=_info$split2[1],buyerInfoState=_info$split2[2],buyerInfoZip=_info$split2[3],buyerAddress=_info$split2[4],buyerAddress2=_info$split2[5],buyerPhoneNumber=_info$split2[6];// const zipCode = buyerAddress.substring(0, buyerAddress.indexOf(' ')) ?? '';
// const address = buyerAddress.substring(buyerAddress.indexOf(' ') + 1) ?? '';
var buyerInfoAll="".concat(buyerInfoName,",\n").concat(buyerAddress," ").concat(buyerAddress2,",\n").concat(buyerInfoCity,"\n,").concat(buyerInfoState,",").concat(buyerInfoZip,",\n").concat(buyerPhoneNumber);return Object(core_browser_esm["c" /* jsx */])(popover_default.a,{content:Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("white-space:pre-line;font-size:",constants["b" /* fontSize */].medium,";",buyerAddress?"\n            &::first-line {\n                font-weight: bold;\n            }":'',"label:BuyerInfoPopover;"+( true?"":undefined))},buyerInfoAll),Object(core_browser_esm["c" /* jsx */])(CopyToClipboard["a" /* CopyToClipboard */],{toCopy:buyerInfoAll})),title:"",trigger:"hover",placement:"top"},Object(core_browser_esm["c" /* jsx */])("div",{css:columns_ref},buyerInfoName));};var columns_CellTooltip=function CellTooltip(value,width){return Object(core_browser_esm["c" /* jsx */])(popover_default.a,{content:Object(core_browser_esm["c" /* jsx */])("div",null,value),title:"",trigger:"hover",placement:"top"},Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("text-overflow:ellipsis;width:",width,"px;overflow:hidden;cursor:pointer;label:CellTooltip;"+( true?"":undefined))},value));};var columns_OrderTypeTooltip=function OrderTypeTooltip(returnCheckState,lostOrderState,orderType){// eslint-disable-next-line no-nested-ternary
return returnCheckState?Object(core_browser_esm["c" /* jsx */])(popover_default.a,{title:"",content:Object(core_browser_esm["c" /* jsx */])("span",null,returnCheckState),trigger:"hover",placement:"top"},orderType):lostOrderState?Object(core_browser_esm["c" /* jsx */])(popover_default.a,{title:"",content:Object(core_browser_esm["c" /* jsx */])("span",null,lostOrderState),trigger:"hover",placement:"top"},orderType):Object(core_browser_esm["c" /* jsx */])("div",null,orderType);};var columns_ref2= true?{name:"4g6ai3",styles:"cursor:pointer;"}:undefined;var columns_ref3= true?{name:"1081t4c",styles:"text-decoration:underline;"}:undefined;var columns_ref4= true?{name:"1081t4c",styles:"text-decoration:underline;"}:undefined;/* harmony default export */ var columns = ([{key:'orders',// name: 'Orders',
width:80,formatter:function formatter(_ref5){var _ref5$row=_ref5.row,orderStatus=_ref5$row.orderStatus,externalOrderId=_ref5$row.externalOrderId,trackingNumber=_ref5$row.trackingNumber,isV2=_ref5$row.isV2;return Object(core_browser_esm["c" /* jsx */])(ActionsCell,{status:orderStatus,orderId:externalOrderId,trackingNumber:trackingNumber,isV2:isV2});},headerRenderer:Object(core_browser_esm["c" /* jsx */])(ActionsHeader,null)},{key:'orderType',width:50,name:'Type',formatter:function formatter(_ref6){var value=_ref6.value,_ref6$row=_ref6.row,returnCheckState=_ref6$row.returnCheckState,lostOrderState=_ref6$row.lostOrderState;return columns_OrderTypeTooltip(returnCheckState,lostOrderState,value);}// align: 'center',
},{key:'purchaseDate',width:100,name:'Purchase Date',formatter:function formatter(_ref7){var value=_ref7.value;return moment_default()(value).format('DD/MM/YYYY')||'N/A';}// align: 'center',
},{key:'orderStatus',// width: 110,
name:'Status',formatter:function formatter(_ref8){var value=_ref8.value,failureReason=_ref8.row.failureReason;return value==='Fail'?Object(core_browser_esm["c" /* jsx */])(tooltip_default.a,{title:failureReason},Object(core_browser_esm["c" /* jsx */])("span",{css:columns_ref2},value)):columns_CellTooltip(value,70);}},{key:'externalOrderId',width:110,name:'External Order ID',formatter:function formatter(_ref9){var value=_ref9.value;return value?columns_CellTooltip(value,110):'N/A';}},{key:'sourceItemId',width:110,name:'Source Item ID',align:'center',formatter:function formatter(_ref10){var value=_ref10.value;return value?Object(core_browser_esm["c" /* jsx */])("a",{rel:"noopener noreferrer",target:"_blank",href:"https://www.amazon.com/gp/offer-listing/".concat(value),css:columns_ref3},value):'N/A';}},{key:'sourcePrice',// width: 70,
name:'Source Price',formatter:function formatter(_ref11){var value=_ref11.value;return value||'N/A';}},{key:'quantity',// width: 70,
name:'Quantity',formatter:function formatter(_ref12){var value=_ref12.value;return value||'N/A';}},{key:'totalCharge',// width: 100,
name:'Total Charge $',formatter:function formatter(_ref13){var value=_ref13.value;return"$".concat(Object(numberCommaFormatter["a" /* commaFormat */])(value,2))||false;}},{key:'fee',width:50,name:'Fee',formatter:function formatter(_ref14){var value=_ref14.value;return"".concat(value);}},{key:'expectedDelivery',width:90,name:'ETA',formatter:function formatter(_ref15){var value=_ref15.value;return value?columns_CellTooltip(value,90):'N/A';}// align: 'center',
},{key:'buyerInfo',width:130,name:'Buyer Info',formatter:function formatter(_ref16){var value=_ref16.value;return value?columns_BuyerInfoPopover(value):'N/A';}},{key:'sourceOrderId',width:110,name:'Source Order Id',formatter:function formatter(_ref17){var value=_ref17.value;return value?columns_CellTooltip(value,110):'N/A';}},{key:'trackingUrl',width:100,name:'Tracking URL',formatter:function formatter(_ref18){var _ref18$row=_ref18.row,externalOrderId=_ref18$row.externalOrderId,sourceOrderId=_ref18$row.sourceOrderId;return Object(core_browser_esm["c" /* jsx */])(es["b" /* Link */],{target:"_blank",rel:"noopener noreferrer",css:columns_ref4,to:{pathname:"/externalOrders/trackingInfo/".concat(externalOrderId,"/").concat(sourceOrderId)}},"Details");}},{key:'pdfUrl',width:100,name:'PDF',formatter:function formatter(_ref19){var value=_ref19.value;return value?Object(core_browser_esm["c" /* jsx */])("a",{target:"_blank",rel:"noopener noreferrer",href:value},"Link"):'N/A';}},{key:'trackingNumber',width:110,name:'Tracking Number',formatter:function formatter(_ref20){var value=_ref20.value;return value?columns_CellTooltip(value,110):'N/A';}},{key:'carrier',name:'Carrier',formatter:function formatter(_ref21){var value=_ref21.value;return value||'N/A';}}]);
// EXTERNAL MODULE: ./src/js/components/common/Table/index.js + 1 modules
var Table = __webpack_require__(219);

// CONCATENATED MODULE: ./src/js/components/ExternalOrders/Table/Table.js
var _class;var TableWrapper=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1lgjdyq0",label:"TableWrapper"})( true?{name:"t35j88",styles:".react-grid-HeaderCell,.widget-HeaderCell__value{display:flex;align-content:center;justify-content:center;}"}:undefined);var Table_ref= true?{name:"il63rh-ExternalOrdersTable",styles:"text-align:center;padding:20px 0;label:ExternalOrdersTable;"}:undefined;var Table_ExternalOrdersTable=Object(index_module["c" /* observer */])(_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(ExternalOrdersTable,_Component);function ExternalOrdersTable(){var _getPrototypeOf2;var _this;Object(classCallCheck["a" /* default */])(this,ExternalOrdersTable);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=Object(possibleConstructorReturn["a" /* default */])(this,(_getPrototypeOf2=Object(getPrototypeOf["a" /* default */])(ExternalOrdersTable)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.loadPage=function(page){var _this$props=_this.props,fetchOrders=_this$props.fetchOrders,setPage=_this$props.orderParams.setPage,setSpinner=_this$props.setSpinner;setPage(page);setSpinner(true);fetchOrders().then(function(){return setSpinner(false);});};return _this;}Object(createClass["a" /* default */])(ExternalOrdersTable,[{key:"render",value:function render(){var _this2=this;var _this$props2=this.props,data=_this$props2.data,_this$props2$orderPar=_this$props2.orderParams,limit=_this$props2$orderPar.limit,pageNumber=_this$props2$orderPar.pageNumber,total=_this$props2$orderPar.total;return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(TableWrapper,null,Object(core_browser_esm["c" /* jsx */])(Table["a" /* default */],{resetPadding:true,columns:columns,rowGetter:function rowGetter(i){return data[i];},rowsCount:data.length,headerRowHeight:50,rowHeight:41})),Object(core_browser_esm["c" /* jsx */])(pagination_default.a,{defaultCurrent:1,defaultPageSize:limit,current:pageNumber,onChange:function onChange(pg){_this2.loadPage(pg);},total:total||limit,css:Table_ref}));}}]);return ExternalOrdersTable;}(react["Component"]))||_class;
// EXTERNAL MODULE: ./src/js/components/common/spinner/index.js + 1 modules
var spinner = __webpack_require__(74);

// CONCATENATED MODULE: ./src/js/pages/ExternalOrders/ExternalOrders.js
var _dec,ExternalOrders_class;// import { Dashboard, OrdersTable, Toolbar } from '../../components/Orders';
var ExternalOrders_ref= true?{name:"1h80j56-ExternalOrders",styles:"margin-left:auto;label:ExternalOrders;"}:undefined;var ExternalOrders_ExternalOrders=(_dec=Object(index_module["b" /* inject */])('externalOrderStore'),_dec(ExternalOrders_class=Object(index_es["d" /* injectIntl */])(ExternalOrders_class=Object(index_module["c" /* observer */])(ExternalOrders_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(ExternalOrders,_Component);function ExternalOrders(props){var _this;Object(classCallCheck["a" /* default */])(this,ExternalOrders);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(ExternalOrders).call(this,props));_this.setSpinner=function(){_this.setState({showSpinner:!_this.state.showSpinner});};_this.handleExportOrders=/*#__PURE__*/Object(asyncToGenerator["a" /* default */])(/*#__PURE__*/regenerator_default.a.mark(function _callee(){var getCsvOrdersData,data;return regenerator_default.a.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:getCsvOrdersData=_this.props.externalOrderStore.getCsvOrdersData;_context.next=3;return getCsvOrdersData();case 3:data=_context.sent;Object(downloadFile["a" /* default */])(data,"Exported_Orders.csv",'text/csv');case 5:case"end":return _context.stop();}}},_callee,this);}));_this.state={showSpinner:true};return _this;}Object(createClass["a" /* default */])(ExternalOrders,[{key:"componentDidMount",value:function componentDidMount(){var _this2=this;var _this$props$externalO=this.props.externalOrderStore,fetchOrders=_this$props$externalO.fetchOrders,fetchV2Orders=_this$props$externalO.fetchV2Orders;fetchOrders().then(function(){return fetchV2Orders();}).then(function(){return _this2.setSpinner(false);});}},{key:"render",value:function render(){var _this3=this;var _this$props=this.props,_this$props$externalO2=_this$props.externalOrderStore,ordersTableData=_this$props$externalO2.ordersTableData,fetchOrders=_this$props$externalO2.fetchOrders,ordersParams=_this$props$externalO2.ordersParams,ordersSelected=_this$props$externalO2.ordersSelected,fetchV2Orders=_this$props$externalO2.fetchV2Orders,ordersParamsV2=_this$props$externalO2.ordersParamsV2,ordersTableV2Data=_this$props$externalO2.ordersTableV2Data,intl=_this$props.intl;var showSpinner=this.state.showSpinner;return Object(core_browser_esm["c" /* jsx */])(react_document_title_default.a,{title:"".concat(constants["d" /* title */]," | Orders")},Object(core_browser_esm["c" /* jsx */])(styled["j" /* PageContainer */],null,Object(core_browser_esm["c" /* jsx */])(Container,null,Object(core_browser_esm["c" /* jsx */])("h1",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(classes["a" /* text1 */],";margin-right:68px;label:ExternalOrders;"+( true?"":undefined))},intl.formatMessage({id:'common.orders'})),Object(core_browser_esm["c" /* jsx */])("div",{css:ExternalOrders_ref},Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:function clickHandler(){return _this3.handleExportOrders();},disabled:!ordersSelected.length},intl.formatMessage({id:'externalOrders.export'})))),showSpinner&&Object(core_browser_esm["c" /* jsx */])(spinner["a" /* default */],null),Object(core_browser_esm["c" /* jsx */])(styled["u" /* TableWrapper */],null,Object(core_browser_esm["c" /* jsx */])("h2",{className:"visually-hidden"},"Orders table"),Object(core_browser_esm["c" /* jsx */])(tabs_default.a,{defaultActiveKey:"1"},Object(core_browser_esm["c" /* jsx */])(tabs_default.a.TabPane,{tab:"Orders 1",key:"1"},Object(core_browser_esm["c" /* jsx */])(Filter,{setSpinner:this.setSpinner,ordersParams:ordersParams,fetchOrders:fetchOrders}),Object(core_browser_esm["c" /* jsx */])(Table_ExternalOrdersTable,{setSpinner:this.setSpinner,data:ordersTableData,orderParams:ordersParams,fetchOrders:fetchOrders})),Object(core_browser_esm["c" /* jsx */])(tabs_default.a.TabPane,{tab:"Orders 2",key:"2"},Object(core_browser_esm["c" /* jsx */])(Filter,{setSpinner:this.setSpinner,ordersParams:ordersParamsV2,fetchOrders:fetchV2Orders}),Object(core_browser_esm["c" /* jsx */])(Table_ExternalOrdersTable,{setSpinner:this.setSpinner,data:ordersTableV2Data,orderParams:ordersParamsV2,fetchOrders:fetchV2Orders}))))));}}]);return ExternalOrders;}(react["Component"]))||ExternalOrders_class)||ExternalOrders_class)||ExternalOrders_class);/* harmony default export */ var pages_ExternalOrders_ExternalOrders = (ExternalOrders_ExternalOrders);
// CONCATENATED MODULE: ./src/js/pages/ExternalOrders/index.js

// EXPORTS
__webpack_require__.d(__webpack_exports__, "b", function() { return /* reexport */ translateStyle; });

// UNUSED EXPORTS: configSpring, configBezier, AnimateGroup

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/prop-types/index.js
var prop_types = __webpack_require__(3);
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);

// EXTERNAL MODULE: ./node_modules/fast-equals/dist/fast-equals.js
var fast_equals = __webpack_require__(662);

// EXTERNAL MODULE: ./node_modules/raf/index.js
var raf = __webpack_require__(190);
var raf_default = /*#__PURE__*/__webpack_require__.n(raf);

// CONCATENATED MODULE: ./node_modules/react-smooth/es6/setRafTimeout.js

function setRafTimeout(callback) {
  var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  var currTime = -1;

  var shouldUpdate = function shouldUpdate(now) {
    if (currTime < 0) {
      currTime = now;
    }

    if (now - currTime > timeout) {
      callback(now);
      currTime = -1;
    } else {
      raf_default()(shouldUpdate);
    }
  };

  raf_default()(shouldUpdate);
}
// CONCATENATED MODULE: ./node_modules/react-smooth/es6/AnimateManager.js
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }

function _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."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _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 _arrayLikeToArray(o, minLen); }

function _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; }

function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }


function createAnimateManager() {
  var currStyle = {};

  var handleChange = function handleChange() {
    return null;
  };

  var shouldStop = false;

  var setStyle = function setStyle(_style) {
    if (shouldStop) {
      return;
    }

    if (Array.isArray(_style)) {
      if (!_style.length) {
        return;
      }

      var styles = _style;

      var _styles = _toArray(styles),
          curr = _styles[0],
          restStyles = _styles.slice(1);

      if (typeof curr === 'number') {
        setRafTimeout(setStyle.bind(null, restStyles), curr);
        return;
      }

      setStyle(curr);
      setRafTimeout(setStyle.bind(null, restStyles));
      return;
    }

    if (_typeof(_style) === 'object') {
      currStyle = _style;
      handleChange(currStyle);
    }

    if (typeof _style === 'function') {
      _style();
    }
  };

  return {
    stop: function stop() {
      shouldStop = true;
    },
    start: function start(style) {
      shouldStop = false;
      setStyle(style);
    },
    subscribe: function subscribe(_handleChange) {
      handleChange = _handleChange;
      return function () {
        handleChange = function handleChange() {
          return null;
        };
      };
    }
  };
}
// CONCATENATED MODULE: ./node_modules/react-smooth/es6/util.js
function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }

/* eslint no-console: 0 */
var PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];
var IN_LINE_PREFIX_LIST = ['-webkit-', '-moz-', '-o-', '-ms-'];
var IN_COMPATIBLE_PROPERTY = ['transform', 'transformOrigin', 'transition'];
var getIntersectionKeys = function getIntersectionKeys(preObj, nextObj) {
  return [Object.keys(preObj), Object.keys(nextObj)].reduce(function (a, b) {
    return a.filter(function (c) {
      return b.includes(c);
    });
  });
};
var identity = function identity(param) {
  return param;
};
/*
 * @description: convert camel case to dash case
 * string => string
 */

var getDashCase = function getDashCase(name) {
  return name.replace(/([A-Z])/g, function (v) {
    return "-".concat(v.toLowerCase());
  });
};
/*
 * @description: add compatible style prefix
 * (string, string) => object
 */

var generatePrefixStyle = function generatePrefixStyle(name, value) {
  if (IN_COMPATIBLE_PROPERTY.indexOf(name) === -1) {
    return _defineProperty({}, name, value);
  }

  var isTransition = name === 'transition';
  var camelName = name.replace(/(\w)/, function (v) {
    return v.toUpperCase();
  });
  var styleVal = value;
  return PREFIX_LIST.reduce(function (result, property, i) {
    if (isTransition) {
      styleVal = value.replace(/(transform|transform-origin)/gim, "".concat(IN_LINE_PREFIX_LIST[i], "$1"));
    }

    return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, property + camelName, styleVal));
  }, {});
};
var log = function log() {
  var _console;

  (_console = console).log.apply(_console, arguments);
};
/*
 * @description: log the value of a varible
 * string => any => any
 */

var debug = function debug(name) {
  return function (item) {
    log(name, item);
    return item;
  };
};
/*
 * @description: log name, args, return value of a function
 * function => function
 */

var debugf = function debugf(tag, f) {
  return function () {
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    var res = f.apply(void 0, args);
    var name = tag || f.name || 'anonymous function';
    var argNames = "(".concat(args.map(JSON.stringify).join(', '), ")");
    log("".concat(name, ": ").concat(argNames, " => ").concat(JSON.stringify(res)));
    return res;
  };
};
/*
 * @description: map object on every element in this object.
 * (function, object) => object
 */

var mapObject = function mapObject(fn, obj) {
  return Object.keys(obj).reduce(function (res, key) {
    return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, fn(key, obj[key])));
  }, {});
};
/*
 * @description: add compatible prefix to style
 * object => object
 */

var translateStyle = function translateStyle(style) {
  return Object.keys(style).reduce(function (res, key) {
    return _objectSpread(_objectSpread({}, res), generatePrefixStyle(key, res[key]));
  }, style);
};
var compose = function compose() {
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
    args[_key2] = arguments[_key2];
  }

  if (!args.length) {
    return identity;
  }

  var fns = args.reverse(); // first function can receive multiply arguments

  var firstFn = fns[0];
  var tailsFn = fns.slice(1);
  return function () {
    return tailsFn.reduce(function (res, fn) {
      return fn(res);
    }, firstFn.apply(void 0, arguments));
  };
};
var getTransitionVal = function getTransitionVal(props, duration, easing) {
  return props.map(function (prop) {
    return "".concat(getDashCase(prop), " ").concat(duration, "ms ").concat(easing);
  }).join(',');
};
var isDev = "production" !== 'production';
var warn = function warn(condition, format, a, b, c, d, e, f) {
  if (isDev && typeof console !== 'undefined' && console.warn) {
    if (format === undefined) {
      console.warn('LogUtils requires an error message argument');
    }

    if (!condition) {
      if (format === undefined) {
        console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
      } else {
        var args = [a, b, c, d, e, f];
        var argIndex = 0;
        console.warn(format.replace(/%s/g, function () {
          return args[argIndex++];
        }));
      }
    }
  }
};
// CONCATENATED MODULE: ./node_modules/react-smooth/es6/easing.js
function _slicedToArray(arr, i) { return easing_arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || easing_unsupportedIterableToArray(arr, i) || easing_nonIterableRest(); }

function easing_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."); }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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; }

function easing_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || easing_iterableToArray(arr) || easing_unsupportedIterableToArray(arr) || _nonIterableSpread(); }

function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function easing_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return easing_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 easing_arrayLikeToArray(o, minLen); }

function easing_iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }

function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return easing_arrayLikeToArray(arr); }

function easing_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; }


var ACCURACY = 1e-4;

var cubicBezierFactor = function cubicBezierFactor(c1, c2) {
  return [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];
};

var multyTime = function multyTime(params, t) {
  return params.map(function (param, i) {
    return param * Math.pow(t, i);
  }).reduce(function (pre, curr) {
    return pre + curr;
  });
};

var cubicBezier = function cubicBezier(c1, c2) {
  return function (t) {
    var params = cubicBezierFactor(c1, c2);
    return multyTime(params, t);
  };
};

var derivativeCubicBezier = function derivativeCubicBezier(c1, c2) {
  return function (t) {
    var params = cubicBezierFactor(c1, c2);
    var newParams = [].concat(_toConsumableArray(params.map(function (param, i) {
      return param * i;
    }).slice(1)), [0]);
    return multyTime(newParams, t);
  };
}; // calculate cubic-bezier using Newton's method


var easing_configBezier = function configBezier() {
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
    args[_key] = arguments[_key];
  }

  var x1 = args[0],
      y1 = args[1],
      x2 = args[2],
      y2 = args[3];

  if (args.length === 1) {
    switch (args[0]) {
      case 'linear':
        x1 = 0.0;
        y1 = 0.0;
        x2 = 1.0;
        y2 = 1.0;
        break;

      case 'ease':
        x1 = 0.25;
        y1 = 0.1;
        x2 = 0.25;
        y2 = 1.0;
        break;

      case 'ease-in':
        x1 = 0.42;
        y1 = 0.0;
        x2 = 1.0;
        y2 = 1.0;
        break;

      case 'ease-out':
        x1 = 0.42;
        y1 = 0.0;
        x2 = 0.58;
        y2 = 1.0;
        break;

      case 'ease-in-out':
        x1 = 0.0;
        y1 = 0.0;
        x2 = 0.58;
        y2 = 1.0;
        break;

      default:
        {
          var easing = args[0].split('(');

          if (easing[0] === 'cubic-bezier' && easing[1].split(')')[0].split(',').length === 4) {
            var _easing$1$split$0$spl = easing[1].split(')')[0].split(',').map(function (x) {
              return parseFloat(x);
            });

            var _easing$1$split$0$spl2 = _slicedToArray(_easing$1$split$0$spl, 4);

            x1 = _easing$1$split$0$spl2[0];
            y1 = _easing$1$split$0$spl2[1];
            x2 = _easing$1$split$0$spl2[2];
            y2 = _easing$1$split$0$spl2[3];
          } else {
            warn(false, '[configBezier]: arguments should be one of ' + 'oneOf \'linear\', \'ease\', \'ease-in\', \'ease-out\', ' + '\'ease-in-out\',\'cubic-bezier(x1,y1,x2,y2)\', instead received %s', args);
          }
        }
    }
  }

  warn([x1, x2, y1, y2].every(function (num) {
    return typeof num === 'number' && num >= 0 && num <= 1;
  }), '[configBezier]: arguments should be x1, y1, x2, y2 of [0, 1] instead received %s', args);
  var curveX = cubicBezier(x1, x2);
  var curveY = cubicBezier(y1, y2);
  var derCurveX = derivativeCubicBezier(x1, x2);

  var rangeValue = function rangeValue(value) {
    if (value > 1) {
      return 1;
    } else if (value < 0) {
      return 0;
    }

    return value;
  };

  var bezier = function bezier(_t) {
    var t = _t > 1 ? 1 : _t;
    var x = t;

    for (var i = 0; i < 8; ++i) {
      var evalT = curveX(x) - t;
      var derVal = derCurveX(x);

      if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {
        return curveY(x);
      }

      x = rangeValue(x - evalT / derVal);
    }

    return curveY(x);
  };

  bezier.isStepper = false;
  return bezier;
};
var configSpring = function configSpring() {
  var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  var _config$stiff = config.stiff,
      stiff = _config$stiff === void 0 ? 100 : _config$stiff,
      _config$damping = config.damping,
      damping = _config$damping === void 0 ? 8 : _config$damping,
      _config$dt = config.dt,
      dt = _config$dt === void 0 ? 17 : _config$dt;

  var stepper = function stepper(currX, destX, currV) {
    var FSpring = -(currX - destX) * stiff;
    var FDamping = currV * damping;
    var newV = currV + (FSpring - FDamping) * dt / 1000;
    var newX = currV * dt / 1000 + currX;

    if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {
      return [destX, 0];
    }

    return [newX, newV];
  };

  stepper.isStepper = true;
  stepper.dt = dt;
  return stepper;
};
var easing_configEasing = function configEasing() {
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
    args[_key2] = arguments[_key2];
  }

  var easing = args[0];

  if (typeof easing === 'string') {
    switch (easing) {
      case 'ease':
      case 'ease-in-out':
      case 'ease-out':
      case 'ease-in':
      case 'linear':
        return easing_configBezier(easing);

      case 'spring':
        return configSpring();

      default:
        if (easing.split('(')[0] === 'cubic-bezier') {
          return easing_configBezier(easing);
        }

        warn(false, '[configEasing]: first argument should be one of \'ease\', \'ease-in\', ' + '\'ease-out\', \'ease-in-out\',\'cubic-bezier(x1,y1,x2,y2)\', \'linear\' and \'spring\', instead  received %s', args);
    }
  }

  if (typeof easing === 'function') {
    return easing;
  }

  warn(false, '[configEasing]: first argument type should be function or ' + 'string, instead received %s', args);
  return null;
};
// CONCATENATED MODULE: ./node_modules/react-smooth/es6/configUpdate.js
function configUpdate_toConsumableArray(arr) { return configUpdate_arrayWithoutHoles(arr) || configUpdate_iterableToArray(arr) || configUpdate_unsupportedIterableToArray(arr) || configUpdate_nonIterableSpread(); }

function configUpdate_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function configUpdate_iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }

function configUpdate_arrayWithoutHoles(arr) { if (Array.isArray(arr)) return configUpdate_arrayLikeToArray(arr); }

function configUpdate_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; }

function configUpdate_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { configUpdate_ownKeys(Object(source), true).forEach(function (key) { configUpdate_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { configUpdate_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function configUpdate_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; }

function configUpdate_slicedToArray(arr, i) { return configUpdate_arrayWithHoles(arr) || configUpdate_iterableToArrayLimit(arr, i) || configUpdate_unsupportedIterableToArray(arr, i) || configUpdate_nonIterableRest(); }

function configUpdate_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."); }

function configUpdate_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return configUpdate_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 configUpdate_arrayLikeToArray(o, minLen); }

function configUpdate_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; }

function configUpdate_iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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; }

function configUpdate_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }




var alpha = function alpha(begin, end, k) {
  return begin + (end - begin) * k;
};

var needContinue = function needContinue(_ref) {
  var from = _ref.from,
      to = _ref.to;
  return from !== to;
};
/*
 * @description: cal new from value and velocity in each stepper
 * @return: { [styleProperty]: { from, to, velocity } }
 */


var configUpdate_calStepperVals = function calStepperVals(easing, preVals, steps) {
  var nextStepVals = mapObject(function (key, val) {
    if (needContinue(val)) {
      var _easing = easing(val.from, val.to, val.velocity),
          _easing2 = configUpdate_slicedToArray(_easing, 2),
          newX = _easing2[0],
          newV = _easing2[1];

      return configUpdate_objectSpread(configUpdate_objectSpread({}, val), {}, {
        from: newX,
        velocity: newV
      });
    }

    return val;
  }, preVals);

  if (steps < 1) {
    return mapObject(function (key, val) {
      if (needContinue(val)) {
        return configUpdate_objectSpread(configUpdate_objectSpread({}, val), {}, {
          velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),
          from: alpha(val.from, nextStepVals[key].from, steps)
        });
      }

      return val;
    }, preVals);
  }

  return calStepperVals(easing, nextStepVals, steps - 1);
}; // configure update function


/* harmony default export */ var configUpdate = (function (from, to, easing, duration, render) {
  var interKeys = getIntersectionKeys(from, to);
  var timingStyle = interKeys.reduce(function (res, key) {
    return configUpdate_objectSpread(configUpdate_objectSpread({}, res), {}, configUpdate_defineProperty({}, key, [from[key], to[key]]));
  }, {});
  var stepperStyle = interKeys.reduce(function (res, key) {
    return configUpdate_objectSpread(configUpdate_objectSpread({}, res), {}, configUpdate_defineProperty({}, key, {
      from: from[key],
      velocity: 0,
      to: to[key]
    }));
  }, {});
  var cafId = -1;
  var preTime;
  var beginTime;

  var update = function update() {
    return null;
  };

  var getCurrStyle = function getCurrStyle() {
    return mapObject(function (key, val) {
      return val.from;
    }, stepperStyle);
  };

  var shouldStopAnimation = function shouldStopAnimation() {
    return !Object.values(stepperStyle).filter(needContinue).length;
  }; // stepper timing function like spring


  var stepperUpdate = function stepperUpdate(now) {
    if (!preTime) {
      preTime = now;
    }

    var deltaTime = now - preTime;
    var steps = deltaTime / easing.dt;
    stepperStyle = configUpdate_calStepperVals(easing, stepperStyle, steps); // get union set and add compatible prefix

    render(configUpdate_objectSpread(configUpdate_objectSpread(configUpdate_objectSpread({}, from), to), getCurrStyle(stepperStyle)));
    preTime = now;

    if (!shouldStopAnimation()) {
      cafId = raf_default()(update);
    }
  }; // t => val timing function like cubic-bezier


  var timingUpdate = function timingUpdate(now) {
    if (!beginTime) {
      beginTime = now;
    }

    var t = (now - beginTime) / duration;
    var currStyle = mapObject(function (key, val) {
      return alpha.apply(void 0, configUpdate_toConsumableArray(val).concat([easing(t)]));
    }, timingStyle); // get union set and add compatible prefix

    render(configUpdate_objectSpread(configUpdate_objectSpread(configUpdate_objectSpread({}, from), to), currStyle));

    if (t < 1) {
      cafId = raf_default()(update);
    } else {
      var finalStyle = mapObject(function (key, val) {
        return alpha.apply(void 0, configUpdate_toConsumableArray(val).concat([easing(1)]));
      }, timingStyle);
      render(configUpdate_objectSpread(configUpdate_objectSpread(configUpdate_objectSpread({}, from), to), finalStyle));
    }
  };

  update = easing.isStepper ? stepperUpdate : timingUpdate; // return start animation method

  return function () {
    raf_default()(update); // return stop animation method

    return function () {
      Object(raf["cancel"])(cafId);
    };
  };
});
// CONCATENATED MODULE: ./node_modules/react-smooth/es6/Animate.js
function Animate_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { Animate_typeof = function _typeof(obj) { return typeof obj; }; } else { Animate_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return Animate_typeof(obj); }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _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; }

function _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; }

function Animate_toConsumableArray(arr) { return Animate_arrayWithoutHoles(arr) || Animate_iterableToArray(arr) || Animate_unsupportedIterableToArray(arr) || Animate_nonIterableSpread(); }

function Animate_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function Animate_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return Animate_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 Animate_arrayLikeToArray(o, minLen); }

function Animate_iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }

function Animate_arrayWithoutHoles(arr) { if (Array.isArray(arr)) return Animate_arrayLikeToArray(arr); }

function Animate_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; }

function Animate_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; }

function Animate_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { Animate_ownKeys(Object(source), true).forEach(function (key) { Animate_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { Animate_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function Animate_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; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (Animate_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }









var Animate_Animate = /*#__PURE__*/function (_PureComponent) {
  _inherits(Animate, _PureComponent);

  var _super = _createSuper(Animate);

  function Animate(props, context) {
    var _this;

    _classCallCheck(this, Animate);

    _this = _super.call(this, props, context);
    var _this$props = _this.props,
        isActive = _this$props.isActive,
        attributeName = _this$props.attributeName,
        from = _this$props.from,
        to = _this$props.to,
        steps = _this$props.steps,
        children = _this$props.children;
    _this.handleStyleChange = _this.handleStyleChange.bind(_assertThisInitialized(_this));
    _this.changeStyle = _this.changeStyle.bind(_assertThisInitialized(_this));

    if (!isActive) {
      _this.state = {
        style: {}
      }; // if children is a function and animation is not active, set style to 'to'

      if (typeof children === 'function') {
        _this.state = {
          style: to
        };
      }

      return _possibleConstructorReturn(_this);
    }

    if (steps && steps.length) {
      _this.state = {
        style: steps[0].style
      };
    } else if (from) {
      if (typeof children === 'function') {
        _this.state = {
          style: from
        };
        return _possibleConstructorReturn(_this);
      }

      _this.state = {
        style: attributeName ? Animate_defineProperty({}, attributeName, from) : from
      };
    } else {
      _this.state = {
        style: {}
      };
    }

    return _this;
  }

  _createClass(Animate, [{
    key: "componentDidMount",
    value: function componentDidMount() {
      var _this$props2 = this.props,
          isActive = _this$props2.isActive,
          canBegin = _this$props2.canBegin;
      this.mounted = true;

      if (!isActive || !canBegin) {
        return;
      }

      this.runAnimation(this.props);
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate(prevProps) {
      var _this$props3 = this.props,
          isActive = _this$props3.isActive,
          canBegin = _this$props3.canBegin,
          attributeName = _this$props3.attributeName,
          shouldReAnimate = _this$props3.shouldReAnimate;

      if (!canBegin) {
        return;
      }

      if (!isActive) {
        var newState = {
          style: attributeName ? Animate_defineProperty({}, attributeName, this.props.to) : this.props.to
        };

        if (this.state && this.state.style) {
          if (attributeName && this.state.style[attributeName] !== this.props.to || !attributeName && this.state.style !== this.props.to) {
            // eslint-disable-next-line react/no-did-update-set-state
            this.setState(newState);
          }
        }

        return;
      }

      if (Object(fast_equals["deepEqual"])(prevProps.to, this.props.to) && prevProps.canBegin && prevProps.isActive) {
        return;
      }

      var isTriggered = !prevProps.canBegin || !prevProps.isActive;

      if (this.manager) {
        this.manager.stop();
      }

      if (this.stopJSAnimation) {
        this.stopJSAnimation();
      }

      var from = isTriggered || shouldReAnimate ? this.props.from : prevProps.to;

      if (this.state && this.state.style) {
        var _newState = {
          style: attributeName ? Animate_defineProperty({}, attributeName, from) : from
        };

        if (attributeName && this.state.style[attributeName] !== from || !attributeName && this.state.style !== from) {
          // eslint-disable-next-line react/no-did-update-set-state
          this.setState(_newState);
        }
      }

      this.runAnimation(Animate_objectSpread(Animate_objectSpread({}, this.props), {}, {
        from: from,
        begin: 0
      }));
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      this.mounted = false;

      if (this.unSubscribe) {
        this.unSubscribe();
      }

      if (this.manager) {
        this.manager.stop();
        this.manager = null;
      }

      if (this.stopJSAnimation) {
        this.stopJSAnimation();
      }
    }
  }, {
    key: "runJSAnimation",
    value: function runJSAnimation(props) {
      var _this2 = this;

      var from = props.from,
          to = props.to,
          duration = props.duration,
          easing = props.easing,
          begin = props.begin,
          onAnimationEnd = props.onAnimationEnd,
          onAnimationStart = props.onAnimationStart;
      var startAnimation = configUpdate(from, to, easing_configEasing(easing), duration, this.changeStyle);

      var finalStartAnimation = function finalStartAnimation() {
        _this2.stopJSAnimation = startAnimation();
      };

      this.manager.start([onAnimationStart, begin, finalStartAnimation, duration, onAnimationEnd]);
    }
  }, {
    key: "runStepAnimation",
    value: function runStepAnimation(props) {
      var _this3 = this;

      var steps = props.steps,
          begin = props.begin,
          onAnimationStart = props.onAnimationStart;
      var _steps$ = steps[0],
          initialStyle = _steps$.style,
          _steps$$duration = _steps$.duration,
          initialTime = _steps$$duration === void 0 ? 0 : _steps$$duration;

      var addStyle = function addStyle(sequence, nextItem, index) {
        if (index === 0) {
          return sequence;
        }

        var duration = nextItem.duration,
            _nextItem$easing = nextItem.easing,
            easing = _nextItem$easing === void 0 ? 'ease' : _nextItem$easing,
            style = nextItem.style,
            nextProperties = nextItem.properties,
            onAnimationEnd = nextItem.onAnimationEnd;
        var preItem = index > 0 ? steps[index - 1] : nextItem;
        var properties = nextProperties || Object.keys(style);

        if (typeof easing === 'function' || easing === 'spring') {
          return [].concat(Animate_toConsumableArray(sequence), [_this3.runJSAnimation.bind(_this3, {
            from: preItem.style,
            to: style,
            duration: duration,
            easing: easing
          }), duration]);
        }

        var transition = getTransitionVal(properties, duration, easing);

        var newStyle = Animate_objectSpread(Animate_objectSpread(Animate_objectSpread({}, preItem.style), style), {}, {
          transition: transition
        });

        return [].concat(Animate_toConsumableArray(sequence), [newStyle, duration, onAnimationEnd]).filter(identity);
      };

      return this.manager.start([onAnimationStart].concat(Animate_toConsumableArray(steps.reduce(addStyle, [initialStyle, Math.max(initialTime, begin)])), [props.onAnimationEnd]));
    }
  }, {
    key: "runAnimation",
    value: function runAnimation(props) {
      if (!this.manager) {
        this.manager = createAnimateManager();
      }

      var begin = props.begin,
          duration = props.duration,
          attributeName = props.attributeName,
          propsTo = props.to,
          easing = props.easing,
          onAnimationStart = props.onAnimationStart,
          onAnimationEnd = props.onAnimationEnd,
          steps = props.steps,
          children = props.children;
      var manager = this.manager;
      this.unSubscribe = manager.subscribe(this.handleStyleChange);

      if (typeof easing === 'function' || typeof children === 'function' || easing === 'spring') {
        this.runJSAnimation(props);
        return;
      }

      if (steps.length > 1) {
        this.runStepAnimation(props);
        return;
      }

      var to = attributeName ? Animate_defineProperty({}, attributeName, propsTo) : propsTo;
      var transition = getTransitionVal(Object.keys(to), duration, easing);
      manager.start([onAnimationStart, begin, Animate_objectSpread(Animate_objectSpread({}, to), {}, {
        transition: transition
      }), duration, onAnimationEnd]);
    }
  }, {
    key: "handleStyleChange",
    value: function handleStyleChange(style) {
      this.changeStyle(style);
    }
  }, {
    key: "changeStyle",
    value: function changeStyle(style) {
      if (this.mounted) {
        this.setState({
          style: style
        });
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props4 = this.props,
          children = _this$props4.children,
          begin = _this$props4.begin,
          duration = _this$props4.duration,
          attributeName = _this$props4.attributeName,
          easing = _this$props4.easing,
          isActive = _this$props4.isActive,
          steps = _this$props4.steps,
          from = _this$props4.from,
          to = _this$props4.to,
          canBegin = _this$props4.canBegin,
          onAnimationEnd = _this$props4.onAnimationEnd,
          shouldReAnimate = _this$props4.shouldReAnimate,
          onAnimationReStart = _this$props4.onAnimationReStart,
          others = _objectWithoutProperties(_this$props4, ["children", "begin", "duration", "attributeName", "easing", "isActive", "steps", "from", "to", "canBegin", "onAnimationEnd", "shouldReAnimate", "onAnimationReStart"]);

      var count = react["Children"].count(children);
      var stateStyle = translateStyle(this.state.style);

      if (typeof children === 'function') {
        return children(stateStyle);
      }

      if (!isActive || count === 0) {
        return children;
      }

      var cloneContainer = function cloneContainer(container) {
        var _container$props = container.props,
            _container$props$styl = _container$props.style,
            style = _container$props$styl === void 0 ? {} : _container$props$styl,
            className = _container$props.className;
        var res = /*#__PURE__*/Object(react["cloneElement"])(container, Animate_objectSpread(Animate_objectSpread({}, others), {}, {
          style: Animate_objectSpread(Animate_objectSpread({}, style), stateStyle),
          className: className
        }));
        return res;
      };

      if (count === 1) {
        return cloneContainer(react["Children"].only(children));
      }

      return /*#__PURE__*/react_default.a.createElement("div", null, react["Children"].map(children, function (child) {
        return cloneContainer(child);
      }));
    }
  }]);

  return Animate;
}(react["PureComponent"]);

Animate_Animate.displayName = 'Animate';
Animate_Animate.propTypes = {
  from: prop_types_default.a.oneOfType([prop_types_default.a.object, prop_types_default.a.string]),
  to: prop_types_default.a.oneOfType([prop_types_default.a.object, prop_types_default.a.string]),
  attributeName: prop_types_default.a.string,
  // animation duration
  duration: prop_types_default.a.number,
  begin: prop_types_default.a.number,
  easing: prop_types_default.a.oneOfType([prop_types_default.a.string, prop_types_default.a.func]),
  steps: prop_types_default.a.arrayOf(prop_types_default.a.shape({
    duration: prop_types_default.a.number.isRequired,
    style: prop_types_default.a.object.isRequired,
    easing: prop_types_default.a.oneOfType([prop_types_default.a.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']), prop_types_default.a.func]),
    // transition css properties(dash case), optional
    properties: prop_types_default.a.arrayOf('string'),
    onAnimationEnd: prop_types_default.a.func
  })),
  children: prop_types_default.a.oneOfType([prop_types_default.a.node, prop_types_default.a.func]),
  isActive: prop_types_default.a.bool,
  canBegin: prop_types_default.a.bool,
  onAnimationEnd: prop_types_default.a.func,
  // decide if it should reanimate with initial from style when props change
  shouldReAnimate: prop_types_default.a.bool,
  onAnimationStart: prop_types_default.a.func,
  onAnimationReStart: prop_types_default.a.func
};
Animate_Animate.defaultProps = {
  begin: 0,
  duration: 1000,
  from: '',
  to: '',
  attributeName: '',
  easing: 'ease',
  isActive: true,
  canBegin: true,
  steps: [],
  onAnimationEnd: function onAnimationEnd() {},
  onAnimationStart: function onAnimationStart() {}
};
/* harmony default export */ var es6_Animate = (Animate_Animate);
// EXTERNAL MODULE: ./node_modules/react-smooth/node_modules/react-transition-group/index.js
var react_transition_group = __webpack_require__(415);

// CONCATENATED MODULE: ./node_modules/react-smooth/es6/AnimateGroupChild.js
function AnimateGroupChild_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { AnimateGroupChild_typeof = function _typeof(obj) { return typeof obj; }; } else { AnimateGroupChild_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return AnimateGroupChild_typeof(obj); }

function _extends() { _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 _extends.apply(this, arguments); }

function AnimateGroupChild_objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = AnimateGroupChild_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; }

function AnimateGroupChild_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; }

function AnimateGroupChild_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; }

function AnimateGroupChild_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { AnimateGroupChild_ownKeys(Object(source), true).forEach(function (key) { AnimateGroupChild_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { AnimateGroupChild_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function AnimateGroupChild_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; }

function AnimateGroupChild_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function AnimateGroupChild_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function AnimateGroupChild_createClass(Constructor, protoProps, staticProps) { if (protoProps) AnimateGroupChild_defineProperties(Constructor.prototype, protoProps); if (staticProps) AnimateGroupChild_defineProperties(Constructor, staticProps); return Constructor; }

function AnimateGroupChild_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) AnimateGroupChild_setPrototypeOf(subClass, superClass); }

function AnimateGroupChild_setPrototypeOf(o, p) { AnimateGroupChild_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return AnimateGroupChild_setPrototypeOf(o, p); }

function AnimateGroupChild_createSuper(Derived) { var hasNativeReflectConstruct = AnimateGroupChild_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = AnimateGroupChild_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = AnimateGroupChild_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return AnimateGroupChild_possibleConstructorReturn(this, result); }; }

function AnimateGroupChild_possibleConstructorReturn(self, call) { if (call && (AnimateGroupChild_typeof(call) === "object" || typeof call === "function")) { return call; } return AnimateGroupChild_assertThisInitialized(self); }

function AnimateGroupChild_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function AnimateGroupChild_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function AnimateGroupChild_getPrototypeOf(o) { AnimateGroupChild_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return AnimateGroupChild_getPrototypeOf(o); }






if (Number.isFinite === undefined) {
  Number.isFinite = function (value) {
    return typeof value === 'number' && isFinite(value);
  };
}

var parseDurationOfSingleTransition = function parseDurationOfSingleTransition() {
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  var steps = options.steps,
      duration = options.duration;

  if (steps && steps.length) {
    return steps.reduce(function (result, entry) {
      return result + (Number.isFinite(entry.duration) && entry.duration > 0 ? entry.duration : 0);
    }, 0);
  }

  if (Number.isFinite(duration)) {
    return duration;
  }

  return 0;
};

var AnimateGroupChild_AnimateGroupChild = /*#__PURE__*/function (_Component) {
  AnimateGroupChild_inherits(AnimateGroupChild, _Component);

  var _super = AnimateGroupChild_createSuper(AnimateGroupChild);

  function AnimateGroupChild() {
    var _this;

    AnimateGroupChild_classCallCheck(this, AnimateGroupChild);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _super.call.apply(_super, [this].concat(args));
    _this.state = {
      isActive: false
    };

    _this.handleEnter = function (node, isAppearing) {
      var _this$props = _this.props,
          appearOptions = _this$props.appearOptions,
          enterOptions = _this$props.enterOptions;

      _this.handleStyleActive(isAppearing ? appearOptions : enterOptions);
    };

    _this.handleExit = function () {
      _this.handleStyleActive(_this.props.leaveOptions);
    };

    return _this;
  }

  AnimateGroupChild_createClass(AnimateGroupChild, [{
    key: "handleStyleActive",
    value: function handleStyleActive(style) {
      if (style) {
        var onAnimationEnd = style.onAnimationEnd ? function () {
          style.onAnimationEnd();
        } : null;
        this.setState(AnimateGroupChild_objectSpread(AnimateGroupChild_objectSpread({}, style), {}, {
          onAnimationEnd: onAnimationEnd,
          isActive: true
        }));
      }
    }
  }, {
    key: "parseTimeout",
    value: function parseTimeout() {
      var _this$props2 = this.props,
          appearOptions = _this$props2.appearOptions,
          enterOptions = _this$props2.enterOptions,
          leaveOptions = _this$props2.leaveOptions;
      return parseDurationOfSingleTransition(appearOptions) + parseDurationOfSingleTransition(enterOptions) + parseDurationOfSingleTransition(leaveOptions);
    }
  }, {
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$props3 = this.props,
          children = _this$props3.children,
          appearOptions = _this$props3.appearOptions,
          enterOptions = _this$props3.enterOptions,
          leaveOptions = _this$props3.leaveOptions,
          props = AnimateGroupChild_objectWithoutProperties(_this$props3, ["children", "appearOptions", "enterOptions", "leaveOptions"]);

      return /*#__PURE__*/react_default.a.createElement(react_transition_group["Transition"], _extends({}, props, {
        onEnter: this.handleEnter,
        onExit: this.handleExit,
        timeout: this.parseTimeout()
      }), function () {
        return /*#__PURE__*/react_default.a.createElement(es6_Animate, _this2.state, react["Children"].only(children));
      });
    }
  }]);

  return AnimateGroupChild;
}(react["Component"]);

AnimateGroupChild_AnimateGroupChild.propTypes = {
  appearOptions: prop_types_default.a.object,
  enterOptions: prop_types_default.a.object,
  leaveOptions: prop_types_default.a.object,
  children: prop_types_default.a.element
};
/* harmony default export */ var es6_AnimateGroupChild = (AnimateGroupChild_AnimateGroupChild);
// CONCATENATED MODULE: ./node_modules/react-smooth/es6/AnimateGroup.js





function AnimateGroup(props) {
  var component = props.component,
      children = props.children,
      appear = props.appear,
      enter = props.enter,
      leave = props.leave;
  return /*#__PURE__*/react_default.a.createElement(react_transition_group["TransitionGroup"], {
    component: component
  }, react["Children"].map(children, function (child, index) {
    return /*#__PURE__*/react_default.a.createElement(es6_AnimateGroupChild, {
      appearOptions: appear,
      enterOptions: enter,
      leaveOptions: leave,
      key: "child-".concat(index) // eslint-disable-line

    }, child);
  }));
}

AnimateGroup.propTypes = {
  appear: prop_types_default.a.object,
  enter: prop_types_default.a.object,
  leave: prop_types_default.a.object,
  children: prop_types_default.a.oneOfType([prop_types_default.a.array, prop_types_default.a.element]),
  component: prop_types_default.a.any
};
AnimateGroup.defaultProps = {
  component: 'span'
};
/* harmony default export */ var es6_AnimateGroup = (AnimateGroup);
// CONCATENATED MODULE: ./node_modules/react-smooth/es6/index.js





/* harmony default export */ var es6 = __webpack_exports__["a"] = (es6_Animate);
// UNUSED EXPORTS: CalendarContainer

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/prop-types/index.js
var prop_types = __webpack_require__(3);
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__(25);
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/react-dom/index.js
var react_dom = __webpack_require__(40);

// CONCATENATED MODULE: ./node_modules/react-onclickoutside/dist/react-onclickoutside.es.js



function _inheritsLoose(subClass, superClass) {
  subClass.prototype = Object.create(superClass.prototype);
  subClass.prototype.constructor = subClass;
  subClass.__proto__ = superClass;
}

function _objectWithoutProperties(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];
  }

  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;
}

/**
 * Check whether some DOM node is our Component's node.
 */
function isNodeFound(current, componentNode, ignoreClass) {
  if (current === componentNode) {
    return true;
  } // SVG <use/> elements do not technically reside in the rendered DOM, so
  // they do not have classList directly, but they offer a link to their
  // corresponding element, which can have classList. This extra check is for
  // that case.
  // See: http://www.w3.org/TR/SVG11/struct.html#InterfaceSVGUseElement
  // Discussion: https://github.com/Pomax/react-onclickoutside/pull/17


  if (current.correspondingElement) {
    return current.correspondingElement.classList.contains(ignoreClass);
  }

  return current.classList.contains(ignoreClass);
}
/**
 * Try to find our node in a hierarchy of nodes, returning the document
 * node as highest node if our node is not found in the path up.
 */

function findHighest(current, componentNode, ignoreClass) {
  if (current === componentNode) {
    return true;
  } // If source=local then this event came from 'somewhere'
  // inside and should be ignored. We could handle this with
  // a layered approach, too, but that requires going back to
  // thinking in terms of Dom node nesting, running counter
  // to React's 'you shouldn't care about the DOM' philosophy.


  while (current.parentNode) {
    if (isNodeFound(current, componentNode, ignoreClass)) {
      return true;
    }

    current = current.parentNode;
  }

  return current;
}
/**
 * Check if the browser scrollbar was clicked
 */

function clickedScrollbar(evt) {
  return document.documentElement.clientWidth <= evt.clientX || document.documentElement.clientHeight <= evt.clientY;
}

// ideally will get replaced with external dep
// when rafrex/detect-passive-events#4 and rafrex/detect-passive-events#5 get merged in
var testPassiveEventSupport = function testPassiveEventSupport() {
  if (typeof window === 'undefined' || typeof window.addEventListener !== 'function') {
    return;
  }

  var passive = false;
  var options = Object.defineProperty({}, 'passive', {
    get: function get() {
      passive = true;
    }
  });

  var noop = function noop() {};

  window.addEventListener('testPassiveEventSupport', noop, options);
  window.removeEventListener('testPassiveEventSupport', noop, options);
  return passive;
};

function autoInc(seed) {
  if (seed === void 0) {
    seed = 0;
  }

  return function () {
    return ++seed;
  };
}

var uid = autoInc();

var passiveEventSupport;
var handlersMap = {};
var enabledInstances = {};
var touchEvents = ['touchstart', 'touchmove'];
var IGNORE_CLASS_NAME = 'ignore-react-onclickoutside';
/**
 * Options for addEventHandler and removeEventHandler
 */

function getEventHandlerOptions(instance, eventName) {
  var handlerOptions = null;
  var isTouchEvent = touchEvents.indexOf(eventName) !== -1;

  if (isTouchEvent && passiveEventSupport) {
    handlerOptions = {
      passive: !instance.props.preventDefault
    };
  }

  return handlerOptions;
}
/**
 * This function generates the HOC function that you'll use
 * in order to impart onOutsideClick listening to an
 * arbitrary component. It gets called at the end of the
 * bootstrapping code to yield an instance of the
 * onClickOutsideHOC function defined inside setupHOC().
 */


function onClickOutsideHOC(WrappedComponent, config) {
  var _class, _temp;

  return _temp = _class =
  /*#__PURE__*/
  function (_Component) {
    _inheritsLoose(onClickOutside, _Component);

    function onClickOutside(props) {
      var _this;

      _this = _Component.call(this, props) || this;

      _this.__outsideClickHandler = function (event) {
        if (typeof _this.__clickOutsideHandlerProp === 'function') {
          _this.__clickOutsideHandlerProp(event);

          return;
        }

        var instance = _this.getInstance();

        if (typeof instance.props.handleClickOutside === 'function') {
          instance.props.handleClickOutside(event);
          return;
        }

        if (typeof instance.handleClickOutside === 'function') {
          instance.handleClickOutside(event);
          return;
        }

        throw new Error('WrappedComponent lacks a handleClickOutside(event) function for processing outside click events.');
      };

      _this.enableOnClickOutside = function () {
        if (typeof document === 'undefined' || enabledInstances[_this._uid]) {
          return;
        }

        if (typeof passiveEventSupport === 'undefined') {
          passiveEventSupport = testPassiveEventSupport();
        }

        enabledInstances[_this._uid] = true;
        var events = _this.props.eventTypes;

        if (!events.forEach) {
          events = [events];
        }

        handlersMap[_this._uid] = function (event) {
          if (_this.props.disableOnClickOutside) return;
          if (_this.componentNode === null) return;

          if (_this.props.preventDefault) {
            event.preventDefault();
          }

          if (_this.props.stopPropagation) {
            event.stopPropagation();
          }

          if (_this.props.excludeScrollbar && clickedScrollbar(event)) return;
          var current = event.target;

          if (findHighest(current, _this.componentNode, _this.props.outsideClickIgnoreClass) !== document) {
            return;
          }

          _this.__outsideClickHandler(event);
        };

        events.forEach(function (eventName) {
          document.addEventListener(eventName, handlersMap[_this._uid], getEventHandlerOptions(_this, eventName));
        });
      };

      _this.disableOnClickOutside = function () {
        delete enabledInstances[_this._uid];
        var fn = handlersMap[_this._uid];

        if (fn && typeof document !== 'undefined') {
          var events = _this.props.eventTypes;

          if (!events.forEach) {
            events = [events];
          }

          events.forEach(function (eventName) {
            return document.removeEventListener(eventName, fn, getEventHandlerOptions(_this, eventName));
          });
          delete handlersMap[_this._uid];
        }
      };

      _this.getRef = function (ref) {
        return _this.instanceRef = ref;
      };

      _this._uid = uid();
      return _this;
    }
    /**
     * Access the WrappedComponent's instance.
     */


    var _proto = onClickOutside.prototype;

    _proto.getInstance = function getInstance() {
      if (!WrappedComponent.prototype.isReactComponent) {
        return this;
      }

      var ref = this.instanceRef;
      return ref.getInstance ? ref.getInstance() : ref;
    };

    /**
     * Add click listeners to the current document,
     * linked to this component's state.
     */
    _proto.componentDidMount = function componentDidMount() {
      // If we are in an environment without a DOM such
      // as shallow rendering or snapshots then we exit
      // early to prevent any unhandled errors being thrown.
      if (typeof document === 'undefined' || !document.createElement) {
        return;
      }

      var instance = this.getInstance();

      if (config && typeof config.handleClickOutside === 'function') {
        this.__clickOutsideHandlerProp = config.handleClickOutside(instance);

        if (typeof this.__clickOutsideHandlerProp !== 'function') {
          throw new Error('WrappedComponent lacks a function for processing outside click events specified by the handleClickOutside config option.');
        }
      }

      this.componentNode = Object(react_dom["findDOMNode"])(this.getInstance());
      this.enableOnClickOutside();
    };

    _proto.componentDidUpdate = function componentDidUpdate() {
      this.componentNode = Object(react_dom["findDOMNode"])(this.getInstance());
    };
    /**
     * Remove all document's event listeners for this component
     */


    _proto.componentWillUnmount = function componentWillUnmount() {
      this.disableOnClickOutside();
    };
    /**
     * Can be called to explicitly enable event listening
     * for clicks and touches outside of this element.
     */


    /**
     * Pass-through render
     */
    _proto.render = function render() {
      // eslint-disable-next-line no-unused-vars
      var _props = this.props,
          excludeScrollbar = _props.excludeScrollbar,
          props = _objectWithoutProperties(_props, ["excludeScrollbar"]);

      if (WrappedComponent.prototype.isReactComponent) {
        props.ref = this.getRef;
      } else {
        props.wrappedRef = this.getRef;
      }

      props.disableOnClickOutside = this.disableOnClickOutside;
      props.enableOnClickOutside = this.enableOnClickOutside;
      return Object(react["createElement"])(WrappedComponent, props);
    };

    return onClickOutside;
  }(react["Component"]), _class.displayName = "OnClickOutside(" + (WrappedComponent.displayName || WrappedComponent.name || 'Component') + ")", _class.defaultProps = {
    eventTypes: ['mousedown', 'touchstart'],
    excludeScrollbar: config && config.excludeScrollbar || false,
    outsideClickIgnoreClass: IGNORE_CLASS_NAME,
    preventDefault: false,
    stopPropagation: false
  }, _class.getClass = function () {
    return WrappedComponent.getClass ? WrappedComponent.getClass() : WrappedComponent;
  }, _temp;
}


/* harmony default export */ var react_onclickoutside_es = (onClickOutsideHOC);

// EXTERNAL MODULE: ./node_modules/moment/moment.js
var moment = __webpack_require__(23);
var moment_default = /*#__PURE__*/__webpack_require__.n(moment);

// CONCATENATED MODULE: ./node_modules/react-popper/lib/Manager.js
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

function Manager_objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }




var Manager_Manager = function (_Component) {
  _inherits(Manager, _Component);

  function Manager() {
    var _ref;

    var _temp, _this, _ret;

    _classCallCheck(this, Manager);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Manager.__proto__ || Object.getPrototypeOf(Manager)).call.apply(_ref, [this].concat(args))), _this), _this._setTargetNode = function (node) {
      _this._targetNode = node;
    }, _this._getTargetNode = function () {
      return _this._targetNode;
    }, _temp), _possibleConstructorReturn(_this, _ret);
  }

  _createClass(Manager, [{
    key: 'getChildContext',
    value: function getChildContext() {
      return {
        popperManager: {
          setTargetNode: this._setTargetNode,
          getTargetNode: this._getTargetNode
        }
      };
    }
  }, {
    key: 'render',
    value: function render() {
      var _props = this.props,
          tag = _props.tag,
          children = _props.children,
          restProps = Manager_objectWithoutProperties(_props, ['tag', 'children']);

      if (tag !== false) {
        return Object(react["createElement"])(tag, restProps, children);
      } else {
        return children;
      }
    }
  }]);

  return Manager;
}(react["Component"]);

Manager_Manager.childContextTypes = {
  popperManager: prop_types_default.a.object.isRequired
};
Manager_Manager.propTypes = {
  tag: prop_types_default.a.oneOfType([prop_types_default.a.string, prop_types_default.a.bool]),
  children: prop_types_default.a.oneOfType([prop_types_default.a.node, prop_types_default.a.func])
};
Manager_Manager.defaultProps = {
  tag: 'div'
};


/* harmony default export */ var lib_Manager = (Manager_Manager);
// CONCATENATED MODULE: ./node_modules/react-popper/lib/Target.js
var _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; };

function Target_objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }




var Target_Target = function Target(props, context) {
  var _props$component = props.component,
      component = _props$component === undefined ? 'div' : _props$component,
      innerRef = props.innerRef,
      children = props.children,
      restProps = Target_objectWithoutProperties(props, ['component', 'innerRef', 'children']);

  var popperManager = context.popperManager;

  var targetRef = function targetRef(node) {
    popperManager.setTargetNode(node);
    if (typeof innerRef === 'function') {
      innerRef(node);
    }
  };

  if (typeof children === 'function') {
    var targetProps = { ref: targetRef };
    return children({ targetProps: targetProps, restProps: restProps });
  }

  var componentProps = _extends({}, restProps);

  if (typeof component === 'string') {
    componentProps.ref = targetRef;
  } else {
    componentProps.innerRef = targetRef;
  }

  return Object(react["createElement"])(component, componentProps, children);
};

Target_Target.contextTypes = {
  popperManager: prop_types_default.a.object.isRequired
};

Target_Target.propTypes = {
  component: prop_types_default.a.oneOfType([prop_types_default.a.node, prop_types_default.a.func]),
  innerRef: prop_types_default.a.func,
  children: prop_types_default.a.oneOfType([prop_types_default.a.node, prop_types_default.a.func])
};

/* harmony default export */ var lib_Target = (Target_Target);
// EXTERNAL MODULE: ./node_modules/popper.js/dist/esm/popper.js
var esm_popper = __webpack_require__(568);

// CONCATENATED MODULE: ./node_modules/react-popper/lib/Popper.js
var Popper_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; };

var Popper_createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

function Popper_objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }

function Popper_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function Popper_possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function Popper_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }





var placements = esm_popper["a" /* default */].placements;

var Popper_Popper = function (_Component) {
  Popper_inherits(Popper, _Component);

  function Popper() {
    var _ref;

    var _temp, _this, _ret;

    Popper_classCallCheck(this, Popper);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = Popper_possibleConstructorReturn(this, (_ref = Popper.__proto__ || Object.getPrototypeOf(Popper)).call.apply(_ref, [this].concat(args))), _this), _this.state = {}, _this._setArrowNode = function (node) {
      _this._arrowNode = node;
    }, _this._getTargetNode = function () {
      if (_this.props.target) {
        return _this.props.target;
      } else if (!_this.context.popperManager || !_this.context.popperManager.getTargetNode()) {
        throw new Error('Target missing. Popper must be given a target from the Popper Manager, or as a prop.');
      }
      return _this.context.popperManager.getTargetNode();
    }, _this._getOffsets = function (data) {
      return Object.keys(data.offsets).map(function (key) {
        return data.offsets[key];
      });
    }, _this._isDataDirty = function (data) {
      if (_this.state.data) {
        return JSON.stringify(_this._getOffsets(_this.state.data)) !== JSON.stringify(_this._getOffsets(data));
      } else {
        return true;
      }
    }, _this._updateStateModifier = {
      enabled: true,
      order: 900,
      fn: function fn(data) {
        if (_this._isDataDirty(data)) {
          _this.setState({ data: data });
        }
        return data;
      }
    }, _this._getPopperStyle = function () {
      var data = _this.state.data;


      if (!_this._popper || !data) {
        return {
          position: 'absolute',
          pointerEvents: 'none',
          opacity: 0
        };
      }

      return Popper_extends({
        position: data.offsets.popper.position
      }, data.styles);
    }, _this._getPopperPlacement = function () {
      return _this.state.data ? _this.state.data.placement : undefined;
    }, _this._getPopperHide = function () {
      return !!_this.state.data && _this.state.data.hide ? '' : undefined;
    }, _this._getArrowStyle = function () {
      if (!_this.state.data || !_this.state.data.offsets.arrow) {
        return {};
      } else {
        var _this$state$data$offs = _this.state.data.offsets.arrow,
            top = _this$state$data$offs.top,
            left = _this$state$data$offs.left;

        return { top: top, left: left };
      }
    }, _this._handlePopperRef = function (node) {
      _this._popperNode = node;
      if (node) {
        _this._createPopper();
      } else {
        _this._destroyPopper();
      }
      if (_this.props.innerRef) {
        _this.props.innerRef(node);
      }
    }, _this._scheduleUpdate = function () {
      _this._popper && _this._popper.scheduleUpdate();
    }, _temp), Popper_possibleConstructorReturn(_this, _ret);
  }

  Popper_createClass(Popper, [{
    key: 'getChildContext',
    value: function getChildContext() {
      return {
        popper: {
          setArrowNode: this._setArrowNode,
          getArrowStyle: this._getArrowStyle
        }
      };
    }
  }, {
    key: 'componentDidUpdate',
    value: function componentDidUpdate(lastProps) {
      if (lastProps.placement !== this.props.placement || lastProps.eventsEnabled !== this.props.eventsEnabled || lastProps.target !== this.props.target) {
        this._destroyPopper();
        this._createPopper();
      }
      if (lastProps.children !== this.props.children) {
        this._scheduleUpdate();
      }
    }
  }, {
    key: 'componentWillUnmount',
    value: function componentWillUnmount() {
      this._destroyPopper();
    }
  }, {
    key: '_createPopper',
    value: function _createPopper() {
      var _this2 = this;

      var _props = this.props,
          placement = _props.placement,
          eventsEnabled = _props.eventsEnabled;

      var modifiers = Popper_extends({}, this.props.modifiers, {
        applyStyle: { enabled: false },
        updateState: this._updateStateModifier
      });
      if (this._arrowNode) {
        modifiers.arrow = Popper_extends({}, this.props.modifiers.arrow || {}, {
          element: this._arrowNode
        });
      }
      this._popper = new esm_popper["a" /* default */](this._getTargetNode(), this._popperNode, {
        placement: placement,
        eventsEnabled: eventsEnabled,
        modifiers: modifiers
      });

      // TODO: look into setTimeout scheduleUpdate call, without it, the popper will not position properly on creation
      setTimeout(function () {
        return _this2._scheduleUpdate();
      });
    }
  }, {
    key: '_destroyPopper',
    value: function _destroyPopper() {
      if (this._popper) {
        this._popper.destroy();
      }
    }
  }, {
    key: 'render',
    value: function render() {
      var _props2 = this.props,
          component = _props2.component,
          innerRef = _props2.innerRef,
          placement = _props2.placement,
          eventsEnabled = _props2.eventsEnabled,
          modifiers = _props2.modifiers,
          children = _props2.children,
          restProps = Popper_objectWithoutProperties(_props2, ['component', 'innerRef', 'placement', 'eventsEnabled', 'modifiers', 'children']);

      var popperStyle = this._getPopperStyle();
      var popperPlacement = this._getPopperPlacement();
      var popperHide = this._getPopperHide();

      if (typeof children === 'function') {
        var popperProps = {
          ref: this._handlePopperRef,
          style: popperStyle,
          'data-placement': popperPlacement,
          'data-x-out-of-boundaries': popperHide
        };
        return children({
          popperProps: popperProps,
          restProps: restProps,
          scheduleUpdate: this._scheduleUpdate
        });
      }

      var componentProps = Popper_extends({}, restProps, {
        style: Popper_extends({}, restProps.style, popperStyle),
        'data-placement': popperPlacement,
        'data-x-out-of-boundaries': popperHide
      });

      if (typeof component === 'string') {
        componentProps.ref = this._handlePopperRef;
      } else {
        componentProps.innerRef = this._handlePopperRef;
      }

      return Object(react["createElement"])(component, componentProps, children);
    }
  }]);

  return Popper;
}(react["Component"]);

Popper_Popper.contextTypes = {
  popperManager: prop_types_default.a.object
};
Popper_Popper.childContextTypes = {
  popper: prop_types_default.a.object.isRequired
};
Popper_Popper.propTypes = {
  component: prop_types_default.a.oneOfType([prop_types_default.a.node, prop_types_default.a.func]),
  innerRef: prop_types_default.a.func,
  placement: prop_types_default.a.oneOf(placements),
  eventsEnabled: prop_types_default.a.bool,
  modifiers: prop_types_default.a.object,
  children: prop_types_default.a.oneOfType([prop_types_default.a.node, prop_types_default.a.func]),
  target: prop_types_default.a.oneOfType([
  // the following check is needed for SSR
  prop_types_default.a.instanceOf(typeof Element !== 'undefined' ? Element : Object), prop_types_default.a.shape({
    getBoundingClientRect: prop_types_default.a.func.isRequired,
    clientWidth: prop_types_default.a.number.isRequired,
    clientHeight: prop_types_default.a.number.isRequired
  })])
};
Popper_Popper.defaultProps = {
  component: 'div',
  placement: 'bottom',
  eventsEnabled: true,
  modifiers: {}
};


/* harmony default export */ var lib_Popper = (Popper_Popper);
// CONCATENATED MODULE: ./node_modules/react-popper/lib/Arrow.js
var Arrow_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; };

function Arrow_objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }




var Arrow_Arrow = function Arrow(props, context) {
  var _props$component = props.component,
      component = _props$component === undefined ? 'span' : _props$component,
      innerRef = props.innerRef,
      children = props.children,
      restProps = Arrow_objectWithoutProperties(props, ['component', 'innerRef', 'children']);

  var popper = context.popper;

  var arrowRef = function arrowRef(node) {
    popper.setArrowNode(node);
    if (typeof innerRef === 'function') {
      innerRef(node);
    }
  };
  var arrowStyle = popper.getArrowStyle();

  if (typeof children === 'function') {
    var arrowProps = {
      ref: arrowRef,
      style: arrowStyle
    };
    return children({ arrowProps: arrowProps, restProps: restProps });
  }

  var componentProps = Arrow_extends({}, restProps, {
    style: Arrow_extends({}, arrowStyle, restProps.style)
  });

  if (typeof component === 'string') {
    componentProps.ref = arrowRef;
  } else {
    componentProps.innerRef = arrowRef;
  }

  return Object(react["createElement"])(component, componentProps, children);
};

Arrow_Arrow.contextTypes = {
  popper: prop_types_default.a.object.isRequired
};

Arrow_Arrow.propTypes = {
  component: prop_types_default.a.oneOfType([prop_types_default.a.node, prop_types_default.a.func]),
  innerRef: prop_types_default.a.func,
  children: prop_types_default.a.oneOfType([prop_types_default.a.node, prop_types_default.a.func])
};

/* harmony default export */ var lib_Arrow = (Arrow_Arrow);
// CONCATENATED MODULE: ./node_modules/react-popper/lib/react-popper.js




// CONCATENATED MODULE: ./node_modules/react-datepicker/es/index.js







var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
  return typeof obj;
} : function (obj) {
  return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};









var classCallCheck = function (instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
};

var createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();









var inherits = function (subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });
  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
};











var possibleConstructorReturn = function (self, call) {
  if (!self) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return call && (typeof call === "object" || typeof call === "function") ? call : self;
};

function generateYears(year, noOfYear, minDate, maxDate) {
  var list = [];
  for (var i = 0; i < 2 * noOfYear + 1; i++) {
    var newYear = year + noOfYear - i;
    var isInRange = true;

    if (minDate) {
      isInRange = minDate.year() <= newYear;
    }

    if (maxDate && isInRange) {
      isInRange = maxDate.year() >= newYear;
    }

    if (isInRange) {
      list.push(newYear);
    }
  }

  return list;
}

var es_YearDropdownOptions = function (_React$Component) {
  inherits(YearDropdownOptions, _React$Component);

  function YearDropdownOptions(props) {
    classCallCheck(this, YearDropdownOptions);

    var _this = possibleConstructorReturn(this, _React$Component.call(this, props));

    _this.renderOptions = function () {
      var selectedYear = _this.props.year;
      var options = _this.state.yearsList.map(function (year) {
        return react_default.a.createElement(
          "div",
          {
            className: selectedYear === year ? "react-datepicker__year-option react-datepicker__year-option--selected_year" : "react-datepicker__year-option",
            key: year,
            ref: year,
            onClick: _this.onChange.bind(_this, year)
          },
          selectedYear === year ? react_default.a.createElement(
            "span",
            { className: "react-datepicker__year-option--selected" },
            "\u2713"
          ) : "",
          year
        );
      });

      var minYear = _this.props.minDate ? _this.props.minDate.year() : null;
      var maxYear = _this.props.maxDate ? _this.props.maxDate.year() : null;

      if (!maxYear || !_this.state.yearsList.find(function (year) {
        return year === maxYear;
      })) {
        options.unshift(react_default.a.createElement(
          "div",
          {
            className: "react-datepicker__year-option",
            ref: "upcoming",
            key: "upcoming",
            onClick: _this.incrementYears
          },
          react_default.a.createElement("a", { className: "react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-upcoming" })
        ));
      }

      if (!minYear || !_this.state.yearsList.find(function (year) {
        return year === minYear;
      })) {
        options.push(react_default.a.createElement(
          "div",
          {
            className: "react-datepicker__year-option",
            ref: "previous",
            key: "previous",
            onClick: _this.decrementYears
          },
          react_default.a.createElement("a", { className: "react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-previous" })
        ));
      }

      return options;
    };

    _this.onChange = function (year) {
      _this.props.onChange(year);
    };

    _this.handleClickOutside = function () {
      _this.props.onCancel();
    };

    _this.shiftYears = function (amount) {
      var years = _this.state.yearsList.map(function (year) {
        return year + amount;
      });

      _this.setState({
        yearsList: years
      });
    };

    _this.incrementYears = function () {
      return _this.shiftYears(1);
    };

    _this.decrementYears = function () {
      return _this.shiftYears(-1);
    };

    var yearDropdownItemNumber = props.yearDropdownItemNumber,
        scrollableYearDropdown = props.scrollableYearDropdown;

    var noOfYear = yearDropdownItemNumber || (scrollableYearDropdown ? 10 : 5);

    _this.state = {
      yearsList: generateYears(_this.props.year, noOfYear, _this.props.minDate, _this.props.maxDate)
    };
    return _this;
  }

  YearDropdownOptions.prototype.render = function render() {
    var dropdownClass = classnames_default()({
      "react-datepicker__year-dropdown": true,
      "react-datepicker__year-dropdown--scrollable": this.props.scrollableYearDropdown
    });

    return react_default.a.createElement(
      "div",
      { className: dropdownClass },
      this.renderOptions()
    );
  };

  return YearDropdownOptions;
}(react_default.a.Component);

es_YearDropdownOptions.propTypes = {
  minDate: prop_types_default.a.object,
  maxDate: prop_types_default.a.object,
  onCancel: prop_types_default.a.func.isRequired,
  onChange: prop_types_default.a.func.isRequired,
  scrollableYearDropdown: prop_types_default.a.bool,
  year: prop_types_default.a.number.isRequired,
  yearDropdownItemNumber: prop_types_default.a.number
};

var dayOfWeekCodes = {
  1: "mon",
  2: "tue",
  3: "wed",
  4: "thu",
  5: "fri",
  6: "sat",
  7: "sun"
};

// These functions are not exported so
// that we avoid magic strings like 'days'
function set$1(date, unit, to) {
  return date.set(unit, to);
}

function add(date, amount, unit) {
  return date.add(amount, unit);
}

function subtract(date, amount, unit) {
  return date.subtract(amount, unit);
}

function get$1(date, unit) {
  return date.get(unit);
}

function getStartOf(date, unit) {
  return date.startOf(unit);
}

// ** Date Constructors **

function newDate(point) {
  return moment_default()(point);
}

function newDateWithOffset(utcOffset) {
  return moment_default()().utc().utcOffset(utcOffset);
}

function now(maybeFixedUtcOffset) {
  if (maybeFixedUtcOffset == null) {
    return newDate();
  }
  return newDateWithOffset(maybeFixedUtcOffset);
}

function cloneDate(date) {
  return date.clone();
}

function parseDate(value, _ref) {
  var dateFormat = _ref.dateFormat,
      locale = _ref.locale;

  var m = moment_default()(value, dateFormat, locale || moment_default.a.locale(), true);
  return m.isValid() ? m : null;
}

// ** Date "Reflection" **

function isMoment(date) {
  return moment_default.a.isMoment(date);
}

function isDate(date) {
  return moment_default.a.isDate(date);
}

// ** Date Formatting **

function formatDate(date, format) {
  return date.format(format);
}

function safeDateFormat(date, _ref2) {
  var dateFormat = _ref2.dateFormat,
      locale = _ref2.locale;

  return date && date.clone().locale(locale || moment_default.a.locale()).format(Array.isArray(dateFormat) ? dateFormat[0] : dateFormat) || "";
}

// ** Date Setters **

function setTime(date, _ref3) {
  var hour = _ref3.hour,
      minute = _ref3.minute,
      second = _ref3.second;

  date.set({ hour: hour, minute: minute, second: second });
  return date;
}

function setMonth(date, month) {
  return set$1(date, "month", month);
}

function setYear(date, year) {
  return set$1(date, "year", year);
}



// ** Date Getters **

function getSecond(date) {
  return get$1(date, "second");
}

function getMinute(date) {
  return get$1(date, "minute");
}

function getHour(date) {
  return get$1(date, "hour");
}

// Returns day of week
function getDay(date) {
  return get$1(date, "day");
}

function getWeek(date) {
  return get$1(date, "week");
}

function getMonth(date) {
  return get$1(date, "month");
}

function getYear(date) {
  return get$1(date, "year");
}

// Returns day of month
function getDate(date) {
  return get$1(date, "date");
}



function getDayOfWeekCode(day) {
  return dayOfWeekCodes[day.isoWeekday()];
}

// *** Start of ***

function getStartOfDay(date) {
  return getStartOf(date, "day");
}

function getStartOfWeek(date) {
  return getStartOf(date, "week");
}
function getStartOfMonth(date) {
  return getStartOf(date, "month");
}

function getStartOfDate(date) {
  return getStartOf(date, "date");
}

// *** End of ***





// ** Date Math **

// *** Addition ***

function addMinutes(date, amount) {
  return add(date, amount, "minutes");
}

function addHours(date, amount) {
  return add(date, amount, "hours");
}

function addDays(date, amount) {
  return add(date, amount, "days");
}

function addWeeks(date, amount) {
  return add(date, amount, "weeks");
}

function addMonths(date, amount) {
  return add(date, amount, "months");
}

function addYears(date, amount) {
  return add(date, amount, "years");
}

// *** Subtraction ***
function subtractDays(date, amount) {
  return subtract(date, amount, "days");
}

function subtractWeeks(date, amount) {
  return subtract(date, amount, "weeks");
}

function subtractMonths(date, amount) {
  return subtract(date, amount, "months");
}

function subtractYears(date, amount) {
  return subtract(date, amount, "years");
}

// ** Date Comparison **

function isBefore(date1, date2) {
  return date1.isBefore(date2);
}

function isAfter(date1, date2) {
  return date1.isAfter(date2);
}

function equals(date1, date2) {
  return date1.isSame(date2);
}

function isSameYear(date1, date2) {
  if (date1 && date2) {
    return date1.isSame(date2, "year");
  } else {
    return !date1 && !date2;
  }
}

function isSameMonth(date1, date2) {
  if (date1 && date2) {
    return date1.isSame(date2, "month");
  } else {
    return !date1 && !date2;
  }
}

function isSameDay(moment1, moment2) {
  if (moment1 && moment2) {
    return moment1.isSame(moment2, "day");
  } else {
    return !moment1 && !moment2;
  }
}



function isDayInRange(day, startDate, endDate) {
  var before = startDate.clone().startOf("day").subtract(1, "seconds");
  var after = endDate.clone().startOf("day").add(1, "seconds");
  return day.clone().startOf("day").isBetween(before, after);
}

// *** Diffing ***



// ** Date Localization **

function localizeDate(date, locale) {
  return date.clone().locale(locale || moment_default.a.locale());
}







function getLocaleData(date) {
  return date.localeData();
}

function getLocaleDataForLocale(locale) {
  return moment_default.a.localeData(locale);
}

function getFormattedWeekdayInLocale(locale, date, formatFunc) {
  return formatFunc(locale.weekdays(date));
}

function getWeekdayMinInLocale(locale, date) {
  return locale.weekdaysMin(date);
}

function getWeekdayShortInLocale(locale, date) {
  return locale.weekdaysShort(date);
}

// TODO what is this format exactly?
function getMonthInLocale(locale, date, format) {
  return locale.months(date, format);
}

function getMonthShortInLocale(locale, date) {
  return locale.monthsShort(date);
}

// ** Utils for some components **

function isDayDisabled(day) {
  var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
      minDate = _ref4.minDate,
      maxDate = _ref4.maxDate,
      excludeDates = _ref4.excludeDates,
      includeDates = _ref4.includeDates,
      filterDate = _ref4.filterDate;

  return minDate && day.isBefore(minDate, "day") || maxDate && day.isAfter(maxDate, "day") || excludeDates && excludeDates.some(function (excludeDate) {
    return isSameDay(day, excludeDate);
  }) || includeDates && !includeDates.some(function (includeDate) {
    return isSameDay(day, includeDate);
  }) || filterDate && !filterDate(day.clone()) || false;
}

function isTimeDisabled(time, disabledTimes) {
  var l = disabledTimes.length;
  for (var i = 0; i < l; i++) {
    if (disabledTimes[i].get("hours") === time.get("hours") && disabledTimes[i].get("minutes") === time.get("minutes")) {
      return true;
    }
  }

  return false;
}

function isTimeInDisabledRange(time, _ref5) {
  var minTime = _ref5.minTime,
      maxTime = _ref5.maxTime;

  if (!minTime || !maxTime) {
    throw new Error("Both minTime and maxTime props required");
  }

  var base = moment_default()().hours(0).minutes(0).seconds(0);
  var baseTime = base.clone().hours(time.get("hours")).minutes(time.get("minutes"));
  var min = base.clone().hours(minTime.get("hours")).minutes(minTime.get("minutes"));
  var max = base.clone().hours(maxTime.get("hours")).minutes(maxTime.get("minutes"));

  return !(baseTime.isSameOrAfter(min) && baseTime.isSameOrBefore(max));
}

function allDaysDisabledBefore(day, unit) {
  var _ref6 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
      minDate = _ref6.minDate,
      includeDates = _ref6.includeDates;

  var dateBefore = day.clone().subtract(1, unit);
  return minDate && dateBefore.isBefore(minDate, unit) || includeDates && includeDates.every(function (includeDate) {
    return dateBefore.isBefore(includeDate, unit);
  }) || false;
}

function allDaysDisabledAfter(day, unit) {
  var _ref7 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
      maxDate = _ref7.maxDate,
      includeDates = _ref7.includeDates;

  var dateAfter = day.clone().add(1, unit);
  return maxDate && dateAfter.isAfter(maxDate, unit) || includeDates && includeDates.every(function (includeDate) {
    return dateAfter.isAfter(includeDate, unit);
  }) || false;
}

function getEffectiveMinDate(_ref8) {
  var minDate = _ref8.minDate,
      includeDates = _ref8.includeDates;

  if (includeDates && minDate) {
    return moment_default.a.min(includeDates.filter(function (includeDate) {
      return minDate.isSameOrBefore(includeDate, "day");
    }));
  } else if (includeDates) {
    return moment_default.a.min(includeDates);
  } else {
    return minDate;
  }
}

function getEffectiveMaxDate(_ref9) {
  var maxDate = _ref9.maxDate,
      includeDates = _ref9.includeDates;

  if (includeDates && maxDate) {
    return moment_default.a.max(includeDates.filter(function (includeDate) {
      return maxDate.isSameOrAfter(includeDate, "day");
    }));
  } else if (includeDates) {
    return moment_default.a.max(includeDates);
  } else {
    return maxDate;
  }
}

function getHightLightDaysMap() {
  var highlightDates = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
  var defaultClassName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "react-datepicker__day--highlighted";

  var dateClasses = new Map();
  for (var i = 0, len = highlightDates.length; i < len; i++) {
    var obj = highlightDates[i];
    if (isMoment(obj)) {
      var key = obj.format("MM.DD.YYYY");
      var classNamesArr = dateClasses.get(key) || [];
      if (!classNamesArr.includes(defaultClassName)) {
        classNamesArr.push(defaultClassName);
        dateClasses.set(key, classNamesArr);
      }
    } else if ((typeof obj === "undefined" ? "undefined" : _typeof(obj)) === "object") {
      var keys = Object.keys(obj);
      var className = keys[0];
      var arrOfMoments = obj[keys[0]];
      if (typeof className === "string" && arrOfMoments.constructor === Array) {
        for (var k = 0, _len = arrOfMoments.length; k < _len; k++) {
          var _key = arrOfMoments[k].format("MM.DD.YYYY");
          var _classNamesArr = dateClasses.get(_key) || [];
          if (!_classNamesArr.includes(className)) {
            _classNamesArr.push(className);
            dateClasses.set(_key, _classNamesArr);
          }
        }
      }
    }
  }

  return dateClasses;
}

function timesToInjectAfter(startOfDay, currentTime, currentMultiplier, intervals, injectedTimes) {
  var l = injectedTimes.length;
  var times = [];
  for (var i = 0; i < l; i++) {
    var injectedTime = addMinutes(addHours(cloneDate(startOfDay), getHour(injectedTimes[i])), getMinute(injectedTimes[i]));
    var nextTime = addMinutes(cloneDate(startOfDay), (currentMultiplier + 1) * intervals);

    if (injectedTime.isBetween(currentTime, nextTime)) {
      times.push(injectedTimes[i]);
    }
  }

  return times;
}

var WrappedYearDropdownOptions = react_onclickoutside_es(es_YearDropdownOptions);

var es_YearDropdown = function (_React$Component) {
  inherits(YearDropdown, _React$Component);

  function YearDropdown() {
    var _temp, _this, _ret;

    classCallCheck(this, YearDropdown);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {
      dropdownVisible: false
    }, _this.renderSelectOptions = function () {
      var minYear = _this.props.minDate ? getYear(_this.props.minDate) : 1900;
      var maxYear = _this.props.maxDate ? getYear(_this.props.maxDate) : 2100;

      var options = [];
      for (var i = minYear; i <= maxYear; i++) {
        options.push(react_default.a.createElement(
          "option",
          { key: i, value: i },
          i
        ));
      }
      return options;
    }, _this.onSelectChange = function (e) {
      _this.onChange(e.target.value);
    }, _this.renderSelectMode = function () {
      return react_default.a.createElement(
        "select",
        {
          value: _this.props.year,
          className: "react-datepicker__year-select",
          onChange: _this.onSelectChange
        },
        _this.renderSelectOptions()
      );
    }, _this.renderReadView = function (visible) {
      return react_default.a.createElement(
        "div",
        {
          key: "read",
          style: { visibility: visible ? "visible" : "hidden" },
          className: "react-datepicker__year-read-view",
          onClick: function onClick(event) {
            return _this.toggleDropdown(event);
          }
        },
        react_default.a.createElement("span", { className: "react-datepicker__year-read-view--down-arrow" }),
        react_default.a.createElement(
          "span",
          { className: "react-datepicker__year-read-view--selected-year" },
          _this.props.year
        )
      );
    }, _this.renderDropdown = function () {
      return react_default.a.createElement(WrappedYearDropdownOptions, {
        key: "dropdown",
        ref: "options",
        year: _this.props.year,
        onChange: _this.onChange,
        onCancel: _this.toggleDropdown,
        minDate: _this.props.minDate,
        maxDate: _this.props.maxDate,
        scrollableYearDropdown: _this.props.scrollableYearDropdown,
        yearDropdownItemNumber: _this.props.yearDropdownItemNumber
      });
    }, _this.renderScrollMode = function () {
      var dropdownVisible = _this.state.dropdownVisible;

      var result = [_this.renderReadView(!dropdownVisible)];
      if (dropdownVisible) {
        result.unshift(_this.renderDropdown());
      }
      return result;
    }, _this.onChange = function (year) {
      _this.toggleDropdown();
      if (year === _this.props.year) return;
      _this.props.onChange(year);
    }, _this.toggleDropdown = function (event) {
      _this.setState({
        dropdownVisible: !_this.state.dropdownVisible
      }, function () {
        if (_this.props.adjustDateOnChange) {
          _this.handleYearChange(_this.props.date, event);
        }
      });
    }, _this.handleYearChange = function (date, event) {
      _this.onSelect(date, event);
      _this.setOpen();
    }, _this.onSelect = function (date, event) {
      if (_this.props.onSelect) {
        _this.props.onSelect(date, event);
      }
    }, _this.setOpen = function () {
      if (_this.props.setOpen) {
        _this.props.setOpen(true);
      }
    }, _temp), possibleConstructorReturn(_this, _ret);
  }

  YearDropdown.prototype.render = function render() {
    var renderedDropdown = void 0;
    switch (this.props.dropdownMode) {
      case "scroll":
        renderedDropdown = this.renderScrollMode();
        break;
      case "select":
        renderedDropdown = this.renderSelectMode();
        break;
    }

    return react_default.a.createElement(
      "div",
      {
        className: "react-datepicker__year-dropdown-container react-datepicker__year-dropdown-container--" + this.props.dropdownMode
      },
      renderedDropdown
    );
  };

  return YearDropdown;
}(react_default.a.Component);

es_YearDropdown.propTypes = {
  adjustDateOnChange: prop_types_default.a.bool,
  dropdownMode: prop_types_default.a.oneOf(["scroll", "select"]).isRequired,
  maxDate: prop_types_default.a.object,
  minDate: prop_types_default.a.object,
  onChange: prop_types_default.a.func.isRequired,
  scrollableYearDropdown: prop_types_default.a.bool,
  year: prop_types_default.a.number.isRequired,
  yearDropdownItemNumber: prop_types_default.a.number,
  date: prop_types_default.a.object,
  onSelect: prop_types_default.a.func,
  setOpen: prop_types_default.a.func
};

var es_MonthDropdownOptions = function (_React$Component) {
  inherits(MonthDropdownOptions, _React$Component);

  function MonthDropdownOptions() {
    var _temp, _this, _ret;

    classCallCheck(this, MonthDropdownOptions);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.renderOptions = function () {
      return _this.props.monthNames.map(function (month, i) {
        return react_default.a.createElement(
          "div",
          {
            className: _this.props.month === i ? "react-datepicker__month-option --selected_month" : "react-datepicker__month-option",
            key: month,
            ref: month,
            onClick: _this.onChange.bind(_this, i)
          },
          _this.props.month === i ? react_default.a.createElement(
            "span",
            { className: "react-datepicker__month-option--selected" },
            "\u2713"
          ) : "",
          month
        );
      });
    }, _this.onChange = function (month) {
      return _this.props.onChange(month);
    }, _this.handleClickOutside = function () {
      return _this.props.onCancel();
    }, _temp), possibleConstructorReturn(_this, _ret);
  }

  MonthDropdownOptions.prototype.render = function render() {
    return react_default.a.createElement(
      "div",
      { className: "react-datepicker__month-dropdown" },
      this.renderOptions()
    );
  };

  return MonthDropdownOptions;
}(react_default.a.Component);

es_MonthDropdownOptions.propTypes = {
  onCancel: prop_types_default.a.func.isRequired,
  onChange: prop_types_default.a.func.isRequired,
  month: prop_types_default.a.number.isRequired,
  monthNames: prop_types_default.a.arrayOf(prop_types_default.a.string.isRequired).isRequired
};

var WrappedMonthDropdownOptions = react_onclickoutside_es(es_MonthDropdownOptions);

var es_MonthDropdown = function (_React$Component) {
  inherits(MonthDropdown, _React$Component);

  function MonthDropdown() {
    var _temp, _this, _ret;

    classCallCheck(this, MonthDropdown);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {
      dropdownVisible: false
    }, _this.renderSelectOptions = function (monthNames) {
      return monthNames.map(function (M, i) {
        return react_default.a.createElement(
          "option",
          { key: i, value: i },
          M
        );
      });
    }, _this.renderSelectMode = function (monthNames) {
      return react_default.a.createElement(
        "select",
        {
          value: _this.props.month,
          className: "react-datepicker__month-select",
          onChange: function onChange(e) {
            return _this.onChange(e.target.value);
          }
        },
        _this.renderSelectOptions(monthNames)
      );
    }, _this.renderReadView = function (visible, monthNames) {
      return react_default.a.createElement(
        "div",
        {
          key: "read",
          style: { visibility: visible ? "visible" : "hidden" },
          className: "react-datepicker__month-read-view",
          onClick: _this.toggleDropdown
        },
        react_default.a.createElement("span", { className: "react-datepicker__month-read-view--down-arrow" }),
        react_default.a.createElement(
          "span",
          { className: "react-datepicker__month-read-view--selected-month" },
          monthNames[_this.props.month]
        )
      );
    }, _this.renderDropdown = function (monthNames) {
      return react_default.a.createElement(WrappedMonthDropdownOptions, {
        key: "dropdown",
        ref: "options",
        month: _this.props.month,
        monthNames: monthNames,
        onChange: _this.onChange,
        onCancel: _this.toggleDropdown
      });
    }, _this.renderScrollMode = function (monthNames) {
      var dropdownVisible = _this.state.dropdownVisible;

      var result = [_this.renderReadView(!dropdownVisible, monthNames)];
      if (dropdownVisible) {
        result.unshift(_this.renderDropdown(monthNames));
      }
      return result;
    }, _this.onChange = function (month) {
      _this.toggleDropdown();
      if (month !== _this.props.month) {
        _this.props.onChange(month);
      }
    }, _this.toggleDropdown = function () {
      return _this.setState({
        dropdownVisible: !_this.state.dropdownVisible
      });
    }, _temp), possibleConstructorReturn(_this, _ret);
  }

  MonthDropdown.prototype.render = function render() {
    var _this2 = this;

    var localeData = getLocaleDataForLocale(this.props.locale);
    var monthNames = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map(this.props.useShortMonthInDropdown ? function (M) {
      return getMonthShortInLocale(localeData, newDate({ M: M }));
    } : function (M) {
      return getMonthInLocale(localeData, newDate({ M: M }), _this2.props.dateFormat);
    });

    var renderedDropdown = void 0;
    switch (this.props.dropdownMode) {
      case "scroll":
        renderedDropdown = this.renderScrollMode(monthNames);
        break;
      case "select":
        renderedDropdown = this.renderSelectMode(monthNames);
        break;
    }

    return react_default.a.createElement(
      "div",
      {
        className: "react-datepicker__month-dropdown-container react-datepicker__month-dropdown-container--" + this.props.dropdownMode
      },
      renderedDropdown
    );
  };

  return MonthDropdown;
}(react_default.a.Component);

es_MonthDropdown.propTypes = {
  dropdownMode: prop_types_default.a.oneOf(["scroll", "select"]).isRequired,
  locale: prop_types_default.a.string,
  dateFormat: prop_types_default.a.string.isRequired,
  month: prop_types_default.a.number.isRequired,
  onChange: prop_types_default.a.func.isRequired,
  useShortMonthInDropdown: prop_types_default.a.bool
};

function generateMonthYears(minDate, maxDate) {
  var list = [];

  var currDate = getStartOfMonth(cloneDate(minDate));
  var lastDate = getStartOfMonth(cloneDate(maxDate));

  while (!isAfter(currDate, lastDate)) {
    list.push(cloneDate(currDate));

    addMonths(currDate, 1);
  }

  return list;
}

var es_MonthYearDropdownOptions = function (_React$Component) {
  inherits(MonthYearDropdownOptions, _React$Component);

  function MonthYearDropdownOptions(props) {
    classCallCheck(this, MonthYearDropdownOptions);

    var _this = possibleConstructorReturn(this, _React$Component.call(this, props));

    _this.renderOptions = function () {
      return _this.state.monthYearsList.map(function (monthYear) {
        var monthYearPoint = monthYear.valueOf();

        var isSameMonthYear = isSameYear(_this.props.date, monthYear) && isSameMonth(_this.props.date, monthYear);

        return react_default.a.createElement(
          "div",
          {
            className: isSameMonthYear ? "react-datepicker__month-year-option --selected_month-year" : "react-datepicker__month-year-option",
            key: monthYearPoint,
            ref: monthYearPoint,
            onClick: _this.onChange.bind(_this, monthYearPoint)
          },
          isSameMonthYear ? react_default.a.createElement(
            "span",
            { className: "react-datepicker__month-year-option--selected" },
            "\u2713"
          ) : "",
          formatDate(monthYear, _this.props.dateFormat)
        );
      });
    };

    _this.onChange = function (monthYear) {
      return _this.props.onChange(monthYear);
    };

    _this.handleClickOutside = function () {
      _this.props.onCancel();
    };

    _this.state = {
      monthYearsList: generateMonthYears(_this.props.minDate, _this.props.maxDate)
    };
    return _this;
  }

  MonthYearDropdownOptions.prototype.render = function render() {
    var dropdownClass = classnames_default()({
      "react-datepicker__month-year-dropdown": true,
      "react-datepicker__month-year-dropdown--scrollable": this.props.scrollableMonthYearDropdown
    });

    return react_default.a.createElement(
      "div",
      { className: dropdownClass },
      this.renderOptions()
    );
  };

  return MonthYearDropdownOptions;
}(react_default.a.Component);

es_MonthYearDropdownOptions.propTypes = {
  minDate: prop_types_default.a.object.isRequired,
  maxDate: prop_types_default.a.object.isRequired,
  onCancel: prop_types_default.a.func.isRequired,
  onChange: prop_types_default.a.func.isRequired,
  scrollableMonthYearDropdown: prop_types_default.a.bool,
  date: prop_types_default.a.object.isRequired,
  dateFormat: prop_types_default.a.string.isRequired
};

var WrappedMonthYearDropdownOptions = react_onclickoutside_es(es_MonthYearDropdownOptions);

var es_MonthYearDropdown = function (_React$Component) {
  inherits(MonthYearDropdown, _React$Component);

  function MonthYearDropdown() {
    var _temp, _this, _ret;

    classCallCheck(this, MonthYearDropdown);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {
      dropdownVisible: false
    }, _this.renderSelectOptions = function () {
      var currDate = getStartOfMonth(localizeDate(_this.props.minDate, _this.props.locale));
      var lastDate = getStartOfMonth(localizeDate(_this.props.maxDate, _this.props.locale));

      var options = [];

      while (!isAfter(currDate, lastDate)) {
        var timepoint = currDate.valueOf();
        options.push(react_default.a.createElement(
          "option",
          { key: timepoint, value: timepoint },
          formatDate(currDate, _this.props.dateFormat)
        ));

        addMonths(currDate, 1);
      }

      return options;
    }, _this.onSelectChange = function (e) {
      _this.onChange(e.target.value);
    }, _this.renderSelectMode = function () {
      return react_default.a.createElement(
        "select",
        {
          value: getStartOfMonth(_this.props.date).valueOf(),
          className: "react-datepicker__month-year-select",
          onChange: _this.onSelectChange
        },
        _this.renderSelectOptions()
      );
    }, _this.renderReadView = function (visible) {
      var yearMonth = formatDate(localizeDate(newDate(_this.props.date), _this.props.locale), _this.props.dateFormat);

      return react_default.a.createElement(
        "div",
        {
          key: "read",
          style: { visibility: visible ? "visible" : "hidden" },
          className: "react-datepicker__month-year-read-view",
          onClick: function onClick(event) {
            return _this.toggleDropdown(event);
          }
        },
        react_default.a.createElement("span", { className: "react-datepicker__month-year-read-view--down-arrow" }),
        react_default.a.createElement(
          "span",
          { className: "react-datepicker__month-year-read-view--selected-month-year" },
          yearMonth
        )
      );
    }, _this.renderDropdown = function () {
      return react_default.a.createElement(WrappedMonthYearDropdownOptions, {
        key: "dropdown",
        ref: "options",
        date: _this.props.date,
        dateFormat: _this.props.dateFormat,
        onChange: _this.onChange,
        onCancel: _this.toggleDropdown,
        minDate: localizeDate(_this.props.minDate, _this.props.locale),
        maxDate: localizeDate(_this.props.maxDate, _this.props.locale),
        scrollableMonthYearDropdown: _this.props.scrollableMonthYearDropdown
      });
    }, _this.renderScrollMode = function () {
      var dropdownVisible = _this.state.dropdownVisible;

      var result = [_this.renderReadView(!dropdownVisible)];
      if (dropdownVisible) {
        result.unshift(_this.renderDropdown());
      }
      return result;
    }, _this.onChange = function (monthYearPoint) {
      _this.toggleDropdown();

      var changedDate = newDate(parseInt(monthYearPoint));

      if (isSameYear(_this.props.date, changedDate) && isSameMonth(_this.props.date, changedDate)) {
        return;
      }

      _this.props.onChange(changedDate);
    }, _this.toggleDropdown = function () {
      return _this.setState({
        dropdownVisible: !_this.state.dropdownVisible
      });
    }, _temp), possibleConstructorReturn(_this, _ret);
  }

  MonthYearDropdown.prototype.render = function render() {
    var renderedDropdown = void 0;
    switch (this.props.dropdownMode) {
      case "scroll":
        renderedDropdown = this.renderScrollMode();
        break;
      case "select":
        renderedDropdown = this.renderSelectMode();
        break;
    }

    return react_default.a.createElement(
      "div",
      {
        className: "react-datepicker__month-year-dropdown-container react-datepicker__month-year-dropdown-container--" + this.props.dropdownMode
      },
      renderedDropdown
    );
  };

  return MonthYearDropdown;
}(react_default.a.Component);

es_MonthYearDropdown.propTypes = {
  dropdownMode: prop_types_default.a.oneOf(["scroll", "select"]).isRequired,
  dateFormat: prop_types_default.a.string.isRequired,
  locale: prop_types_default.a.string,
  maxDate: prop_types_default.a.object.isRequired,
  minDate: prop_types_default.a.object.isRequired,
  date: prop_types_default.a.object.isRequired,
  onChange: prop_types_default.a.func.isRequired,
  scrollableMonthYearDropdown: prop_types_default.a.bool
};

var es_Day = function (_React$Component) {
  inherits(Day, _React$Component);

  function Day() {
    var _temp, _this, _ret;

    classCallCheck(this, Day);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleClick = function (event) {
      if (!_this.isDisabled() && _this.props.onClick) {
        _this.props.onClick(event);
      }
    }, _this.handleMouseEnter = function (event) {
      if (!_this.isDisabled() && _this.props.onMouseEnter) {
        _this.props.onMouseEnter(event);
      }
    }, _this.isSameDay = function (other) {
      return isSameDay(_this.props.day, other);
    }, _this.isKeyboardSelected = function () {
      return !_this.props.inline && !_this.isSameDay(_this.props.selected) && _this.isSameDay(_this.props.preSelection);
    }, _this.isDisabled = function () {
      return isDayDisabled(_this.props.day, _this.props);
    }, _this.getHighLightedClass = function (defaultClassName) {
      var _this$props = _this.props,
          day = _this$props.day,
          highlightDates = _this$props.highlightDates;


      if (!highlightDates) {
        return false;
      }

      // Looking for className in the Map of {'day string, 'className'}
      var dayStr = day.format("MM.DD.YYYY");
      return highlightDates.get(dayStr);
    }, _this.isInRange = function () {
      var _this$props2 = _this.props,
          day = _this$props2.day,
          startDate = _this$props2.startDate,
          endDate = _this$props2.endDate;

      if (!startDate || !endDate) {
        return false;
      }
      return isDayInRange(day, startDate, endDate);
    }, _this.isInSelectingRange = function () {
      var _this$props3 = _this.props,
          day = _this$props3.day,
          selectsStart = _this$props3.selectsStart,
          selectsEnd = _this$props3.selectsEnd,
          selectingDate = _this$props3.selectingDate,
          startDate = _this$props3.startDate,
          endDate = _this$props3.endDate;


      if (!(selectsStart || selectsEnd) || !selectingDate || _this.isDisabled()) {
        return false;
      }

      if (selectsStart && endDate && selectingDate.isSameOrBefore(endDate)) {
        return isDayInRange(day, selectingDate, endDate);
      }

      if (selectsEnd && startDate && selectingDate.isSameOrAfter(startDate)) {
        return isDayInRange(day, startDate, selectingDate);
      }

      return false;
    }, _this.isSelectingRangeStart = function () {
      if (!_this.isInSelectingRange()) {
        return false;
      }

      var _this$props4 = _this.props,
          day = _this$props4.day,
          selectingDate = _this$props4.selectingDate,
          startDate = _this$props4.startDate,
          selectsStart = _this$props4.selectsStart;


      if (selectsStart) {
        return isSameDay(day, selectingDate);
      } else {
        return isSameDay(day, startDate);
      }
    }, _this.isSelectingRangeEnd = function () {
      if (!_this.isInSelectingRange()) {
        return false;
      }

      var _this$props5 = _this.props,
          day = _this$props5.day,
          selectingDate = _this$props5.selectingDate,
          endDate = _this$props5.endDate,
          selectsEnd = _this$props5.selectsEnd;


      if (selectsEnd) {
        return isSameDay(day, selectingDate);
      } else {
        return isSameDay(day, endDate);
      }
    }, _this.isRangeStart = function () {
      var _this$props6 = _this.props,
          day = _this$props6.day,
          startDate = _this$props6.startDate,
          endDate = _this$props6.endDate;

      if (!startDate || !endDate) {
        return false;
      }
      return isSameDay(startDate, day);
    }, _this.isRangeEnd = function () {
      var _this$props7 = _this.props,
          day = _this$props7.day,
          startDate = _this$props7.startDate,
          endDate = _this$props7.endDate;

      if (!startDate || !endDate) {
        return false;
      }
      return isSameDay(endDate, day);
    }, _this.isWeekend = function () {
      var weekday = getDay(_this.props.day);
      return weekday === 0 || weekday === 6;
    }, _this.isOutsideMonth = function () {
      return _this.props.month !== undefined && _this.props.month !== getMonth(_this.props.day);
    }, _this.getClassNames = function (date) {
      var dayClassName = _this.props.dayClassName ? _this.props.dayClassName(date) : undefined;
      return classnames_default()("react-datepicker__day", dayClassName, "react-datepicker__day--" + getDayOfWeekCode(_this.props.day), {
        "react-datepicker__day--disabled": _this.isDisabled(),
        "react-datepicker__day--selected": _this.isSameDay(_this.props.selected),
        "react-datepicker__day--keyboard-selected": _this.isKeyboardSelected(),
        "react-datepicker__day--range-start": _this.isRangeStart(),
        "react-datepicker__day--range-end": _this.isRangeEnd(),
        "react-datepicker__day--in-range": _this.isInRange(),
        "react-datepicker__day--in-selecting-range": _this.isInSelectingRange(),
        "react-datepicker__day--selecting-range-start": _this.isSelectingRangeStart(),
        "react-datepicker__day--selecting-range-end": _this.isSelectingRangeEnd(),
        "react-datepicker__day--today": _this.isSameDay(now(_this.props.utcOffset)),
        "react-datepicker__day--weekend": _this.isWeekend(),
        "react-datepicker__day--outside-month": _this.isOutsideMonth()
      }, _this.getHighLightedClass("react-datepicker__day--highlighted"));
    }, _temp), possibleConstructorReturn(_this, _ret);
  }

  Day.prototype.render = function render() {
    return react_default.a.createElement(
      "div",
      {
        className: this.getClassNames(this.props.day),
        onClick: this.handleClick,
        onMouseEnter: this.handleMouseEnter,
        "aria-label": "day-" + getDate(this.props.day),
        role: "option"
      },
      getDate(this.props.day)
    );
  };

  return Day;
}(react_default.a.Component);

es_Day.propTypes = {
  day: prop_types_default.a.object.isRequired,
  dayClassName: prop_types_default.a.func,
  endDate: prop_types_default.a.object,
  highlightDates: prop_types_default.a.instanceOf(Map),
  inline: prop_types_default.a.bool,
  month: prop_types_default.a.number,
  onClick: prop_types_default.a.func,
  onMouseEnter: prop_types_default.a.func,
  preSelection: prop_types_default.a.object,
  selected: prop_types_default.a.object,
  selectingDate: prop_types_default.a.object,
  selectsEnd: prop_types_default.a.bool,
  selectsStart: prop_types_default.a.bool,
  startDate: prop_types_default.a.object,
  utcOffset: prop_types_default.a.number
};

var es_WeekNumber = function (_React$Component) {
  inherits(WeekNumber, _React$Component);

  function WeekNumber() {
    var _temp, _this, _ret;

    classCallCheck(this, WeekNumber);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleClick = function (event) {
      if (_this.props.onClick) {
        _this.props.onClick(event);
      }
    }, _temp), possibleConstructorReturn(_this, _ret);
  }

  WeekNumber.prototype.render = function render() {
    var weekNumberClasses = {
      "react-datepicker__week-number": true,
      "react-datepicker__week-number--clickable": !!this.props.onClick
    };
    return react_default.a.createElement(
      "div",
      {
        className: classnames_default()(weekNumberClasses),
        "aria-label": "week-" + this.props.weekNumber,
        onClick: this.handleClick
      },
      this.props.weekNumber
    );
  };

  return WeekNumber;
}(react_default.a.Component);

es_WeekNumber.propTypes = {
  weekNumber: prop_types_default.a.number.isRequired,
  onClick: prop_types_default.a.func
};

var es_Week = function (_React$Component) {
  inherits(Week, _React$Component);

  function Week() {
    var _temp, _this, _ret;

    classCallCheck(this, Week);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleDayClick = function (day, event) {
      if (_this.props.onDayClick) {
        _this.props.onDayClick(day, event);
      }
    }, _this.handleDayMouseEnter = function (day) {
      if (_this.props.onDayMouseEnter) {
        _this.props.onDayMouseEnter(day);
      }
    }, _this.handleWeekClick = function (day, weekNumber, event) {
      if (typeof _this.props.onWeekSelect === "function") {
        _this.props.onWeekSelect(day, weekNumber, event);
      }
    }, _this.formatWeekNumber = function (startOfWeek) {
      if (_this.props.formatWeekNumber) {
        return _this.props.formatWeekNumber(startOfWeek);
      }
      return getWeek(startOfWeek);
    }, _this.renderDays = function () {
      var startOfWeek = getStartOfWeek(cloneDate(_this.props.day));
      var days = [];
      var weekNumber = _this.formatWeekNumber(startOfWeek);
      if (_this.props.showWeekNumber) {
        var onClickAction = _this.props.onWeekSelect ? _this.handleWeekClick.bind(_this, startOfWeek, weekNumber) : undefined;
        days.push(react_default.a.createElement(es_WeekNumber, { key: "W", weekNumber: weekNumber, onClick: onClickAction }));
      }
      return days.concat([0, 1, 2, 3, 4, 5, 6].map(function (offset) {
        var day = addDays(cloneDate(startOfWeek), offset);
        return react_default.a.createElement(es_Day, {
          key: offset,
          day: day,
          month: _this.props.month,
          onClick: _this.handleDayClick.bind(_this, day),
          onMouseEnter: _this.handleDayMouseEnter.bind(_this, day),
          minDate: _this.props.minDate,
          maxDate: _this.props.maxDate,
          excludeDates: _this.props.excludeDates,
          includeDates: _this.props.includeDates,
          inline: _this.props.inline,
          highlightDates: _this.props.highlightDates,
          selectingDate: _this.props.selectingDate,
          filterDate: _this.props.filterDate,
          preSelection: _this.props.preSelection,
          selected: _this.props.selected,
          selectsStart: _this.props.selectsStart,
          selectsEnd: _this.props.selectsEnd,
          startDate: _this.props.startDate,
          endDate: _this.props.endDate,
          dayClassName: _this.props.dayClassName,
          utcOffset: _this.props.utcOffset
        });
      }));
    }, _temp), possibleConstructorReturn(_this, _ret);
  }

  Week.prototype.render = function render() {
    return react_default.a.createElement(
      "div",
      { className: "react-datepicker__week" },
      this.renderDays()
    );
  };

  return Week;
}(react_default.a.Component);

es_Week.propTypes = {
  day: prop_types_default.a.object.isRequired,
  dayClassName: prop_types_default.a.func,
  endDate: prop_types_default.a.object,
  excludeDates: prop_types_default.a.array,
  filterDate: prop_types_default.a.func,
  formatWeekNumber: prop_types_default.a.func,
  highlightDates: prop_types_default.a.instanceOf(Map),
  includeDates: prop_types_default.a.array,
  inline: prop_types_default.a.bool,
  maxDate: prop_types_default.a.object,
  minDate: prop_types_default.a.object,
  month: prop_types_default.a.number,
  onDayClick: prop_types_default.a.func,
  onDayMouseEnter: prop_types_default.a.func,
  onWeekSelect: prop_types_default.a.func,
  preSelection: prop_types_default.a.object,
  selected: prop_types_default.a.object,
  selectingDate: prop_types_default.a.object,
  selectsEnd: prop_types_default.a.bool,
  selectsStart: prop_types_default.a.bool,
  showWeekNumber: prop_types_default.a.bool,
  startDate: prop_types_default.a.object,
  utcOffset: prop_types_default.a.number
};

var FIXED_HEIGHT_STANDARD_WEEK_COUNT = 6;

var es_Month = function (_React$Component) {
  inherits(Month, _React$Component);

  function Month() {
    var _temp, _this, _ret;

    classCallCheck(this, Month);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleDayClick = function (day, event) {
      if (_this.props.onDayClick) {
        _this.props.onDayClick(day, event);
      }
    }, _this.handleDayMouseEnter = function (day) {
      if (_this.props.onDayMouseEnter) {
        _this.props.onDayMouseEnter(day);
      }
    }, _this.handleMouseLeave = function () {
      if (_this.props.onMouseLeave) {
        _this.props.onMouseLeave();
      }
    }, _this.isWeekInMonth = function (startOfWeek) {
      var day = _this.props.day;
      var endOfWeek = addDays(cloneDate(startOfWeek), 6);
      return isSameMonth(startOfWeek, day) || isSameMonth(endOfWeek, day);
    }, _this.renderWeeks = function () {
      var weeks = [];
      var isFixedHeight = _this.props.fixedHeight;
      var currentWeekStart = getStartOfWeek(getStartOfMonth(cloneDate(_this.props.day)));
      var i = 0;
      var breakAfterNextPush = false;

      while (true) {
        weeks.push(react_default.a.createElement(es_Week, {
          key: i,
          day: currentWeekStart,
          month: getMonth(_this.props.day),
          onDayClick: _this.handleDayClick,
          onDayMouseEnter: _this.handleDayMouseEnter,
          onWeekSelect: _this.props.onWeekSelect,
          formatWeekNumber: _this.props.formatWeekNumber,
          minDate: _this.props.minDate,
          maxDate: _this.props.maxDate,
          excludeDates: _this.props.excludeDates,
          includeDates: _this.props.includeDates,
          inline: _this.props.inline,
          highlightDates: _this.props.highlightDates,
          selectingDate: _this.props.selectingDate,
          filterDate: _this.props.filterDate,
          preSelection: _this.props.preSelection,
          selected: _this.props.selected,
          selectsStart: _this.props.selectsStart,
          selectsEnd: _this.props.selectsEnd,
          showWeekNumber: _this.props.showWeekNumbers,
          startDate: _this.props.startDate,
          endDate: _this.props.endDate,
          dayClassName: _this.props.dayClassName,
          utcOffset: _this.props.utcOffset
        }));

        if (breakAfterNextPush) break;

        i++;
        currentWeekStart = addWeeks(cloneDate(currentWeekStart), 1);

        // If one of these conditions is true, we will either break on this week
        // or break on the next week
        var isFixedAndFinalWeek = isFixedHeight && i >= FIXED_HEIGHT_STANDARD_WEEK_COUNT;
        var isNonFixedAndOutOfMonth = !isFixedHeight && !_this.isWeekInMonth(currentWeekStart);

        if (isFixedAndFinalWeek || isNonFixedAndOutOfMonth) {
          if (_this.props.peekNextMonth) {
            breakAfterNextPush = true;
          } else {
            break;
          }
        }
      }

      return weeks;
    }, _this.getClassNames = function () {
      var _this$props = _this.props,
          selectingDate = _this$props.selectingDate,
          selectsStart = _this$props.selectsStart,
          selectsEnd = _this$props.selectsEnd;

      return classnames_default()("react-datepicker__month", {
        "react-datepicker__month--selecting-range": selectingDate && (selectsStart || selectsEnd)
      });
    }, _temp), possibleConstructorReturn(_this, _ret);
  }

  Month.prototype.render = function render() {
    return react_default.a.createElement(
      "div",
      {
        className: this.getClassNames(),
        onMouseLeave: this.handleMouseLeave,
        role: "listbox"
      },
      this.renderWeeks()
    );
  };

  return Month;
}(react_default.a.Component);

es_Month.propTypes = {
  day: prop_types_default.a.object.isRequired,
  dayClassName: prop_types_default.a.func,
  endDate: prop_types_default.a.object,
  excludeDates: prop_types_default.a.array,
  filterDate: prop_types_default.a.func,
  fixedHeight: prop_types_default.a.bool,
  formatWeekNumber: prop_types_default.a.func,
  highlightDates: prop_types_default.a.instanceOf(Map),
  includeDates: prop_types_default.a.array,
  inline: prop_types_default.a.bool,
  maxDate: prop_types_default.a.object,
  minDate: prop_types_default.a.object,
  onDayClick: prop_types_default.a.func,
  onDayMouseEnter: prop_types_default.a.func,
  onMouseLeave: prop_types_default.a.func,
  onWeekSelect: prop_types_default.a.func,
  peekNextMonth: prop_types_default.a.bool,
  preSelection: prop_types_default.a.object,
  selected: prop_types_default.a.object,
  selectingDate: prop_types_default.a.object,
  selectsEnd: prop_types_default.a.bool,
  selectsStart: prop_types_default.a.bool,
  showWeekNumbers: prop_types_default.a.bool,
  startDate: prop_types_default.a.object,
  utcOffset: prop_types_default.a.number
};

var es_Time = function (_React$Component) {
  inherits(Time, _React$Component);

  function Time() {
    var _temp, _this, _ret;

    classCallCheck(this, Time);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleClick = function (time) {
      if ((_this.props.minTime || _this.props.maxTime) && isTimeInDisabledRange(time, _this.props) || _this.props.excludeTimes && isTimeDisabled(time, _this.props.excludeTimes) || _this.props.includeTimes && !isTimeDisabled(time, _this.props.includeTimes)) {
        return;
      }

      _this.props.onChange(time);
    }, _this.liClasses = function (time, currH, currM) {
      var classes = ["react-datepicker__time-list-item"];

      if (currH === getHour(time) && currM === getMinute(time)) {
        classes.push("react-datepicker__time-list-item--selected");
      }
      if ((_this.props.minTime || _this.props.maxTime) && isTimeInDisabledRange(time, _this.props) || _this.props.excludeTimes && isTimeDisabled(time, _this.props.excludeTimes) || _this.props.includeTimes && !isTimeDisabled(time, _this.props.includeTimes)) {
        classes.push("react-datepicker__time-list-item--disabled");
      }
      if (_this.props.injectTimes && (getHour(time) * 60 + getMinute(time)) % _this.props.intervals !== 0) {
        classes.push("react-datepicker__time-list-item--injected");
      }

      return classes.join(" ");
    }, _this.renderTimes = function () {
      var times = [];
      var format = _this.props.format ? _this.props.format : "hh:mm A";
      var intervals = _this.props.intervals;
      var activeTime = _this.props.selected ? _this.props.selected : newDate();
      var currH = getHour(activeTime);
      var currM = getMinute(activeTime);
      var base = getStartOfDay(newDate());
      var multiplier = 1440 / intervals;
      var sortedInjectTimes = _this.props.injectTimes && _this.props.injectTimes.sort(function (a, b) {
        return a - b;
      });
      for (var i = 0; i < multiplier; i++) {
        var currentTime = addMinutes(cloneDate(base), i * intervals);
        times.push(currentTime);

        if (sortedInjectTimes) {
          var timesToInject = timesToInjectAfter(base, currentTime, i, intervals, sortedInjectTimes);
          times = times.concat(timesToInject);
        }
      }

      return times.map(function (time, i) {
        return react_default.a.createElement(
          "li",
          {
            key: i,
            onClick: _this.handleClick.bind(_this, time),
            className: _this.liClasses(time, currH, currM)
          },
          formatDate(time, format)
        );
      });
    }, _temp), possibleConstructorReturn(_this, _ret);
  }

  Time.prototype.componentDidMount = function componentDidMount() {
    // code to ensure selected time will always be in focus within time window when it first appears
    var multiplier = 60 / this.props.intervals;
    var currH = this.props.selected ? getHour(this.props.selected) : getHour(newDate());
    this.list.scrollTop = 30 * (multiplier * currH);
  };

  Time.prototype.render = function render() {
    var _this2 = this;

    var height = null;
    if (this.props.monthRef) {
      height = this.props.monthRef.clientHeight - 39;
    }

    return react_default.a.createElement(
      "div",
      {
        className: "react-datepicker__time-container " + (this.props.todayButton ? "react-datepicker__time-container--with-today-button" : "")
      },
      react_default.a.createElement(
        "div",
        { className: "react-datepicker__header react-datepicker__header--time" },
        react_default.a.createElement(
          "div",
          { className: "react-datepicker-time__header" },
          this.props.timeCaption
        )
      ),
      react_default.a.createElement(
        "div",
        { className: "react-datepicker__time" },
        react_default.a.createElement(
          "div",
          { className: "react-datepicker__time-box" },
          react_default.a.createElement(
            "ul",
            {
              className: "react-datepicker__time-list",
              ref: function ref(list) {
                _this2.list = list;
              },
              style: height ? { height: height } : {}
            },
            this.renderTimes.bind(this)()
          )
        )
      )
    );
  };

  createClass(Time, null, [{
    key: "defaultProps",
    get: function get$$1() {
      return {
        intervals: 30,
        onTimeChange: function onTimeChange() {},
        todayButton: null,
        timeCaption: "Time"
      };
    }
  }]);
  return Time;
}(react_default.a.Component);

es_Time.propTypes = {
  format: prop_types_default.a.string,
  includeTimes: prop_types_default.a.array,
  intervals: prop_types_default.a.number,
  selected: prop_types_default.a.object,
  onChange: prop_types_default.a.func,
  todayButton: prop_types_default.a.string,
  minTime: prop_types_default.a.object,
  maxTime: prop_types_default.a.object,
  excludeTimes: prop_types_default.a.array,
  monthRef: prop_types_default.a.object,
  timeCaption: prop_types_default.a.string,
  injectTimes: prop_types_default.a.array
};

function CalendarContainer(_ref) {
  var className = _ref.className,
      children = _ref.children;

  return react_default.a.createElement(
    "div",
    { className: className },
    react_default.a.createElement("div", { className: "react-datepicker__triangle" }),
    children
  );
}

CalendarContainer.propTypes = {
  className: prop_types_default.a.string,
  children: prop_types_default.a.node
};

var DROPDOWN_FOCUS_CLASSNAMES = ["react-datepicker__year-select", "react-datepicker__month-select", "react-datepicker__month-year-select"];

var isDropdownSelect = function isDropdownSelect() {
  var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

  var classNames = (element.className || "").split(/\s+/);
  return DROPDOWN_FOCUS_CLASSNAMES.some(function (testClassname) {
    return classNames.indexOf(testClassname) >= 0;
  });
};

var es_Calendar = function (_React$Component) {
  inherits(Calendar, _React$Component);
  createClass(Calendar, null, [{
    key: "defaultProps",
    get: function get$$1() {
      var _ref;

      return _ref = {
        onDropdownFocus: function onDropdownFocus() {},
        monthsShown: 1,
        forceShowMonthNavigation: false,
        timeCaption: "Time",
        previousMonthButtonLabel: "Previous Month"
      }, _ref["previousMonthButtonLabel"] = "Next Month", _ref;
    }
  }]);

  function Calendar(props) {
    classCallCheck(this, Calendar);

    var _this = possibleConstructorReturn(this, _React$Component.call(this, props));

    _this.handleClickOutside = function (event) {
      _this.props.onClickOutside(event);
    };

    _this.handleDropdownFocus = function (event) {
      if (isDropdownSelect(event.target)) {
        _this.props.onDropdownFocus();
      }
    };

    _this.getDateInView = function () {
      var _this$props = _this.props,
          preSelection = _this$props.preSelection,
          selected = _this$props.selected,
          openToDate = _this$props.openToDate,
          utcOffset = _this$props.utcOffset;

      var minDate = getEffectiveMinDate(_this.props);
      var maxDate = getEffectiveMaxDate(_this.props);
      var current = now(utcOffset);
      var initialDate = openToDate || selected || preSelection;
      if (initialDate) {
        return initialDate;
      } else {
        if (minDate && isBefore(current, minDate)) {
          return minDate;
        } else if (maxDate && isAfter(current, maxDate)) {
          return maxDate;
        }
      }
      return current;
    };

    _this.localizeDate = function (date) {
      return localizeDate(date, _this.props.locale);
    };

    _this.increaseMonth = function () {
      _this.setState({
        date: addMonths(cloneDate(_this.state.date), 1)
      }, function () {
        return _this.handleMonthChange(_this.state.date);
      });
    };

    _this.decreaseMonth = function () {
      _this.setState({
        date: subtractMonths(cloneDate(_this.state.date), 1)
      }, function () {
        return _this.handleMonthChange(_this.state.date);
      });
    };

    _this.handleDayClick = function (day, event) {
      return _this.props.onSelect(day, event);
    };

    _this.handleDayMouseEnter = function (day) {
      return _this.setState({ selectingDate: day });
    };

    _this.handleMonthMouseLeave = function () {
      return _this.setState({ selectingDate: null });
    };

    _this.handleYearChange = function (date) {
      if (_this.props.onYearChange) {
        _this.props.onYearChange(date);
      }
    };

    _this.handleMonthChange = function (date) {
      if (_this.props.onMonthChange) {
        _this.props.onMonthChange(date);
      }
      if (_this.props.adjustDateOnChange) {
        if (_this.props.onSelect) {
          _this.props.onSelect(date);
        }
        if (_this.props.setOpen) {
          _this.props.setOpen(true);
        }
      }
    };

    _this.handleMonthYearChange = function (date) {
      _this.handleYearChange(date);
      _this.handleMonthChange(date);
    };

    _this.changeYear = function (year) {
      _this.setState({
        date: setYear(cloneDate(_this.state.date), year)
      }, function () {
        return _this.handleYearChange(_this.state.date);
      });
    };

    _this.changeMonth = function (month) {
      _this.setState({
        date: setMonth(cloneDate(_this.state.date), month)
      }, function () {
        return _this.handleMonthChange(_this.state.date);
      });
    };

    _this.changeMonthYear = function (monthYear) {
      _this.setState({
        date: setYear(setMonth(cloneDate(_this.state.date), getMonth(monthYear)), getYear(monthYear))
      }, function () {
        return _this.handleMonthYearChange(_this.state.date);
      });
    };

    _this.header = function () {
      var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.state.date;

      var startOfWeek = getStartOfWeek(cloneDate(date));
      var dayNames = [];
      if (_this.props.showWeekNumbers) {
        dayNames.push(react_default.a.createElement(
          "div",
          { key: "W", className: "react-datepicker__day-name" },
          _this.props.weekLabel || "#"
        ));
      }
      return dayNames.concat([0, 1, 2, 3, 4, 5, 6].map(function (offset) {
        var day = addDays(cloneDate(startOfWeek), offset);
        var localeData = getLocaleData(day);
        var weekDayName = _this.formatWeekday(localeData, day);

        return react_default.a.createElement(
          "div",
          { key: offset, className: "react-datepicker__day-name" },
          weekDayName
        );
      }));
    };

    _this.formatWeekday = function (localeData, day) {
      if (_this.props.formatWeekDay) {
        return getFormattedWeekdayInLocale(localeData, day, _this.props.formatWeekDay);
      }
      return _this.props.useWeekdaysShort ? getWeekdayShortInLocale(localeData, day) : getWeekdayMinInLocale(localeData, day);
    };

    _this.renderPreviousMonthButton = function () {
      var allPrevDaysDisabled = allDaysDisabledBefore(_this.state.date, "month", _this.props);

      if (!_this.props.forceShowMonthNavigation && !_this.props.showDisabledMonthNavigation && allPrevDaysDisabled || _this.props.showTimeSelectOnly) {
        return;
      }

      var classes = ["react-datepicker__navigation", "react-datepicker__navigation--previous"];

      var clickHandler = _this.decreaseMonth;

      if (allPrevDaysDisabled && _this.props.showDisabledMonthNavigation) {
        classes.push("react-datepicker__navigation--previous--disabled");
        clickHandler = null;
      }

      return react_default.a.createElement(
        "button",
        {
          type: "button",
          className: classes.join(" "),
          onClick: clickHandler
        },
        _this.props.previousMonthButtonLabel
      );
    };

    _this.renderNextMonthButton = function () {
      var allNextDaysDisabled = allDaysDisabledAfter(_this.state.date, "month", _this.props);

      if (!_this.props.forceShowMonthNavigation && !_this.props.showDisabledMonthNavigation && allNextDaysDisabled || _this.props.showTimeSelectOnly) {
        return;
      }

      var classes = ["react-datepicker__navigation", "react-datepicker__navigation--next"];
      if (_this.props.showTimeSelect) {
        classes.push("react-datepicker__navigation--next--with-time");
      }
      if (_this.props.todayButton) {
        classes.push("react-datepicker__navigation--next--with-today-button");
      }

      var clickHandler = _this.increaseMonth;

      if (allNextDaysDisabled && _this.props.showDisabledMonthNavigation) {
        classes.push("react-datepicker__navigation--next--disabled");
        clickHandler = null;
      }

      return react_default.a.createElement(
        "button",
        {
          type: "button",
          className: classes.join(" "),
          onClick: clickHandler
        },
        _this.props.nextMonthButtonLabel
      );
    };

    _this.renderCurrentMonth = function () {
      var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.state.date;

      var classes = ["react-datepicker__current-month"];

      if (_this.props.showYearDropdown) {
        classes.push("react-datepicker__current-month--hasYearDropdown");
      }
      if (_this.props.showMonthDropdown) {
        classes.push("react-datepicker__current-month--hasMonthDropdown");
      }
      if (_this.props.showMonthYearDropdown) {
        classes.push("react-datepicker__current-month--hasMonthYearDropdown");
      }
      return react_default.a.createElement(
        "div",
        { className: classes.join(" ") },
        formatDate(date, _this.props.dateFormat)
      );
    };

    _this.renderYearDropdown = function () {
      var overrideHide = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;

      if (!_this.props.showYearDropdown || overrideHide) {
        return;
      }
      return react_default.a.createElement(es_YearDropdown, {
        adjustDateOnChange: _this.props.adjustDateOnChange,
        date: _this.state.date,
        onSelect: _this.props.onSelect,
        setOpen: _this.props.setOpen,
        dropdownMode: _this.props.dropdownMode,
        onChange: _this.changeYear,
        minDate: _this.props.minDate,
        maxDate: _this.props.maxDate,
        year: getYear(_this.state.date),
        scrollableYearDropdown: _this.props.scrollableYearDropdown,
        yearDropdownItemNumber: _this.props.yearDropdownItemNumber
      });
    };

    _this.renderMonthDropdown = function () {
      var overrideHide = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;

      if (!_this.props.showMonthDropdown || overrideHide) {
        return;
      }
      return react_default.a.createElement(es_MonthDropdown, {
        dropdownMode: _this.props.dropdownMode,
        locale: _this.props.locale,
        dateFormat: _this.props.dateFormat,
        onChange: _this.changeMonth,
        month: getMonth(_this.state.date),
        useShortMonthInDropdown: _this.props.useShortMonthInDropdown
      });
    };

    _this.renderMonthYearDropdown = function () {
      var overrideHide = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;

      if (!_this.props.showMonthYearDropdown || overrideHide) {
        return;
      }
      return react_default.a.createElement(es_MonthYearDropdown, {
        dropdownMode: _this.props.dropdownMode,
        locale: _this.props.locale,
        dateFormat: _this.props.dateFormat,
        onChange: _this.changeMonthYear,
        minDate: _this.props.minDate,
        maxDate: _this.props.maxDate,
        date: _this.state.date,
        scrollableMonthYearDropdown: _this.props.scrollableMonthYearDropdown
      });
    };

    _this.renderTodayButton = function () {
      if (!_this.props.todayButton || _this.props.showTimeSelectOnly) {
        return;
      }
      return react_default.a.createElement(
        "div",
        {
          className: "react-datepicker__today-button",
          onClick: function onClick(e) {
            return _this.props.onSelect(getStartOfDate(now(_this.props.utcOffset)), e);
          }
        },
        _this.props.todayButton
      );
    };

    _this.renderMonths = function () {
      if (_this.props.showTimeSelectOnly) {
        return;
      }

      var monthList = [];
      for (var i = 0; i < _this.props.monthsShown; ++i) {
        var monthDate = addMonths(cloneDate(_this.state.date), i);
        var monthKey = "month-" + i;
        monthList.push(react_default.a.createElement(
          "div",
          {
            key: monthKey,
            ref: function ref(div) {
              _this.monthContainer = div;
            },
            className: "react-datepicker__month-container"
          },
          react_default.a.createElement(
            "div",
            { className: "react-datepicker__header" },
            _this.renderCurrentMonth(monthDate),
            react_default.a.createElement(
              "div",
              {
                className: "react-datepicker__header__dropdown react-datepicker__header__dropdown--" + _this.props.dropdownMode,
                onFocus: _this.handleDropdownFocus
              },
              _this.renderMonthDropdown(i !== 0),
              _this.renderMonthYearDropdown(i !== 0),
              _this.renderYearDropdown(i !== 0)
            ),
            react_default.a.createElement(
              "div",
              { className: "react-datepicker__day-names" },
              _this.header(monthDate)
            )
          ),
          react_default.a.createElement(es_Month, {
            day: monthDate,
            dayClassName: _this.props.dayClassName,
            onDayClick: _this.handleDayClick,
            onDayMouseEnter: _this.handleDayMouseEnter,
            onMouseLeave: _this.handleMonthMouseLeave,
            onWeekSelect: _this.props.onWeekSelect,
            formatWeekNumber: _this.props.formatWeekNumber,
            minDate: _this.props.minDate,
            maxDate: _this.props.maxDate,
            excludeDates: _this.props.excludeDates,
            highlightDates: _this.props.highlightDates,
            selectingDate: _this.state.selectingDate,
            includeDates: _this.props.includeDates,
            inline: _this.props.inline,
            fixedHeight: _this.props.fixedHeight,
            filterDate: _this.props.filterDate,
            preSelection: _this.props.preSelection,
            selected: _this.props.selected,
            selectsStart: _this.props.selectsStart,
            selectsEnd: _this.props.selectsEnd,
            showWeekNumbers: _this.props.showWeekNumbers,
            startDate: _this.props.startDate,
            endDate: _this.props.endDate,
            peekNextMonth: _this.props.peekNextMonth,
            utcOffset: _this.props.utcOffset
          })
        ));
      }
      return monthList;
    };

    _this.renderTimeSection = function () {
      if (_this.props.showTimeSelect) {
        return react_default.a.createElement(es_Time, {
          selected: _this.props.selected,
          onChange: _this.props.onTimeChange,
          format: _this.props.timeFormat,
          includeTimes: _this.props.includeTimes,
          intervals: _this.props.timeIntervals,
          minTime: _this.props.minTime,
          maxTime: _this.props.maxTime,
          excludeTimes: _this.props.excludeTimes,
          timeCaption: _this.props.timeCaption,
          todayButton: _this.props.todayButton,
          showMonthDropdown: _this.props.showMonthDropdown,
          showMonthYearDropdown: _this.props.showMonthYearDropdown,
          showYearDropdown: _this.props.showYearDropdown,
          withPortal: _this.props.withPortal,
          monthRef: _this.state.monthContainer,
          injectTimes: _this.props.injectTimes
        });
      }
    };

    _this.state = {
      date: _this.localizeDate(_this.getDateInView()),
      selectingDate: null,
      monthContainer: _this.monthContainer
    };
    return _this;
  }

  Calendar.prototype.componentDidMount = function componentDidMount() {
    var _this2 = this;

    // monthContainer height is needed in time component
    // to determine the height for the ul in the time component
    // setState here so height is given after final component
    // layout is rendered
    if (this.props.showTimeSelect) {
      this.assignMonthContainer = function () {
        _this2.setState({ monthContainer: _this2.monthContainer });
      }();
    }
  };

  Calendar.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
    if (this.props.preSelection && !isSameDay(this.props.preSelection, prevProps.preSelection)) {
      this.setState({
        date: this.localizeDate(this.props.preSelection)
      });
    } else if (this.props.openToDate && !isSameDay(this.props.openToDate, prevProps.openToDate)) {
      this.setState({
        date: this.localizeDate(this.props.openToDate)
      });
    }
  };

  Calendar.prototype.render = function render() {
    var Container = this.props.container || CalendarContainer;

    return react_default.a.createElement(
      Container,
      {
        className: classnames_default()("react-datepicker", this.props.className, {
          "react-datepicker--time-only": this.props.showTimeSelectOnly
        })
      },
      this.renderPreviousMonthButton(),
      this.renderNextMonthButton(),
      this.renderMonths(),
      this.renderTodayButton(),
      this.renderTimeSection(),
      this.props.children
    );
  };

  return Calendar;
}(react_default.a.Component);

es_Calendar.propTypes = {
  adjustDateOnChange: prop_types_default.a.bool,
  className: prop_types_default.a.string,
  children: prop_types_default.a.node,
  container: prop_types_default.a.func,
  dateFormat: prop_types_default.a.oneOfType([prop_types_default.a.string, prop_types_default.a.array]).isRequired,
  dayClassName: prop_types_default.a.func,
  dropdownMode: prop_types_default.a.oneOf(["scroll", "select"]),
  endDate: prop_types_default.a.object,
  excludeDates: prop_types_default.a.array,
  filterDate: prop_types_default.a.func,
  fixedHeight: prop_types_default.a.bool,
  formatWeekNumber: prop_types_default.a.func,
  highlightDates: prop_types_default.a.instanceOf(Map),
  includeDates: prop_types_default.a.array,
  includeTimes: prop_types_default.a.array,
  injectTimes: prop_types_default.a.array,
  inline: prop_types_default.a.bool,
  locale: prop_types_default.a.string,
  maxDate: prop_types_default.a.object,
  minDate: prop_types_default.a.object,
  monthsShown: prop_types_default.a.number,
  onClickOutside: prop_types_default.a.func.isRequired,
  onMonthChange: prop_types_default.a.func,
  onYearChange: prop_types_default.a.func,
  forceShowMonthNavigation: prop_types_default.a.bool,
  onDropdownFocus: prop_types_default.a.func,
  onSelect: prop_types_default.a.func.isRequired,
  onWeekSelect: prop_types_default.a.func,
  showTimeSelect: prop_types_default.a.bool,
  showTimeSelectOnly: prop_types_default.a.bool,
  timeFormat: prop_types_default.a.string,
  timeIntervals: prop_types_default.a.number,
  onTimeChange: prop_types_default.a.func,
  minTime: prop_types_default.a.object,
  maxTime: prop_types_default.a.object,
  excludeTimes: prop_types_default.a.array,
  timeCaption: prop_types_default.a.string,
  openToDate: prop_types_default.a.object,
  peekNextMonth: prop_types_default.a.bool,
  scrollableYearDropdown: prop_types_default.a.bool,
  scrollableMonthYearDropdown: prop_types_default.a.bool,
  preSelection: prop_types_default.a.object,
  selected: prop_types_default.a.object,
  selectsEnd: prop_types_default.a.bool,
  selectsStart: prop_types_default.a.bool,
  showMonthDropdown: prop_types_default.a.bool,
  showMonthYearDropdown: prop_types_default.a.bool,
  showWeekNumbers: prop_types_default.a.bool,
  showYearDropdown: prop_types_default.a.bool,
  startDate: prop_types_default.a.object,
  todayButton: prop_types_default.a.string,
  useWeekdaysShort: prop_types_default.a.bool,
  formatWeekDay: prop_types_default.a.func,
  withPortal: prop_types_default.a.bool,
  utcOffset: prop_types_default.a.number,
  weekLabel: prop_types_default.a.string,
  yearDropdownItemNumber: prop_types_default.a.number,
  setOpen: prop_types_default.a.func,
  useShortMonthInDropdown: prop_types_default.a.bool,
  showDisabledMonthNavigation: prop_types_default.a.bool,
  previousMonthButtonLabel: prop_types_default.a.string,
  nextMonthButtonLabel: prop_types_default.a.string
};

var popperPlacementPositions = ["auto", "auto-left", "auto-right", "bottom", "bottom-end", "bottom-start", "left", "left-end", "left-start", "right", "right-end", "right-start", "top", "top-end", "top-start"];

var es_PopperComponent = function (_React$Component) {
  inherits(PopperComponent, _React$Component);

  function PopperComponent() {
    classCallCheck(this, PopperComponent);
    return possibleConstructorReturn(this, _React$Component.apply(this, arguments));
  }

  PopperComponent.prototype.render = function render() {
    var _props = this.props,
        className = _props.className,
        hidePopper = _props.hidePopper,
        popperComponent = _props.popperComponent,
        popperModifiers = _props.popperModifiers,
        popperPlacement = _props.popperPlacement,
        targetComponent = _props.targetComponent;


    var popper = void 0;

    if (!hidePopper) {
      var classes = classnames_default()("react-datepicker-popper", className);
      popper = react_default.a.createElement(
        lib_Popper,
        {
          className: classes,
          modifiers: popperModifiers,
          placement: popperPlacement
        },
        popperComponent
      );
    }

    if (this.props.popperContainer) {
      popper = react_default.a.createElement(this.props.popperContainer, {}, popper);
    }

    return react_default.a.createElement(
      lib_Manager,
      null,
      react_default.a.createElement(
        lib_Target,
        { className: "react-datepicker-wrapper" },
        targetComponent
      ),
      popper
    );
  };

  createClass(PopperComponent, null, [{
    key: "defaultProps",
    get: function get$$1() {
      return {
        hidePopper: true,
        popperModifiers: {
          preventOverflow: {
            enabled: true,
            escapeWithReference: true,
            boundariesElement: "viewport"
          }
        },
        popperPlacement: "bottom-start"
      };
    }
  }]);
  return PopperComponent;
}(react_default.a.Component);

es_PopperComponent.propTypes = {
  className: prop_types_default.a.string,
  hidePopper: prop_types_default.a.bool,
  popperComponent: prop_types_default.a.element,
  popperModifiers: prop_types_default.a.object, // <datepicker/> props
  popperPlacement: prop_types_default.a.oneOf(popperPlacementPositions), // <datepicker/> props
  popperContainer: prop_types_default.a.func,
  targetComponent: prop_types_default.a.element
};

var outsideClickIgnoreClass = "react-datepicker-ignore-onclickoutside";
var WrappedCalendar = react_onclickoutside_es(es_Calendar);

// Compares dates year+month combinations
function hasPreSelectionChanged(date1, date2) {
  if (date1 && date2) {
    return getMonth(date1) !== getMonth(date2) || getYear(date1) !== getYear(date2);
  }

  return date1 !== date2;
}

function hasSelectionChanged(date1, date2) {
  if (date1 && date2) {
    return !equals(date1, date2);
  }

  return false;
}

/**
 * General datepicker component.
 */

var es_DatePicker = function (_React$Component) {
  inherits(DatePicker, _React$Component);
  createClass(DatePicker, null, [{
    key: "defaultProps",
    get: function get$$1() {
      return {
        allowSameDay: false,
        dateFormat: "L",
        dateFormatCalendar: "MMMM YYYY",
        onChange: function onChange() {},

        disabled: false,
        disabledKeyboardNavigation: false,
        dropdownMode: "scroll",
        onFocus: function onFocus() {},
        onBlur: function onBlur() {},
        onKeyDown: function onKeyDown() {},
        onSelect: function onSelect() {},
        onClickOutside: function onClickOutside$$1() {},
        onMonthChange: function onMonthChange() {},

        preventOpenOnFocus: false,
        onYearChange: function onYearChange() {},

        monthsShown: 1,
        readOnly: false,
        withPortal: false,
        shouldCloseOnSelect: true,
        showTimeSelect: false,
        timeIntervals: 30,
        timeCaption: "Time",
        previousMonthButtonLabel: "Previous Month",
        nextMonthButtonLabel: "Next month"
      };
    }
  }]);

  function DatePicker(props) {
    classCallCheck(this, DatePicker);

    var _this = possibleConstructorReturn(this, _React$Component.call(this, props));

    _this.getPreSelection = function () {
      return _this.props.openToDate ? newDate(_this.props.openToDate) : _this.props.selectsEnd && _this.props.startDate ? newDate(_this.props.startDate) : _this.props.selectsStart && _this.props.endDate ? newDate(_this.props.endDate) : now(_this.props.utcOffset);
    };

    _this.calcInitialState = function () {
      var defaultPreSelection = _this.getPreSelection();
      var minDate = getEffectiveMinDate(_this.props);
      var maxDate = getEffectiveMaxDate(_this.props);
      var boundedPreSelection = minDate && isBefore(defaultPreSelection, minDate) ? minDate : maxDate && isAfter(defaultPreSelection, maxDate) ? maxDate : defaultPreSelection;
      return {
        open: _this.props.startOpen || false,
        preventFocus: false,
        preSelection: _this.props.selected ? newDate(_this.props.selected) : boundedPreSelection,
        // transforming highlighted days (perhaps nested array)
        // to flat Map for faster access in day.jsx
        highlightDates: getHightLightDaysMap(_this.props.highlightDates),
        focused: false
      };
    };

    _this.clearPreventFocusTimeout = function () {
      if (_this.preventFocusTimeout) {
        clearTimeout(_this.preventFocusTimeout);
      }
    };

    _this.setFocus = function () {
      if (_this.input && _this.input.focus) {
        _this.input.focus();
      }
    };

    _this.setOpen = function (open) {
      _this.setState({
        open: open,
        preSelection: open && _this.state.open ? _this.state.preSelection : _this.calcInitialState().preSelection,
        lastPreSelectChange: PRESELECT_CHANGE_VIA_NAVIGATE
      });
    };

    _this.handleFocus = function (event) {
      if (!_this.state.preventFocus) {
        _this.props.onFocus(event);
        if (!_this.props.preventOpenOnFocus && !_this.props.readOnly) {
          _this.setOpen(true);
        }
      }
      _this.setState({ focused: true });
    };

    _this.cancelFocusInput = function () {
      clearTimeout(_this.inputFocusTimeout);
      _this.inputFocusTimeout = null;
    };

    _this.deferFocusInput = function () {
      _this.cancelFocusInput();
      _this.inputFocusTimeout = setTimeout(function () {
        return _this.setFocus();
      }, 1);
    };

    _this.handleDropdownFocus = function () {
      _this.cancelFocusInput();
    };

    _this.handleBlur = function (event) {
      if (_this.state.open && !_this.props.withPortal) {
        _this.deferFocusInput();
      } else {
        _this.props.onBlur(event);
      }
      _this.setState({ focused: false });
    };

    _this.handleCalendarClickOutside = function (event) {
      if (!_this.props.inline) {
        _this.setOpen(false);
      }
      _this.props.onClickOutside(event);
      if (_this.props.withPortal) {
        event.preventDefault();
      }
    };

    _this.handleChange = function () {
      for (var _len = arguments.length, allArgs = Array(_len), _key = 0; _key < _len; _key++) {
        allArgs[_key] = arguments[_key];
      }

      var event = allArgs[0];
      if (_this.props.onChangeRaw) {
        _this.props.onChangeRaw.apply(_this, allArgs);
        if (typeof event.isDefaultPrevented !== "function" || event.isDefaultPrevented()) {
          return;
        }
      }
      _this.setState({
        inputValue: event.target.value,
        lastPreSelectChange: PRESELECT_CHANGE_VIA_INPUT
      });
      var date = parseDate(event.target.value, _this.props);
      if (date || !event.target.value) {
        _this.setSelected(date, event, true);
      }
    };

    _this.handleSelect = function (date, event) {
      // Preventing onFocus event to fix issue
      // https://github.com/Hacker0x01/react-datepicker/issues/628
      _this.setState({ preventFocus: true }, function () {
        _this.preventFocusTimeout = setTimeout(function () {
          return _this.setState({ preventFocus: false });
        }, 50);
        return _this.preventFocusTimeout;
      });
      _this.setSelected(date, event);
      if (!_this.props.shouldCloseOnSelect || _this.props.showTimeSelect) {
        _this.setPreSelection(date);
      } else if (!_this.props.inline) {
        _this.setOpen(false);
      }
    };

    _this.setSelected = function (date, event, keepInput) {
      var changedDate = date;

      if (changedDate !== null && isDayDisabled(changedDate, _this.props)) {
        return;
      }

      if (!isSameDay(_this.props.selected, changedDate) || _this.props.allowSameDay) {
        if (changedDate !== null) {
          if (_this.props.selected) {
            var selected = _this.props.selected;
            if (keepInput) selected = newDate(changedDate);
            changedDate = setTime(newDate(changedDate), {
              hour: getHour(selected),
              minute: getMinute(selected),
              second: getSecond(selected)
            });
          }
          if (!_this.props.inline) {
            _this.setState({
              preSelection: changedDate
            });
          }
        }
        _this.props.onChange(changedDate, event);
      }

      _this.props.onSelect(changedDate, event);

      if (!keepInput) {
        _this.setState({ inputValue: null });
      }
    };

    _this.setPreSelection = function (date) {
      var isDateRangePresent = typeof _this.props.minDate !== "undefined" && typeof _this.props.maxDate !== "undefined";
      var isValidDateSelection = isDateRangePresent && date ? isDayInRange(date, _this.props.minDate, _this.props.maxDate) : true;
      if (isValidDateSelection) {
        _this.setState({
          preSelection: date
        });
      }
    };

    _this.handleTimeChange = function (time) {
      var selected = _this.props.selected ? _this.props.selected : _this.getPreSelection();
      var changedDate = setTime(cloneDate(selected), {
        hour: getHour(time),
        minute: getMinute(time)
      });

      _this.setState({
        preSelection: changedDate
      });

      _this.props.onChange(changedDate);
      _this.setOpen(false);
      _this.setState({ inputValue: null });
    };

    _this.onInputClick = function () {
      if (!_this.props.disabled && !_this.props.readOnly) {
        _this.setOpen(true);
      }
    };

    _this.onInputKeyDown = function (event) {
      _this.props.onKeyDown(event);
      var eventKey = event.key;
      if (!_this.state.open && !_this.props.inline && !_this.props.preventOpenOnFocus) {
        if (eventKey === "ArrowDown" || eventKey === "ArrowUp") {
          _this.onInputClick();
        }
        return;
      }
      var copy = newDate(_this.state.preSelection);
      if (eventKey === "Enter") {
        event.preventDefault();
        if ((isMoment(_this.state.preSelection) || isDate(_this.state.preSelection)) && _this.state.lastPreSelectChange === PRESELECT_CHANGE_VIA_NAVIGATE) {
          _this.handleSelect(copy, event);
          !_this.props.shouldCloseOnSelect && _this.setPreSelection(copy);
        } else {
          _this.setOpen(false);
        }
      } else if (eventKey === "Escape") {
        event.preventDefault();
        _this.setOpen(false);
      } else if (eventKey === "Tab") {
        _this.setOpen(false);
      } else if (!_this.props.disabledKeyboardNavigation) {
        var newSelection = void 0;
        switch (eventKey) {
          case "ArrowLeft":
            newSelection = subtractDays(copy, 1);
            break;
          case "ArrowRight":
            newSelection = addDays(copy, 1);
            break;
          case "ArrowUp":
            newSelection = subtractWeeks(copy, 1);
            break;
          case "ArrowDown":
            newSelection = addWeeks(copy, 1);
            break;
          case "PageUp":
            newSelection = subtractMonths(copy, 1);
            break;
          case "PageDown":
            newSelection = addMonths(copy, 1);
            break;
          case "Home":
            newSelection = subtractYears(copy, 1);
            break;
          case "End":
            newSelection = addYears(copy, 1);
            break;
        }
        if (!newSelection) return; // Let the input component handle this keydown
        event.preventDefault();
        _this.setState({ lastPreSelectChange: PRESELECT_CHANGE_VIA_NAVIGATE });
        if (_this.props.adjustDateOnChange) {
          _this.setSelected(newSelection);
        }
        _this.setPreSelection(newSelection);
      }
    };

    _this.onClearClick = function (event) {
      if (event) {
        if (event.preventDefault) {
          event.preventDefault();
        }
      }
      _this.props.onChange(null, event);
      _this.setState({ inputValue: null });
    };

    _this.clear = function () {
      _this.onClearClick();
    };

    _this.renderCalendar = function () {
      if (!_this.props.inline && (!_this.state.open || _this.props.disabled || _this.props.readOnly)) {
        return null;
      }
      return react_default.a.createElement(
        WrappedCalendar,
        {
          ref: function ref(elem) {
            _this.calendar = elem;
          },
          locale: _this.props.locale,
          adjustDateOnChange: _this.props.adjustDateOnChange,
          setOpen: _this.setOpen,
          dateFormat: _this.props.dateFormatCalendar,
          useWeekdaysShort: _this.props.useWeekdaysShort,
          formatWeekDay: _this.props.formatWeekDay,
          dropdownMode: _this.props.dropdownMode,
          selected: _this.props.selected,
          preSelection: _this.state.preSelection,
          onSelect: _this.handleSelect,
          onWeekSelect: _this.props.onWeekSelect,
          openToDate: _this.props.openToDate,
          minDate: _this.props.minDate,
          maxDate: _this.props.maxDate,
          selectsStart: _this.props.selectsStart,
          selectsEnd: _this.props.selectsEnd,
          startDate: _this.props.startDate,
          endDate: _this.props.endDate,
          excludeDates: _this.props.excludeDates,
          filterDate: _this.props.filterDate,
          onClickOutside: _this.handleCalendarClickOutside,
          formatWeekNumber: _this.props.formatWeekNumber,
          highlightDates: _this.state.highlightDates,
          includeDates: _this.props.includeDates,
          includeTimes: _this.props.includeTimes,
          injectTimes: _this.props.injectTimes,
          inline: _this.props.inline,
          peekNextMonth: _this.props.peekNextMonth,
          showMonthDropdown: _this.props.showMonthDropdown,
          useShortMonthInDropdown: _this.props.useShortMonthInDropdown,
          showMonthYearDropdown: _this.props.showMonthYearDropdown,
          showWeekNumbers: _this.props.showWeekNumbers,
          showYearDropdown: _this.props.showYearDropdown,
          withPortal: _this.props.withPortal,
          forceShowMonthNavigation: _this.props.forceShowMonthNavigation,
          showDisabledMonthNavigation: _this.props.showDisabledMonthNavigation,
          scrollableYearDropdown: _this.props.scrollableYearDropdown,
          scrollableMonthYearDropdown: _this.props.scrollableMonthYearDropdown,
          todayButton: _this.props.todayButton,
          weekLabel: _this.props.weekLabel,
          utcOffset: _this.props.utcOffset,
          outsideClickIgnoreClass: outsideClickIgnoreClass,
          fixedHeight: _this.props.fixedHeight,
          monthsShown: _this.props.monthsShown,
          onDropdownFocus: _this.handleDropdownFocus,
          onMonthChange: _this.props.onMonthChange,
          onYearChange: _this.props.onYearChange,
          dayClassName: _this.props.dayClassName,
          showTimeSelect: _this.props.showTimeSelect,
          showTimeSelectOnly: _this.props.showTimeSelectOnly,
          onTimeChange: _this.handleTimeChange,
          timeFormat: _this.props.timeFormat,
          timeIntervals: _this.props.timeIntervals,
          minTime: _this.props.minTime,
          maxTime: _this.props.maxTime,
          excludeTimes: _this.props.excludeTimes,
          timeCaption: _this.props.timeCaption,
          className: _this.props.calendarClassName,
          container: _this.props.calendarContainer,
          yearDropdownItemNumber: _this.props.yearDropdownItemNumber,
          previousMonthButtonLabel: _this.props.previousMonthButtonLabel,
          nextMonthButtonLabel: _this.props.nextMonthButtonLabel
        },
        _this.props.children
      );
    };

    _this.renderDateInput = function () {
      var _classnames, _React$cloneElement;

      var className = classnames_default()(_this.props.className, (_classnames = {}, _classnames[outsideClickIgnoreClass] = _this.state.open, _classnames));

      var customInput = _this.props.customInput || react_default.a.createElement("input", { type: "text" });
      var customInputRef = _this.props.customInputRef || "ref";
      var inputValue = typeof _this.props.value === "string" ? _this.props.value : typeof _this.state.inputValue === "string" ? _this.state.inputValue : safeDateFormat(_this.props.selected, _this.props);

      return react_default.a.cloneElement(customInput, (_React$cloneElement = {}, _React$cloneElement[customInputRef] = function (input) {
        _this.input = input;
      }, _React$cloneElement.value = inputValue, _React$cloneElement.onBlur = _this.handleBlur, _React$cloneElement.onChange = _this.handleChange, _React$cloneElement.onClick = _this.onInputClick, _React$cloneElement.onFocus = _this.handleFocus, _React$cloneElement.onKeyDown = _this.onInputKeyDown, _React$cloneElement.id = _this.props.id, _React$cloneElement.name = _this.props.name, _React$cloneElement.autoFocus = _this.props.autoFocus, _React$cloneElement.placeholder = _this.props.placeholderText, _React$cloneElement.disabled = _this.props.disabled, _React$cloneElement.autoComplete = _this.props.autoComplete, _React$cloneElement.className = className, _React$cloneElement.title = _this.props.title, _React$cloneElement.readOnly = _this.props.readOnly, _React$cloneElement.required = _this.props.required, _React$cloneElement.tabIndex = _this.props.tabIndex, _React$cloneElement));
    };

    _this.renderClearButton = function () {
      if (_this.props.isClearable && _this.props.selected != null) {
        return react_default.a.createElement("button", {
          type: "button",
          className: "react-datepicker__close-icon",
          onClick: _this.onClearClick,
          title: _this.props.clearButtonTitle,
          tabIndex: -1
        });
      } else {
        return null;
      }
    };

    _this.state = _this.calcInitialState();
    return _this;
  }

  DatePicker.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
    if (prevProps.inline && hasPreSelectionChanged(prevProps.selected, this.props.selected)) {
      this.setPreSelection(this.props.selected);
    }
    if (prevProps.highlightDates !== this.props.highlightDates) {
      this.setState({
        highlightDates: getHightLightDaysMap(this.props.highlightDates)
      });
    }
    if (!prevState.focused && hasSelectionChanged(prevProps.selected, this.props.selected)) {
      this.setState({ inputValue: null });
    }
  };

  DatePicker.prototype.componentWillUnmount = function componentWillUnmount() {
    this.clearPreventFocusTimeout();
  };

  DatePicker.prototype.render = function render() {
    var calendar = this.renderCalendar();

    if (this.props.inline && !this.props.withPortal) {
      return calendar;
    }

    if (this.props.withPortal) {
      return react_default.a.createElement(
        "div",
        null,
        !this.props.inline ? react_default.a.createElement(
          "div",
          { className: "react-datepicker__input-container" },
          this.renderDateInput(),
          this.renderClearButton()
        ) : null,
        this.state.open || this.props.inline ? react_default.a.createElement(
          "div",
          { className: "react-datepicker__portal" },
          calendar
        ) : null
      );
    }

    return react_default.a.createElement(es_PopperComponent, {
      className: this.props.popperClassName,
      hidePopper: !this.state.open || this.props.disabled || this.props.readOnly,
      popperModifiers: this.props.popperModifiers,
      targetComponent: react_default.a.createElement(
        "div",
        { className: "react-datepicker__input-container" },
        this.renderDateInput(),
        this.renderClearButton()
      ),
      popperContainer: this.props.popperContainer,
      popperComponent: calendar,
      popperPlacement: this.props.popperPlacement
    });
  };

  return DatePicker;
}(react_default.a.Component);

es_DatePicker.propTypes = {
  adjustDateOnChange: prop_types_default.a.bool,
  allowSameDay: prop_types_default.a.bool,
  autoComplete: prop_types_default.a.string,
  autoFocus: prop_types_default.a.bool,
  calendarClassName: prop_types_default.a.string,
  calendarContainer: prop_types_default.a.func,
  children: prop_types_default.a.node,
  className: prop_types_default.a.string,
  customInput: prop_types_default.a.element,
  customInputRef: prop_types_default.a.string,
  // eslint-disable-next-line react/no-unused-prop-types
  dateFormat: prop_types_default.a.oneOfType([prop_types_default.a.string, prop_types_default.a.array]),
  dateFormatCalendar: prop_types_default.a.string,
  dayClassName: prop_types_default.a.func,
  disabled: prop_types_default.a.bool,
  disabledKeyboardNavigation: prop_types_default.a.bool,
  dropdownMode: prop_types_default.a.oneOf(["scroll", "select"]).isRequired,
  endDate: prop_types_default.a.object,
  excludeDates: prop_types_default.a.array,
  filterDate: prop_types_default.a.func,
  fixedHeight: prop_types_default.a.bool,
  formatWeekNumber: prop_types_default.a.func,
  highlightDates: prop_types_default.a.array,
  id: prop_types_default.a.string,
  includeDates: prop_types_default.a.array,
  includeTimes: prop_types_default.a.array,
  injectTimes: prop_types_default.a.array,
  inline: prop_types_default.a.bool,
  isClearable: prop_types_default.a.bool,
  locale: prop_types_default.a.string,
  maxDate: prop_types_default.a.object,
  minDate: prop_types_default.a.object,
  monthsShown: prop_types_default.a.number,
  name: prop_types_default.a.string,
  onBlur: prop_types_default.a.func,
  onChange: prop_types_default.a.func.isRequired,
  onSelect: prop_types_default.a.func,
  onWeekSelect: prop_types_default.a.func,
  onClickOutside: prop_types_default.a.func,
  onChangeRaw: prop_types_default.a.func,
  onFocus: prop_types_default.a.func,
  onKeyDown: prop_types_default.a.func,
  onMonthChange: prop_types_default.a.func,
  onYearChange: prop_types_default.a.func,
  openToDate: prop_types_default.a.object,
  peekNextMonth: prop_types_default.a.bool,
  placeholderText: prop_types_default.a.string,
  popperContainer: prop_types_default.a.func,
  popperClassName: prop_types_default.a.string, // <PopperComponent/> props
  popperModifiers: prop_types_default.a.object, // <PopperComponent/> props
  popperPlacement: prop_types_default.a.oneOf(popperPlacementPositions), // <PopperComponent/> props
  preventOpenOnFocus: prop_types_default.a.bool,
  readOnly: prop_types_default.a.bool,
  required: prop_types_default.a.bool,
  scrollableYearDropdown: prop_types_default.a.bool,
  scrollableMonthYearDropdown: prop_types_default.a.bool,
  selected: prop_types_default.a.object,
  selectsEnd: prop_types_default.a.bool,
  selectsStart: prop_types_default.a.bool,
  showMonthDropdown: prop_types_default.a.bool,
  showMonthYearDropdown: prop_types_default.a.bool,
  showWeekNumbers: prop_types_default.a.bool,
  showYearDropdown: prop_types_default.a.bool,
  forceShowMonthNavigation: prop_types_default.a.bool,
  showDisabledMonthNavigation: prop_types_default.a.bool,
  startDate: prop_types_default.a.object,
  startOpen: prop_types_default.a.bool,
  tabIndex: prop_types_default.a.number,
  timeCaption: prop_types_default.a.string,
  title: prop_types_default.a.string,
  todayButton: prop_types_default.a.string,
  useWeekdaysShort: prop_types_default.a.bool,
  formatWeekDay: prop_types_default.a.func,
  utcOffset: prop_types_default.a.number,
  value: prop_types_default.a.string,
  weekLabel: prop_types_default.a.string,
  withPortal: prop_types_default.a.bool,
  yearDropdownItemNumber: prop_types_default.a.number,
  shouldCloseOnSelect: prop_types_default.a.bool,
  showTimeSelect: prop_types_default.a.bool,
  showTimeSelectOnly: prop_types_default.a.bool,
  timeFormat: prop_types_default.a.string,
  timeIntervals: prop_types_default.a.number,
  minTime: prop_types_default.a.object,
  maxTime: prop_types_default.a.object,
  excludeTimes: prop_types_default.a.array,
  useShortMonthInDropdown: prop_types_default.a.bool,
  clearButtonTitle: prop_types_default.a.string,
  previousMonthButtonLabel: prop_types_default.a.string,
  nextMonthButtonLabel: prop_types_default.a.string
};
var PRESELECT_CHANGE_VIA_INPUT = "input";
var PRESELECT_CHANGE_VIA_NAVIGATE = "navigate";


/* harmony default export */ var es = __webpack_exports__["a"] = (es_DatePicker);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "d", function() { return /* reexport */ src_nest; });
__webpack_require__.d(__webpack_exports__, "e", function() { return /* reexport */ src_set; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* reexport */ src_map; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* reexport */ src_keys; });
__webpack_require__.d(__webpack_exports__, "f", function() { return /* reexport */ src_values; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ src_entries; });

// CONCATENATED MODULE: ./node_modules/d3-collection/src/map.js
var prefix = "$";

function Map() {}

Map.prototype = map.prototype = {
  constructor: Map,
  has: function(key) {
    return (prefix + key) in this;
  },
  get: function(key) {
    return this[prefix + key];
  },
  set: function(key, value) {
    this[prefix + key] = value;
    return this;
  },
  remove: function(key) {
    var property = prefix + key;
    return property in this && delete this[property];
  },
  clear: function() {
    for (var property in this) if (property[0] === prefix) delete this[property];
  },
  keys: function() {
    var keys = [];
    for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));
    return keys;
  },
  values: function() {
    var values = [];
    for (var property in this) if (property[0] === prefix) values.push(this[property]);
    return values;
  },
  entries: function() {
    var entries = [];
    for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});
    return entries;
  },
  size: function() {
    var size = 0;
    for (var property in this) if (property[0] === prefix) ++size;
    return size;
  },
  empty: function() {
    for (var property in this) if (property[0] === prefix) return false;
    return true;
  },
  each: function(f) {
    for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);
  }
};

function map(object, f) {
  var map = new Map;

  // Copy constructor.
  if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });

  // Index array by numeric index or specified key function.
  else if (Array.isArray(object)) {
    var i = -1,
        n = object.length,
        o;

    if (f == null) while (++i < n) map.set(i, object[i]);
    else while (++i < n) map.set(f(o = object[i], i, object), o);
  }

  // Convert object to map.
  else if (object) for (var key in object) map.set(key, object[key]);

  return map;
}

/* harmony default export */ var src_map = (map);

// CONCATENATED MODULE: ./node_modules/d3-collection/src/nest.js


/* harmony default export */ var src_nest = (function() {
  var keys = [],
      sortKeys = [],
      sortValues,
      rollup,
      nest;

  function apply(array, depth, createResult, setResult) {
    if (depth >= keys.length) {
      if (sortValues != null) array.sort(sortValues);
      return rollup != null ? rollup(array) : array;
    }

    var i = -1,
        n = array.length,
        key = keys[depth++],
        keyValue,
        value,
        valuesByKey = src_map(),
        values,
        result = createResult();

    while (++i < n) {
      if (values = valuesByKey.get(keyValue = key(value = array[i]) + "")) {
        values.push(value);
      } else {
        valuesByKey.set(keyValue, [value]);
      }
    }

    valuesByKey.each(function(values, key) {
      setResult(result, key, apply(values, depth, createResult, setResult));
    });

    return result;
  }

  function entries(map, depth) {
    if (++depth > keys.length) return map;
    var array, sortKey = sortKeys[depth - 1];
    if (rollup != null && depth >= keys.length) array = map.entries();
    else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });
    return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;
  }

  return nest = {
    object: function(array) { return apply(array, 0, createObject, setObject); },
    map: function(array) { return apply(array, 0, createMap, setMap); },
    entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },
    key: function(d) { keys.push(d); return nest; },
    sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },
    sortValues: function(order) { sortValues = order; return nest; },
    rollup: function(f) { rollup = f; return nest; }
  };
});

function createObject() {
  return {};
}

function setObject(object, key, value) {
  object[key] = value;
}

function createMap() {
  return src_map();
}

function setMap(map, key, value) {
  map.set(key, value);
}

// CONCATENATED MODULE: ./node_modules/d3-collection/src/set.js


function Set() {}

var proto = src_map.prototype;

Set.prototype = set.prototype = {
  constructor: Set,
  has: proto.has,
  add: function(value) {
    value += "";
    this[prefix + value] = value;
    return this;
  },
  remove: proto.remove,
  clear: proto.clear,
  values: proto.keys,
  size: proto.size,
  empty: proto.empty,
  each: proto.each
};

function set(object, f) {
  var set = new Set;

  // Copy constructor.
  if (object instanceof Set) object.each(function(value) { set.add(value); });

  // Otherwise, assume it’s an array.
  else if (object) {
    var i = -1, n = object.length;
    if (f == null) while (++i < n) set.add(object[i]);
    else while (++i < n) set.add(f(object[i], i, object));
  }

  return set;
}

/* harmony default export */ var src_set = (set);

// CONCATENATED MODULE: ./node_modules/d3-collection/src/keys.js
/* harmony default export */ var src_keys = (function(map) {
  var keys = [];
  for (var key in map) keys.push(key);
  return keys;
});

// CONCATENATED MODULE: ./node_modules/d3-collection/src/values.js
/* harmony default export */ var src_values = (function(map) {
  var values = [];
  for (var key in map) values.push(map[key]);
  return values;
});

// CONCATENATED MODULE: ./node_modules/d3-collection/src/entries.js
/* harmony default export */ var src_entries = (function(map) {
  var entries = [];
  for (var key in map) entries.push({key: key, value: map[key]});
  return entries;
});

// CONCATENATED MODULE: ./node_modules/d3-collection/index.js






// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "default", function() { return /* reexport */ SourceAccounts_SourceAccounts; });

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-document-title/index.js
var react_document_title = __webpack_require__(98);
var react_document_title_default = /*#__PURE__*/__webpack_require__.n(react_document_title);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__(7);

// EXTERNAL MODULE: ./node_modules/react-intl/lib/index.es.js
var index_es = __webpack_require__(4);

// EXTERNAL MODULE: ./src/js/components/common/HeaderBar/index.js + 1 modules
var HeaderBar = __webpack_require__(251);

// EXTERNAL MODULE: ./src/js/constants/index.js + 1 modules
var constants = __webpack_require__(15);

// EXTERNAL MODULE: ./src/js/components/common/styled.js
var styled = __webpack_require__(35);

// EXTERNAL MODULE: ./node_modules/antd/lib/table/style/index.js
var style = __webpack_require__(306);

// EXTERNAL MODULE: ./node_modules/antd/lib/table/index.js
var table = __webpack_require__(177);
var table_default = /*#__PURE__*/__webpack_require__.n(table);

// EXTERNAL MODULE: ./src/js/components/common/spinner/index.js + 1 modules
var spinner = __webpack_require__(74);

// EXTERNAL MODULE: ./node_modules/moment/moment.js
var moment = __webpack_require__(23);
var moment_default = /*#__PURE__*/__webpack_require__.n(moment);

// EXTERNAL MODULE: ./src/js/components/SettingTabs/APIConnect/styled.js
var APIConnect_styled = __webpack_require__(57);

// EXTERNAL MODULE: ./node_modules/antd/lib/popover/style/index.js
var popover_style = __webpack_require__(95);

// EXTERNAL MODULE: ./node_modules/antd/lib/popover/index.js
var popover = __webpack_require__(44);
var popover_default = /*#__PURE__*/__webpack_require__.n(popover);

// EXTERNAL MODULE: ./node_modules/antd/lib/modal/style/index.js
var modal_style = __webpack_require__(88);

// EXTERNAL MODULE: ./node_modules/antd/lib/modal/index.js
var modal = __webpack_require__(55);
var modal_default = /*#__PURE__*/__webpack_require__.n(modal);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
var classCallCheck = __webpack_require__(9);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js
var createClass = __webpack_require__(10);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__(11);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
var getPrototypeOf = __webpack_require__(12);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
var inherits = __webpack_require__(13);

// EXTERNAL MODULE: ./node_modules/antd/lib/tooltip/style/index.js
var tooltip_style = __webpack_require__(308);

// EXTERNAL MODULE: ./node_modules/antd/lib/tooltip/index.js
var tooltip = __webpack_require__(184);
var tooltip_default = /*#__PURE__*/__webpack_require__.n(tooltip);

// EXTERNAL MODULE: ./node_modules/antd/lib/input-number/style/index.js
var input_number_style = __webpack_require__(652);

// EXTERNAL MODULE: ./node_modules/antd/lib/input-number/index.js
var input_number = __webpack_require__(346);
var input_number_default = /*#__PURE__*/__webpack_require__.n(input_number);

// EXTERNAL MODULE: ./node_modules/antd/lib/input/style/index.js
var input_style = __webpack_require__(102);

// EXTERNAL MODULE: ./node_modules/antd/lib/input/index.js
var input = __webpack_require__(52);
var input_default = /*#__PURE__*/__webpack_require__.n(input);

// EXTERNAL MODULE: ./node_modules/antd/lib/form/style/index.js
var form_style = __webpack_require__(120);

// EXTERNAL MODULE: ./node_modules/antd/lib/form/index.js
var lib_form = __webpack_require__(43);
var form_default = /*#__PURE__*/__webpack_require__.n(lib_form);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/extends.js
var esm_extends = __webpack_require__(33);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 3 modules
var slicedToArray = __webpack_require__(64);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread.js
var objectSpread = __webpack_require__(27);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js + 1 modules
var objectWithoutProperties = __webpack_require__(125);

// EXTERNAL MODULE: ./node_modules/antd/lib/date-picker/style/index.js
var date_picker_style = __webpack_require__(1074);

// EXTERNAL MODULE: ./node_modules/antd/lib/date-picker/index.js
var date_picker = __webpack_require__(682);
var date_picker_default = /*#__PURE__*/__webpack_require__.n(date_picker);

// EXTERNAL MODULE: ./node_modules/antd/lib/select/style/index.js
var select_style = __webpack_require__(89);

// EXTERNAL MODULE: ./node_modules/antd/lib/select/index.js
var lib_select = __webpack_require__(36);
var select_default = /*#__PURE__*/__webpack_require__.n(lib_select);

// EXTERNAL MODULE: ./src/js/components/common/IconSvg/index.js
var IconSvg = __webpack_require__(14);

// CONCATENATED MODULE: ./src/js/components/SourceAccounts/Actions.js
var _dec,_dec2,_class;/* eslint-disable no-unused-vars */var Option=select_default.a.Option;var MonthPicker=date_picker_default.a.MonthPicker;var formItemLayout={labelCol:{xs:{span:24},sm:{span:8}},wrapperCol:{xs:{span:24},sm:{span:12}}};// eslint-disable-next-line consistent-return
var Actions_processData=function processData(values,account){var name=account.name,password=account.password,otpSecretKey=account.otpSecretKey;if(values.editOption==='password')return{name:name,password:values.password,otpSecretKey:otpSecretKey};if(values.editOption==='otpSecret')return{name:name,password:password,otpSecretKey:values.otpSecret};if(values.editOption==='proxy'){var proxySettingsOption=values.proxySettingsOption,rest=Object(objectWithoutProperties["a" /* default */])(values,["proxySettingsOption"]);var defaultProxySettings=proxySettingsOption==='triplemars_proxy';var proxyPassword=rest.proxyPassword,restOfProxy=Object(objectWithoutProperties["a" /* default */])(rest,["proxyPassword"]);return{name:name,password:password,otpSecretKey:otpSecretKey,defaultProxySettings:defaultProxySettings,proxySettings:Object(objectSpread["a" /* default */])({},restOfProxy,{password:proxyPassword})};}if(values.editOption==='card'){var cardNumber=values.cardNumber,expirationDate=values.expirationDate,creditCardName=values.creditCardName,creditCardCVV=values.creditCardCVV;var month=moment_default()(expirationDate._d).format('M');var creditCardExpirationYear=moment_default()(expirationDate._d).format('YYYY');var creditCardExpirationMonth="0".concat(month).slice(-2);var creditCardNumber=cardNumber.length===15?cardNumber.replace(/(\d{4})(\d{6})(\d{5})/,'$1-$2-$3'):cardNumber.replace(/(\d{4})(?=\d)/g,'$1-');return{name:name,password:password,otpSecretKey:otpSecretKey,cardDetails:{creditCardNumber:creditCardNumber,creditCardName:creditCardName,creditCardCVV:creditCardCVV,creditCardExpirationMonth:creditCardExpirationMonth,creditCardExpirationYear:creditCardExpirationYear}};}};var Actions_EditAccountForm=function EditAccountForm(_ref){var form=_ref.form,editAccount=_ref.editAccount,closeModal=_ref.closeModal,accountId=_ref.accountId,account=_ref.account,handleLoading=_ref.handleLoading;var _useState=Object(react["useState"])(),_useState2=Object(slicedToArray["a" /* default */])(_useState,2),editOption=_useState2[0],setEditOption=_useState2[1];var _useState3=Object(react["useState"])(false),_useState4=Object(slicedToArray["a" /* default */])(_useState3,2),isCustomizedSettings=_useState4[0],setCustomizedSettings=_useState4[1];var handleEditAccount=function handleEditAccount(e){handleLoading(true);e.preventDefault();form.validateFields(function(err,values){if(!err){var data=Actions_processData(values,account);editAccount(data,accountId).then(function(){handleLoading(false);closeModal(false);form.resetFields();});}});};var handleProxySettingsChange=function handleProxySettingsChange(value){return value==='customized_proxy'?setCustomizedSettings(true):setCustomizedSettings(false);};var getFieldDecorator=form.getFieldDecorator;return Object(core_browser_esm["c" /* jsx */])(form_default.a,{id:"editSourceAccountForm-".concat(accountId),onSubmit:handleEditAccount,layout:"vertical"},Object(core_browser_esm["c" /* jsx */])(form_default.a.Item,Object(esm_extends["a" /* default */])({label:"Edit Option"},formItemLayout),getFieldDecorator('editOption',{rules:[{required:true,message:'Please select your edit option!'}]})(Object(core_browser_esm["c" /* jsx */])(select_default.a,{placeholder:"Select the option you want to edit",onChange:function onChange(value){return setEditOption(value);}},Object(core_browser_esm["c" /* jsx */])(Option,{value:"proxy"},"Proxy Settings"),Object(core_browser_esm["c" /* jsx */])(Option,{value:"card"},"Card details"),Object(core_browser_esm["c" /* jsx */])(Option,{value:"password"},"Password"),Object(core_browser_esm["c" /* jsx */])(Option,{value:"otpSecret"},"OTP Secret Key")))),editOption==='password'&&Object(core_browser_esm["c" /* jsx */])(form_default.a.Item,Object(esm_extends["a" /* default */])({label:"New Password"},formItemLayout),getFieldDecorator('password',{rules:[{required:true,message:'Please input your new password!'}]})(Object(core_browser_esm["c" /* jsx */])(input_default.a,{type:"password"}))),editOption==='otpSecret'&&Object(core_browser_esm["c" /* jsx */])(form_default.a.Item,Object(esm_extends["a" /* default */])({label:"New OTP Secret"},formItemLayout),getFieldDecorator('otpSecret',{rules:[{required:true,message:'Please input your new OTP Secret!'}]})(Object(core_browser_esm["c" /* jsx */])(input_default.a,{type:"password"}))),editOption==='card'&&Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(form_default.a.Item,Object(esm_extends["a" /* default */])({label:"Card Holder Name"},formItemLayout),getFieldDecorator('creditCardName',{rules:[{required:true,message:'Please input your credit card name!'}]})(Object(core_browser_esm["c" /* jsx */])(input_default.a,null))),Object(core_browser_esm["c" /* jsx */])(form_default.a.Item,Object(esm_extends["a" /* default */])({label:"Credit Card Number"},formItemLayout),getFieldDecorator('cardNumber',{rules:[{required:true,message:'Please input your credit card number!'}]})(Object(core_browser_esm["c" /* jsx */])(input_default.a,null))),Object(core_browser_esm["c" /* jsx */])(form_default.a.Item,Object(esm_extends["a" /* default */])({label:"Expiration Date"},formItemLayout),getFieldDecorator('expirationDate',{rules:[{required:true,message:'Please input your credit card expiration date!'}]})(Object(core_browser_esm["c" /* jsx */])(MonthPicker,null))),Object(core_browser_esm["c" /* jsx */])(form_default.a.Item,Object(esm_extends["a" /* default */])({label:"CVC"},formItemLayout),getFieldDecorator('creditCardCVV',{rules:[{required:true,message:'Please input your CVC!'}]})(Object(core_browser_esm["c" /* jsx */])(input_number_default.a,{placeholder:"CVC",max:9999})))),editOption==='proxy'&&Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(form_default.a.Item,Object(esm_extends["a" /* default */])({label:Object(core_browser_esm["c" /* jsx */])("span",null,"Proxy Settings\xA0",Object(core_browser_esm["c" /* jsx */])(tooltip_default.a,{title:"Proxy settings for your source account. You can either use the default settings offered by Triplemars, or configure your own proxy settings."},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{size:14,type:"info"})))},formItemLayout),getFieldDecorator('proxySettingsOption',{rules:[{required:true,message:'Please select your proxy settings!'}],initialValue:'triplemars_proxy'})(Object(core_browser_esm["c" /* jsx */])(select_default.a,{onChange:handleProxySettingsChange},Object(core_browser_esm["c" /* jsx */])(Option,{value:"triplemars_proxy"},"Triplemars Configuration"),Object(core_browser_esm["c" /* jsx */])(Option,{value:"customized_proxy"},"Customized Configuration")))),isCustomizedSettings&&Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(form_default.a.Item,Object(esm_extends["a" /* default */])({label:"Proxy Type"},formItemLayout),getFieldDecorator('type',{rules:[{required:true,message:'Please input the proxy type!'}]})(Object(core_browser_esm["c" /* jsx */])(select_default.a,null,Object(core_browser_esm["c" /* jsx */])(Option,{value:"http"},"HTTP"),Object(core_browser_esm["c" /* jsx */])(Option,{value:"https"},"HTTPS")))),Object(core_browser_esm["c" /* jsx */])(form_default.a.Item,Object(esm_extends["a" /* default */])({label:"Proxy IP"},formItemLayout),getFieldDecorator('ip',{rules:[{required:true,message:'Please input the proxy type!'}]})(Object(core_browser_esm["c" /* jsx */])(input_default.a,null))),Object(core_browser_esm["c" /* jsx */])(form_default.a.Item,Object(esm_extends["a" /* default */])({label:"Proxy Port"},formItemLayout),getFieldDecorator('port',{rules:[{required:true,message:'Please input the proxy port!'}]})(Object(core_browser_esm["c" /* jsx */])(input_default.a,null))),Object(core_browser_esm["c" /* jsx */])(form_default.a.Item,Object(esm_extends["a" /* default */])({label:"Proxy User"},formItemLayout),getFieldDecorator('user',{rules:[{required:true,message:'Please input the proxy user!'}]})(Object(core_browser_esm["c" /* jsx */])(input_default.a,null))),Object(core_browser_esm["c" /* jsx */])(form_default.a.Item,Object(esm_extends["a" /* default */])({label:"Proxy Password"},formItemLayout),getFieldDecorator('proxyPassword',{rules:[{required:true,message:'Please input the proxy password!'}]})(Object(core_browser_esm["c" /* jsx */])(input_default.a,{type:"password"}))))));};var Actions_Actions=(_dec=Object(index_module["b" /* inject */])('settingsStore'),_dec2=form_default.a.create(),_dec(_class=Object(index_module["c" /* observer */])(_class=_dec2(_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(Actions,_Component);function Actions(){var _this;Object(classCallCheck["a" /* default */])(this,Actions);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(Actions).call(this));_this.handleEditModalOpen=function(val){return _this.setState({isEditModalMopen:val});};_this.handleDeleteModalOpen=function(val){return _this.setState({isDeleteModalOpen:val});};_this.handleLoading=function(val){return _this.setState({loadingBtn:val});};_this.deleteAccountModal=function(name,id,deleteSourceAccount){return modal_default.a.confirm({title:'You are about to delete your account!',content:"Are you sure you want to delete the account ".concat(name),okText:'Delete Account',cancelText:'Cancel',onOk:function onOk(){return deleteSourceAccount(id);},onCancel:function onCancel(){}});};_this.state={// eslint-disable-next-line react/no-unused-state
isEditModalOpen:false,isDeleteModalOpen:false,loadingBtn:false};return _this;}Object(createClass["a" /* default */])(Actions,[{key:"render",value:function render(){var _this2=this;var _this$state=this.state,isEditModalMopen=_this$state.isEditModalMopen,isDeleteModalOpen=_this$state.isDeleteModalOpen,loadingBtn=_this$state.loadingBtn;var _this$props=this.props,_this$props$settingsS=_this$props.settingsStore.connectionManagement.connectSource,editSourceAccount=_this$props$settingsS.editSourceAccount,deleteSourceAccount=_this$props$settingsS.deleteSourceAccount,_this$props$account=_this$props.account,name=_this$props$account.name,id=_this$props$account.id,account=_this$props.account;var WrappedEditAccountForm=form_default.a.create({id:'editSourceAccountForm'})(Actions_EditAccountForm);return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(popover_default.a,{content:"Edit Account"},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{size:18,type:"pencil",color:"#d48806",onClick:function onClick(){return _this2.handleEditModalOpen(true);},style:{marginRight:'10px'}})),Object(core_browser_esm["c" /* jsx */])(popover_default.a,{content:"Delete Account",onClick:function onClick(){return _this2.deleteAccountModal(name,id,deleteSourceAccount);}},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{size:18,type:"delete",color:"#ff4d4f"})),Object(core_browser_esm["c" /* jsx */])(modal_default.a,{title:"Edit Account ".concat(name!==null&&name!==void 0?name:''),visible:isEditModalMopen,onCancel:function onCancel(){return _this2.handleEditModalOpen(false);},okText:"Edit Account",okButtonProps:{form:"editSourceAccountForm-".concat(id),key:'submit',htmlType:'submit',loading:loadingBtn}},Object(core_browser_esm["c" /* jsx */])(WrappedEditAccountForm,{editAccount:editSourceAccount,closeModal:this.handleEditModalOpen,accountId:id,account:account,handleLoading:this.handleLoading})));}}]);return Actions;}(react["Component"]))||_class)||_class)||_class);/* harmony default export */ var SourceAccounts_Actions = (Actions_Actions);
// CONCATENATED MODULE: ./src/js/components/SourceAccounts/columns.js
// import ConnectButton from './ConnectButton';
var columns_renderLogo=function renderLogo(_ref){var marketplaceTypeId=_ref.marketplaceTypeId;var marketplace=marketplaceTypeId==='AZ'?'amazon':'walmart';return Object(core_browser_esm["c" /* jsx */])(APIConnect_styled["l" /* LogoContainer */],{style:{width:'60px'},marketPlaceName:marketplace});};/* harmony default export */ var columns = ([// The connect button is temporarily disabled
// {
//   dataIndex: 'currency',
//   title: 'Connect',
//   render: (_, record) => <ConnectButton account={record} />,
// },
{dataIndex:'name',title:'Name'},{dataIndex:'marketplaceId',title:'Marketplace',render:function render(_,record){return columns_renderLogo(record);}},{dataIndex:'dateCreated',title:'Created',render:function render(dateCreated){return moment(dateCreated).format('MMMM D, YYYY');}},{dataIndex:'lastDigitsCard',title:'Last 4 digits',render:function render(lastDigitsCard){return lastDigitsCard||'N/A';}},{dataIndex:'actions',title:'Actions',render:function render(_,record){return Object(core_browser_esm["c" /* jsx */])(SourceAccounts_Actions,{account:record});}}]);
// EXTERNAL MODULE: ./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js + 3 modules
var styled_base_browser_esm = __webpack_require__(6);

// CONCATENATED MODULE: ./src/js/components/SourceAccounts/EmptyAccount.js
// import ConnectAccountModal from './ConnectAccountModal';
var Container=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1pgtq2u0",label:"Container"})( true?{name:"ib2esd",styles:"display:block;position:relatiive;padding:3rem;text-align:center;width:100%;border-radius:0.5rem;border:2px dashed #d1d5d8;"}:undefined);var Title=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1pgtq2u1",label:"Title"})( true?{name:"6ovqv9",styles:"margin-top:0.5rem;color:#111827;font-size:1.125rem;line-height:1.75rem;font-weight:500;"}:undefined);var Description=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1pgtq2u2",label:"Description"})( true?{name:"15rzc8o",styles:"marigin-top:0.25rem;color:#6b7280;font-size:0.875rem;line-height:1.25rem;"}:undefined);var ButtonContainer=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1pgtq2u3",label:"ButtonContainer"})( true?{name:"1ogakd7",styles:"margin-top:0.75rem;"}:undefined);var EmptyAccount_EmptyAccount=function EmptyAccount(){return Object(core_browser_esm["c" /* jsx */])(Container,null,Object(core_browser_esm["c" /* jsx */])("svg",{xmlns:"http://www.w3.org/2000/svg",style:{width:'3rem',height:'3rem',color:'#9CA3AF'},fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2},Object(core_browser_esm["c" /* jsx */])("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M18 9v3m0 0v3m0-3h3m-3 0h-3m-2-5a4 4 0 11-8 0 4 4 0 018 0zM3 20a6 6 0 0112 0v1H3v-1z"})),Object(core_browser_esm["c" /* jsx */])(Title,null,"Connect Source Accounts"),Object(core_browser_esm["c" /* jsx */])(Description,null,"You haven't connected any sources to your Triplemars account. "),Object(core_browser_esm["c" /* jsx */])(ButtonContainer,null));};
// CONCATENATED MODULE: ./src/js/components/SourceAccounts/SATable.js
var SATable=Object(index_module["b" /* inject */])('settingsStore')(Object(index_module["c" /* observer */])(function(_ref){var _ref$settingsStore$co=_ref.settingsStore.connectionManagement.connectSource,accounts=_ref$settingsStore$co.accounts,accountsLoaded=_ref$settingsStore$co.accountsLoaded;return Object(core_browser_esm["c" /* jsx */])("div",{style:{boxShadow:'rgba(0, 0, 0, 0.16) 0px 1px 4px',backgroundColor:'#fff'}},!accountsLoaded&&Object(core_browser_esm["c" /* jsx */])(spinner["a" /* default */],null),accountsLoaded&&!accounts.length>0&&Object(core_browser_esm["c" /* jsx */])(EmptyAccount_EmptyAccount,null),accountsLoaded&&accounts.length>0&&Object(core_browser_esm["c" /* jsx */])(table_default.a,{columns:columns,dataSource:accounts,rowKey:function rowKey(_ref2){var id=_ref2.id;return id;},pagination:{showTotal:function showTotal(total,range){return"".concat(range[0],"-").concat(range[1]," of ").concat(total," accounts");},size:'small',pageSize:15}}));}));/* harmony default export */ var SourceAccounts_SATable = (SATable);
// CONCATENATED MODULE: ./src/js/pages/SourceAccounts/SourceAccounts.js
var SourceAccounts_ref= true?{name:"zy1xof-RegionUnavailable",styles:"text-align:center;label:RegionUnavailable;"}:undefined;var _ref2= true?{name:"hwy8p9-RegionUnavailable",styles:"position:absolute;bottom:0;left:50%;transform:translateX(-50%);label:RegionUnavailable;"}:undefined;var SourceAccounts_RegionUnavailable=function RegionUnavailable(_ref3){var region=_ref3.region;return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])("h1",{css:SourceAccounts_ref},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"sourceAccounts.ukCurrencyMessage",values:{region:region==='GBP'?'UK':'Canada'}})),Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{css:_ref2,type:"404-discoveries",width:680,height:500}));};var SourceAccounts=Object(index_module["b" /* inject */])('settingsStore')(Object(index_module["c" /* observer */])(function(_ref4){var _ref4$settingsStore=_ref4.settingsStore,defaultCurrencyId=_ref4$settingsStore.userProfile.defaultCurrencyId,currentPlan=_ref4$settingsStore.subscription.currentPlan;if(defaultCurrencyId!=='USD'){return Object(core_browser_esm["c" /* jsx */])(SourceAccounts_RegionUnavailable,{region:defaultCurrencyId});}return Object(core_browser_esm["c" /* jsx */])("div",{hidden:!currentPlan},Object(core_browser_esm["c" /* jsx */])(react_document_title_default.a,{title:"".concat(constants["d" /* title */]," | Source Accounts")},Object(core_browser_esm["c" /* jsx */])(styled["j" /* PageContainer */],null,Object(core_browser_esm["c" /* jsx */])(HeaderBar["a" /* default */],{headingId:"common.sourceAccounts"}),Object(core_browser_esm["c" /* jsx */])(SourceAccounts_SATable,null))));}));/* harmony default export */ var SourceAccounts_SourceAccounts = (SourceAccounts);
// CONCATENATED MODULE: ./src/js/pages/SourceAccounts/index.js

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ color; });
__webpack_require__.d(__webpack_exports__, "f", function() { return /* reexport */ rgb; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* reexport */ hsl; });
__webpack_require__.d(__webpack_exports__, "e", function() { return /* reexport */ lab; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* reexport */ hcl; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* reexport */ cubehelix; });

// CONCATENATED MODULE: ./node_modules/d3-color/src/define.js
/* harmony default export */ var define = (function(constructor, factory, prototype) {
  constructor.prototype = factory.prototype = prototype;
  prototype.constructor = constructor;
});

function extend(parent, definition) {
  var prototype = Object.create(parent.prototype);
  for (var key in definition) prototype[key] = definition[key];
  return prototype;
}

// CONCATENATED MODULE: ./node_modules/d3-color/src/color.js


function Color() {}

var darker = 0.7;
var brighter = 1 / darker;

var reI = "\\s*([+-]?\\d+)\\s*",
    reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",
    reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
    reHex3 = /^#([0-9a-f]{3})$/,
    reHex6 = /^#([0-9a-f]{6})$/,
    reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"),
    reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"),
    reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"),
    reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"),
    reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"),
    reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$");

var named = {
  aliceblue: 0xf0f8ff,
  antiquewhite: 0xfaebd7,
  aqua: 0x00ffff,
  aquamarine: 0x7fffd4,
  azure: 0xf0ffff,
  beige: 0xf5f5dc,
  bisque: 0xffe4c4,
  black: 0x000000,
  blanchedalmond: 0xffebcd,
  blue: 0x0000ff,
  blueviolet: 0x8a2be2,
  brown: 0xa52a2a,
  burlywood: 0xdeb887,
  cadetblue: 0x5f9ea0,
  chartreuse: 0x7fff00,
  chocolate: 0xd2691e,
  coral: 0xff7f50,
  cornflowerblue: 0x6495ed,
  cornsilk: 0xfff8dc,
  crimson: 0xdc143c,
  cyan: 0x00ffff,
  darkblue: 0x00008b,
  darkcyan: 0x008b8b,
  darkgoldenrod: 0xb8860b,
  darkgray: 0xa9a9a9,
  darkgreen: 0x006400,
  darkgrey: 0xa9a9a9,
  darkkhaki: 0xbdb76b,
  darkmagenta: 0x8b008b,
  darkolivegreen: 0x556b2f,
  darkorange: 0xff8c00,
  darkorchid: 0x9932cc,
  darkred: 0x8b0000,
  darksalmon: 0xe9967a,
  darkseagreen: 0x8fbc8f,
  darkslateblue: 0x483d8b,
  darkslategray: 0x2f4f4f,
  darkslategrey: 0x2f4f4f,
  darkturquoise: 0x00ced1,
  darkviolet: 0x9400d3,
  deeppink: 0xff1493,
  deepskyblue: 0x00bfff,
  dimgray: 0x696969,
  dimgrey: 0x696969,
  dodgerblue: 0x1e90ff,
  firebrick: 0xb22222,
  floralwhite: 0xfffaf0,
  forestgreen: 0x228b22,
  fuchsia: 0xff00ff,
  gainsboro: 0xdcdcdc,
  ghostwhite: 0xf8f8ff,
  gold: 0xffd700,
  goldenrod: 0xdaa520,
  gray: 0x808080,
  green: 0x008000,
  greenyellow: 0xadff2f,
  grey: 0x808080,
  honeydew: 0xf0fff0,
  hotpink: 0xff69b4,
  indianred: 0xcd5c5c,
  indigo: 0x4b0082,
  ivory: 0xfffff0,
  khaki: 0xf0e68c,
  lavender: 0xe6e6fa,
  lavenderblush: 0xfff0f5,
  lawngreen: 0x7cfc00,
  lemonchiffon: 0xfffacd,
  lightblue: 0xadd8e6,
  lightcoral: 0xf08080,
  lightcyan: 0xe0ffff,
  lightgoldenrodyellow: 0xfafad2,
  lightgray: 0xd3d3d3,
  lightgreen: 0x90ee90,
  lightgrey: 0xd3d3d3,
  lightpink: 0xffb6c1,
  lightsalmon: 0xffa07a,
  lightseagreen: 0x20b2aa,
  lightskyblue: 0x87cefa,
  lightslategray: 0x778899,
  lightslategrey: 0x778899,
  lightsteelblue: 0xb0c4de,
  lightyellow: 0xffffe0,
  lime: 0x00ff00,
  limegreen: 0x32cd32,
  linen: 0xfaf0e6,
  magenta: 0xff00ff,
  maroon: 0x800000,
  mediumaquamarine: 0x66cdaa,
  mediumblue: 0x0000cd,
  mediumorchid: 0xba55d3,
  mediumpurple: 0x9370db,
  mediumseagreen: 0x3cb371,
  mediumslateblue: 0x7b68ee,
  mediumspringgreen: 0x00fa9a,
  mediumturquoise: 0x48d1cc,
  mediumvioletred: 0xc71585,
  midnightblue: 0x191970,
  mintcream: 0xf5fffa,
  mistyrose: 0xffe4e1,
  moccasin: 0xffe4b5,
  navajowhite: 0xffdead,
  navy: 0x000080,
  oldlace: 0xfdf5e6,
  olive: 0x808000,
  olivedrab: 0x6b8e23,
  orange: 0xffa500,
  orangered: 0xff4500,
  orchid: 0xda70d6,
  palegoldenrod: 0xeee8aa,
  palegreen: 0x98fb98,
  paleturquoise: 0xafeeee,
  palevioletred: 0xdb7093,
  papayawhip: 0xffefd5,
  peachpuff: 0xffdab9,
  peru: 0xcd853f,
  pink: 0xffc0cb,
  plum: 0xdda0dd,
  powderblue: 0xb0e0e6,
  purple: 0x800080,
  rebeccapurple: 0x663399,
  red: 0xff0000,
  rosybrown: 0xbc8f8f,
  royalblue: 0x4169e1,
  saddlebrown: 0x8b4513,
  salmon: 0xfa8072,
  sandybrown: 0xf4a460,
  seagreen: 0x2e8b57,
  seashell: 0xfff5ee,
  sienna: 0xa0522d,
  silver: 0xc0c0c0,
  skyblue: 0x87ceeb,
  slateblue: 0x6a5acd,
  slategray: 0x708090,
  slategrey: 0x708090,
  snow: 0xfffafa,
  springgreen: 0x00ff7f,
  steelblue: 0x4682b4,
  tan: 0xd2b48c,
  teal: 0x008080,
  thistle: 0xd8bfd8,
  tomato: 0xff6347,
  turquoise: 0x40e0d0,
  violet: 0xee82ee,
  wheat: 0xf5deb3,
  white: 0xffffff,
  whitesmoke: 0xf5f5f5,
  yellow: 0xffff00,
  yellowgreen: 0x9acd32
};

define(Color, color, {
  displayable: function() {
    return this.rgb().displayable();
  },
  toString: function() {
    return this.rgb() + "";
  }
});

function color(format) {
  var m;
  format = (format + "").trim().toLowerCase();
  return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb((m >> 8 & 0xf) | (m >> 4 & 0x0f0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1)) // #f00
      : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000
      : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)
      : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)
      : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)
      : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)
      : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)
      : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)
      : named.hasOwnProperty(format) ? rgbn(named[format])
      : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0)
      : null;
}

function rgbn(n) {
  return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);
}

function rgba(r, g, b, a) {
  if (a <= 0) r = g = b = NaN;
  return new Rgb(r, g, b, a);
}

function rgbConvert(o) {
  if (!(o instanceof Color)) o = color(o);
  if (!o) return new Rgb;
  o = o.rgb();
  return new Rgb(o.r, o.g, o.b, o.opacity);
}

function rgb(r, g, b, opacity) {
  return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);
}

function Rgb(r, g, b, opacity) {
  this.r = +r;
  this.g = +g;
  this.b = +b;
  this.opacity = +opacity;
}

define(Rgb, rgb, extend(Color, {
  brighter: function(k) {
    k = k == null ? brighter : Math.pow(brighter, k);
    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
  },
  darker: function(k) {
    k = k == null ? darker : Math.pow(darker, k);
    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
  },
  rgb: function() {
    return this;
  },
  displayable: function() {
    return (0 <= this.r && this.r <= 255)
        && (0 <= this.g && this.g <= 255)
        && (0 <= this.b && this.b <= 255)
        && (0 <= this.opacity && this.opacity <= 1);
  },
  toString: function() {
    var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));
    return (a === 1 ? "rgb(" : "rgba(")
        + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", "
        + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", "
        + Math.max(0, Math.min(255, Math.round(this.b) || 0))
        + (a === 1 ? ")" : ", " + a + ")");
  }
}));

function hsla(h, s, l, a) {
  if (a <= 0) h = s = l = NaN;
  else if (l <= 0 || l >= 1) h = s = NaN;
  else if (s <= 0) h = NaN;
  return new Hsl(h, s, l, a);
}

function hslConvert(o) {
  if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);
  if (!(o instanceof Color)) o = color(o);
  if (!o) return new Hsl;
  if (o instanceof Hsl) return o;
  o = o.rgb();
  var r = o.r / 255,
      g = o.g / 255,
      b = o.b / 255,
      min = Math.min(r, g, b),
      max = Math.max(r, g, b),
      h = NaN,
      s = max - min,
      l = (max + min) / 2;
  if (s) {
    if (r === max) h = (g - b) / s + (g < b) * 6;
    else if (g === max) h = (b - r) / s + 2;
    else h = (r - g) / s + 4;
    s /= l < 0.5 ? max + min : 2 - max - min;
    h *= 60;
  } else {
    s = l > 0 && l < 1 ? 0 : h;
  }
  return new Hsl(h, s, l, o.opacity);
}

function hsl(h, s, l, opacity) {
  return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);
}

function Hsl(h, s, l, opacity) {
  this.h = +h;
  this.s = +s;
  this.l = +l;
  this.opacity = +opacity;
}

define(Hsl, hsl, extend(Color, {
  brighter: function(k) {
    k = k == null ? brighter : Math.pow(brighter, k);
    return new Hsl(this.h, this.s, this.l * k, this.opacity);
  },
  darker: function(k) {
    k = k == null ? darker : Math.pow(darker, k);
    return new Hsl(this.h, this.s, this.l * k, this.opacity);
  },
  rgb: function() {
    var h = this.h % 360 + (this.h < 0) * 360,
        s = isNaN(h) || isNaN(this.s) ? 0 : this.s,
        l = this.l,
        m2 = l + (l < 0.5 ? l : 1 - l) * s,
        m1 = 2 * l - m2;
    return new Rgb(
      hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),
      hsl2rgb(h, m1, m2),
      hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),
      this.opacity
    );
  },
  displayable: function() {
    return (0 <= this.s && this.s <= 1 || isNaN(this.s))
        && (0 <= this.l && this.l <= 1)
        && (0 <= this.opacity && this.opacity <= 1);
  }
}));

/* From FvD 13.37, CSS Color Module Level 3 */
function hsl2rgb(h, m1, m2) {
  return (h < 60 ? m1 + (m2 - m1) * h / 60
      : h < 180 ? m2
      : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60
      : m1) * 255;
}

// CONCATENATED MODULE: ./node_modules/d3-color/src/math.js
var deg2rad = Math.PI / 180;
var rad2deg = 180 / Math.PI;

// CONCATENATED MODULE: ./node_modules/d3-color/src/lab.js




var Kn = 18,
    Xn = 0.950470, // D65 standard referent
    Yn = 1,
    Zn = 1.088830,
    t0 = 4 / 29,
    t1 = 6 / 29,
    t2 = 3 * t1 * t1,
    t3 = t1 * t1 * t1;

function labConvert(o) {
  if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);
  if (o instanceof Hcl) {
    var h = o.h * deg2rad;
    return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);
  }
  if (!(o instanceof Rgb)) o = rgbConvert(o);
  var b = rgb2xyz(o.r),
      a = rgb2xyz(o.g),
      l = rgb2xyz(o.b),
      x = xyz2lab((0.4124564 * b + 0.3575761 * a + 0.1804375 * l) / Xn),
      y = xyz2lab((0.2126729 * b + 0.7151522 * a + 0.0721750 * l) / Yn),
      z = xyz2lab((0.0193339 * b + 0.1191920 * a + 0.9503041 * l) / Zn);
  return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);
}

function lab(l, a, b, opacity) {
  return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);
}

function Lab(l, a, b, opacity) {
  this.l = +l;
  this.a = +a;
  this.b = +b;
  this.opacity = +opacity;
}

define(Lab, lab, extend(Color, {
  brighter: function(k) {
    return new Lab(this.l + Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);
  },
  darker: function(k) {
    return new Lab(this.l - Kn * (k == null ? 1 : k), this.a, this.b, this.opacity);
  },
  rgb: function() {
    var y = (this.l + 16) / 116,
        x = isNaN(this.a) ? y : y + this.a / 500,
        z = isNaN(this.b) ? y : y - this.b / 200;
    y = Yn * lab2xyz(y);
    x = Xn * lab2xyz(x);
    z = Zn * lab2xyz(z);
    return new Rgb(
      xyz2rgb( 3.2404542 * x - 1.5371385 * y - 0.4985314 * z), // D65 -> sRGB
      xyz2rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z),
      xyz2rgb( 0.0556434 * x - 0.2040259 * y + 1.0572252 * z),
      this.opacity
    );
  }
}));

function xyz2lab(t) {
  return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;
}

function lab2xyz(t) {
  return t > t1 ? t * t * t : t2 * (t - t0);
}

function xyz2rgb(x) {
  return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);
}

function rgb2xyz(x) {
  return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);
}

function hclConvert(o) {
  if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);
  if (!(o instanceof Lab)) o = labConvert(o);
  var h = Math.atan2(o.b, o.a) * rad2deg;
  return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);
}

function hcl(h, c, l, opacity) {
  return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
}

function Hcl(h, c, l, opacity) {
  this.h = +h;
  this.c = +c;
  this.l = +l;
  this.opacity = +opacity;
}

define(Hcl, hcl, extend(Color, {
  brighter: function(k) {
    return new Hcl(this.h, this.c, this.l + Kn * (k == null ? 1 : k), this.opacity);
  },
  darker: function(k) {
    return new Hcl(this.h, this.c, this.l - Kn * (k == null ? 1 : k), this.opacity);
  },
  rgb: function() {
    return labConvert(this).rgb();
  }
}));

// CONCATENATED MODULE: ./node_modules/d3-color/src/cubehelix.js




var A = -0.14861,
    B = +1.78277,
    C = -0.29227,
    D = -0.90649,
    E = +1.97294,
    ED = E * D,
    EB = E * B,
    BC_DA = B * C - D * A;

function cubehelixConvert(o) {
  if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);
  if (!(o instanceof Rgb)) o = rgbConvert(o);
  var r = o.r / 255,
      g = o.g / 255,
      b = o.b / 255,
      l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),
      bl = b - l,
      k = (E * (g - l) - C * bl) / D,
      s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1
      h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;
  return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);
}

function cubehelix(h, s, l, opacity) {
  return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);
}

function Cubehelix(h, s, l, opacity) {
  this.h = +h;
  this.s = +s;
  this.l = +l;
  this.opacity = +opacity;
}

define(Cubehelix, cubehelix, extend(Color, {
  brighter: function(k) {
    k = k == null ? brighter : Math.pow(brighter, k);
    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
  },
  darker: function(k) {
    k = k == null ? darker : Math.pow(darker, k);
    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
  },
  rgb: function() {
    var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,
        l = +this.l,
        a = isNaN(this.s) ? 0 : this.s * l * (1 - l),
        cosh = Math.cos(h),
        sinh = Math.sin(h);
    return new Rgb(
      255 * (l + a * (A * cosh + B * sinh)),
      255 * (l + a * (C * cosh + D * sinh)),
      255 * (l + a * (E * cosh)),
      this.opacity
    );
  }
}));

// CONCATENATED MODULE: ./node_modules/d3-color/index.js



// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "timeFormatDefaultLocale", function() { return /* reexport */ defaultLocale; });
__webpack_require__.d(__webpack_exports__, "timeFormat", function() { return /* reexport */ timeFormat; });
__webpack_require__.d(__webpack_exports__, "timeParse", function() { return /* reexport */ timeParse; });
__webpack_require__.d(__webpack_exports__, "utcFormat", function() { return /* reexport */ utcFormat; });
__webpack_require__.d(__webpack_exports__, "utcParse", function() { return /* reexport */ utcParse; });
__webpack_require__.d(__webpack_exports__, "timeFormatLocale", function() { return /* reexport */ formatLocale; });
__webpack_require__.d(__webpack_exports__, "isoFormat", function() { return /* reexport */ isoFormat; });
__webpack_require__.d(__webpack_exports__, "isoParse", function() { return /* reexport */ isoParse; });

// EXTERNAL MODULE: ./node_modules/d3-time/index.js + 16 modules
var d3_time = __webpack_require__(54);

// CONCATENATED MODULE: ./node_modules/d3-time-format/src/locale.js


function localDate(d) {
  if (0 <= d.y && d.y < 100) {
    var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
    date.setFullYear(d.y);
    return date;
  }
  return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);
}

function utcDate(d) {
  if (0 <= d.y && d.y < 100) {
    var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));
    date.setUTCFullYear(d.y);
    return date;
  }
  return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));
}

function newYear(y) {
  return {y: y, m: 0, d: 1, H: 0, M: 0, S: 0, L: 0};
}

function formatLocale(locale) {
  var locale_dateTime = locale.dateTime,
      locale_date = locale.date,
      locale_time = locale.time,
      locale_periods = locale.periods,
      locale_weekdays = locale.days,
      locale_shortWeekdays = locale.shortDays,
      locale_months = locale.months,
      locale_shortMonths = locale.shortMonths;

  var periodRe = formatRe(locale_periods),
      periodLookup = formatLookup(locale_periods),
      weekdayRe = formatRe(locale_weekdays),
      weekdayLookup = formatLookup(locale_weekdays),
      shortWeekdayRe = formatRe(locale_shortWeekdays),
      shortWeekdayLookup = formatLookup(locale_shortWeekdays),
      monthRe = formatRe(locale_months),
      monthLookup = formatLookup(locale_months),
      shortMonthRe = formatRe(locale_shortMonths),
      shortMonthLookup = formatLookup(locale_shortMonths);

  var formats = {
    "a": formatShortWeekday,
    "A": formatWeekday,
    "b": formatShortMonth,
    "B": formatMonth,
    "c": null,
    "d": formatDayOfMonth,
    "e": formatDayOfMonth,
    "f": formatMicroseconds,
    "H": formatHour24,
    "I": formatHour12,
    "j": formatDayOfYear,
    "L": formatMilliseconds,
    "m": formatMonthNumber,
    "M": formatMinutes,
    "p": formatPeriod,
    "Q": formatUnixTimestamp,
    "s": formatUnixTimestampSeconds,
    "S": formatSeconds,
    "u": formatWeekdayNumberMonday,
    "U": formatWeekNumberSunday,
    "V": formatWeekNumberISO,
    "w": formatWeekdayNumberSunday,
    "W": formatWeekNumberMonday,
    "x": null,
    "X": null,
    "y": formatYear,
    "Y": formatFullYear,
    "Z": formatZone,
    "%": formatLiteralPercent
  };

  var utcFormats = {
    "a": formatUTCShortWeekday,
    "A": formatUTCWeekday,
    "b": formatUTCShortMonth,
    "B": formatUTCMonth,
    "c": null,
    "d": formatUTCDayOfMonth,
    "e": formatUTCDayOfMonth,
    "f": formatUTCMicroseconds,
    "H": formatUTCHour24,
    "I": formatUTCHour12,
    "j": formatUTCDayOfYear,
    "L": formatUTCMilliseconds,
    "m": formatUTCMonthNumber,
    "M": formatUTCMinutes,
    "p": formatUTCPeriod,
    "Q": formatUnixTimestamp,
    "s": formatUnixTimestampSeconds,
    "S": formatUTCSeconds,
    "u": formatUTCWeekdayNumberMonday,
    "U": formatUTCWeekNumberSunday,
    "V": formatUTCWeekNumberISO,
    "w": formatUTCWeekdayNumberSunday,
    "W": formatUTCWeekNumberMonday,
    "x": null,
    "X": null,
    "y": formatUTCYear,
    "Y": formatUTCFullYear,
    "Z": formatUTCZone,
    "%": formatLiteralPercent
  };

  var parses = {
    "a": parseShortWeekday,
    "A": parseWeekday,
    "b": parseShortMonth,
    "B": parseMonth,
    "c": parseLocaleDateTime,
    "d": parseDayOfMonth,
    "e": parseDayOfMonth,
    "f": parseMicroseconds,
    "H": parseHour24,
    "I": parseHour24,
    "j": parseDayOfYear,
    "L": parseMilliseconds,
    "m": parseMonthNumber,
    "M": parseMinutes,
    "p": parsePeriod,
    "Q": parseUnixTimestamp,
    "s": parseUnixTimestampSeconds,
    "S": parseSeconds,
    "u": parseWeekdayNumberMonday,
    "U": parseWeekNumberSunday,
    "V": parseWeekNumberISO,
    "w": parseWeekdayNumberSunday,
    "W": parseWeekNumberMonday,
    "x": parseLocaleDate,
    "X": parseLocaleTime,
    "y": parseYear,
    "Y": parseFullYear,
    "Z": parseZone,
    "%": parseLiteralPercent
  };

  // These recursive directive definitions must be deferred.
  formats.x = newFormat(locale_date, formats);
  formats.X = newFormat(locale_time, formats);
  formats.c = newFormat(locale_dateTime, formats);
  utcFormats.x = newFormat(locale_date, utcFormats);
  utcFormats.X = newFormat(locale_time, utcFormats);
  utcFormats.c = newFormat(locale_dateTime, utcFormats);

  function newFormat(specifier, formats) {
    return function(date) {
      var string = [],
          i = -1,
          j = 0,
          n = specifier.length,
          c,
          pad,
          format;

      if (!(date instanceof Date)) date = new Date(+date);

      while (++i < n) {
        if (specifier.charCodeAt(i) === 37) {
          string.push(specifier.slice(j, i));
          if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);
          else pad = c === "e" ? " " : "0";
          if (format = formats[c]) c = format(date, pad);
          string.push(c);
          j = i + 1;
        }
      }

      string.push(specifier.slice(j, i));
      return string.join("");
    };
  }

  function newParse(specifier, newDate) {
    return function(string) {
      var d = newYear(1900),
          i = parseSpecifier(d, specifier, string += "", 0),
          week, day;
      if (i != string.length) return null;

      // If a UNIX timestamp is specified, return it.
      if ("Q" in d) return new Date(d.Q);

      // The am-pm flag is 0 for AM, and 1 for PM.
      if ("p" in d) d.H = d.H % 12 + d.p * 12;

      // Convert day-of-week and week-of-year to day-of-year.
      if ("V" in d) {
        if (d.V < 1 || d.V > 53) return null;
        if (!("w" in d)) d.w = 1;
        if ("Z" in d) {
          week = utcDate(newYear(d.y)), day = week.getUTCDay();
          week = day > 4 || day === 0 ? d3_time["P" /* utcMonday */].ceil(week) : Object(d3_time["P" /* utcMonday */])(week);
          week = d3_time["F" /* utcDay */].offset(week, (d.V - 1) * 7);
          d.y = week.getUTCFullYear();
          d.m = week.getUTCMonth();
          d.d = week.getUTCDate() + (d.w + 6) % 7;
        } else {
          week = newDate(newYear(d.y)), day = week.getDay();
          week = day > 4 || day === 0 ? d3_time["l" /* timeMonday */].ceil(week) : Object(d3_time["l" /* timeMonday */])(week);
          week = d3_time["a" /* timeDay */].offset(week, (d.V - 1) * 7);
          d.y = week.getFullYear();
          d.m = week.getMonth();
          d.d = week.getDate() + (d.w + 6) % 7;
        }
      } else if ("W" in d || "U" in d) {
        if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
        day = "Z" in d ? utcDate(newYear(d.y)).getUTCDay() : newDate(newYear(d.y)).getDay();
        d.m = 0;
        d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;
      }

      // If a time zone is specified, all fields are interpreted as UTC and then
      // offset according to the specified time zone.
      if ("Z" in d) {
        d.H += d.Z / 100 | 0;
        d.M += d.Z % 100;
        return utcDate(d);
      }

      // Otherwise, all fields are in local time.
      return newDate(d);
    };
  }

  function parseSpecifier(d, specifier, string, j) {
    var i = 0,
        n = specifier.length,
        m = string.length,
        c,
        parse;

    while (i < n) {
      if (j >= m) return -1;
      c = specifier.charCodeAt(i++);
      if (c === 37) {
        c = specifier.charAt(i++);
        parse = parses[c in pads ? specifier.charAt(i++) : c];
        if (!parse || ((j = parse(d, string, j)) < 0)) return -1;
      } else if (c != string.charCodeAt(j++)) {
        return -1;
      }
    }

    return j;
  }

  function parsePeriod(d, string, i) {
    var n = periodRe.exec(string.slice(i));
    return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;
  }

  function parseShortWeekday(d, string, i) {
    var n = shortWeekdayRe.exec(string.slice(i));
    return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;
  }

  function parseWeekday(d, string, i) {
    var n = weekdayRe.exec(string.slice(i));
    return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;
  }

  function parseShortMonth(d, string, i) {
    var n = shortMonthRe.exec(string.slice(i));
    return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;
  }

  function parseMonth(d, string, i) {
    var n = monthRe.exec(string.slice(i));
    return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;
  }

  function parseLocaleDateTime(d, string, i) {
    return parseSpecifier(d, locale_dateTime, string, i);
  }

  function parseLocaleDate(d, string, i) {
    return parseSpecifier(d, locale_date, string, i);
  }

  function parseLocaleTime(d, string, i) {
    return parseSpecifier(d, locale_time, string, i);
  }

  function formatShortWeekday(d) {
    return locale_shortWeekdays[d.getDay()];
  }

  function formatWeekday(d) {
    return locale_weekdays[d.getDay()];
  }

  function formatShortMonth(d) {
    return locale_shortMonths[d.getMonth()];
  }

  function formatMonth(d) {
    return locale_months[d.getMonth()];
  }

  function formatPeriod(d) {
    return locale_periods[+(d.getHours() >= 12)];
  }

  function formatUTCShortWeekday(d) {
    return locale_shortWeekdays[d.getUTCDay()];
  }

  function formatUTCWeekday(d) {
    return locale_weekdays[d.getUTCDay()];
  }

  function formatUTCShortMonth(d) {
    return locale_shortMonths[d.getUTCMonth()];
  }

  function formatUTCMonth(d) {
    return locale_months[d.getUTCMonth()];
  }

  function formatUTCPeriod(d) {
    return locale_periods[+(d.getUTCHours() >= 12)];
  }

  return {
    format: function(specifier) {
      var f = newFormat(specifier += "", formats);
      f.toString = function() { return specifier; };
      return f;
    },
    parse: function(specifier) {
      var p = newParse(specifier += "", localDate);
      p.toString = function() { return specifier; };
      return p;
    },
    utcFormat: function(specifier) {
      var f = newFormat(specifier += "", utcFormats);
      f.toString = function() { return specifier; };
      return f;
    },
    utcParse: function(specifier) {
      var p = newParse(specifier, utcDate);
      p.toString = function() { return specifier; };
      return p;
    }
  };
}

var pads = {"-": "", "_": " ", "0": "0"},
    numberRe = /^\s*\d+/, // note: ignores next directive
    percentRe = /^%/,
    requoteRe = /[\\^$*+?|[\]().{}]/g;

function pad(value, fill, width) {
  var sign = value < 0 ? "-" : "",
      string = (sign ? -value : value) + "",
      length = string.length;
  return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);
}

function requote(s) {
  return s.replace(requoteRe, "\\$&");
}

function formatRe(names) {
  return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i");
}

function formatLookup(names) {
  var map = {}, i = -1, n = names.length;
  while (++i < n) map[names[i].toLowerCase()] = i;
  return map;
}

function parseWeekdayNumberSunday(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 1));
  return n ? (d.w = +n[0], i + n[0].length) : -1;
}

function parseWeekdayNumberMonday(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 1));
  return n ? (d.u = +n[0], i + n[0].length) : -1;
}

function parseWeekNumberSunday(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 2));
  return n ? (d.U = +n[0], i + n[0].length) : -1;
}

function parseWeekNumberISO(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 2));
  return n ? (d.V = +n[0], i + n[0].length) : -1;
}

function parseWeekNumberMonday(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 2));
  return n ? (d.W = +n[0], i + n[0].length) : -1;
}

function parseFullYear(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 4));
  return n ? (d.y = +n[0], i + n[0].length) : -1;
}

function parseYear(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 2));
  return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;
}

function parseZone(d, string, i) {
  var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6));
  return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1;
}

function parseMonthNumber(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 2));
  return n ? (d.m = n[0] - 1, i + n[0].length) : -1;
}

function parseDayOfMonth(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 2));
  return n ? (d.d = +n[0], i + n[0].length) : -1;
}

function parseDayOfYear(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 3));
  return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;
}

function parseHour24(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 2));
  return n ? (d.H = +n[0], i + n[0].length) : -1;
}

function parseMinutes(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 2));
  return n ? (d.M = +n[0], i + n[0].length) : -1;
}

function parseSeconds(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 2));
  return n ? (d.S = +n[0], i + n[0].length) : -1;
}

function parseMilliseconds(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 3));
  return n ? (d.L = +n[0], i + n[0].length) : -1;
}

function parseMicroseconds(d, string, i) {
  var n = numberRe.exec(string.slice(i, i + 6));
  return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;
}

function parseLiteralPercent(d, string, i) {
  var n = percentRe.exec(string.slice(i, i + 1));
  return n ? i + n[0].length : -1;
}

function parseUnixTimestamp(d, string, i) {
  var n = numberRe.exec(string.slice(i));
  return n ? (d.Q = +n[0], i + n[0].length) : -1;
}

function parseUnixTimestampSeconds(d, string, i) {
  var n = numberRe.exec(string.slice(i));
  return n ? (d.Q = (+n[0]) * 1000, i + n[0].length) : -1;
}

function formatDayOfMonth(d, p) {
  return pad(d.getDate(), p, 2);
}

function formatHour24(d, p) {
  return pad(d.getHours(), p, 2);
}

function formatHour12(d, p) {
  return pad(d.getHours() % 12 || 12, p, 2);
}

function formatDayOfYear(d, p) {
  return pad(1 + d3_time["a" /* timeDay */].count(Object(d3_time["D" /* timeYear */])(d), d), p, 3);
}

function formatMilliseconds(d, p) {
  return pad(d.getMilliseconds(), p, 3);
}

function formatMicroseconds(d, p) {
  return formatMilliseconds(d, p) + "000";
}

function formatMonthNumber(d, p) {
  return pad(d.getMonth() + 1, p, 2);
}

function formatMinutes(d, p) {
  return pad(d.getMinutes(), p, 2);
}

function formatSeconds(d, p) {
  return pad(d.getSeconds(), p, 2);
}

function formatWeekdayNumberMonday(d) {
  var day = d.getDay();
  return day === 0 ? 7 : day;
}

function formatWeekNumberSunday(d, p) {
  return pad(d3_time["t" /* timeSunday */].count(Object(d3_time["D" /* timeYear */])(d), d), p, 2);
}

function formatWeekNumberISO(d, p) {
  var day = d.getDay();
  d = (day >= 4 || day === 0) ? Object(d3_time["v" /* timeThursday */])(d) : d3_time["v" /* timeThursday */].ceil(d);
  return pad(d3_time["v" /* timeThursday */].count(Object(d3_time["D" /* timeYear */])(d), d) + (Object(d3_time["D" /* timeYear */])(d).getDay() === 4), p, 2);
}

function formatWeekdayNumberSunday(d) {
  return d.getDay();
}

function formatWeekNumberMonday(d, p) {
  return pad(d3_time["l" /* timeMonday */].count(Object(d3_time["D" /* timeYear */])(d), d), p, 2);
}

function formatYear(d, p) {
  return pad(d.getFullYear() % 100, p, 2);
}

function formatFullYear(d, p) {
  return pad(d.getFullYear() % 10000, p, 4);
}

function formatZone(d) {
  var z = d.getTimezoneOffset();
  return (z > 0 ? "-" : (z *= -1, "+"))
      + pad(z / 60 | 0, "0", 2)
      + pad(z % 60, "0", 2);
}

function formatUTCDayOfMonth(d, p) {
  return pad(d.getUTCDate(), p, 2);
}

function formatUTCHour24(d, p) {
  return pad(d.getUTCHours(), p, 2);
}

function formatUTCHour12(d, p) {
  return pad(d.getUTCHours() % 12 || 12, p, 2);
}

function formatUTCDayOfYear(d, p) {
  return pad(1 + d3_time["F" /* utcDay */].count(Object(d3_time["hb" /* utcYear */])(d), d), p, 3);
}

function formatUTCMilliseconds(d, p) {
  return pad(d.getUTCMilliseconds(), p, 3);
}

function formatUTCMicroseconds(d, p) {
  return formatUTCMilliseconds(d, p) + "000";
}

function formatUTCMonthNumber(d, p) {
  return pad(d.getUTCMonth() + 1, p, 2);
}

function formatUTCMinutes(d, p) {
  return pad(d.getUTCMinutes(), p, 2);
}

function formatUTCSeconds(d, p) {
  return pad(d.getUTCSeconds(), p, 2);
}

function formatUTCWeekdayNumberMonday(d) {
  var dow = d.getUTCDay();
  return dow === 0 ? 7 : dow;
}

function formatUTCWeekNumberSunday(d, p) {
  return pad(d3_time["X" /* utcSunday */].count(Object(d3_time["hb" /* utcYear */])(d), d), p, 2);
}

function formatUTCWeekNumberISO(d, p) {
  var day = d.getUTCDay();
  d = (day >= 4 || day === 0) ? Object(d3_time["Z" /* utcThursday */])(d) : d3_time["Z" /* utcThursday */].ceil(d);
  return pad(d3_time["Z" /* utcThursday */].count(Object(d3_time["hb" /* utcYear */])(d), d) + (Object(d3_time["hb" /* utcYear */])(d).getUTCDay() === 4), p, 2);
}

function formatUTCWeekdayNumberSunday(d) {
  return d.getUTCDay();
}

function formatUTCWeekNumberMonday(d, p) {
  return pad(d3_time["P" /* utcMonday */].count(Object(d3_time["hb" /* utcYear */])(d), d), p, 2);
}

function formatUTCYear(d, p) {
  return pad(d.getUTCFullYear() % 100, p, 2);
}

function formatUTCFullYear(d, p) {
  return pad(d.getUTCFullYear() % 10000, p, 4);
}

function formatUTCZone() {
  return "+0000";
}

function formatLiteralPercent() {
  return "%";
}

function formatUnixTimestamp(d) {
  return +d;
}

function formatUnixTimestampSeconds(d) {
  return Math.floor(+d / 1000);
}

// CONCATENATED MODULE: ./node_modules/d3-time-format/src/defaultLocale.js


var defaultLocale_locale;
var timeFormat;
var timeParse;
var utcFormat;
var utcParse;

defaultLocale({
  dateTime: "%x, %X",
  date: "%-m/%-d/%Y",
  time: "%-I:%M:%S %p",
  periods: ["AM", "PM"],
  days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
  shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
  months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
  shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
});

function defaultLocale(definition) {
  defaultLocale_locale = formatLocale(definition);
  timeFormat = defaultLocale_locale.format;
  timeParse = defaultLocale_locale.parse;
  utcFormat = defaultLocale_locale.utcFormat;
  utcParse = defaultLocale_locale.utcParse;
  return defaultLocale_locale;
}

// CONCATENATED MODULE: ./node_modules/d3-time-format/src/isoFormat.js


var isoSpecifier = "%Y-%m-%dT%H:%M:%S.%LZ";

function formatIsoNative(date) {
  return date.toISOString();
}

var formatIso = Date.prototype.toISOString
    ? formatIsoNative
    : utcFormat(isoSpecifier);

/* harmony default export */ var isoFormat = (formatIso);

// CONCATENATED MODULE: ./node_modules/d3-time-format/src/isoParse.js



function parseIsoNative(string) {
  var date = new Date(string);
  return isNaN(date) ? null : date;
}

var parseIso = +new Date("2000-01-01T00:00:00.000Z")
    ? parseIsoNative
    : utcParse(isoSpecifier);

/* harmony default export */ var isoParse = (parseIso);

// CONCATENATED MODULE: ./node_modules/d3-time-format/src/index.js





// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ DetectReferenceElementsDomain_detectReferenceElementsDomain; });

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isFunction.js
var isFunction = __webpack_require__(51);
var isFunction_default = /*#__PURE__*/__webpack_require__.n(isFunction);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__(25);
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/recharts/es6/container/Layer.js
var Layer = __webpack_require__(60);

// EXTERNAL MODULE: ./node_modules/recharts/es6/shape/Dot.js
var Dot = __webpack_require__(221);

// EXTERNAL MODULE: ./node_modules/recharts/es6/component/Label.js
var Label = __webpack_require__(150);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/DataUtils.js
var DataUtils = __webpack_require__(24);

// CONCATENATED MODULE: ./node_modules/recharts/es6/util/IfOverflowMatches.js
var ifOverflowMatches = function ifOverflowMatches(props, value) {
  var alwaysShow = props.alwaysShow;
  var ifOverflow = props.ifOverflow;

  if (alwaysShow) {
    ifOverflow = 'extendDomain';
  }

  return ifOverflow === value;
};
// EXTERNAL MODULE: ./node_modules/recharts/es6/util/CartesianUtils.js
var CartesianUtils = __webpack_require__(185);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/LogUtils.js
var LogUtils = __webpack_require__(175);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/types.js
var types = __webpack_require__(42);

// CONCATENATED MODULE: ./node_modules/recharts/es6/cartesian/ReferenceDot.js


function _extends() { _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 _extends.apply(this, arguments); }

function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }

/**
 * @fileOverview Reference Dot
 */











var ReferenceDot_getCoordinate = function getCoordinate(props) {
  var x = props.x,
      y = props.y,
      xAxis = props.xAxis,
      yAxis = props.yAxis;
  var scales = Object(CartesianUtils["a" /* createLabeledScales */])({
    x: xAxis.scale,
    y: yAxis.scale
  });
  var result = scales.apply({
    x: x,
    y: y
  }, {
    bandAware: true
  });

  if (ifOverflowMatches(props, 'discard') && !scales.isInRange(result)) {
    return null;
  }

  return result;
};

function ReferenceDot(props) {
  var x = props.x,
      y = props.y,
      r = props.r,
      alwaysShow = props.alwaysShow,
      clipPathId = props.clipPathId;
  var isX = Object(DataUtils["g" /* isNumOrStr */])(x);
  var isY = Object(DataUtils["g" /* isNumOrStr */])(y);
  Object(LogUtils["a" /* warn */])(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.');

  if (!isX || !isY) {
    return null;
  }

  var coordinate = ReferenceDot_getCoordinate(props);

  if (!coordinate) {
    return null;
  }

  var cx = coordinate.x,
      cy = coordinate.y;
  var shape = props.shape,
      className = props.className;
  var clipPath = ifOverflowMatches(props, 'hidden') ? "url(#".concat(clipPathId, ")") : undefined;

  var dotProps = _objectSpread(_objectSpread({
    clipPath: clipPath
  }, Object(types["c" /* filterProps */])(props, true)), {}, {
    cx: cx,
    cy: cy
  });

  return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], {
    className: classnames_default()('recharts-reference-dot', className)
  }, ReferenceDot.renderDot(shape, dotProps), Label["a" /* Label */].renderCallByParent(props, {
    x: cx - r,
    y: cy - r,
    width: 2 * r,
    height: 2 * r
  }));
}
ReferenceDot.displayName = 'ReferenceDot';
ReferenceDot.defaultProps = {
  isFront: false,
  ifOverflow: 'discard',
  xAxisId: 0,
  yAxisId: 0,
  r: 10,
  fill: '#fff',
  stroke: '#ccc',
  fillOpacity: 1,
  strokeWidth: 1
};

ReferenceDot.renderDot = function (option, props) {
  var dot;

  if ( /*#__PURE__*/react_default.a.isValidElement(option)) {
    dot = /*#__PURE__*/react_default.a.cloneElement(option, props);
  } else if (isFunction_default()(option)) {
    dot = option(props);
  } else {
    dot = /*#__PURE__*/react_default.a.createElement(Dot["a" /* Dot */], _extends({}, props, {
      cx: props.cx,
      cy: props.cy,
      className: "recharts-reference-dot-dot"
    }));
  }

  return dot;
};
// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/some.js
var some = __webpack_require__(660);
var some_default = /*#__PURE__*/__webpack_require__.n(some);

// CONCATENATED MODULE: ./node_modules/recharts/es6/cartesian/ReferenceLine.js



function ReferenceLine_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; }

function ReferenceLine_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ReferenceLine_ownKeys(Object(source), true).forEach(function (key) { ReferenceLine_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ReferenceLine_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function ReferenceLine_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; }

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _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."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _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 _arrayLikeToArray(o, minLen); }

function _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; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function ReferenceLine_extends() { ReferenceLine_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 ReferenceLine_extends.apply(this, arguments); }

/**
 * @fileOverview Reference Line
 */










var ReferenceLine_renderLine = function renderLine(option, props) {
  var line;

  if ( /*#__PURE__*/react_default.a.isValidElement(option)) {
    line = /*#__PURE__*/react_default.a.cloneElement(option, props);
  } else if (isFunction_default()(option)) {
    line = option(props);
  } else {
    line = /*#__PURE__*/react_default.a.createElement("line", ReferenceLine_extends({}, props, {
      className: "recharts-reference-line-line"
    }));
  }

  return line;
}; // TODO: ScaleHelper


var ReferenceLine_getEndPoints = function getEndPoints(scales, isFixedX, isFixedY, isSegment, props) {
  var _props$viewBox = props.viewBox,
      x = _props$viewBox.x,
      y = _props$viewBox.y,
      width = _props$viewBox.width,
      height = _props$viewBox.height,
      position = props.position;

  if (isFixedY) {
    var yCoord = props.y,
        orientation = props.yAxis.orientation;
    var coord = scales.y.apply(yCoord, {
      position: position
    });

    if (ifOverflowMatches(props, 'discard') && !scales.y.isInRange(coord)) {
      return null;
    }

    var points = [{
      x: x + width,
      y: coord
    }, {
      x: x,
      y: coord
    }];
    return orientation === 'left' ? points.reverse() : points;
  }

  if (isFixedX) {
    var xCoord = props.x,
        _orientation = props.xAxis.orientation;

    var _coord = scales.x.apply(xCoord, {
      position: position
    });

    if (ifOverflowMatches(props, 'discard') && !scales.x.isInRange(_coord)) {
      return null;
    }

    var _points = [{
      x: _coord,
      y: y + height
    }, {
      x: _coord,
      y: y
    }];
    return _orientation === 'top' ? _points.reverse() : _points;
  }

  if (isSegment) {
    var segment = props.segment;

    var _points2 = segment.map(function (p) {
      return scales.apply(p, {
        position: position
      });
    });

    if (ifOverflowMatches(props, 'discard') && some_default()(_points2, function (p) {
      return !scales.isInRange(p);
    })) {
      return null;
    }

    return _points2;
  }

  return null;
};

function ReferenceLine(props) {
  var fixedX = props.x,
      fixedY = props.y,
      segment = props.segment,
      xAxis = props.xAxis,
      yAxis = props.yAxis,
      shape = props.shape,
      className = props.className,
      alwaysShow = props.alwaysShow,
      clipPathId = props.clipPathId;
  Object(LogUtils["a" /* warn */])(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.');
  var scales = Object(CartesianUtils["a" /* createLabeledScales */])({
    x: xAxis.scale,
    y: yAxis.scale
  });
  var isX = Object(DataUtils["g" /* isNumOrStr */])(fixedX);
  var isY = Object(DataUtils["g" /* isNumOrStr */])(fixedY);
  var isSegment = segment && segment.length === 2;
  var endPoints = ReferenceLine_getEndPoints(scales, isX, isY, isSegment, props);

  if (!endPoints) {
    return null;
  }

  var _endPoints = _slicedToArray(endPoints, 2),
      _endPoints$ = _endPoints[0],
      x1 = _endPoints$.x,
      y1 = _endPoints$.y,
      _endPoints$2 = _endPoints[1],
      x2 = _endPoints$2.x,
      y2 = _endPoints$2.y;

  var clipPath = ifOverflowMatches(props, 'hidden') ? "url(#".concat(clipPathId, ")") : undefined;

  var lineProps = ReferenceLine_objectSpread(ReferenceLine_objectSpread({
    clipPath: clipPath
  }, Object(types["c" /* filterProps */])(props, true)), {}, {
    x1: x1,
    y1: y1,
    x2: x2,
    y2: y2
  });

  return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], {
    className: classnames_default()('recharts-reference-line', className)
  }, ReferenceLine_renderLine(shape, lineProps), Label["a" /* Label */].renderCallByParent(props, Object(CartesianUtils["c" /* rectWithCoords */])({
    x1: x1,
    y1: y1,
    x2: x2,
    y2: y2
  })));
}
ReferenceLine.displayName = 'ReferenceLine';
ReferenceLine.defaultProps = {
  isFront: false,
  ifOverflow: 'discard',
  xAxisId: 0,
  yAxisId: 0,
  fill: 'none',
  stroke: '#ccc',
  fillOpacity: 1,
  strokeWidth: 1,
  position: 'middle'
};
// EXTERNAL MODULE: ./node_modules/recharts/es6/shape/Rectangle.js
var Rectangle = __webpack_require__(288);

// CONCATENATED MODULE: ./node_modules/recharts/es6/cartesian/ReferenceArea.js


function ReferenceArea_extends() { ReferenceArea_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 ReferenceArea_extends.apply(this, arguments); }

function ReferenceArea_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; }

function ReferenceArea_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ReferenceArea_ownKeys(Object(source), true).forEach(function (key) { ReferenceArea_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ReferenceArea_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function ReferenceArea_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; }

/**
 * @fileOverview Reference Line
 */











var ReferenceArea_getRect = function getRect(hasX1, hasX2, hasY1, hasY2, props) {
  var xValue1 = props.x1,
      xValue2 = props.x2,
      yValue1 = props.y1,
      yValue2 = props.y2,
      xAxis = props.xAxis,
      yAxis = props.yAxis;
  var scales = Object(CartesianUtils["a" /* createLabeledScales */])({
    x: xAxis.scale,
    y: yAxis.scale
  });
  var p1 = {
    x: hasX1 ? scales.x.apply(xValue1, {
      position: 'start'
    }) : scales.x.rangeMin,
    y: hasY1 ? scales.y.apply(yValue1, {
      position: 'start'
    }) : scales.y.rangeMin
  };
  var p2 = {
    x: hasX2 ? scales.x.apply(xValue2, {
      position: 'end'
    }) : scales.x.rangeMax,
    y: hasY2 ? scales.y.apply(yValue2, {
      position: 'end'
    }) : scales.y.rangeMax
  };

  if (ifOverflowMatches(props, 'discard') && (!scales.isInRange(p1) || !scales.isInRange(p2))) {
    return null;
  }

  return Object(CartesianUtils["d" /* rectWithPoints */])(p1, p2);
};

function ReferenceArea(props) {
  var x1 = props.x1,
      x2 = props.x2,
      y1 = props.y1,
      y2 = props.y2,
      className = props.className,
      alwaysShow = props.alwaysShow,
      clipPathId = props.clipPathId;
  Object(LogUtils["a" /* warn */])(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.');
  var hasX1 = Object(DataUtils["g" /* isNumOrStr */])(x1);
  var hasX2 = Object(DataUtils["g" /* isNumOrStr */])(x2);
  var hasY1 = Object(DataUtils["g" /* isNumOrStr */])(y1);
  var hasY2 = Object(DataUtils["g" /* isNumOrStr */])(y2);
  var shape = props.shape;

  if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {
    return null;
  }

  var rect = ReferenceArea_getRect(hasX1, hasX2, hasY1, hasY2, props);

  if (!rect && !shape) {
    return null;
  }

  var clipPath = ifOverflowMatches(props, 'hidden') ? "url(#".concat(clipPathId, ")") : undefined;
  return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], {
    className: classnames_default()('recharts-reference-area', className)
  }, ReferenceArea.renderRect(shape, ReferenceArea_objectSpread(ReferenceArea_objectSpread({
    clipPath: clipPath
  }, Object(types["c" /* filterProps */])(props, true)), rect)), Label["a" /* Label */].renderCallByParent(props, rect));
}
ReferenceArea.displayName = 'ReferenceArea';
ReferenceArea.defaultProps = {
  isFront: false,
  ifOverflow: 'discard',
  xAxisId: 0,
  yAxisId: 0,
  r: 10,
  fill: '#ccc',
  fillOpacity: 0.5,
  stroke: 'none',
  strokeWidth: 1
};

ReferenceArea.renderRect = function (option, props) {
  var rect;

  if ( /*#__PURE__*/react_default.a.isValidElement(option)) {
    rect = /*#__PURE__*/react_default.a.cloneElement(option, props);
  } else if (isFunction_default()(option)) {
    rect = option(props);
  } else {
    rect = /*#__PURE__*/react_default.a.createElement(Rectangle["a" /* Rectangle */], ReferenceArea_extends({}, props, {
      className: "recharts-reference-area-rect"
    }));
  }

  return rect;
};
// EXTERNAL MODULE: ./node_modules/recharts/es6/util/ReactUtils.js
var ReactUtils = __webpack_require__(68);

// CONCATENATED MODULE: ./node_modules/recharts/es6/util/DetectReferenceElementsDomain.js






var DetectReferenceElementsDomain_detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) {
  var lines = Object(ReactUtils["a" /* findAllByType */])(children, ReferenceLine.displayName);
  var dots = Object(ReactUtils["a" /* findAllByType */])(children, ReferenceDot.displayName);
  var elements = lines.concat(dots);
  var areas = Object(ReactUtils["a" /* findAllByType */])(children, ReferenceArea.displayName);
  var idKey = "".concat(axisType, "Id");
  var valueKey = axisType[0];
  var finalDomain = domain;

  if (elements.length) {
    finalDomain = elements.reduce(function (result, el) {
      if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && Object(DataUtils["h" /* isNumber */])(el.props[valueKey])) {
        var value = el.props[valueKey];
        return [Math.min(result[0], value), Math.max(result[1], value)];
      }

      return result;
    }, finalDomain);
  }

  if (areas.length) {
    var key1 = "".concat(valueKey, "1");
    var key2 = "".concat(valueKey, "2");
    finalDomain = areas.reduce(function (result, el) {
      if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && Object(DataUtils["h" /* isNumber */])(el.props[key1]) && Object(DataUtils["h" /* isNumber */])(el.props[key2])) {
        var value1 = el.props[key1];
        var value2 = el.props[key2];
        return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];
      }

      return result;
    }, finalDomain);
  }

  if (specifiedTicks && specifiedTicks.length) {
    finalDomain = specifiedTicks.reduce(function (result, tick) {
      if (Object(DataUtils["h" /* isNumber */])(tick)) {
        return [Math.min(result[0], tick), Math.max(result[1], tick)];
      }

      return result;
    }, finalDomain);
  }

  return finalDomain;
};
// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__(25);
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/@ant-design/colors/lib/index.js
var lib = __webpack_require__(672);

// CONCATENATED MODULE: ./node_modules/@ant-design/icons/node_modules/rc-util/es/warning.js
/* eslint-disable no-console */
var warned = {};
function warning(valid, message) {
  // Support uglify
  if (false) {}
}
function note(valid, message) {
  // Support uglify
  if (false) {}
}
function resetWarned() {
  warned = {};
}
function call(method, valid, message) {
  if (!valid && !warned[message]) {
    method(false, message);
    warned[message] = true;
  }
}
function warningOnce(valid, message) {
  call(warning, valid, message);
}
function noteOnce(valid, message) {
  call(note, valid, message);
}
/* harmony default export */ var es_warning = (warningOnce);
/* eslint-enable */
// EXTERNAL MODULE: ./node_modules/insert-css/index.js
var insert_css = __webpack_require__(673);

// CONCATENATED MODULE: ./node_modules/@ant-design/icons/es/utils.js
function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }

function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }





function utils_warning(valid, message) {
  es_warning(valid, "[@ant-design/icons] ".concat(message));
}
function isIconDefinition(target) {
  return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');
}
function normalizeAttrs() {
  var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  return Object.keys(attrs).reduce(function (acc, key) {
    var val = attrs[key];

    switch (key) {
      case 'class':
        acc.className = val;
        delete acc.class;
        break;

      default:
        acc[key] = val;
    }

    return acc;
  }, {});
}
function generate(node, key, rootProps) {
  if (!rootProps) {
    return react_default.a.createElement(node.tag, _objectSpread({
      key: key
    }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {
      return generate(child, "".concat(key, "-").concat(node.tag, "-").concat(index));
    }));
  }

  return react_default.a.createElement(node.tag, _objectSpread({
    key: key
  }, normalizeAttrs(node.attrs), {}, rootProps), (node.children || []).map(function (child, index) {
    return generate(child, "".concat(key, "-").concat(node.tag, "-").concat(index));
  }));
}
function getSecondaryColor(primaryColor) {
  // choose the second color
  return Object(lib["generate"])(primaryColor)[0];
}
function normalizeTwoToneColors(twoToneColor) {
  if (!twoToneColor) {
    return [];
  }

  return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];
} // These props make sure that the SVG behaviours like general text.
// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4

var svgBaseProps = {
  width: '1em',
  height: '1em',
  fill: 'currentColor',
  'aria-hidden': 'true',
  focusable: 'false'
};
var iconStyles = "\n.anticon {\n  display: inline-block;\n  color: inherit;\n  font-style: normal;\n  line-height: 0;\n  text-align: center;\n  text-transform: none;\n  vertical-align: -0.125em;\n  text-rendering: optimizeLegibility;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n\n.anticon > * {\n  line-height: 1;\n}\n\n.anticon svg {\n  display: inline-block;\n}\n\n.anticon::before {\n  display: none;\n}\n\n.anticon .anticon-icon {\n  display: block;\n}\n\n.anticon[tabindex] {\n  cursor: pointer;\n}\n\n.anticon-spin::before,\n.anticon-spin {\n  display: inline-block;\n  -webkit-animation: loadingCircle 1s infinite linear;\n  animation: loadingCircle 1s infinite linear;\n}\n\n@-webkit-keyframes loadingCircle {\n  100% {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n@keyframes loadingCircle {\n  100% {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n";
var cssInjectedFlag = false;
var utils_useInsertStyles = function useInsertStyles() {
  var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;
  Object(react["useEffect"])(function () {
    if (!cssInjectedFlag) {
      Object(insert_css["insertCss"])(styleStr, {
        prepend: true
      });
      cssInjectedFlag = true;
    }
  }, []);
};
// CONCATENATED MODULE: ./node_modules/@ant-design/icons/es/components/IconBase.js
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _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; }

function _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; }

function IconBase_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; }

function IconBase_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { IconBase_ownKeys(Object(source), true).forEach(function (key) { IconBase_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { IconBase_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function IconBase_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; }


var twoToneColorPalette = {
  primaryColor: '#333',
  secondaryColor: '#E6E6E6',
  calculated: false
};

function setTwoToneColors(_ref) {
  var primaryColor = _ref.primaryColor,
      secondaryColor = _ref.secondaryColor;
  twoToneColorPalette.primaryColor = primaryColor;
  twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);
  twoToneColorPalette.calculated = !!secondaryColor;
}

function getTwoToneColors() {
  return IconBase_objectSpread({}, twoToneColorPalette);
}

var IconBase_IconBase = function IconBase(props) {
  var icon = props.icon,
      className = props.className,
      onClick = props.onClick,
      style = props.style,
      primaryColor = props.primaryColor,
      secondaryColor = props.secondaryColor,
      restProps = _objectWithoutProperties(props, ["icon", "className", "onClick", "style", "primaryColor", "secondaryColor"]);

  var colors = twoToneColorPalette;

  if (primaryColor) {
    colors = {
      primaryColor: primaryColor,
      secondaryColor: secondaryColor || getSecondaryColor(primaryColor)
    };
  }

  utils_useInsertStyles();
  utils_warning(isIconDefinition(icon), "icon should be icon definiton, but got ".concat(icon));

  if (!isIconDefinition(icon)) {
    return null;
  }

  var target = icon;

  if (target && typeof target.icon === 'function') {
    target = IconBase_objectSpread({}, target, {
      icon: target.icon(colors.primaryColor, colors.secondaryColor)
    });
  }

  return generate(target.icon, "svg-".concat(target.name), IconBase_objectSpread({
    className: className,
    onClick: onClick,
    style: style,
    'data-icon': target.name,
    width: '1em',
    height: '1em',
    fill: 'currentColor',
    'aria-hidden': 'true'
  }, restProps));
};

IconBase_IconBase.displayName = 'IconReact';
IconBase_IconBase.getTwoToneColors = getTwoToneColors;
IconBase_IconBase.setTwoToneColors = setTwoToneColors;
/* harmony default export */ var components_IconBase = (IconBase_IconBase);
// CONCATENATED MODULE: ./node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _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."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _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(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _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; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }



function setTwoToneColor(twoToneColor) {
  var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),
      _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),
      primaryColor = _normalizeTwoToneColo2[0],
      secondaryColor = _normalizeTwoToneColo2[1];

  return components_IconBase.setTwoToneColors({
    primaryColor: primaryColor,
    secondaryColor: secondaryColor
  });
}
function getTwoToneColor() {
  var colors = components_IconBase.getTwoToneColors();

  if (!colors.calculated) {
    return colors.primaryColor;
  }

  return [colors.primaryColor, colors.secondaryColor];
}
// CONCATENATED MODULE: ./node_modules/@ant-design/icons/es/components/AntdIcon.js
function AntdIcon_slicedToArray(arr, i) { return AntdIcon_arrayWithHoles(arr) || AntdIcon_iterableToArrayLimit(arr, i) || AntdIcon_unsupportedIterableToArray(arr, i) || AntdIcon_nonIterableRest(); }

function AntdIcon_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."); }

function AntdIcon_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return AntdIcon_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(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return AntdIcon_arrayLikeToArray(o, minLen); }

function AntdIcon_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; }

function AntdIcon_iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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; }

function AntdIcon_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function AntdIcon_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; }

function AntdIcon_objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = AntdIcon_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; }

function AntdIcon_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; }





 // Initial setting
// should move it to antd main repo?

setTwoToneColor('#1890ff');
var Icon = react["forwardRef"](function (props, ref) {
  var className = props.className,
      icon = props.icon,
      spin = props.spin,
      rotate = props.rotate,
      tabIndex = props.tabIndex,
      onClick = props.onClick,
      twoToneColor = props.twoToneColor,
      restProps = AntdIcon_objectWithoutProperties(props, ["className", "icon", "spin", "rotate", "tabIndex", "onClick", "twoToneColor"]);

  var classString = classnames_default()('anticon', AntdIcon_defineProperty({}, "anticon-".concat(icon.name), Boolean(icon.name)), className);
  var svgClassString = classnames_default()({
    'anticon-spin': !!spin || icon.name === 'loading'
  });
  var iconTabIndex = tabIndex;

  if (iconTabIndex === undefined && onClick) {
    iconTabIndex = -1;
  }

  var svgStyle = rotate ? {
    msTransform: "rotate(".concat(rotate, "deg)"),
    transform: "rotate(".concat(rotate, "deg)")
  } : undefined;

  var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),
      _normalizeTwoToneColo2 = AntdIcon_slicedToArray(_normalizeTwoToneColo, 2),
      primaryColor = _normalizeTwoToneColo2[0],
      secondaryColor = _normalizeTwoToneColo2[1];

  return react["createElement"]("span", Object.assign({
    role: "img",
    "aria-label": icon.name
  }, restProps, {
    ref: ref,
    tabIndex: iconTabIndex,
    onClick: onClick,
    className: classString
  }), react["createElement"](components_IconBase, {
    className: svgClassString,
    icon: icon,
    primaryColor: primaryColor,
    secondaryColor: secondaryColor,
    style: svgStyle
  }));
});
Icon.displayName = 'AntdIcon';
Icon.getTwoToneColor = getTwoToneColor;
Icon.setTwoToneColor = setTwoToneColor;
/* harmony default export */ var AntdIcon = __webpack_exports__["a"] = (Icon);
// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ PerformanceForecast_PerformanceForecast; });

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 3 modules
var slicedToArray = __webpack_require__(64);

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./src/js/components/common/IconSvg/index.js
var IconSvg = __webpack_require__(14);

// EXTERNAL MODULE: ./node_modules/antd/lib/table/style/index.js
var style = __webpack_require__(306);

// EXTERNAL MODULE: ./node_modules/antd/lib/table/index.js
var table = __webpack_require__(177);
var table_default = /*#__PURE__*/__webpack_require__.n(table);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js
var defineProperty = __webpack_require__(122);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread.js
var objectSpread = __webpack_require__(27);

// EXTERNAL MODULE: ./node_modules/antd/lib/slider/style/index.js
var slider_style = __webpack_require__(858);

// EXTERNAL MODULE: ./node_modules/antd/lib/slider/index.js
var slider = __webpack_require__(649);
var slider_default = /*#__PURE__*/__webpack_require__.n(slider);

// EXTERNAL MODULE: ./node_modules/antd/lib/modal/style/index.js
var modal_style = __webpack_require__(88);

// EXTERNAL MODULE: ./node_modules/antd/lib/modal/index.js
var modal = __webpack_require__(55);
var modal_default = /*#__PURE__*/__webpack_require__.n(modal);

// EXTERNAL MODULE: ./node_modules/antd/lib/button/style/index.js
var button_style = __webpack_require__(66);

// EXTERNAL MODULE: ./node_modules/antd/lib/button/index.js
var lib_button = __webpack_require__(39);
var button_default = /*#__PURE__*/__webpack_require__.n(lib_button);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/extends.js
var esm_extends = __webpack_require__(33);

// EXTERNAL MODULE: ./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js + 3 modules
var styled_base_browser_esm = __webpack_require__(6);

// EXTERNAL MODULE: ./src/js/components/common/Button/index.js
var Button = __webpack_require__(30);

// CONCATENATED MODULE: ./src/js/components/PerformanceForecast/tableColumns.js
var tableColumns_ref= true?{name:"ykdfpm-dataSource",styles:"font-family:'Stolzl-Bold';label:dataSource;"}:undefined;var _ref2= true?{name:"ykdfpm-dataSource",styles:"font-family:'Stolzl-Bold';label:dataSource;"}:undefined;var _ref3= true?{name:"ykdfpm-dataSource",styles:"font-family:'Stolzl-Bold';label:dataSource;"}:undefined;var _ref4= true?{name:"ykdfpm-dataSource",styles:"font-family:'Stolzl-Bold';label:dataSource;"}:undefined;var _ref5= true?{name:"ykdfpm-dataSource",styles:"font-family:'Stolzl-Bold';label:dataSource;"}:undefined;var tableColumns_dataSource=function dataSource(props){return[{key:'1',info:'Above Average',profit:"$".concat(props.profitAbove),feedback:props.feedbackAbove,returns:props.returnsAbove,cases:props.casesAbove,tickets:props.ticketsAbove},{key:'2',info:'Average',profit:Object(core_browser_esm["c" /* jsx */])("span",{css:tableColumns_ref},"$",props.profitAverage),feedback:Object(core_browser_esm["c" /* jsx */])("span",{css:_ref2},props.feedbackAverage),returns:Object(core_browser_esm["c" /* jsx */])("span",{css:_ref3},props.returnsAverage),cases:Object(core_browser_esm["c" /* jsx */])("span",{css:_ref4},props.casesAverage),tickets:Object(core_browser_esm["c" /* jsx */])("span",{css:_ref5},props.ticketsAverage)},{key:'3',info:'Below Average',profit:"$".concat(props.profitBelow),feedback:props.feedbackBelow,returns:props.returnsBelow,cases:props.casesBelow,tickets:props.ticketsBelow}];};var columns=[{title:'',dataIndex:'info',key:'info'},{title:'Profit',dataIndex:'profit',key:'profit',align:'center'},{title:'Feedback',dataIndex:'feedback',key:'feedback',align:'center'},{title:'Returns',dataIndex:'returns',key:'returns',align:'center'},{title:'Cases',dataIndex:'cases',key:'cases',align:'center'},{title:'Tickets',dataIndex:'tickets',key:'tickets',align:'center'}];
// CONCATENATED MODULE: ./src/js/components/PerformanceForecast/data.js
var sliderValues=[1,900,1800,3000,4500,6000,8000,10000,12000,14000];var defaultTableData={casesBelow:0,casesAverage:0,casesAbove:0,profitBelow:48,profitAverage:60,profitAbove:104,feedbackBelow:5,feedbackAverage:8,feedbackAbove:11,returnsBelow:1,returnsAverage:1,returnsAbove:1,ticketsBelow:3,ticketsAverage:4,ticketsAbove:5};var listingsData=[{sliderValue:1,valueToDisplay:100,realValue:100,orders:25,ordersSlider:1,casesBelow:0,casesAverage:0,casesAbove:0,profitBelow:48,profitAverage:60,profitAbove:104,feedbackBelow:5,feedbackAverage:8,feedbackAbove:11,returnsBelow:1,returnsAverage:1,returnsAbove:1,ticketsBelow:3,ticketsAverage:4,ticketsAbove:5},{sliderValue:900,valueToDisplay:250,realValue:250,orders:50,ordersSlider:25,casesBelow:1,casesAverage:1,casesAbove:1,profitBelow:90,profitAverage:120,profitAbove:216,feedbackBelow:9,feedbackAverage:15,feedbackAbove:22,returnsBelow:2,returnsAverage:2,returnsAbove:2,ticketsBelow:6,ticketsAverage:8,ticketsAbove:9},{sliderValue:1800,valueToDisplay:500,realValue:500,orders:75,ordersSlider:50,casesBelow:1,casesAverage:1,casesAbove:1,profitBelow:120,profitAverage:180,profitAbove:345,feedbackBelow:13,feedbackAverage:23,feedbackAbove:35,returnsBelow:3,returnsAverage:3,returnsAbove:3,ticketsBelow:8,ticketsAverage:11,ticketsAbove:15},{sliderValue:3000,valueToDisplay:'1K',realValue:1000,orders:100,ordersSlider:75,casesBelow:2,casesAverage:2,casesAbove:2,profitBelow:192,profitAverage:240,profitAbove:518,feedbackBelow:20,feedbackAverage:30,feedbackAbove:53,returnsBelow:4,returnsAverage:4,returnsAbove:5,ticketsBelow:12,ticketsAverage:15,ticketsAbove:23},{sliderValue:4500,valueToDisplay:'3K',realValue:3000,orders:240,ordersSlider:100,casesBelow:2,casesAverage:4,casesAbove:3,profitBelow:288,profitAverage:576,profitAbove:1035,feedbackBelow:30,feedbackAverage:72,feedbackAbove:105,returnsBelow:6,returnsAverage:8,returnsAbove:9,ticketsBelow:18,ticketsAverage:36,ticketsAbove:45},{sliderValue:6000,valueToDisplay:'5K',realValue:5000,orders:300,ordersSlider:240,casesBelow:3,casesAverage:5,casesAbove:4,profitBelow:360,profitAverage:720,profitAbove:1380,feedbackBelow:38,feedbackAverage:90,feedbackAbove:140,returnsBelow:8,returnsAverage:11,returnsAbove:12,ticketsBelow:23,ticketsAverage:45,ticketsAbove:60},{sliderValue:8000,valueToDisplay:'10K',realValue:10000,orders:400,ordersSlider:300,casesBelow:4,casesAverage:6,casesAbove:6,profitBelow:480,profitAverage:960,profitAbove:2070,feedbackBelow:50,feedbackAverage:120,feedbackAbove:210,returnsBelow:10,returnsAverage:14,returnsAbove:18,ticketsBelow:30,ticketsAverage:60,ticketsAbove:90},{sliderValue:10000,valueToDisplay:'20K',realValue:20000,orders:800,ordersSlider:400,casesBelow:8,casesAverage:12,casesAbove:12,profitBelow:960,profitAverage:1920,profitAbove:4140,feedbackBelow:100,feedbackAverage:240,feedbackAbove:420,returnsBelow:20,returnsAverage:28,returnsAbove:36,ticketsBelow:60,ticketsAverage:120,ticketsAbove:180},{sliderValue:12000,valueToDisplay:'50K',realValue:50000,orders:2000,ordersSlider:600,casesBelow:20,casesAverage:30,casesAbove:30,profitBelow:2400,profitAverage:4800,profitAbove:10350,feedbackBelow:250,feedbackAverage:600,feedbackAbove:1050,returnsBelow:50,returnsAverage:70,returnsAbove:90,ticketsBelow:150,ticketsAverage:300,ticketsAbove:450},{sliderValue:14000,valueToDisplay:'100K',realValue:100000,orders:4000,ordersSlider:800,casesBelow:40,casesAverage:60,casesAbove:60,profitBelow:4800,profitAverage:9600,profitAbove:20700,feedbackBelow:500,feedbackAverage:1200,feedbackAbove:2100,returnsBelow:100,returnsAverage:140,returnsAbove:180,ticketsBelow:300,ticketsAverage:600,ticketsAbove:900}];var defOrdersMarks={1:{label:Object(core_browser_esm["c" /* jsx */])("span",{css: true?{name:"18z3dmx-defOrdersMarks",styles:"color:#586784;label:defOrdersMarks;"}:undefined},"25")},25:{},50:{},75:{},100:{},240:{},300:{},400:{},600:{},800:{label:Object(core_browser_esm["c" /* jsx */])("span",{css: true?{name:"18z3dmx-defOrdersMarks",styles:"color:#586784;label:defOrdersMarks;"}:undefined},"2000")}};
// EXTERNAL MODULE: ./src/js/constants/enums.js
var enums = __webpack_require__(17);

// EXTERNAL MODULE: ./src/js/constants/themes.js
var themes = __webpack_require__(18);

// CONCATENATED MODULE: ./src/js/components/PerformanceForecast/styled.js
var styled_ref= true?{name:"1hgkuwd-PerformanceForecastButton",styles:"background:none;height:fit-content;text-decoration:underline;color:#28709f;font-size:12px;font-weight:bold;padding:0;padding:1px 5px 0px 5px;border:none !important;outline:none !important;transform:translateY(-2px);&:hover,&:active,&:focus{background:none;text-decoration:underline;border:none !important;outline:none !important;}label:PerformanceForecastButton;"}:undefined;var styled_ref2= true?{name:"1z02ppg-PerformanceForecastButton",styles:"transform:translateY(-3px);margin-left:5px;label:PerformanceForecastButton;"}:undefined;var styled_PerformanceForecastButton=function PerformanceForecastButton(props){return Object(core_browser_esm["c" /* jsx */])(button_default.a,Object(esm_extends["a" /* default */])({ghost:true,css:styled_ref},props),Object(core_browser_esm["c" /* jsx */])("span",null,props.title),Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"magic-wand",size:"18",css:styled_ref2}));};var PerformanceForecastModal=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])(modal_default.a,{target:"e10b23x70",label:"PerformanceForecastModal"})( true?{name:"1rubw6g",styles:"height:100vh;width:600px;top:0;display:flex;flex-direction:column;justify-content:center;transition:width 0.5s;padding:0;& .ant-modal-content{border-radius:4px;}& .ant-modal-body{padding:0;border-radius:0;height:100%;}"}:undefined);var CloseButtonContainer=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e10b23x71",label:"CloseButtonContainer"})( true?{name:"ofgw2s",styles:"width:100%;display:flex;justify-content:end;& > span{margin:15px;right:0;top:0;}"}:undefined);var ModalTitle=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e10b23x72",label:"ModalTitle"})( true?{name:"13ohubm",styles:"margin-bottom:10px;text-align:center;font-size:30px;font-weight:normal;font-stretch:normal;font-style:normal;line-height:1.33;letter-spacing:normal;color:#0070ba;"}:undefined);var ModalSubTitle=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e10b23x73",label:"ModalSubTitle"})( true?{name:"19imtgp",styles:"text-align:center;font-family:'Stolzl-Light';font-size:16px;font-weight:normal;font-stretch:normal;font-style:normal;line-height:1.33;letter-spacing:normal;text-align:center;color:#233b69;"}:undefined);var ModalBody=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e10b23x74",label:"ModalBody"})( true?{name:"xice8c",styles:"min-height:300px;display:flex;flex-direction:column;padding:1.5rem;padding-bottom:1rem;"}:undefined);var styled_ref3= true?{name:"1ralauf-SignButton",styles:"height:18px;width:18px;font-size:20px;font-family:'Stolzl-Medium';display:flex;align-items:center;justify-content:center;border:solid 1px #a2adc4;background-color:#fff;border-radius:50%;padding:0;margin:0;label:SignButton;"}:undefined;var styled_ref4= true?{name:"a03uew-SignButton",styles:"width:8px;height:2px;border-radius:1px;background-color:#7e8aa0;label:SignButton;"}:undefined;var styled_ref5= true?{name:"1je5add-SignButton",styles:"width:8px;height:2px;border-radius:1px;background-color:#7e8aa0;position:absolute;transform:rotate(90deg);label:SignButton;"}:undefined;var _ref6= true?{name:"a03uew-SignButton",styles:"width:8px;height:2px;border-radius:1px;background-color:#7e8aa0;label:SignButton;"}:undefined;var styled_SignButton=function SignButton(props){return Object(core_browser_esm["c" /* jsx */])(button_default.a,Object(esm_extends["a" /* default */])({css:styled_ref3},props),props.type==='minus'&&Object(core_browser_esm["c" /* jsx */])("div",{css:styled_ref4}),props.type==='plus'&&Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])("div",{css:styled_ref5}),Object(core_browser_esm["c" /* jsx */])("div",{css:_ref6})));};var ButtonWrapper=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e10b23x75",label:"ButtonWrapper"})( true?{name:"51xbo2",styles:"width:100%;display:flex;justify-content:flex-end;margin-top:1rem;"}:undefined);var _ref7= true?{name:"1c3p8z9-AntSlider",styles:"background:#d9e7ff;border-radius:8px;padding:1px 5px;margin:20px 0px;flex:1;label:AntSlider;"}:undefined;var _ref8= true?{name:"sltchq-AntSlider",styles:"margin:0px 6px !important;.ant-slider-track,.ant-slider-step,.ant-slider-rail{margin-left:-5px;}.ant-slider-rail{background:transparent !important;}.ant-slider-track{background:#474588;}.ant-slider-handle{border:solid 1px #707070;}.ant-slider-dot .ant-slider-dot-active,.ant-slider-dot{display:none;}.ant-slider-mark{top:-17px;}&:hover{.ant-slider-track{background-color:#615ebd !important;}.ant-slider-handle{border:solid 2px #707070 !important;}}label:AntSlider;"}:undefined;var styled_AntSlider=function AntSlider(props){return Object(core_browser_esm["c" /* jsx */])("div",{css:_ref7},Object(core_browser_esm["c" /* jsx */])(slider_default.a,Object(esm_extends["a" /* default */])({},props,{css:_ref8})));};var _ref9= true?{name:"1e6vjuw-defMarks",styles:"color:#586784;label:defMarks;"}:undefined;var _ref10= true?{name:"1wubmyn-ModalContent",styles:"label:ModalContent;"}:undefined;var _ref11= true?{name:"1bnxno-ModalContent",styles:"font-size:12px;font-family:'Stolzl-Medium';font-stretch:normal;font-style:normal;line-height:1;letter-spacing:0.12px;label:ModalContent;"}:undefined;var _ref12= true?{name:"1qq5as3-ModalContent",styles:"display:flex;align-items:center;label:ModalContent;"}:undefined;var _ref13= true?{name:"1m4a6xg-ModalContent",styles:"margin-right:15px;label:ModalContent;"}:undefined;var _ref14= true?{name:"cjom4l-ModalContent",styles:"margin-left:15px;label:ModalContent;"}:undefined;var _ref15= true?{name:"1wubmyn-ModalContent",styles:"label:ModalContent;"}:undefined;var _ref16= true?{name:"1qnfo6a-ModalContent",styles:"font-size:12px;margin:10px 0;font-family:'Stolzl-Medium';font-stretch:normal;font-style:normal;line-height:1;letter-spacing:0.12px;label:ModalContent;"}:undefined;var _ref17= true?{name:"1qq5as3-ModalContent",styles:"display:flex;align-items:center;label:ModalContent;"}:undefined;var _ref18= true?{name:"1m4a6xg-ModalContent",styles:"margin-right:15px;label:ModalContent;"}:undefined;var _ref19= true?{name:"cjom4l-ModalContent",styles:"margin-left:15px;label:ModalContent;"}:undefined;var _ref20= true?{name:"13egdo1-ModalContent",styles:"font-size:12px;font-family:'Stolzl-Medium';font-stretch:normal;font-style:normal;line-height:1;letter-spacing:0.12px;margin:7px 0px;label:ModalContent;"}:undefined;var _ref21= true?{name:"12piiee-ModalContent",styles:"color:red;text-align:center;line-height:1.2;label:ModalContent;"}:undefined;var styled_ModalContent=function ModalContent(props){var defMarks=listingsData.reduce(function(obj,item){return Object(objectSpread["a" /* default */])({},obj,Object(defineProperty["a" /* default */])({},item.sliderValue,{label:Object(core_browser_esm["c" /* jsx */])("span",{css:_ref9},item.valueToDisplay)}));},{});var _React$useState=react_default.a.useState(),_React$useState2=Object(slicedToArray["a" /* default */])(_React$useState,2),sliderValue=_React$useState2[0],setSliderValue=_React$useState2[1];var _React$useState3=react_default.a.useState(),_React$useState4=Object(slicedToArray["a" /* default */])(_React$useState3,2),ordersSliderValue=_React$useState4[0],setOrdersSliderValue=_React$useState4[1];var _React$useState5=react_default.a.useState(defOrdersMarks),_React$useState6=Object(slicedToArray["a" /* default */])(_React$useState5,2),ordersMarks=_React$useState6[0],setOrdersMarks=_React$useState6[1];var _React$useState7=react_default.a.useState(),_React$useState8=Object(slicedToArray["a" /* default */])(_React$useState7,2),tableData=_React$useState8[0],setTableData=_React$useState8[1];var handleChangeOrdersSliderValue=function handleChangeOrdersSliderValue(object){setOrdersMarks(function(){var newMarks=Object(objectSpread["a" /* default */])({},defOrdersMarks);newMarks[object.ordersSlider]={label:Object(core_browser_esm["c" /* jsx */])("span",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(object.orders!==0&&"font-family: 'Stolzl-Bold'",";label:handleChangeOrdersSliderValue;"+( true?"":undefined))},object.orders)};return newMarks;});setTableData(tableColumns_dataSource(object));};react_default.a.useEffect(function(){var userPlan=props.currentPlan?props.currentPlan.name:'';var number=Number(userPlan.replace(/[^0-9]/g,''));var planNumber=number>0?number:100;var defaultData=planNumber>100000?listingsData.find(function(item){return item.realValue===100000;}):listingsData.find(function(item){return item.realValue===planNumber;});setSliderValue(defaultData?defaultData.sliderValue:1);setOrdersSliderValue(defaultData?defaultData.ordersSlider:1);handleChangeOrdersSliderValue(defaultData!==undefined?defaultData:defaultTableData);},[]);var handleNewValue=function handleNewValue(value){setSliderValue(value);var object=listingsData.find(function(item){return item.sliderValue===value;});setOrdersSliderValue(object.ordersSlider);handleChangeOrdersSliderValue(object);};var handleOnChange=function handleOnChange(value){handleNewValue(value);};var handleOrdersSliderChange=function handleOrdersSliderChange(value){var object=listingsData.find(function(item){return item.ordersSlider===value;});handleNewValue(object.sliderValue);};var handlePlusClick=function handlePlusClick(){var index=sliderValues.indexOf(sliderValue);var next=sliderValues[index+1];if(index>=0&&index<sliderValues.length-1&&next!==undefined)handleNewValue(next);};var handleMinusClick=function handleMinusClick(){var index=sliderValues.indexOf(sliderValue);var previous=sliderValues[index-1];if(index>=0&&index<=sliderValues.length-1&&previous!==undefined)handleNewValue(previous);};var handleRedirectDiscovery=function handleRedirectDiscovery(){props.setVisible(false);props.browserHistory.push(props.redirectPath);};var handleRedirectSubscription=function handleRedirectSubscription(){props.setVisible(false);props.toggleSettings(enums["a" /* default */].SETTINGS_TABS.SUBSCRIPTION);};return Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])("div",{css:_ref10},Object(core_browser_esm["c" /* jsx */])("span",{css:_ref11},props.label),Object(core_browser_esm["c" /* jsx */])("div",{css:_ref12},Object(core_browser_esm["c" /* jsx */])(styled_SignButton,{type:"minus",css:_ref13,onClick:handleMinusClick}),Object(core_browser_esm["c" /* jsx */])(styled_AntSlider,{marks:defMarks,min:1,max:14000,tipFormatter:null,value:sliderValue,step:null,onChange:handleOnChange}),Object(core_browser_esm["c" /* jsx */])(styled_SignButton,{type:"plus",css:_ref14,onClick:handlePlusClick}))),Object(core_browser_esm["c" /* jsx */])("div",{css:_ref15},Object(core_browser_esm["c" /* jsx */])("span",{css:_ref16},"Number of Orders"),Object(core_browser_esm["c" /* jsx */])("div",{css:_ref17},Object(core_browser_esm["c" /* jsx */])(styled_SignButton,{type:"minus",css:_ref18,onClick:handleMinusClick}),Object(core_browser_esm["c" /* jsx */])(styled_AntSlider,{marks:ordersMarks,min:25,max:800,tipFormatter:null,value:ordersSliderValue,step:null,onChange:handleOrdersSliderChange}),Object(core_browser_esm["c" /* jsx */])(styled_SignButton,{type:"plus",css:_ref19,onClick:handlePlusClick}))),Object(core_browser_esm["c" /* jsx */])("span",{css:_ref20},"Estimated Data"),Object(core_browser_esm["c" /* jsx */])(table_default.a,{dataSource:tableData,columns:props.columns,pagination:false,css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("border:1px solid #cdd3e0;border-radius:2px;border-bottom:0;margin-bottom:10px;thead > tr > th{background:",themes["d" /* themeColors */].backgroundDarkGray,";color:rgba(88,103,132,0.8);border-color:#cdd3e0;}.ant-table-tbody > tr > td{border-color:#cdd3e0;}label:ModalContent;"+( true?"":undefined))}),Object(core_browser_esm["c" /* jsx */])("div",null,Object(core_browser_esm["c" /* jsx */])("span",{css:_ref21},"*"),"All performance forecast is based on Triplemars user statistics, there is no guaranty for future results on a specific account."),Object(core_browser_esm["c" /* jsx */])(ButtonWrapper,null,Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{width:"120",clickHandler:function clickHandler(){return props.toggleSettings?handleRedirectSubscription():handleRedirectDiscovery();}},props.buttonMessage)));};
// CONCATENATED MODULE: ./src/js/components/PerformanceForecast/PerformanceForecast.js
var PerformanceForecast_PerformanceForecast=function PerformanceForecast(_ref){var currentPlan=_ref.currentPlan,buttonMessage=_ref.buttonMessage,browserHistory=_ref.browserHistory,redirectPath=_ref.redirectPath,toggleSettings=_ref.toggleSettings;var _React$useState=react_default.a.useState(false),_React$useState2=Object(slicedToArray["a" /* default */])(_React$useState,2),visible=_React$useState2[0],setVisible=_React$useState2[1];react_default.a.useEffect(function(){if(window.location.href.includes('#whatif'))setVisible(true);return function(){setVisible(false);};},[]);var handleClick=function handleClick(){setVisible(true);};var handleClose=function handleClose(){setVisible(false);};return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(styled_PerformanceForecastButton,{title:"What if?",onClick:handleClick}),Object(core_browser_esm["c" /* jsx */])(PerformanceForecastModal,{width:"600px",visible:visible,closable:false,footer:null,onCancel:handleClose},Object(core_browser_esm["c" /* jsx */])(CloseButtonContainer,null,Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"x",size:12,onClick:handleClose})),Object(core_browser_esm["c" /* jsx */])(ModalTitle,null,"What if?"),Object(core_browser_esm["c" /* jsx */])(ModalSubTitle,null,"Based on TripleMars users statistics, this is your performance forecast"),Object(core_browser_esm["c" /* jsx */])(ModalBody,null,Object(core_browser_esm["c" /* jsx */])(styled_ModalContent,{label:"Number of Listed Items",dataSource:tableColumns_dataSource,columns:columns,currentPlan:currentPlan,buttonMessage:buttonMessage,redirectPath:redirectPath,toggleSettings:toggleSettings,browserHistory:browserHistory,setVisible:setVisible}))));};
// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ ComposedChart; });

// EXTERNAL MODULE: ./node_modules/recharts/es6/chart/generateCategoricalChart.js
var generateCategoricalChart = __webpack_require__(313);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isEqual.js
var isEqual = __webpack_require__(172);
var isEqual_default = /*#__PURE__*/__webpack_require__.n(isEqual);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isNaN.js
var lodash_isNaN = __webpack_require__(261);
var isNaN_default = /*#__PURE__*/__webpack_require__.n(lodash_isNaN);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/max.js
var lodash_max = __webpack_require__(230);
var max_default = /*#__PURE__*/__webpack_require__.n(lodash_max);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isFunction.js
var isFunction = __webpack_require__(51);
var isFunction_default = /*#__PURE__*/__webpack_require__.n(isFunction);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/get.js
var get = __webpack_require__(113);
var get_default = /*#__PURE__*/__webpack_require__.n(get);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isNil.js
var isNil = __webpack_require__(48);
var isNil_default = /*#__PURE__*/__webpack_require__.n(isNil);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isArray.js
var isArray = __webpack_require__(71);
var isArray_default = /*#__PURE__*/__webpack_require__.n(isArray);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__(25);
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/react-smooth/es6/index.js + 8 modules
var es6 = __webpack_require__(145);

// EXTERNAL MODULE: ./node_modules/recharts/es6/shape/Curve.js + 12 modules
var Curve = __webpack_require__(176);

// EXTERNAL MODULE: ./node_modules/recharts/es6/shape/Dot.js
var Dot = __webpack_require__(221);

// EXTERNAL MODULE: ./node_modules/recharts/es6/container/Layer.js
var Layer = __webpack_require__(60);

// EXTERNAL MODULE: ./node_modules/recharts/es6/component/LabelList.js
var LabelList = __webpack_require__(222);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/Global.js
var Global = __webpack_require__(137);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/DataUtils.js
var DataUtils = __webpack_require__(24);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/ChartUtils.js + 10 modules
var ChartUtils = __webpack_require__(49);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/types.js
var types = __webpack_require__(42);

// CONCATENATED MODULE: ./node_modules/recharts/es6/cartesian/Area.js
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }









function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _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; }

function _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; }

function _extends() { _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 _extends.apply(this, arguments); }

function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

/**
 * @fileOverview Area
 */











var Area_Area = /*#__PURE__*/function (_PureComponent) {
  _inherits(Area, _PureComponent);

  var _super = _createSuper(Area);

  function Area() {
    var _this;

    _classCallCheck(this, Area);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _super.call.apply(_super, [this].concat(args));
    _this.state = {
      isAnimationFinished: true
    };
    _this.id = Object(DataUtils["k" /* uniqueId */])('recharts-area-');

    _this.handleAnimationEnd = function () {
      var onAnimationEnd = _this.props.onAnimationEnd;

      _this.setState({
        isAnimationFinished: true
      });

      if (isFunction_default()(onAnimationEnd)) {
        onAnimationEnd();
      }
    };

    _this.handleAnimationStart = function () {
      var onAnimationStart = _this.props.onAnimationStart;

      _this.setState({
        isAnimationFinished: false
      });

      if (isFunction_default()(onAnimationStart)) {
        onAnimationStart();
      }
    };

    return _this;
  }

  _createClass(Area, [{
    key: "renderDots",
    value: function renderDots(needClip, clipPathId) {
      var isAnimationActive = this.props.isAnimationActive;
      var isAnimationFinished = this.state.isAnimationFinished;

      if (isAnimationActive && !isAnimationFinished) {
        return null;
      }

      var _this$props = this.props,
          dot = _this$props.dot,
          points = _this$props.points,
          dataKey = _this$props.dataKey;
      var areaProps = Object(types["c" /* filterProps */])(this.props);
      var customDotProps = Object(types["c" /* filterProps */])(dot, true);
      var dots = points.map(function (entry, i) {
        var dotProps = _objectSpread(_objectSpread(_objectSpread({
          key: "dot-".concat(i),
          r: 3
        }, areaProps), customDotProps), {}, {
          dataKey: dataKey,
          cx: entry.x,
          cy: entry.y,
          index: i,
          value: entry.value,
          payload: entry.payload
        });

        return Area.renderDotItem(dot, dotProps);
      });
      var dotsProps = {
        clipPath: needClip ? "url(#clipPath-".concat(clipPathId, ")") : null
      };
      return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], _extends({
        className: "recharts-area-dots"
      }, dotsProps), dots);
    }
  }, {
    key: "renderHorizontalRect",
    value: function renderHorizontalRect(alpha) {
      var _this$props2 = this.props,
          baseLine = _this$props2.baseLine,
          points = _this$props2.points,
          strokeWidth = _this$props2.strokeWidth;
      var startX = points[0].x;
      var endX = points[points.length - 1].x;
      var width = alpha * Math.abs(startX - endX);

      var maxY = max_default()(points.map(function (entry) {
        return entry.y || 0;
      }));

      if (Object(DataUtils["h" /* isNumber */])(baseLine) && typeof baseLine === 'number') {
        maxY = Math.max(baseLine, maxY);
      } else if (baseLine && isArray_default()(baseLine) && baseLine.length) {
        maxY = Math.max(max_default()(baseLine.map(function (entry) {
          return entry.y || 0;
        })), maxY);
      }

      if (Object(DataUtils["h" /* isNumber */])(maxY)) {
        return /*#__PURE__*/react_default.a.createElement("rect", {
          x: startX < endX ? startX : startX - width,
          y: 0,
          width: width,
          height: Math.floor(maxY + (strokeWidth ? parseInt("".concat(strokeWidth), 10) : 1))
        });
      }

      return null;
    }
  }, {
    key: "renderVerticalRect",
    value: function renderVerticalRect(alpha) {
      var _this$props3 = this.props,
          baseLine = _this$props3.baseLine,
          points = _this$props3.points,
          strokeWidth = _this$props3.strokeWidth;
      var startY = points[0].y;
      var endY = points[points.length - 1].y;
      var height = alpha * Math.abs(startY - endY);

      var maxX = max_default()(points.map(function (entry) {
        return entry.x || 0;
      }));

      if (Object(DataUtils["h" /* isNumber */])(baseLine) && typeof baseLine === 'number') {
        maxX = Math.max(baseLine, maxX);
      } else if (baseLine && isArray_default()(baseLine) && baseLine.length) {
        maxX = Math.max(max_default()(baseLine.map(function (entry) {
          return entry.x || 0;
        })), maxX);
      }

      if (Object(DataUtils["h" /* isNumber */])(maxX)) {
        return /*#__PURE__*/react_default.a.createElement("rect", {
          x: 0,
          y: startY < endY ? startY : startY - height,
          width: maxX + (strokeWidth ? parseInt("".concat(strokeWidth), 10) : 1),
          height: Math.floor(height)
        });
      }

      return null;
    }
  }, {
    key: "renderClipRect",
    value: function renderClipRect(alpha) {
      var layout = this.props.layout;

      if (layout === 'vertical') {
        return this.renderVerticalRect(alpha);
      }

      return this.renderHorizontalRect(alpha);
    }
  }, {
    key: "renderAreaStatically",
    value: function renderAreaStatically(points, baseLine, needClip, clipPathId) {
      // eslint-disable-next-line @typescript-eslint/no-unused-vars
      var _this$props4 = this.props,
          layout = _this$props4.layout,
          type = _this$props4.type,
          stroke = _this$props4.stroke,
          connectNulls = _this$props4.connectNulls,
          isRange = _this$props4.isRange,
          ref = _this$props4.ref,
          others = _objectWithoutProperties(_this$props4, ["layout", "type", "stroke", "connectNulls", "isRange", "ref"]);

      return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], {
        clipPath: needClip ? "url(#clipPath-".concat(clipPathId, ")") : null
      }, /*#__PURE__*/react_default.a.createElement(Curve["a" /* Curve */], _extends({}, Object(types["c" /* filterProps */])(others, true), {
        points: points,
        connectNulls: connectNulls,
        type: type,
        baseLine: baseLine,
        layout: layout,
        stroke: "none",
        className: "recharts-area-area"
      })), stroke !== 'none' && /*#__PURE__*/react_default.a.createElement(Curve["a" /* Curve */], _extends({}, Object(types["c" /* filterProps */])(this.props), {
        className: "recharts-area-curve",
        layout: layout,
        type: type,
        connectNulls: connectNulls,
        fill: "none",
        points: points
      })), stroke !== 'none' && isRange && /*#__PURE__*/react_default.a.createElement(Curve["a" /* Curve */], _extends({}, Object(types["c" /* filterProps */])(this.props), {
        className: "recharts-area-curve",
        layout: layout,
        type: type,
        connectNulls: connectNulls,
        fill: "none",
        points: baseLine
      })));
    }
  }, {
    key: "renderAreaWithAnimation",
    value: function renderAreaWithAnimation(needClip, clipPathId) {
      var _this2 = this;

      var _this$props5 = this.props,
          points = _this$props5.points,
          baseLine = _this$props5.baseLine,
          isAnimationActive = _this$props5.isAnimationActive,
          animationBegin = _this$props5.animationBegin,
          animationDuration = _this$props5.animationDuration,
          animationEasing = _this$props5.animationEasing,
          animationId = _this$props5.animationId;
      var _this$state = this.state,
          prevPoints = _this$state.prevPoints,
          prevBaseLine = _this$state.prevBaseLine; // const clipPathId = _.isNil(id) ? this.id : id;

      return /*#__PURE__*/react_default.a.createElement(es6["a" /* default */], {
        begin: animationBegin,
        duration: animationDuration,
        isActive: isAnimationActive,
        easing: animationEasing,
        from: {
          t: 0
        },
        to: {
          t: 1
        },
        key: "area-".concat(animationId),
        onAnimationEnd: this.handleAnimationEnd,
        onAnimationStart: this.handleAnimationStart
      }, function (_ref) {
        var t = _ref.t;

        if (prevPoints) {
          var prevPointsDiffFactor = prevPoints.length / points.length; // update animtaion

          var stepPoints = points.map(function (entry, index) {
            var prevPointIndex = Math.floor(index * prevPointsDiffFactor);

            if (prevPoints[prevPointIndex]) {
              var prev = prevPoints[prevPointIndex];
              var interpolatorX = Object(DataUtils["f" /* interpolateNumber */])(prev.x, entry.x);
              var interpolatorY = Object(DataUtils["f" /* interpolateNumber */])(prev.y, entry.y);
              return _objectSpread(_objectSpread({}, entry), {}, {
                x: interpolatorX(t),
                y: interpolatorY(t)
              });
            }

            return entry;
          });
          var stepBaseLine;

          if (Object(DataUtils["h" /* isNumber */])(baseLine) && typeof baseLine === 'number') {
            var interpolator = Object(DataUtils["f" /* interpolateNumber */])(prevBaseLine, baseLine);
            stepBaseLine = interpolator(t);
          } else if (isNil_default()(baseLine) || isNaN_default()(baseLine)) {
            var _interpolator = Object(DataUtils["f" /* interpolateNumber */])(prevBaseLine, 0);

            stepBaseLine = _interpolator(t);
          } else {
            stepBaseLine = baseLine.map(function (entry, index) {
              var prevPointIndex = Math.floor(index * prevPointsDiffFactor);

              if (prevBaseLine[prevPointIndex]) {
                var prev = prevBaseLine[prevPointIndex];
                var interpolatorX = Object(DataUtils["f" /* interpolateNumber */])(prev.x, entry.x);
                var interpolatorY = Object(DataUtils["f" /* interpolateNumber */])(prev.y, entry.y);
                return _objectSpread(_objectSpread({}, entry), {}, {
                  x: interpolatorX(t),
                  y: interpolatorY(t)
                });
              }

              return entry;
            });
          }

          return _this2.renderAreaStatically(stepPoints, stepBaseLine, needClip, clipPathId);
        }

        return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], null, /*#__PURE__*/react_default.a.createElement("defs", null, /*#__PURE__*/react_default.a.createElement("clipPath", {
          id: "animationClipPath-".concat(clipPathId)
        }, _this2.renderClipRect(t))), /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], {
          clipPath: "url(#animationClipPath-".concat(clipPathId, ")")
        }, _this2.renderAreaStatically(points, baseLine, needClip, clipPathId)));
      });
    }
  }, {
    key: "renderArea",
    value: function renderArea(needClip, clipPathId) {
      var _this$props6 = this.props,
          points = _this$props6.points,
          baseLine = _this$props6.baseLine,
          isAnimationActive = _this$props6.isAnimationActive;
      var _this$state2 = this.state,
          prevPoints = _this$state2.prevPoints,
          prevBaseLine = _this$state2.prevBaseLine,
          totalLength = _this$state2.totalLength;

      if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !isEqual_default()(prevPoints, points) || !isEqual_default()(prevBaseLine, baseLine))) {
        return this.renderAreaWithAnimation(needClip, clipPathId);
      }

      return this.renderAreaStatically(points, baseLine, needClip, clipPathId);
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props7 = this.props,
          hide = _this$props7.hide,
          dot = _this$props7.dot,
          points = _this$props7.points,
          className = _this$props7.className,
          top = _this$props7.top,
          left = _this$props7.left,
          xAxis = _this$props7.xAxis,
          yAxis = _this$props7.yAxis,
          width = _this$props7.width,
          height = _this$props7.height,
          isAnimationActive = _this$props7.isAnimationActive,
          id = _this$props7.id;

      if (hide || !points || !points.length) {
        return null;
      }

      var isAnimationFinished = this.state.isAnimationFinished;
      var hasSinglePoint = points.length === 1;
      var layerClass = classnames_default()('recharts-area', className);
      var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;
      var clipPathId = isNil_default()(id) ? this.id : id;
      return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], {
        className: layerClass
      }, needClip ? /*#__PURE__*/react_default.a.createElement("defs", null, /*#__PURE__*/react_default.a.createElement("clipPath", {
        id: "clipPath-".concat(clipPathId)
      }, /*#__PURE__*/react_default.a.createElement("rect", {
        x: left,
        y: top,
        width: width,
        height: Math.floor(height)
      }))) : null, !hasSinglePoint ? this.renderArea(needClip, clipPathId) : null, (dot || hasSinglePoint) && this.renderDots(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList["a" /* LabelList */].renderCallByParent(this.props, points));
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.animationId !== prevState.prevAnimationId) {
        return {
          prevAnimationId: nextProps.animationId,
          curPoints: nextProps.points,
          curBaseLine: nextProps.baseLine,
          prevPoints: prevState.curPoints,
          prevBaseLine: prevState.curBaseLine
        };
      }

      if (nextProps.points !== prevState.curPoints || nextProps.baseLine !== prevState.curBaseLine) {
        return {
          curPoints: nextProps.points,
          curBaseLine: nextProps.baseLine
        };
      }

      return null;
    }
  }]);

  return Area;
}(react["PureComponent"]);
Area_Area.displayName = 'Area';
Area_Area.defaultProps = {
  stroke: '#3182bd',
  fill: '#3182bd',
  fillOpacity: 0.6,
  xAxisId: 0,
  yAxisId: 0,
  legendType: 'line',
  connectNulls: false,
  // points of area
  points: [],
  dot: false,
  activeDot: true,
  hide: false,
  isAnimationActive: !Global["a" /* Global */].isSsr,
  animationBegin: 0,
  animationDuration: 1500,
  animationEasing: 'ease'
};

Area_Area.getBaseValue = function (props, xAxis, yAxis) {
  var layout = props.layout,
      baseValue = props.baseValue;

  if (Object(DataUtils["h" /* isNumber */])(baseValue) && typeof baseValue === 'number') {
    return baseValue;
  }

  var numericAxis = layout === 'horizontal' ? yAxis : xAxis;
  var domain = numericAxis.scale.domain();

  if (numericAxis.type === 'number') {
    var max = Math.max(domain[0], domain[1]);
    var min = Math.min(domain[0], domain[1]);

    if (baseValue === 'dataMin') {
      return min;
    }

    if (baseValue === 'dataMax') {
      return max;
    }

    return max < 0 ? max : Math.max(Math.min(domain[0], domain[1]), 0);
  }

  if (baseValue === 'dataMin') {
    return domain[0];
  }

  if (baseValue === 'dataMax') {
    return domain[1];
  }

  return domain[0];
};

Area_Area.getComposedData = function (_ref2) {
  var props = _ref2.props,
      xAxis = _ref2.xAxis,
      yAxis = _ref2.yAxis,
      xAxisTicks = _ref2.xAxisTicks,
      yAxisTicks = _ref2.yAxisTicks,
      bandSize = _ref2.bandSize,
      dataKey = _ref2.dataKey,
      stackedData = _ref2.stackedData,
      dataStartIndex = _ref2.dataStartIndex,
      displayedData = _ref2.displayedData,
      offset = _ref2.offset;
  var layout = props.layout;
  var hasStack = stackedData && stackedData.length;
  var baseValue = Area_Area.getBaseValue(props, xAxis, yAxis);
  var isRange = false;
  var points = displayedData.map(function (entry, index) {
    var originalValue = Object(ChartUtils["w" /* getValueByDataKey */])(entry, dataKey);
    var value;

    if (hasStack) {
      value = stackedData[dataStartIndex + index];
    } else {
      value = originalValue;

      if (!isArray_default()(value)) {
        value = [baseValue, value];
      } else {
        isRange = true;
      }
    }

    var isBreakPoint = isNil_default()(value[1]) || hasStack && isNil_default()(originalValue);

    if (layout === 'horizontal') {
      return {
        x: Object(ChartUtils["k" /* getCateCoordinateOfLine */])({
          axis: xAxis,
          ticks: xAxisTicks,
          bandSize: bandSize,
          entry: entry,
          index: index
        }),
        y: isBreakPoint ? null : yAxis.scale(value[1]),
        value: value,
        payload: entry
      };
    }

    return {
      x: isBreakPoint ? null : xAxis.scale(value[1]),
      y: Object(ChartUtils["k" /* getCateCoordinateOfLine */])({
        axis: yAxis,
        ticks: yAxisTicks,
        bandSize: bandSize,
        entry: entry,
        index: index
      }),
      value: value,
      payload: entry
    };
  });
  var baseLine;

  if (hasStack || isRange) {
    baseLine = points.map(function (entry) {
      if (layout === 'horizontal') {
        return {
          x: entry.x,
          y: !isNil_default()(get_default()(entry, 'value[0]')) && !isNil_default()(get_default()(entry, 'y')) ? yAxis.scale(get_default()(entry, 'value[0]')) : null
        };
      }

      return {
        x: !isNil_default()(get_default()(entry, 'value[0]')) ? xAxis.scale(get_default()(entry, 'value[0]')) : null,
        y: entry.y
      };
    });
  } else if (layout === 'horizontal') {
    baseLine = yAxis.scale(baseValue);
  } else {
    baseLine = xAxis.scale(baseValue);
  }

  return _objectSpread({
    points: points,
    baseLine: baseLine,
    layout: layout,
    isRange: isRange
  }, offset);
};

Area_Area.renderDotItem = function (option, props) {
  var dotItem;

  if ( /*#__PURE__*/react_default.a.isValidElement(option)) {
    dotItem = /*#__PURE__*/react_default.a.cloneElement(option, props);
  } else if (isFunction_default()(option)) {
    dotItem = option(props);
  } else {
    dotItem = /*#__PURE__*/react_default.a.createElement(Dot["a" /* Dot */], _extends({}, props, {
      className: "recharts-area-dot"
    }));
  }

  return dotItem;
};
// EXTERNAL MODULE: ./node_modules/recharts/es6/cartesian/Bar.js
var Bar = __webpack_require__(669);

// EXTERNAL MODULE: ./node_modules/recharts/es6/cartesian/Line.js
var Line = __webpack_require__(416);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/ReactUtils.js
var ReactUtils = __webpack_require__(68);

// CONCATENATED MODULE: ./node_modules/recharts/es6/cartesian/ZAxis.js
/**
 * @fileOverview Z Axis
 */
var ZAxis = function ZAxis() {
  return null;
};
ZAxis.displayName = 'ZAxis';
ZAxis.defaultProps = {
  zAxisId: 0,
  range: [64, 64],
  scale: 'auto',
  type: 'number'
};
// EXTERNAL MODULE: ./node_modules/recharts/es6/shape/Symbols.js + 9 modules
var Symbols = __webpack_require__(420);

// EXTERNAL MODULE: ./node_modules/recharts/es6/cartesian/ErrorBar.js
var ErrorBar = __webpack_require__(317);

// EXTERNAL MODULE: ./node_modules/recharts/es6/component/Cell.js
var Cell = __webpack_require__(318);

// CONCATENATED MODULE: ./node_modules/recharts/es6/cartesian/Scatter.js
function Scatter_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { Scatter_typeof = function _typeof(obj) { return typeof obj; }; } else { Scatter_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return Scatter_typeof(obj); }





function Scatter_extends() { Scatter_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 Scatter_extends.apply(this, arguments); }

function Scatter_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; }

function Scatter_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { Scatter_ownKeys(Object(source), true).forEach(function (key) { Scatter_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { Scatter_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function Scatter_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; }

function Scatter_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function Scatter_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function Scatter_createClass(Constructor, protoProps, staticProps) { if (protoProps) Scatter_defineProperties(Constructor.prototype, protoProps); if (staticProps) Scatter_defineProperties(Constructor, staticProps); return Constructor; }

function Scatter_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) Scatter_setPrototypeOf(subClass, superClass); }

function Scatter_setPrototypeOf(o, p) { Scatter_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return Scatter_setPrototypeOf(o, p); }

function Scatter_createSuper(Derived) { var hasNativeReflectConstruct = Scatter_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = Scatter_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = Scatter_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Scatter_possibleConstructorReturn(this, result); }; }

function Scatter_possibleConstructorReturn(self, call) { if (call && (Scatter_typeof(call) === "object" || typeof call === "function")) { return call; } return Scatter_assertThisInitialized(self); }

function Scatter_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function Scatter_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function Scatter_getPrototypeOf(o) { Scatter_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return Scatter_getPrototypeOf(o); }

/**
 * @fileOverview Render a group of scatters
 */















var Scatter_Scatter = /*#__PURE__*/function (_PureComponent) {
  Scatter_inherits(Scatter, _PureComponent);

  var _super = Scatter_createSuper(Scatter);

  function Scatter() {
    var _this;

    Scatter_classCallCheck(this, Scatter);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _super.call.apply(_super, [this].concat(args));
    _this.state = {
      isAnimationFinished: false
    };

    _this.handleAnimationEnd = function () {
      _this.setState({
        isAnimationFinished: true
      });
    };

    _this.handleAnimationStart = function () {
      _this.setState({
        isAnimationFinished: false
      });
    };

    _this.id = Object(DataUtils["k" /* uniqueId */])('recharts-scatter-');
    return _this;
  }

  Scatter_createClass(Scatter, [{
    key: "renderSymbolsStatically",
    value: function renderSymbolsStatically(points) {
      var _this2 = this;

      var _this$props = this.props,
          shape = _this$props.shape,
          activeShape = _this$props.activeShape,
          activeIndex = _this$props.activeIndex;
      var baseProps = Object(types["c" /* filterProps */])(this.props);
      return points.map(function (entry, i) {
        var props = Scatter_objectSpread(Scatter_objectSpread({
          key: "symbol-".concat(i)
        }, baseProps), entry);

        return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], Scatter_extends({
          className: "recharts-scatter-symbol"
        }, Object(types["b" /* adaptEventsOfChild */])(_this2.props, entry, i), {
          key: "symbol-".concat(i) // eslint-disable-line react/no-array-index-key

        }), Scatter.renderSymbolItem(activeIndex === i ? activeShape : shape, props));
      });
    }
  }, {
    key: "renderSymbolsWithAnimation",
    value: function renderSymbolsWithAnimation() {
      var _this3 = this;

      var _this$props2 = this.props,
          points = _this$props2.points,
          isAnimationActive = _this$props2.isAnimationActive,
          animationBegin = _this$props2.animationBegin,
          animationDuration = _this$props2.animationDuration,
          animationEasing = _this$props2.animationEasing,
          animationId = _this$props2.animationId;
      var prevPoints = this.state.prevPoints;
      return /*#__PURE__*/react_default.a.createElement(es6["a" /* default */], {
        begin: animationBegin,
        duration: animationDuration,
        isActive: isAnimationActive,
        easing: animationEasing,
        from: {
          t: 0
        },
        to: {
          t: 1
        },
        key: "pie-".concat(animationId),
        onAnimationEnd: this.handleAnimationEnd,
        onAnimationStart: this.handleAnimationStart
      }, function (_ref) {
        var t = _ref.t;
        var stepData = points.map(function (entry, index) {
          var prev = prevPoints && prevPoints[index];

          if (prev) {
            var interpolatorCx = Object(DataUtils["f" /* interpolateNumber */])(prev.cx, entry.cx);
            var interpolatorCy = Object(DataUtils["f" /* interpolateNumber */])(prev.cy, entry.cy);
            var interpolatorSize = Object(DataUtils["f" /* interpolateNumber */])(prev.size, entry.size);
            return Scatter_objectSpread(Scatter_objectSpread({}, entry), {}, {
              cx: interpolatorCx(t),
              cy: interpolatorCy(t),
              size: interpolatorSize(t)
            });
          }

          var interpolator = Object(DataUtils["f" /* interpolateNumber */])(0, entry.size);
          return Scatter_objectSpread(Scatter_objectSpread({}, entry), {}, {
            size: interpolator(t)
          });
        });
        return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], null, _this3.renderSymbolsStatically(stepData));
      });
    }
  }, {
    key: "renderSymbols",
    value: function renderSymbols() {
      var _this$props3 = this.props,
          points = _this$props3.points,
          isAnimationActive = _this$props3.isAnimationActive;
      var prevPoints = this.state.prevPoints;

      if (isAnimationActive && points && points.length && (!prevPoints || !isEqual_default()(prevPoints, points))) {
        return this.renderSymbolsWithAnimation();
      }

      return this.renderSymbolsStatically(points);
    }
  }, {
    key: "renderErrorBar",
    value: function renderErrorBar() {
      var isAnimationActive = this.props.isAnimationActive;

      if (isAnimationActive && !this.state.isAnimationFinished) {
        return null;
      }

      var _this$props4 = this.props,
          points = _this$props4.points,
          xAxis = _this$props4.xAxis,
          yAxis = _this$props4.yAxis,
          children = _this$props4.children;
      var errorBarItems = Object(ReactUtils["a" /* findAllByType */])(children, ErrorBar["a" /* ErrorBar */].displayName);

      if (!errorBarItems) {
        return null;
      }

      function dataPointFormatterY(dataPoint, dataKey) {
        return {
          x: dataPoint.cx,
          y: dataPoint.cy,
          value: +dataPoint.node.y,
          errorVal: Object(ChartUtils["w" /* getValueByDataKey */])(dataPoint, dataKey)
        };
      }

      function dataPointFormatterX(dataPoint, dataKey) {
        return {
          x: dataPoint.cx,
          y: dataPoint.cy,
          value: +dataPoint.node.x,
          errorVal: Object(ChartUtils["w" /* getValueByDataKey */])(dataPoint, dataKey)
        };
      }

      return errorBarItems.map(function (item, i) {
        var direction = item.props.direction;
        return /*#__PURE__*/react_default.a.cloneElement(item, {
          key: i,
          // eslint-disable-line react/no-array-index-key
          data: points,
          xAxis: xAxis,
          yAxis: yAxis,
          layout: direction === 'x' ? 'vertical' : 'horizontal',
          dataPointFormatter: direction === 'x' ? dataPointFormatterX : dataPointFormatterY
        });
      });
    }
  }, {
    key: "renderLine",
    value: function renderLine() {
      var _this$props5 = this.props,
          points = _this$props5.points,
          line = _this$props5.line,
          lineType = _this$props5.lineType,
          lineJointType = _this$props5.lineJointType;
      var scatterProps = Object(types["c" /* filterProps */])(this.props);
      var customLineProps = Object(types["c" /* filterProps */])(line);
      var linePoints, lineItem;

      if (lineType === 'joint') {
        linePoints = points.map(function (entry) {
          return {
            x: entry.cx,
            y: entry.cy
          };
        });
      } else if (lineType === 'fitting') {
        var _getLinearRegression = Object(DataUtils["c" /* getLinearRegression */])(points),
            xmin = _getLinearRegression.xmin,
            xmax = _getLinearRegression.xmax,
            a = _getLinearRegression.a,
            b = _getLinearRegression.b;

        var linearExp = function linearExp(x) {
          return a * x + b;
        };

        linePoints = [{
          x: xmin,
          y: linearExp(xmin)
        }, {
          x: xmax,
          y: linearExp(xmax)
        }];
      }

      var lineProps = Scatter_objectSpread(Scatter_objectSpread(Scatter_objectSpread({}, scatterProps), {}, {
        fill: 'none',
        stroke: scatterProps && scatterProps.fill
      }, customLineProps), {}, {
        points: linePoints
      });

      if ( /*#__PURE__*/react_default.a.isValidElement(line)) {
        lineItem = /*#__PURE__*/react_default.a.cloneElement(line, lineProps);
      } else if (isFunction_default()(line)) {
        lineItem = line(lineProps);
      } else {
        lineItem = /*#__PURE__*/react_default.a.createElement(Curve["a" /* Curve */], Scatter_extends({}, lineProps, {
          type: lineJointType
        }));
      }

      return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], {
        className: "recharts-scatter-line",
        key: "recharts-scatter-line"
      }, lineItem);
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props6 = this.props,
          hide = _this$props6.hide,
          points = _this$props6.points,
          line = _this$props6.line,
          className = _this$props6.className,
          xAxis = _this$props6.xAxis,
          yAxis = _this$props6.yAxis,
          left = _this$props6.left,
          top = _this$props6.top,
          width = _this$props6.width,
          height = _this$props6.height,
          id = _this$props6.id,
          isAnimationActive = _this$props6.isAnimationActive;

      if (hide || !points || !points.length) {
        return null;
      }

      var isAnimationFinished = this.state.isAnimationFinished;
      var layerClass = classnames_default()('recharts-scatter', className);
      var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;
      var clipPathId = isNil_default()(id) ? this.id : id;
      return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], {
        className: layerClass,
        clipPath: needClip ? "url(#clipPath-".concat(clipPathId, ")") : null
      }, needClip ? /*#__PURE__*/react_default.a.createElement("defs", null, /*#__PURE__*/react_default.a.createElement("clipPath", {
        id: "clipPath-".concat(clipPathId)
      }, /*#__PURE__*/react_default.a.createElement("rect", {
        x: left,
        y: top,
        width: width,
        height: height
      }))) : null, line && this.renderLine(), this.renderErrorBar(), /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], {
        key: "recharts-scatter-symbols"
      }, this.renderSymbols()), (!isAnimationActive || isAnimationFinished) && LabelList["a" /* LabelList */].renderCallByParent(this.props, points));
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.animationId !== prevState.prevAnimationId) {
        return {
          prevAnimationId: nextProps.animationId,
          curPoints: nextProps.points,
          prevPoints: prevState.curPoints
        };
      }

      if (nextProps.points !== prevState.curPoints) {
        return {
          curPoints: nextProps.points
        };
      }

      return null;
    }
  }, {
    key: "renderSymbolItem",
    value: function renderSymbolItem(option, props) {
      var symbol;

      if ( /*#__PURE__*/react_default.a.isValidElement(option)) {
        symbol = /*#__PURE__*/react_default.a.cloneElement(option, props);
      } else if (isFunction_default()(option)) {
        symbol = option(props);
      } else if (typeof option === 'string') {
        symbol = /*#__PURE__*/react_default.a.createElement(Symbols["a" /* Symbols */], Scatter_extends({}, props, {
          type: option
        }));
      }

      return symbol;
    }
  }]);

  return Scatter;
}(react["PureComponent"]);
Scatter_Scatter.displayName = 'Scatter';
Scatter_Scatter.defaultProps = {
  xAxisId: 0,
  yAxisId: 0,
  zAxisId: 0,
  legendType: 'circle',
  lineType: 'joint',
  lineJointType: 'linear',
  data: [],
  shape: 'circle',
  hide: false,
  isAnimationActive: !Global["a" /* Global */].isSsr,
  animationBegin: 0,
  animationDuration: 400,
  animationEasing: 'linear'
};

Scatter_Scatter.getComposedData = function (_ref2) {
  var xAxis = _ref2.xAxis,
      yAxis = _ref2.yAxis,
      zAxis = _ref2.zAxis,
      item = _ref2.item,
      displayedData = _ref2.displayedData,
      xAxisTicks = _ref2.xAxisTicks,
      yAxisTicks = _ref2.yAxisTicks,
      offset = _ref2.offset;
  var tooltipType = item.props.tooltipType;
  var cells = Object(ReactUtils["a" /* findAllByType */])(item.props.children, Cell["a" /* Cell */].displayName);
  var xAxisDataKey = isNil_default()(xAxis.dataKey) ? item.props.dataKey : xAxis.dataKey;
  var yAxisDataKey = isNil_default()(yAxis.dataKey) ? item.props.dataKey : yAxis.dataKey;
  var zAxisDataKey = zAxis && zAxis.dataKey;
  var defaultRangeZ = zAxis ? zAxis.range : ZAxis.defaultProps.range;
  var defaultZ = defaultRangeZ && defaultRangeZ[0];
  var xBandSize = xAxis.scale.bandwidth ? xAxis.scale.bandwidth() : 0;
  var yBandSize = yAxis.scale.bandwidth ? yAxis.scale.bandwidth() : 0;
  var points = displayedData.map(function (entry, index) {
    var x = Object(ChartUtils["w" /* getValueByDataKey */])(entry, xAxisDataKey);
    var y = Object(ChartUtils["w" /* getValueByDataKey */])(entry, yAxisDataKey);
    var z = !isNil_default()(zAxisDataKey) && Object(ChartUtils["w" /* getValueByDataKey */])(entry, zAxisDataKey) || '-';
    var tooltipPayload = [{
      name: isNil_default()(xAxis.dataKey) ? item.props.name : xAxis.name || xAxis.dataKey,
      unit: xAxis.unit || '',
      value: x,
      payload: entry,
      dataKey: xAxisDataKey,
      type: tooltipType
    }, {
      name: isNil_default()(yAxis.dataKey) ? item.props.name : yAxis.name || yAxis.dataKey,
      unit: yAxis.unit || '',
      value: y,
      payload: entry,
      dataKey: yAxisDataKey,
      type: tooltipType
    }];

    if (z !== '-') {
      tooltipPayload.push({
        name: zAxis.name || zAxis.dataKey,
        unit: zAxis.unit || '',
        value: z,
        payload: entry,
        dataKey: zAxisDataKey,
        type: tooltipType
      });
    }

    var cx = Object(ChartUtils["k" /* getCateCoordinateOfLine */])({
      axis: xAxis,
      ticks: xAxisTicks,
      bandSize: xBandSize,
      entry: entry,
      index: index,
      dataKey: xAxisDataKey
    });
    var cy = Object(ChartUtils["k" /* getCateCoordinateOfLine */])({
      axis: yAxis,
      ticks: yAxisTicks,
      bandSize: yBandSize,
      entry: entry,
      index: index,
      dataKey: yAxisDataKey
    });
    var size = z !== '-' ? zAxis.scale(z) : defaultZ;
    var radius = Math.sqrt(Math.max(size, 0) / Math.PI);
    return Scatter_objectSpread(Scatter_objectSpread({}, entry), {}, {
      cx: cx,
      cy: cy,
      x: cx - radius,
      y: cy - radius,
      xAxis: xAxis,
      yAxis: yAxis,
      zAxis: zAxis,
      width: 2 * radius,
      height: 2 * radius,
      size: size,
      node: {
        x: x,
        y: y,
        z: z
      },
      tooltipPayload: tooltipPayload,
      tooltipPosition: {
        x: cx,
        y: cy
      },
      payload: entry
    }, cells && cells[index] && cells[index].props);
  });
  return Scatter_objectSpread({
    points: points
  }, offset);
};
// EXTERNAL MODULE: ./node_modules/recharts/es6/cartesian/XAxis.js
var XAxis = __webpack_require__(417);

// EXTERNAL MODULE: ./node_modules/recharts/es6/cartesian/YAxis.js
var YAxis = __webpack_require__(418);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/CartesianUtils.js
var CartesianUtils = __webpack_require__(185);

// CONCATENATED MODULE: ./node_modules/recharts/es6/chart/ComposedChart.js
/**
 * @fileOverview Composed Chart
 */









var ComposedChart = Object(generateCategoricalChart["a" /* generateCategoricalChart */])({
  chartName: 'ComposedChart',
  GraphicalChild: [Line["a" /* Line */], Area_Area, Bar["a" /* Bar */], Scatter_Scatter],
  axisComponents: [{
    axisType: 'xAxis',
    AxisComp: XAxis["a" /* XAxis */]
  }, {
    axisType: 'yAxis',
    AxisComp: YAxis["a" /* YAxis */]
  }, {
    axisType: 'zAxis',
    AxisComp: ZAxis
  }],
  formatAxisMap: CartesianUtils["b" /* formatAxisMap */]
});
// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ common_Multiselect_Multiselect; });

// EXTERNAL MODULE: ./node_modules/antd/lib/input/style/index.js
var style = __webpack_require__(102);

// EXTERNAL MODULE: ./node_modules/antd/lib/input/index.js
var input = __webpack_require__(52);
var input_default = /*#__PURE__*/__webpack_require__.n(input);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js
var esm_typeof = __webpack_require__(322);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
var classCallCheck = __webpack_require__(9);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js
var createClass = __webpack_require__(10);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__(11);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
var getPrototypeOf = __webpack_require__(12);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
var inherits = __webpack_require__(13);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
var assertThisInitialized = __webpack_require__(16);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/extends.js
var esm_extends = __webpack_require__(33);

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-transition-group/index.js
var react_transition_group = __webpack_require__(264);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__(7);

// EXTERNAL MODULE: ./node_modules/react-intl/lib/index.es.js
var index_es = __webpack_require__(4);

// EXTERNAL MODULE: ./node_modules/prop-types/index.js
var prop_types = __webpack_require__(3);
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);

// EXTERNAL MODULE: ./node_modules/match-sorter/dist/match-sorter.esm.js
var match_sorter_esm = __webpack_require__(377);

// EXTERNAL MODULE: ./src/js/components/common/Checkbox/index.js
var common_Checkbox = __webpack_require__(114);

// EXTERNAL MODULE: ./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js + 3 modules
var styled_base_browser_esm = __webpack_require__(6);

// CONCATENATED MODULE: ./src/js/components/common/Multiselect/styled.js
var Select=Object(styled_base_browser_esm["a" /* default */])("div",{target:"ezvnttc0",label:"Select"})("border:1px solid #919db4;border-radius:",function(_ref){var open=_ref.open;return open?'15px 15px 0 0':'15px 15px 15px 15px';},";padding-left:10px;font-size:14px;text-align:left;color:#586784;position:relative;min-width:190px;width:",function(_ref2){var width=_ref2.width;return width||null;},";height:",function(_ref3){var height=_ref3.height;return height||'32px';},";line-height:",function(_ref4){var lineHeight=_ref4.lineHeight,height=_ref4.height;return lineHeight||height||'32px';},";cursor:pointer;transition:all 0.28s cubic-bezier(0.645,0.045,0.355,1);:hover{border-color:#0070ba;}"+( true?"":undefined));var DropdownWrapper=Object(styled_base_browser_esm["a" /* default */])("div",{target:"ezvnttc1",label:"DropdownWrapper"})("border-radius:0 0 10px 10px;overflow:hidden;border:1px solid #919db4;z-index:",function(_ref5){var zIndex=_ref5.zIndex;return zIndex||"100";},";border-top:0;position:absolute;width:",function(_ref6){var width=_ref6.width;return width||'190px';},";"+( true?"":undefined));var Dropbdown=Object(styled_base_browser_esm["a" /* default */])("ul",{target:"ezvnttc2",label:"Dropbdown"})( true?{name:"lly4h8",styles:"list-style:none;background-color:#ffffff;overflow:auto;max-height:150px;margin-bottom:0;"}:undefined);var Item=Object(styled_base_browser_esm["a" /* default */])("li",{target:"ezvnttc3",label:"Item"})("height:28px;padding:8px 10px;font-size:12px;display:flex;align-items:center;font-size:12px;color:#586784;cursor:pointer;:hover{background-color:#edf4fc;.ant-checkbox-inner{border-color:",function(_ref7){var theme=_ref7.theme;return theme.colors.blueMed;}," !important;}}"+( true?"":undefined));
// CONCATENATED MODULE: ./src/js/components/common/Multiselect/Multiselect.js
var _class;var Multiselect_Checkbox=function Checkbox(props){return Object(core_browser_esm["c" /* jsx */])(common_Checkbox["a" /* default */],Object(esm_extends["a" /* default */])({width:"12px",height:"12px",marginRight:"10px"},props));};var Multiselect_Multiselect=Object(index_es["d" /* injectIntl */])(_class=Object(index_module["c" /* observer */])(_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(Multiselect,_Component);function Multiselect(props){var _this;Object(classCallCheck["a" /* default */])(this,Multiselect);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(Multiselect).call(this,props));_this.state={open:false,optionsFilter:''};_this.toggleDropdown=_this.toggleDropdown.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));_this.handleClickOutside=_this.handleClickOutside.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));_this.handleEscape=_this.handleEscape.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));_this.filteredChildren=_this.filteredChildren.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));_this.editFilter=_this.editFilter.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));return _this;}Object(createClass["a" /* default */])(Multiselect,[{key:"componentDidMount",value:function componentDidMount(){document.addEventListener('mousedown',this.handleClickOutside);document.addEventListener('keydown',this.handleEscape);}},{key:"componentWillUnmount",value:function componentWillUnmount(){document.removeEventListener('mousedown',this.handleClickOutside);document.removeEventListener('keydown',this.handleEscape);}},{key:"handleEscape",value:function handleEscape(e){var open=this.state.open;if(e.keyCode===27&&open){this.toggleDropdown(false);}}},{key:"toggleDropdown",value:function toggleDropdown(force){var _this2=this;var open=this.state.open;var status=Object(esm_typeof["a" /* default */])(force)==='object'?undefined:force;this.setState({open:status||!open},function(){if(status||!open){document.querySelector('input.ant-input#text-filter-input').focus();}else{_this2.editFilter('');}});}},{key:"handleClickOutside",value:function handleClickOutside(e){var open=this.state.open;if(this.elRef&&!this.elRef.contains(e.target)){if(open){this.toggleDropdown(false);}}}},{key:"editFilter",value:function editFilter(e){this.setState({optionsFilter:e.target?e.target.value:e});}},{key:"filteredChildren",value:function filteredChildren(){var optionsFilter=this.state.optionsFilter;var children=this.props.children;if(optionsFilter){return Object(match_sorter_esm["a" /* default */])(children,optionsFilter,{keys:['props.children'],threshold:match_sorter_esm["a" /* default */].rankings.STARTS_WITH});}return children;}},{key:"render",value:function render(){var _this3=this;var open=this.state.open;var _this$props=this.props,values=_this$props.values,toggleSellectAllAccounts=_this$props.toggleSellectAllAccounts,intl=_this$props.intl,height=_this$props.height,width=_this$props.width,fontSize=_this$props.fontSize,children=_this$props.children,zIndex=_this$props.zIndex;var optionsFilter=this.state.optionsFilter;var childrenToShow=this.filteredChildren();var selectTitle=intl.formatMessage({id:'common.select'});var selectedTitle=intl.formatMessage({id:'common.selected'});var selectAllTitle=intl.formatMessage({id:'common.selectAll'});var title=values.length?"".concat(values.length," ").concat(selectedTitle):selectTitle;return Object(core_browser_esm["c" /* jsx */])("div",{ref:function ref(node){_this3.elRef=node;},style:{fontSize:fontSize}},Object(core_browser_esm["c" /* jsx */])(Select,{open:open,className:"".concat(open?'ant-select-open':''),onClick:this.toggleDropdown,width:width,height:height},open?Object(core_browser_esm["c" /* jsx */])(input_default.a,{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("&.ant-input#text-filter-input{outline:transparent;box-shadow:none;border:0;background:transparent;height:",height,";margin-left:-11px;font-size:14px;width:184px;}label:Multiselect;"+( true?"":undefined)),id:"text-filter-input",placeholder:title// disabled={!open}
,value:optionsFilter,onChange:this.editFilter,onClickCapture:function onClickCapture(e){e.preventDefault();e.stopPropagation();}}):title,Object(core_browser_esm["c" /* jsx */])("span",{className:"ant-select-arrow"})),Object(core_browser_esm["c" /* jsx */])(react_transition_group["CSSTransition"],{timeout:200,in:open,classNames:"fade",unmountOnExit:true},function(){return Object(core_browser_esm["c" /* jsx */])(DropdownWrapper,{width:width,zIndex:zIndex},Object(core_browser_esm["c" /* jsx */])(Dropbdown,null,!optionsFilter&&Object(core_browser_esm["c" /* jsx */])(Item,{key:"all",onClick:function onClick(){_this3.editFilter('');toggleSellectAllAccounts();}},Object(core_browser_esm["c" /* jsx */])(Multiselect_Checkbox,{checked:children.length===values.length}),selectAllTitle),react_default.a.Children.map(childrenToShow,function(child){return react_default.a.cloneElement(child);})));}));}}]);return Multiselect;}(react["Component"]))||_class)||_class;Multiselect_Multiselect.Option=function(_ref){var onClick=_ref.onClick,checked=_ref.checked,children=_ref.children;return Object(core_browser_esm["c" /* jsx */])(Item,{onClick:onClick},Object(core_browser_esm["c" /* jsx */])(Multiselect_Checkbox,{checked:checked}),children);};Multiselect_Multiselect.Option.displayName='Option';Multiselect_Multiselect.Option.propTypes={onClick:prop_types_default.a.func,checked:prop_types_default.a.bool,children:prop_types_default.a.node};Multiselect_Multiselect.defaultProps={values:[]};/* harmony default export */ var common_Multiselect_Multiselect = (Multiselect_Multiselect);
// CONCATENATED MODULE: ./src/js/components/common/Multiselect/index.js

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ Editable; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ Slate; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ useSlate; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* binding */ withReact; });

// UNUSED EXPORTS: DefaultElement, DefaultLeaf, ReactEditor, useEditor, useFocused, useReadOnly, useSelected

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/slate/dist/index.es.js + 2 modules
var index_es = __webpack_require__(29);

// EXTERNAL MODULE: ./node_modules/lodash/throttle.js
var throttle = __webpack_require__(670);
var throttle_default = /*#__PURE__*/__webpack_require__.n(throttle);

// CONCATENATED MODULE: ./node_modules/compute-scroll-into-view/es/index.js
function isElement(el) {
  return el != null && typeof el === 'object' && el.nodeType === 1;
}

function canOverflow(overflow, skipOverflowHiddenElements) {
  if (skipOverflowHiddenElements && overflow === 'hidden') {
    return false;
  }

  return overflow !== 'visible' && overflow !== 'clip';
}

function getFrameElement(el) {
  if (!el.ownerDocument || !el.ownerDocument.defaultView) {
    return null;
  }

  return el.ownerDocument.defaultView.frameElement;
}

function isHiddenByFrame(el) {
  var frame = getFrameElement(el);

  if (!frame) {
    return false;
  }

  return frame.clientHeight < el.scrollHeight || frame.clientWidth < el.scrollWidth;
}

function isScrollable(el, skipOverflowHiddenElements) {
  if (el.clientHeight < el.scrollHeight || el.clientWidth < el.scrollWidth) {
    var style = getComputedStyle(el, null);
    return canOverflow(style.overflowY, skipOverflowHiddenElements) || canOverflow(style.overflowX, skipOverflowHiddenElements) || isHiddenByFrame(el);
  }

  return false;
}

function alignNearest(scrollingEdgeStart, scrollingEdgeEnd, scrollingSize, scrollingBorderStart, scrollingBorderEnd, elementEdgeStart, elementEdgeEnd, elementSize) {
  if (elementEdgeStart < scrollingEdgeStart && elementEdgeEnd > scrollingEdgeEnd || elementEdgeStart > scrollingEdgeStart && elementEdgeEnd < scrollingEdgeEnd) {
    return 0;
  }

  if (elementEdgeStart <= scrollingEdgeStart && elementSize <= scrollingSize || elementEdgeEnd >= scrollingEdgeEnd && elementSize >= scrollingSize) {
    return elementEdgeStart - scrollingEdgeStart - scrollingBorderStart;
  }

  if (elementEdgeEnd > scrollingEdgeEnd && elementSize < scrollingSize || elementEdgeStart < scrollingEdgeStart && elementSize > scrollingSize) {
    return elementEdgeEnd - scrollingEdgeEnd + scrollingBorderEnd;
  }

  return 0;
}

/* harmony default export */ var es = (function (target, options) {
  var scrollMode = options.scrollMode,
      block = options.block,
      inline = options.inline,
      boundary = options.boundary,
      skipOverflowHiddenElements = options.skipOverflowHiddenElements;
  var checkBoundary = typeof boundary === 'function' ? boundary : function (node) {
    return node !== boundary;
  };

  if (!isElement(target)) {
    throw new TypeError('Invalid target');
  }

  var scrollingElement = document.scrollingElement || document.documentElement;
  var frames = [];
  var cursor = target;

  while (isElement(cursor) && checkBoundary(cursor)) {
    cursor = cursor.parentNode;

    if (cursor === scrollingElement) {
      frames.push(cursor);
      break;
    }

    if (cursor === document.body && isScrollable(cursor) && !isScrollable(document.documentElement)) {
      continue;
    }

    if (isScrollable(cursor, skipOverflowHiddenElements)) {
      frames.push(cursor);
    }
  }

  var viewportWidth = window.visualViewport ? visualViewport.width : innerWidth;
  var viewportHeight = window.visualViewport ? visualViewport.height : innerHeight;
  var viewportX = window.scrollX || pageXOffset;
  var viewportY = window.scrollY || pageYOffset;

  var _target$getBoundingCl = target.getBoundingClientRect(),
      targetHeight = _target$getBoundingCl.height,
      targetWidth = _target$getBoundingCl.width,
      targetTop = _target$getBoundingCl.top,
      targetRight = _target$getBoundingCl.right,
      targetBottom = _target$getBoundingCl.bottom,
      targetLeft = _target$getBoundingCl.left;

  var targetBlock = block === 'start' || block === 'nearest' ? targetTop : block === 'end' ? targetBottom : targetTop + targetHeight / 2;
  var targetInline = inline === 'center' ? targetLeft + targetWidth / 2 : inline === 'end' ? targetRight : targetLeft;
  var computations = [];

  for (var index = 0; index < frames.length; index++) {
    var frame = frames[index];

    var _frame$getBoundingCli = frame.getBoundingClientRect(),
        height = _frame$getBoundingCli.height,
        width = _frame$getBoundingCli.width,
        top = _frame$getBoundingCli.top,
        right = _frame$getBoundingCli.right,
        bottom = _frame$getBoundingCli.bottom,
        left = _frame$getBoundingCli.left;

    if (scrollMode === 'if-needed' && targetTop >= 0 && targetLeft >= 0 && targetBottom <= viewportHeight && targetRight <= viewportWidth && targetTop >= top && targetBottom <= bottom && targetLeft >= left && targetRight <= right) {
      return computations;
    }

    var frameStyle = getComputedStyle(frame);
    var borderLeft = parseInt(frameStyle.borderLeftWidth, 10);
    var borderTop = parseInt(frameStyle.borderTopWidth, 10);
    var borderRight = parseInt(frameStyle.borderRightWidth, 10);
    var borderBottom = parseInt(frameStyle.borderBottomWidth, 10);
    var blockScroll = 0;
    var inlineScroll = 0;
    var scrollbarWidth = 'offsetWidth' in frame ? frame.offsetWidth - frame.clientWidth - borderLeft - borderRight : 0;
    var scrollbarHeight = 'offsetHeight' in frame ? frame.offsetHeight - frame.clientHeight - borderTop - borderBottom : 0;

    if (scrollingElement === frame) {
      if (block === 'start') {
        blockScroll = targetBlock;
      } else if (block === 'end') {
        blockScroll = targetBlock - viewportHeight;
      } else if (block === 'nearest') {
        blockScroll = alignNearest(viewportY, viewportY + viewportHeight, viewportHeight, borderTop, borderBottom, viewportY + targetBlock, viewportY + targetBlock + targetHeight, targetHeight);
      } else {
        blockScroll = targetBlock - viewportHeight / 2;
      }

      if (inline === 'start') {
        inlineScroll = targetInline;
      } else if (inline === 'center') {
        inlineScroll = targetInline - viewportWidth / 2;
      } else if (inline === 'end') {
        inlineScroll = targetInline - viewportWidth;
      } else {
        inlineScroll = alignNearest(viewportX, viewportX + viewportWidth, viewportWidth, borderLeft, borderRight, viewportX + targetInline, viewportX + targetInline + targetWidth, targetWidth);
      }

      blockScroll = Math.max(0, blockScroll + viewportY);
      inlineScroll = Math.max(0, inlineScroll + viewportX);
    } else {
      if (block === 'start') {
        blockScroll = targetBlock - top - borderTop;
      } else if (block === 'end') {
        blockScroll = targetBlock - bottom + borderBottom + scrollbarHeight;
      } else if (block === 'nearest') {
        blockScroll = alignNearest(top, bottom, height, borderTop, borderBottom + scrollbarHeight, targetBlock, targetBlock + targetHeight, targetHeight);
      } else {
        blockScroll = targetBlock - (top + height / 2) + scrollbarHeight / 2;
      }

      if (inline === 'start') {
        inlineScroll = targetInline - left - borderLeft;
      } else if (inline === 'center') {
        inlineScroll = targetInline - (left + width / 2) + scrollbarWidth / 2;
      } else if (inline === 'end') {
        inlineScroll = targetInline - right + borderRight + scrollbarWidth;
      } else {
        inlineScroll = alignNearest(left, right, width, borderLeft, borderRight + scrollbarWidth, targetInline, targetInline + targetWidth, targetWidth);
      }

      var scrollLeft = frame.scrollLeft,
          scrollTop = frame.scrollTop;
      blockScroll = Math.max(0, Math.min(scrollTop + blockScroll, frame.scrollHeight - height + scrollbarHeight));
      inlineScroll = Math.max(0, Math.min(scrollLeft + inlineScroll, frame.scrollWidth - width + scrollbarWidth));
      targetBlock += scrollTop - blockScroll;
      targetInline += scrollLeft - inlineScroll;
    }

    computations.push({
      el: frame,
      top: blockScroll,
      left: inlineScroll
    });
  }

  return computations;
});
// CONCATENATED MODULE: ./node_modules/scroll-into-view-if-needed/es/index.js


function isOptionsObject(options) {
  return options === Object(options) && Object.keys(options).length !== 0;
}

function defaultBehavior(actions, behavior) {
  if (behavior === void 0) {
    behavior = 'auto';
  }

  var canSmoothScroll = 'scrollBehavior' in document.body.style;
  actions.forEach(function (_ref) {
    var el = _ref.el,
        top = _ref.top,
        left = _ref.left;

    if (el.scroll && canSmoothScroll) {
      el.scroll({
        top: top,
        left: left,
        behavior: behavior
      });
    } else {
      el.scrollTop = top;
      el.scrollLeft = left;
    }
  });
}

function getOptions(options) {
  if (options === false) {
    return {
      block: 'end',
      inline: 'nearest'
    };
  }

  if (isOptionsObject(options)) {
    return options;
  }

  return {
    block: 'start',
    inline: 'nearest'
  };
}

function scrollIntoView(target, options) {
  var targetIsDetached = !target.ownerDocument.documentElement.contains(target);

  if (isOptionsObject(options) && typeof options.behavior === 'function') {
    return options.behavior(targetIsDetached ? [] : es(target, options));
  }

  if (targetIsDetached) {
    return;
  }

  var computeOptions = getOptions(options);
  return defaultBehavior(es(target, computeOptions), computeOptions.behavior);
}

/* harmony default export */ var scroll_into_view_if_needed_es = (scrollIntoView);
// EXTERNAL MODULE: ./node_modules/direction/index.js
var direction = __webpack_require__(671);
var direction_default = /*#__PURE__*/__webpack_require__.n(direction);

// EXTERNAL MODULE: ./node_modules/react-dom/index.js
var react_dom = __webpack_require__(40);
var react_dom_default = /*#__PURE__*/__webpack_require__.n(react_dom);

// EXTERNAL MODULE: ./node_modules/is-hotkey/lib/index.js
var lib = __webpack_require__(292);

// CONCATENATED MODULE: ./node_modules/slate-react/dist/index.es.js
function _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;}function _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;}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_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;}/**
 * An auto-incrementing identifier for keys.
 */var index_es_n=0;/**
 * A class that keeps track of a key string. We use a full class here because we
 * want to be able to use them as keys in `WeakMap` objects.
 */class Key{constructor(){this.id="".concat(index_es_n++);}}/**
 * Two weak maps that allow us rebuild a path given a node. They are populated
 * at render time such that after a render occurs we can always backtrack.
 */var NODE_TO_INDEX=new WeakMap();var NODE_TO_PARENT=new WeakMap();/**
 * Weak maps that allow us to go between Slate nodes and DOM nodes. These
 * are used to resolve DOM event-related logic into Slate actions.
 */var EDITOR_TO_ELEMENT=new WeakMap();var ELEMENT_TO_NODE=new WeakMap();var KEY_TO_ELEMENT=new WeakMap();var NODE_TO_ELEMENT=new WeakMap();var NODE_TO_KEY=new WeakMap();/**
 * Weak maps for storing editor-related state.
 */var IS_READ_ONLY=new WeakMap();var IS_FOCUSED=new WeakMap();/**
 * Weak map for associating the context `onChange` context with the plugin.
 */var EDITOR_TO_ON_CHANGE=new WeakMap();/**
 * Symbols.
 */var PLACEHOLDER_SYMBOL=Symbol('placeholder');/**
 * Types.
 */ /**
 * Check if a DOM node is a comment node.
 */var isDOMComment=value=>{return isDOMNode(value)&&value.nodeType===8;};/**
 * Check if a DOM node is an element node.
 */var isDOMElement=value=>{return isDOMNode(value)&&value.nodeType===1;};/**
 * Check if a value is a DOM node.
 */var isDOMNode=value=>{return value instanceof Node;};/**
 * Check if a DOM node is an element node.
 */var isDOMText=value=>{return isDOMNode(value)&&value.nodeType===3;};/**
 * Checks whether a paste event is a plaintext-only event.
 */var isPlainTextOnlyPaste=event=>{return event.clipboardData&&event.clipboardData.getData('text/plain')!==''&&event.clipboardData.types.length===1;};/**
 * Normalize a DOM point so that it always refers to a text node.
 */var normalizeDOMPoint=domPoint=>{var[node,offset]=domPoint;// If it's an element node, its offset refers to the index of its children
// including comment nodes, so try to find the right text child node.
if(isDOMElement(node)&&node.childNodes.length){var isLast=offset===node.childNodes.length;var direction=isLast?'backward':'forward';var index=isLast?offset-1:offset;node=getEditableChild(node,index,direction);// If the node has children, traverse until we have a leaf node. Leaf nodes
// can be either text nodes, or other void DOM nodes.
while(isDOMElement(node)&&node.childNodes.length){var i=isLast?node.childNodes.length-1:0;node=getEditableChild(node,i,direction);}// Determine the new offset inside the text node.
offset=isLast&&node.textContent!=null?node.textContent.length:0;}// Return the node and offset.
return[node,offset];};/**
 * Get the nearest editable child at `index` in a `parent`, preferring
 * `direction`.
 */var getEditableChild=(parent,index,direction)=>{var{childNodes}=parent;var child=childNodes[index];var i=index;var triedForward=false;var triedBackward=false;// While the child is a comment node, or an element node with no children,
// keep iterating to find a sibling non-void, non-comment node.
while(isDOMComment(child)||isDOMElement(child)&&child.childNodes.length===0||isDOMElement(child)&&child.getAttribute('contenteditable')==='false'){if(triedForward&&triedBackward){break;}if(i>=childNodes.length){triedForward=true;i=index-1;direction='backward';continue;}if(i<0){triedBackward=true;i=index+1;direction='forward';continue;}child=childNodes[i];i+=direction==='forward'?1:-1;}return child;};/**
 * Get a plaintext representation of the content of a node, accounting for block
 * elements which get a newline appended.
 *
 * The domNode must be attached to the DOM.
 */var getPlainText=domNode=>{var text='';if(isDOMText(domNode)&&domNode.nodeValue){return domNode.nodeValue;}if(isDOMElement(domNode)){for(var childNode of Array.from(domNode.childNodes)){text+=getPlainText(childNode);}var display=getComputedStyle(domNode).getPropertyValue('display');if(display==='block'||display==='list'||domNode.tagName==='BR'){text+='\n';}}return text;};var ReactEditor={/**
   * Find a key for a Slate node.
   */findKey(editor,node){var key=NODE_TO_KEY.get(node);if(!key){key=new Key();NODE_TO_KEY.set(node,key);}return key;},/**
   * Find the path of Slate node.
   */findPath(editor,node){var path=[];var child=node;while(true){var parent=NODE_TO_PARENT.get(child);if(parent==null){if(index_es["a" /* Editor */].isEditor(child)){return path;}else{break;}}var i=NODE_TO_INDEX.get(child);if(i==null){break;}path.unshift(i);child=parent;}throw new Error("Unable to find the path for Slate node: ".concat(JSON.stringify(node)));},/**
   * Check if the editor is focused.
   */isFocused(editor){return!!IS_FOCUSED.get(editor);},/**
   * Check if the editor is in read-only mode.
   */isReadOnly(editor){return!!IS_READ_ONLY.get(editor);},/**
   * Blur the editor.
   */blur(editor){var el=ReactEditor.toDOMNode(editor,editor);IS_FOCUSED.set(editor,false);if(window.document.activeElement===el){el.blur();}},/**
   * Focus the editor.
   */focus(editor){var el=ReactEditor.toDOMNode(editor,editor);IS_FOCUSED.set(editor,true);if(window.document.activeElement!==el){el.focus({preventScroll:true});}},/**
   * Deselect the editor.
   */deselect(editor){var{selection}=editor;var domSelection=window.getSelection();if(domSelection&&domSelection.rangeCount>0){domSelection.removeAllRanges();}if(selection){index_es["h" /* Transforms */].deselect(editor);}},/**
   * Check if a DOM node is within the editor.
   */hasDOMNode(editor,target){var options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var{editable=false}=options;var editorEl=ReactEditor.toDOMNode(editor,editor);var targetEl;// COMPAT: In Firefox, reading `target.nodeType` will throw an error if
// target is originating from an internal "restricted" element (e.g. a
// stepper arrow on a number input). (2018/05/04)
// https://github.com/ianstormtaylor/slate/issues/1819
try{targetEl=isDOMElement(target)?target:target.parentElement;}catch(err){if(!err.message.includes('Permission denied to access property "nodeType"')){throw err;}}if(!targetEl){return false;}return targetEl.closest("[data-slate-editor]")===editorEl&&(!editable||targetEl.isContentEditable||!!targetEl.getAttribute('data-slate-zero-width'));},/**
   * Insert data from a `DataTransfer` into the editor.
   */insertData(editor,data){editor.insertData(data);},/**
   * Sets data from the currently selected fragment on a `DataTransfer`.
   */setFragmentData(editor,data){editor.setFragmentData(data);},/**
   * Find the native DOM element from a Slate node.
   */toDOMNode(editor,node){var domNode=index_es["a" /* Editor */].isEditor(node)?EDITOR_TO_ELEMENT.get(editor):KEY_TO_ELEMENT.get(ReactEditor.findKey(editor,node));if(!domNode){throw new Error("Cannot resolve a DOM node from Slate node: ".concat(JSON.stringify(node)));}return domNode;},/**
   * Find a native DOM selection point from a Slate point.
   */toDOMPoint(editor,point){var[node]=index_es["a" /* Editor */].node(editor,point.path);var el=ReactEditor.toDOMNode(editor,node);var domPoint;// If we're inside a void node, force the offset to 0, otherwise the zero
// width spacing character will result in an incorrect offset of 1
if(index_es["a" /* Editor */].void(editor,{at:point})){point={path:point.path,offset:0};}// For each leaf, we need to isolate its content, which means filtering
// to its direct text and zero-width spans. (We have to filter out any
// other siblings that may have been rendered alongside them.)
var selector="[data-slate-string], [data-slate-zero-width]";var texts=Array.from(el.querySelectorAll(selector));var start=0;for(var text of texts){var domNode=text.childNodes[0];if(domNode==null||domNode.textContent==null){continue;}var{length}=domNode.textContent;var attr=text.getAttribute('data-slate-length');var trueLength=attr==null?length:parseInt(attr,10);var end=start+trueLength;if(point.offset<=end){var offset=Math.min(length,Math.max(0,point.offset-start));domPoint=[domNode,offset];break;}start=end;}if(!domPoint){throw new Error("Cannot resolve a DOM point from Slate point: ".concat(JSON.stringify(point)));}return domPoint;},/**
   * Find a native DOM range from a Slate `range`.
   */toDOMRange(editor,range){var{anchor,focus}=range;var isBackward=index_es["f" /* Range */].isBackward(range);var domAnchor=ReactEditor.toDOMPoint(editor,anchor);var domFocus=index_es["f" /* Range */].isCollapsed(range)?domAnchor:ReactEditor.toDOMPoint(editor,focus);var domRange=window.document.createRange();var[startNode,startOffset]=isBackward?domFocus:domAnchor;var[endNode,endOffset]=isBackward?domAnchor:domFocus;// A slate Point at zero-width Leaf always has an offset of 0 but a native DOM selection at
// zero-width node has an offset of 1 so we have to check if we are in a zero-width node and
// adjust the offset accordingly.
var startEl=isDOMElement(startNode)?startNode:startNode.parentElement;var isStartAtZeroWidth=!!startEl.getAttribute('data-slate-zero-width');var endEl=isDOMElement(endNode)?endNode:endNode.parentElement;var isEndAtZeroWidth=!!endEl.getAttribute('data-slate-zero-width');domRange.setStart(startNode,isStartAtZeroWidth?1:startOffset);domRange.setEnd(endNode,isEndAtZeroWidth?1:endOffset);return domRange;},/**
   * Find a Slate node from a native DOM `element`.
   */toSlateNode(editor,domNode){var domEl=isDOMElement(domNode)?domNode:domNode.parentElement;if(domEl&&!domEl.hasAttribute('data-slate-node')){domEl=domEl.closest("[data-slate-node]");}var node=domEl?ELEMENT_TO_NODE.get(domEl):null;if(!node){throw new Error("Cannot resolve a Slate node from DOM node: ".concat(domEl));}return node;},/**
   * Get the target range from a DOM `event`.
   */findEventRange(editor,event){if('nativeEvent'in event){event=event.nativeEvent;}var{clientX:x,clientY:y,target}=event;if(x==null||y==null){throw new Error("Cannot resolve a Slate range from a DOM event: ".concat(event));}var node=ReactEditor.toSlateNode(editor,event.target);var path=ReactEditor.findPath(editor,node);// If the drop target is inside a void node, move it into either the
// next or previous node, depending on which side the `x` and `y`
// coordinates are closest to.
if(index_es["a" /* Editor */].isVoid(editor,node)){var rect=target.getBoundingClientRect();var isPrev=editor.isInline(node)?x-rect.left<rect.left+rect.width-x:y-rect.top<rect.top+rect.height-y;var edge=index_es["a" /* Editor */].point(editor,path,{edge:isPrev?'start':'end'});var point=isPrev?index_es["a" /* Editor */].before(editor,edge):index_es["a" /* Editor */].after(editor,edge);if(point){var _range=index_es["a" /* Editor */].range(editor,point);return _range;}}// Else resolve a range from the caret position where the drop occured.
var domRange;var{document}=window;// COMPAT: In Firefox, `caretRangeFromPoint` doesn't exist. (2016/07/25)
if(document.caretRangeFromPoint){domRange=document.caretRangeFromPoint(x,y);}else{var position=document.caretPositionFromPoint(x,y);if(position){domRange=document.createRange();domRange.setStart(position.offsetNode,position.offset);domRange.setEnd(position.offsetNode,position.offset);}}if(!domRange){throw new Error("Cannot resolve a Slate range from a DOM event: ".concat(event));}// Resolve a Slate range from the DOM range.
var range=ReactEditor.toSlateRange(editor,domRange);return range;},/**
   * Find a Slate point from a DOM selection's `domNode` and `domOffset`.
   */toSlatePoint(editor,domPoint){var[nearestNode,nearestOffset]=normalizeDOMPoint(domPoint);var parentNode=nearestNode.parentNode;var textNode=null;var offset=0;if(parentNode){var voidNode=parentNode.closest('[data-slate-void="true"]');var leafNode=parentNode.closest('[data-slate-leaf]');var domNode=null;// Calculate how far into the text node the `nearestNode` is, so that we
// can determine what the offset relative to the text node is.
if(leafNode){textNode=leafNode.closest('[data-slate-node="text"]');var range=window.document.createRange();range.setStart(textNode,0);range.setEnd(nearestNode,nearestOffset);var contents=range.cloneContents();var removals=[...contents.querySelectorAll('[data-slate-zero-width]'),...contents.querySelectorAll('[contenteditable=false]')];removals.forEach(el=>{el.parentNode.removeChild(el);});// COMPAT: Edge has a bug where Range.prototype.toString() will
// convert \n into \r\n. The bug causes a loop when slate-react
// attempts to reposition its cursor to match the native position. Use
// textContent.length instead.
// https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10291116/
offset=contents.textContent.length;domNode=textNode;}else if(voidNode){// For void nodes, the element with the offset key will be a cousin, not an
// ancestor, so find it by going down from the nearest void parent.
leafNode=voidNode.querySelector('[data-slate-leaf]');textNode=leafNode.closest('[data-slate-node="text"]');domNode=leafNode;offset=domNode.textContent.length;}// COMPAT: If the parent node is a Slate zero-width space, editor is
// because the text node should have no characters. However, during IME
// composition the ASCII characters will be prepended to the zero-width
// space, so subtract 1 from the offset to account for the zero-width
// space character.
if(domNode&&offset===domNode.textContent.length&&parentNode.hasAttribute('data-slate-zero-width')){offset--;}}if(!textNode){throw new Error("Cannot resolve a Slate point from DOM point: ".concat(domPoint));}// COMPAT: If someone is clicking from one Slate editor into another,
// the select event fires twice, once for the old editor's `element`
// first, and then afterwards for the correct `element`. (2017/03/03)
var slateNode=ReactEditor.toSlateNode(editor,textNode);var path=ReactEditor.findPath(editor,slateNode);return{path,offset};},/**
   * Find a Slate range from a DOM range or selection.
   */toSlateRange(editor,domRange){var el=domRange instanceof Selection?domRange.anchorNode:domRange.startContainer;var anchorNode;var anchorOffset;var focusNode;var focusOffset;var isCollapsed;if(el){if(domRange instanceof Selection){anchorNode=domRange.anchorNode;anchorOffset=domRange.anchorOffset;focusNode=domRange.focusNode;focusOffset=domRange.focusOffset;isCollapsed=domRange.isCollapsed;}else{anchorNode=domRange.startContainer;anchorOffset=domRange.startOffset;focusNode=domRange.endContainer;focusOffset=domRange.endOffset;isCollapsed=domRange.collapsed;}}if(anchorNode==null||focusNode==null||anchorOffset==null||focusOffset==null){throw new Error("Cannot resolve a Slate range from DOM range: ".concat(domRange));}var anchor=ReactEditor.toSlatePoint(editor,[anchorNode,anchorOffset]);var focus=isCollapsed?anchor:ReactEditor.toSlatePoint(editor,[focusNode,focusOffset]);return{anchor,focus};}};/**
 * A React context for sharing the `focused` state of the editor.
 */var FocusedContext=Object(react["createContext"])(false);/**
 * Get the current `focused` state of the editor.
 */var useFocused=()=>{return Object(react["useContext"])(FocusedContext);};/**
 * A React context for sharing the editor object.
 */var EditorContext=Object(react["createContext"])(null);/**
 * Get the current editor object from the React context.
 */var useEditor=()=>{var editor=Object(react["useContext"])(EditorContext);if(!editor){throw new Error("The `useEditor` hook must be used inside the <Slate> component's context.");}return editor;};/**
 * A React context for sharing the editor object, in a way that re-renders the
 * context whenever changes occur.
 */var SlateContext=Object(react["createContext"])(null);/**
 * Get the current editor object from the React context.
 */var useSlate=()=>{var context=Object(react["useContext"])(SlateContext);if(!context){throw new Error("The `useSlate` hook must be used inside the <SlateProvider> component's context.");}var[editor]=context;return editor;};/**
 * A wrapper around the provider to handle `onChange` events, because the editor
 * is a mutable singleton so it won't ever register as "changed" otherwise.
 */var Slate=props=>{var{editor,children,onChange,value}=props,rest=_objectWithoutProperties(props,["editor","children","onChange","value"]);var[key,setKey]=Object(react["useState"])(0);var context=Object(react["useMemo"])(()=>{editor.children=value;Object.assign(editor,rest);return[editor];},[key,value,...Object.values(rest)]);var onContextChange=Object(react["useCallback"])(()=>{onChange(editor.children);setKey(key+1);},[key,onChange]);EDITOR_TO_ON_CHANGE.set(editor,onContextChange);Object(react["useEffect"])(()=>{return()=>{EDITOR_TO_ON_CHANGE.set(editor,()=>{});};},[]);return react_default.a.createElement(SlateContext.Provider,{value:context},react_default.a.createElement(EditorContext.Provider,{value:editor},react_default.a.createElement(FocusedContext.Provider,{value:ReactEditor.isFocused(editor)},children)));};/**
 * A React context for sharing the `readOnly` state of the editor.
 */var ReadOnlyContext=Object(react["createContext"])(false);/**
 * Get the current `readOnly` state of the editor.
 */var useReadOnly=()=>{return Object(react["useContext"])(ReadOnlyContext);};/**
 * A React context for sharing the `selected` state of an element.
 */var SelectedContext=Object(react["createContext"])(false);/**
 * Get the current `selected` state of an element.
 */var useSelected=()=>{return Object(react["useContext"])(SelectedContext);};/**
 * `withReact` adds React and DOM specific behaviors to the editor.
 */var withReact=editor=>{var e=editor;var{apply,onChange}=e;e.apply=op=>{var matches=[];switch(op.type){case'insert_text':case'remove_text':case'set_node':{for(var[node,path]of index_es["a" /* Editor */].levels(e,{at:op.path})){var key=ReactEditor.findKey(e,node);matches.push([path,key]);}break;}case'insert_node':case'remove_node':case'merge_node':case'split_node':{for(var[_node,_path]of index_es["a" /* Editor */].levels(e,{at:index_es["e" /* Path */].parent(op.path)})){var _key=ReactEditor.findKey(e,_node);matches.push([_path,_key]);}break;}}apply(op);for(var[_path2,_key2]of matches){var[_node2]=index_es["a" /* Editor */].node(e,_path2);NODE_TO_KEY.set(_node2,_key2);}};e.setFragmentData=data=>{var{selection}=e;if(!selection){return;}var[start,end]=index_es["f" /* Range */].edges(selection);var startVoid=index_es["a" /* Editor */].void(e,{at:start.path});var endVoid=index_es["a" /* Editor */].void(e,{at:end.path});if(index_es["f" /* Range */].isCollapsed(selection)&&!startVoid){return;}// Create a fake selection so that we can add a Base64-encoded copy of the
// fragment to the HTML, to decode on future pastes.
var domRange=ReactEditor.toDOMRange(e,selection);var contents=domRange.cloneContents();var attach=contents.childNodes[0];// Make sure attach is non-empty, since empty nodes will not get copied.
contents.childNodes.forEach(node=>{if(node.textContent&&node.textContent.trim()!==''){attach=node;}});// COMPAT: If the end node is a void node, we need to move the end of the
// range from the void node's spacer span, to the end of the void node's
// content, since the spacer is before void's content in the DOM.
if(endVoid){var[voidNode]=endVoid;var r=domRange.cloneRange();var domNode=ReactEditor.toDOMNode(e,voidNode);r.setEndAfter(domNode);contents=r.cloneContents();}// COMPAT: If the start node is a void node, we need to attach the encoded
// fragment to the void node's content node instead of the spacer, because
// attaching it to empty `<div>/<span>` nodes will end up having it erased by
// most browsers. (2018/04/27)
if(startVoid){attach=contents.querySelector('[data-slate-spacer]');}// Remove any zero-width space spans from the cloned DOM so that they don't
// show up elsewhere when pasted.
Array.from(contents.querySelectorAll('[data-slate-zero-width]')).forEach(zw=>{var isNewline=zw.getAttribute('data-slate-zero-width')==='n';zw.textContent=isNewline?'\n':'';});// Set a `data-slate-fragment` attribute on a non-empty node, so it shows up
// in the HTML, and can be used for intra-Slate pasting. If it's a text
// node, wrap it in a `<span>` so we have something to set an attribute on.
if(isDOMText(attach)){var span=document.createElement('span');// COMPAT: In Chrome and Safari, if we don't add the `white-space` style
// then leading and trailing spaces will be ignored. (2017/09/21)
span.style.whiteSpace='pre';span.appendChild(attach);contents.appendChild(span);attach=span;}var fragment=e.getFragment();var string=JSON.stringify(fragment);var encoded=window.btoa(encodeURIComponent(string));attach.setAttribute('data-slate-fragment',encoded);data.setData('application/x-slate-fragment',encoded);// Add the content to a <div> so that we can get its inner HTML.
var div=document.createElement('div');div.appendChild(contents);div.setAttribute('hidden','true');document.body.appendChild(div);data.setData('text/html',div.innerHTML);data.setData('text/plain',getPlainText(div));document.body.removeChild(div);};e.insertData=data=>{var fragment=data.getData('application/x-slate-fragment');if(fragment){var decoded=decodeURIComponent(window.atob(fragment));var parsed=JSON.parse(decoded);index_es["h" /* Transforms */].insertFragment(e,parsed);return;}var text=data.getData('text/plain');if(text){var lines=text.split(/\r\n|\r|\n/);var split=false;for(var line of lines){if(split){index_es["h" /* Transforms */].splitNodes(e,{always:true});}index_es["h" /* Transforms */].insertText(e,line);split=true;}}};e.onChange=()=>{// COMPAT: React doesn't batch `setState` hook calls, which means that the
// children and selection can get out of sync for one render pass. So we
// have to use this unstable API to ensure it batches them. (2019/12/03)
// https://github.com/facebook/react/issues/14259#issuecomment-439702367
react_dom_default.a.unstable_batchedUpdates(()=>{var onContextChange=EDITOR_TO_ON_CHANGE.get(e);if(onContextChange){onContextChange();}onChange();});};return e;};/**
 * Leaf content strings.
 */var index_es_String=props=>{var{isLast,leaf,parent,text}=props;var editor=useEditor();var path=ReactEditor.findPath(editor,text);var parentPath=index_es["e" /* Path */].parent(path);// COMPAT: Render text inside void nodes with a zero-width space.
// So the node can contain selection but the text is not visible.
if(editor.isVoid(parent)){return react_default.a.createElement(ZeroWidthString,{length:index_es["c" /* Node */].string(parent).length});}// COMPAT: If this is the last text node in an empty block, render a zero-
// width space that will convert into a line break when copying and pasting
// to support expected plain text.
if(leaf.text===''&&parent.children[parent.children.length-1]===text&&!editor.isInline(parent)&&index_es["a" /* Editor */].string(editor,parentPath)===''){return react_default.a.createElement(ZeroWidthString,{isLineBreak:true});}// COMPAT: If the text is empty, it's because it's on the edge of an inline
// node, so we render a zero-width space so that the selection can be
// inserted next to it still.
if(leaf.text===''){return react_default.a.createElement(ZeroWidthString,null);}// COMPAT: Browsers will collapse trailing new lines at the end of blocks,
// so we need to add an extra trailing new lines to prevent that.
if(isLast&&leaf.text.slice(-1)==='\n'){return react_default.a.createElement(TextString,{isTrailing:true,text:leaf.text});}return react_default.a.createElement(TextString,{text:leaf.text});};/**
 * Leaf strings with text in them.
 */var TextString=props=>{var{text,isTrailing=false}=props;return react_default.a.createElement("span",{"data-slate-string":true},text,isTrailing?'\n':null);};/**
 * Leaf strings without text, render as zero-width strings.
 */var ZeroWidthString=props=>{var{length=0,isLineBreak=false}=props;return react_default.a.createElement("span",{"data-slate-zero-width":isLineBreak?'n':'z',"data-slate-length":length},'\uFEFF',isLineBreak?react_default.a.createElement("br",null):null);};/**
 * Individual leaves in a text node with unique formatting.
 */var Leaf=props=>{var{leaf,isLast,text,parent,renderLeaf=props=>react_default.a.createElement(DefaultLeaf,Object.assign({},props))}=props;var children=react_default.a.createElement(index_es_String,{isLast:isLast,leaf:leaf,parent:parent,text:text});if(leaf[PLACEHOLDER_SYMBOL]){children=react_default.a.createElement(react_default.a.Fragment,null,react_default.a.createElement("span",{contentEditable:false,style:{pointerEvents:'none',display:'inline-block',verticalAlign:'text-top',width:'0',maxWidth:'100%',whiteSpace:'nowrap',opacity:'0.333'}},leaf.placeholder),children);}// COMPAT: Having the `data-` attributes on these leaf elements ensures that
// in certain misbehaving browsers they aren't weirdly cloned/destroyed by
// contenteditable behaviors. (2019/05/08)
var attributes={'data-slate-leaf':true};return renderLeaf({attributes,children,leaf,text});};var MemoizedLeaf=react_default.a.memo(Leaf,(prev,next)=>{return next.parent===prev.parent&&next.isLast===prev.isLast&&next.renderLeaf===prev.renderLeaf&&next.text===prev.text&&index_es["g" /* Text */].matches(next.leaf,prev.leaf);});/**
 * The default custom leaf renderer.
 */var DefaultLeaf=props=>{var{attributes,children}=props;return react_default.a.createElement("span",Object.assign({},attributes),children);};/**
 * Prevent warning on SSR by falling back to useEffect when window is not defined
 */var useIsomorphicLayoutEffect=typeof window!=='undefined'?react["useLayoutEffect"]:react["useEffect"];/**
 * Text.
 */var Text=props=>{var{decorations,isLast,parent,renderLeaf,text}=props;var editor=useEditor();var ref=Object(react["useRef"])(null);var leaves=index_es["g" /* Text */].decorations(text,decorations);var key=ReactEditor.findKey(editor,text);var children=[];for(var i=0;i<leaves.length;i++){var leaf=leaves[i];children.push(react_default.a.createElement(MemoizedLeaf,{isLast:isLast&&i===leaves.length-1,key:"".concat(key.id,"-").concat(i),leaf:leaf,text:text,parent:parent,renderLeaf:renderLeaf}));}// Update element-related weak maps with the DOM element ref.
useIsomorphicLayoutEffect(()=>{if(ref.current){KEY_TO_ELEMENT.set(key,ref.current);NODE_TO_ELEMENT.set(text,ref.current);ELEMENT_TO_NODE.set(ref.current,text);}else{KEY_TO_ELEMENT.delete(key);NODE_TO_ELEMENT.delete(text);}});return react_default.a.createElement("span",{"data-slate-node":"text",ref:ref},children);};var MemoizedText=react_default.a.memo(Text,(prev,next)=>{return next.parent===prev.parent&&next.isLast===prev.isLast&&next.renderLeaf===prev.renderLeaf&&next.text===prev.text;});/**
 * Element.
 */var Element=props=>{var{decorate,decorations,element,renderElement=p=>react_default.a.createElement(DefaultElement,Object.assign({},p)),renderLeaf,selection}=props;var ref=Object(react["useRef"])(null);var editor=useEditor();var readOnly=useReadOnly();var isInline=editor.isInline(element);var key=ReactEditor.findKey(editor,element);var children=react_default.a.createElement(Children,{decorate:decorate,decorations:decorations,node:element,renderElement:renderElement,renderLeaf:renderLeaf,selection:selection});// Attributes that the developer must mix into the element in their
// custom node renderer component.
var attributes={'data-slate-node':'element',ref};if(isInline){attributes['data-slate-inline']=true;}// If it's a block node with inline children, add the proper `dir` attribute
// for text direction.
if(!isInline&&index_es["a" /* Editor */].hasInlines(editor,element)){var text=index_es["c" /* Node */].string(element);var dir=direction_default()(text);if(dir==='rtl'){attributes.dir=dir;}}// If it's a void node, wrap the children in extra void-specific elements.
if(index_es["a" /* Editor */].isVoid(editor,element)){attributes['data-slate-void']=true;if(!readOnly&&isInline){attributes.contentEditable=false;}var Tag=isInline?'span':'div';var[[_text]]=index_es["c" /* Node */].texts(element);children=readOnly?null:react_default.a.createElement(Tag,{"data-slate-spacer":true,style:{height:'0',color:'transparent',outline:'none',position:'absolute'}},react_default.a.createElement(MemoizedText,{decorations:[],isLast:false,parent:element,text:_text}));NODE_TO_INDEX.set(_text,0);NODE_TO_PARENT.set(_text,element);}// Update element-related weak maps with the DOM element ref.
useIsomorphicLayoutEffect(()=>{if(ref.current){KEY_TO_ELEMENT.set(key,ref.current);NODE_TO_ELEMENT.set(element,ref.current);ELEMENT_TO_NODE.set(ref.current,element);}else{KEY_TO_ELEMENT.delete(key);NODE_TO_ELEMENT.delete(element);}});return react_default.a.createElement(SelectedContext.Provider,{value:!!selection},renderElement({attributes,children,element}));};var MemoizedElement=react_default.a.memo(Element,(prev,next)=>{return prev.decorate===next.decorate&&prev.element===next.element&&prev.renderElement===next.renderElement&&prev.renderLeaf===next.renderLeaf&&isRangeListEqual(prev.decorations,next.decorations)&&(prev.selection===next.selection||!!prev.selection&&!!next.selection&&index_es["f" /* Range */].equals(prev.selection,next.selection));});/**
 * The default element renderer.
 */var DefaultElement=props=>{var{attributes,children,element}=props;var editor=useEditor();var Tag=editor.isInline(element)?'span':'div';return react_default.a.createElement(Tag,Object.assign({},attributes,{style:{position:'relative'}}),children);};/**
 * Check if a list of ranges is equal to another.
 *
 * PERF: this requires the two lists to also have the ranges inside them in the
 * same order, but this is an okay constraint for us since decorations are
 * kept in order, and the odd case where they aren't is okay to re-render for.
 */var isRangeListEqual=(list,another)=>{if(list.length!==another.length){return false;}for(var i=0;i<list.length;i++){var range=list[i];var other=another[i];if(!index_es["f" /* Range */].equals(range,other)){return false;}}return true;};/**
 * Children.
 */var Children=props=>{var{decorate,decorations,node,renderElement,renderLeaf,selection}=props;var editor=useEditor();var path=ReactEditor.findPath(editor,node);var children=[];var isLeafBlock=index_es["b" /* Element */].isElement(node)&&!editor.isInline(node)&&index_es["a" /* Editor */].hasInlines(editor,node);for(var i=0;i<node.children.length;i++){var p=path.concat(i);var n=node.children[i];var key=ReactEditor.findKey(editor,n);var range=index_es["a" /* Editor */].range(editor,p);var sel=selection&&index_es["f" /* Range */].intersection(range,selection);var ds=decorate([n,p]);for(var dec of decorations){var d=index_es["f" /* Range */].intersection(dec,range);if(d){ds.push(d);}}if(index_es["b" /* Element */].isElement(n)){children.push(react_default.a.createElement(MemoizedElement,{decorate:decorate,decorations:ds,element:n,key:key.id,renderElement:renderElement,renderLeaf:renderLeaf,selection:sel}));}else{children.push(react_default.a.createElement(MemoizedText,{decorations:ds,key:key.id,isLast:isLeafBlock&&i===node.children.length-1,parent:node,renderLeaf:renderLeaf,text:n}));}NODE_TO_INDEX.set(n,i);NODE_TO_PARENT.set(n,node);}return react_default.a.createElement(react_default.a.Fragment,null,children);};var IS_IOS=typeof navigator!=='undefined'&&typeof window!=='undefined'&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream;var IS_APPLE=typeof navigator!=='undefined'&&/Mac OS X/.test(navigator.userAgent);var IS_FIREFOX=typeof navigator!=='undefined'&&/^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent);var IS_SAFARI=typeof navigator!=='undefined'&&/Version\/[\d\.]+.*Safari/.test(navigator.userAgent);// "modern" Edge was released at 79.x
var IS_EDGE_LEGACY=typeof navigator!=='undefined'&&/Edge?\/(?:[0-6][0-9]|[0-7][0-8])/i.test(navigator.userAgent);/**
 * Hotkey mappings for each platform.
 */var HOTKEYS={bold:'mod+b',compose:['down','left','right','up','backspace','enter'],moveBackward:'left',moveForward:'right',moveWordBackward:'ctrl+left',moveWordForward:'ctrl+right',deleteBackward:'shift?+backspace',deleteForward:'shift?+delete',extendBackward:'shift+left',extendForward:'shift+right',italic:'mod+i',splitBlock:'shift?+enter',undo:'mod+z'};var APPLE_HOTKEYS={moveLineBackward:'opt+up',moveLineForward:'opt+down',moveWordBackward:'opt+left',moveWordForward:'opt+right',deleteBackward:['ctrl+backspace','ctrl+h'],deleteForward:['ctrl+delete','ctrl+d'],deleteLineBackward:'cmd+shift?+backspace',deleteLineForward:['cmd+shift?+delete','ctrl+k'],deleteWordBackward:'opt+shift?+backspace',deleteWordForward:'opt+shift?+delete',extendLineBackward:'opt+shift+up',extendLineForward:'opt+shift+down',redo:'cmd+shift+z',transposeCharacter:'ctrl+t'};var WINDOWS_HOTKEYS={deleteWordBackward:'ctrl+shift?+backspace',deleteWordForward:'ctrl+shift?+delete',redo:['ctrl+y','ctrl+shift+z']};/**
 * Create a platform-aware hotkey checker.
 */var create=key=>{var generic=HOTKEYS[key];var apple=APPLE_HOTKEYS[key];var windows=WINDOWS_HOTKEYS[key];var isGeneric=generic&&Object(lib["isKeyHotkey"])(generic);var isApple=apple&&Object(lib["isKeyHotkey"])(apple);var isWindows=windows&&Object(lib["isKeyHotkey"])(windows);return event=>{if(isGeneric&&isGeneric(event))return true;if(IS_APPLE&&isApple&&isApple(event))return true;if(!IS_APPLE&&isWindows&&isWindows(event))return true;return false;};};/**
 * Hotkeys.
 */var Hotkeys={isBold:create('bold'),isCompose:create('compose'),isMoveBackward:create('moveBackward'),isMoveForward:create('moveForward'),isDeleteBackward:create('deleteBackward'),isDeleteForward:create('deleteForward'),isDeleteLineBackward:create('deleteLineBackward'),isDeleteLineForward:create('deleteLineForward'),isDeleteWordBackward:create('deleteWordBackward'),isDeleteWordForward:create('deleteWordForward'),isExtendBackward:create('extendBackward'),isExtendForward:create('extendForward'),isExtendLineBackward:create('extendLineBackward'),isExtendLineForward:create('extendLineForward'),isItalic:create('italic'),isMoveLineBackward:create('moveLineBackward'),isMoveLineForward:create('moveLineForward'),isMoveWordBackward:create('moveWordBackward'),isMoveWordForward:create('moveWordForward'),isRedo:create('redo'),isSplitBlock:create('splitBlock'),isTransposeCharacter:create('transposeCharacter'),isUndo:create('undo')};function 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;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};if(i%2){ownKeys(Object(source),true).forEach(function(key){_defineProperty(target,key,source[key]);});}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source));}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}}return target;}var HAS_BEFORE_INPUT_SUPPORT=!(IS_FIREFOX||IS_EDGE_LEGACY);/**
 * Editable.
 */var Editable=props=>{var{autoFocus,decorate=defaultDecorate,onDOMBeforeInput:propsOnDOMBeforeInput,placeholder,readOnly=false,renderElement,renderLeaf,style={},as:Component='div'}=props,attributes=_objectWithoutProperties(props,["autoFocus","decorate","onDOMBeforeInput","placeholder","readOnly","renderElement","renderLeaf","style","as"]);var editor=useSlate();var ref=Object(react["useRef"])(null);// Update internal state on each render.
IS_READ_ONLY.set(editor,readOnly);// Keep track of some state for the event handler logic.
var state=Object(react["useMemo"])(()=>({isComposing:false,isUpdatingSelection:false,latestElement:null}),[]);// Update element-related weak maps with the DOM element ref.
useIsomorphicLayoutEffect(()=>{if(ref.current){EDITOR_TO_ELEMENT.set(editor,ref.current);NODE_TO_ELEMENT.set(editor,ref.current);ELEMENT_TO_NODE.set(ref.current,editor);}else{NODE_TO_ELEMENT.delete(editor);}});// Whenever the editor updates, make sure the DOM selection state is in sync.
useIsomorphicLayoutEffect(()=>{var{selection}=editor;var domSelection=window.getSelection();if(state.isComposing||!domSelection||!ReactEditor.isFocused(editor)){return;}var hasDomSelection=domSelection.type!=='None';// If the DOM selection is properly unset, we're done.
if(!selection&&!hasDomSelection){return;}// verify that the dom selection is in the editor
var editorElement=EDITOR_TO_ELEMENT.get(editor);var hasDomSelectionInEditor=false;if(editorElement.contains(domSelection.anchorNode)&&editorElement.contains(domSelection.focusNode)){hasDomSelectionInEditor=true;}// If the DOM selection is in the editor and the editor selection is already correct, we're done.
if(hasDomSelection&&hasDomSelectionInEditor&&selection&&index_es["f" /* Range */].equals(ReactEditor.toSlateRange(editor,domSelection),selection)){return;}// Otherwise the DOM selection is out of sync, so update it.
var el=ReactEditor.toDOMNode(editor,editor);state.isUpdatingSelection=true;domSelection.removeAllRanges();var newDomRange=selection&&ReactEditor.toDOMRange(editor,selection);if(newDomRange){domSelection.addRange(newDomRange);var leafEl=newDomRange.startContainer.parentElement;scroll_into_view_if_needed_es(leafEl,{scrollMode:'if-needed'});}setTimeout(()=>{// COMPAT: In Firefox, it's not enough to create a range, you also need
// to focus the contenteditable element too. (2016/11/16)
if(newDomRange&&IS_FIREFOX){el.focus();}state.isUpdatingSelection=false;});});// The autoFocus TextareaHTMLAttribute doesn't do anything on a div, so it
// needs to be manually focused.
Object(react["useEffect"])(()=>{if(ref.current&&autoFocus){ref.current.focus();}},[autoFocus]);// Listen on the native `beforeinput` event to get real "Level 2" events. This
// is required because React's `beforeinput` is fake and never really attaches
// to the real event sadly. (2019/11/01)
// https://github.com/facebook/react/issues/11211
var onDOMBeforeInput=Object(react["useCallback"])(event=>{if(!readOnly&&hasEditableTarget(editor,event.target)&&!isDOMEventHandled(event,propsOnDOMBeforeInput)){var{selection}=editor;var{inputType:type}=event;var data=event.dataTransfer||event.data||undefined;// These two types occur while a user is composing text and can't be
// cancelled. Let them through and wait for the composition to end.
if(type==='insertCompositionText'||type==='deleteCompositionText'){return;}event.preventDefault();// COMPAT: For the deleting forward/backward input types we don't want
// to change the selection because it is the range that will be deleted,
// and those commands determine that for themselves.
if(!type.startsWith('delete')||type.startsWith('deleteBy')){var[targetRange]=event.getTargetRanges();if(targetRange){var range=ReactEditor.toSlateRange(editor,targetRange);if(!selection||!index_es["f" /* Range */].equals(selection,range)){index_es["h" /* Transforms */].select(editor,range);}}}// COMPAT: If the selection is expanded, even if the command seems like
// a delete forward/backward command it should delete the selection.
if(selection&&index_es["f" /* Range */].isExpanded(selection)&&type.startsWith('delete')){index_es["a" /* Editor */].deleteFragment(editor);return;}switch(type){case'deleteByComposition':case'deleteByCut':case'deleteByDrag':{index_es["a" /* Editor */].deleteFragment(editor);break;}case'deleteContent':case'deleteContentForward':{index_es["a" /* Editor */].deleteForward(editor);break;}case'deleteContentBackward':{index_es["a" /* Editor */].deleteBackward(editor);break;}case'deleteEntireSoftLine':{index_es["a" /* Editor */].deleteBackward(editor,{unit:'line'});index_es["a" /* Editor */].deleteForward(editor,{unit:'line'});break;}case'deleteHardLineBackward':{index_es["a" /* Editor */].deleteBackward(editor,{unit:'block'});break;}case'deleteSoftLineBackward':{index_es["a" /* Editor */].deleteBackward(editor,{unit:'line'});break;}case'deleteHardLineForward':{index_es["a" /* Editor */].deleteForward(editor,{unit:'block'});break;}case'deleteSoftLineForward':{index_es["a" /* Editor */].deleteForward(editor,{unit:'line'});break;}case'deleteWordBackward':{index_es["a" /* Editor */].deleteBackward(editor,{unit:'word'});break;}case'deleteWordForward':{index_es["a" /* Editor */].deleteForward(editor,{unit:'word'});break;}case'insertLineBreak':case'insertParagraph':{index_es["a" /* Editor */].insertBreak(editor);break;}case'insertFromComposition':case'insertFromDrop':case'insertFromPaste':case'insertFromYank':case'insertReplacementText':case'insertText':{if(data instanceof DataTransfer){ReactEditor.insertData(editor,data);}else if(typeof data==='string'){index_es["a" /* Editor */].insertText(editor,data);}break;}}}},[readOnly]);// Attach a native DOM event handler for `beforeinput` events, because React's
// built-in `onBeforeInput` is actually a leaky polyfill that doesn't expose
// real `beforeinput` events sadly... (2019/11/04)
// https://github.com/facebook/react/issues/11211
useIsomorphicLayoutEffect(()=>{if(ref.current){// @ts-ignore The `beforeinput` event isn't recognized.
ref.current.addEventListener('beforeinput',onDOMBeforeInput);}return()=>{if(ref.current){// @ts-ignore The `beforeinput` event isn't recognized.
ref.current.removeEventListener('beforeinput',onDOMBeforeInput);}};},[onDOMBeforeInput]);// Listen on the native `selectionchange` event to be able to update any time
// the selection changes. This is required because React's `onSelect` is leaky
// and non-standard so it doesn't fire until after a selection has been
// released. This causes issues in situations where another change happens
// while a selection is being dragged.
var onDOMSelectionChange=Object(react["useCallback"])(throttle_default()(()=>{if(!readOnly&&!state.isComposing&&!state.isUpdatingSelection){var{activeElement}=window.document;var el=ReactEditor.toDOMNode(editor,editor);var domSelection=window.getSelection();if(activeElement===el){state.latestElement=activeElement;IS_FOCUSED.set(editor,true);}else{IS_FOCUSED.delete(editor);}if(!domSelection){return index_es["h" /* Transforms */].deselect(editor);}var{anchorNode,focusNode}=domSelection;var anchorNodeSelectable=hasEditableTarget(editor,anchorNode)||isTargetInsideVoid(editor,anchorNode);var focusNodeSelectable=hasEditableTarget(editor,focusNode)||isTargetInsideVoid(editor,focusNode);if(anchorNodeSelectable&&focusNodeSelectable){var range=ReactEditor.toSlateRange(editor,domSelection);index_es["h" /* Transforms */].select(editor,range);}else{index_es["h" /* Transforms */].deselect(editor);}}},100),[readOnly]);// Attach a native DOM event handler for `selectionchange`, because React's
// built-in `onSelect` handler doesn't fire for all selection changes. It's a
// leaky polyfill that only fires on keypresses or clicks. Instead, we want to
// fire for any change to the selection inside the editor. (2019/11/04)
// https://github.com/facebook/react/issues/5785
useIsomorphicLayoutEffect(()=>{window.document.addEventListener('selectionchange',onDOMSelectionChange);return()=>{window.document.removeEventListener('selectionchange',onDOMSelectionChange);};},[onDOMSelectionChange]);var decorations=decorate([editor,[]]);if(placeholder&&editor.children.length===1&&Array.from(index_es["c" /* Node */].texts(editor)).length===1&&index_es["c" /* Node */].string(editor)===''){var start=index_es["a" /* Editor */].start(editor,[]);decorations.push({[PLACEHOLDER_SYMBOL]:true,placeholder,anchor:start,focus:start});}return react_default.a.createElement(ReadOnlyContext.Provider,{value:readOnly},react_default.a.createElement(Component// COMPAT: The Grammarly Chrome extension works by changing the DOM
// out from under `contenteditable` elements, which leads to weird
// behaviors so we have to disable it like editor. (2017/04/24)
,Object.assign({"data-gramm":false,role:readOnly?undefined:'textbox'},attributes,{// COMPAT: Certain browsers don't support the `beforeinput` event, so we'd
// have to use hacks to make these replacement-based features work.
spellCheck:!HAS_BEFORE_INPUT_SUPPORT?undefined:attributes.spellCheck,autoCorrect:!HAS_BEFORE_INPUT_SUPPORT?undefined:attributes.autoCorrect,autoCapitalize:!HAS_BEFORE_INPUT_SUPPORT?undefined:attributes.autoCapitalize,"data-slate-editor":true,"data-slate-node":"value",contentEditable:readOnly?undefined:true,suppressContentEditableWarning:true,ref:ref,style:_objectSpread({// Prevent the default outline styles.
outline:'none',// Preserve adjacent whitespace and new lines.
whiteSpace:'pre-wrap',// Allow words to break if they are too long.
wordWrap:'break-word'},style),onBeforeInput:Object(react["useCallback"])(event=>{// COMPAT: Certain browsers don't support the `beforeinput` event, so we
// fall back to React's leaky polyfill instead just for it. It
// only works for the `insertText` input type.
if(!HAS_BEFORE_INPUT_SUPPORT&&!readOnly&&!isEventHandled(event,attributes.onBeforeInput)&&hasEditableTarget(editor,event.target)){event.preventDefault();var text=event.data;index_es["a" /* Editor */].insertText(editor,text);}},[readOnly]),onBlur:Object(react["useCallback"])(event=>{if(readOnly||state.isUpdatingSelection||!hasEditableTarget(editor,event.target)||isEventHandled(event,attributes.onBlur)){return;}// COMPAT: If the current `activeElement` is still the previous
// one, this is due to the window being blurred when the tab
// itself becomes unfocused, so we want to abort early to allow to
// editor to stay focused when the tab becomes focused again.
if(state.latestElement===window.document.activeElement){return;}var{relatedTarget}=event;var el=ReactEditor.toDOMNode(editor,editor);// COMPAT: The event should be ignored if the focus is returning
// to the editor from an embedded editable element (eg. an <input>
// element inside a void node).
if(relatedTarget===el){return;}// COMPAT: The event should be ignored if the focus is moving from
// the editor to inside a void node's spacer element.
if(isDOMElement(relatedTarget)&&relatedTarget.hasAttribute('data-slate-spacer')){return;}// COMPAT: The event should be ignored if the focus is moving to a
// non- editable section of an element that isn't a void node (eg.
// a list item of the check list example).
if(relatedTarget!=null&&isDOMNode(relatedTarget)&&ReactEditor.hasDOMNode(editor,relatedTarget)){var node=ReactEditor.toSlateNode(editor,relatedTarget);if(index_es["b" /* Element */].isElement(node)&&!editor.isVoid(node)){return;}}IS_FOCUSED.delete(editor);},[readOnly,attributes.onBlur]),onClick:Object(react["useCallback"])(event=>{if(!readOnly&&hasTarget(editor,event.target)&&!isEventHandled(event,attributes.onClick)&&isDOMNode(event.target)){var node=ReactEditor.toSlateNode(editor,event.target);var path=ReactEditor.findPath(editor,node);var _start=index_es["a" /* Editor */].start(editor,path);if(index_es["a" /* Editor */].void(editor,{at:_start})){var range=index_es["a" /* Editor */].range(editor,_start);index_es["h" /* Transforms */].select(editor,range);}}},[readOnly,attributes.onClick]),onCompositionEnd:Object(react["useCallback"])(event=>{if(hasEditableTarget(editor,event.target)&&!isEventHandled(event,attributes.onCompositionEnd)){state.isComposing=false;// COMPAT: In Chrome, `beforeinput` events for compositions
// aren't correct and never fire the "insertFromComposition"
// type that we need. So instead, insert whenever a composition
// ends since it will already have been committed to the DOM.
if(!IS_SAFARI&&!IS_FIREFOX&&event.data){index_es["a" /* Editor */].insertText(editor,event.data);}}},[attributes.onCompositionEnd]),onCompositionStart:Object(react["useCallback"])(event=>{if(hasEditableTarget(editor,event.target)&&!isEventHandled(event,attributes.onCompositionStart)){state.isComposing=true;}},[attributes.onCompositionStart]),onCopy:Object(react["useCallback"])(event=>{if(hasEditableTarget(editor,event.target)&&!isEventHandled(event,attributes.onCopy)){event.preventDefault();ReactEditor.setFragmentData(editor,event.clipboardData);}},[attributes.onCopy]),onCut:Object(react["useCallback"])(event=>{if(!readOnly&&hasEditableTarget(editor,event.target)&&!isEventHandled(event,attributes.onCut)){event.preventDefault();ReactEditor.setFragmentData(editor,event.clipboardData);var{selection}=editor;if(selection&&index_es["f" /* Range */].isExpanded(selection)){index_es["a" /* Editor */].deleteFragment(editor);}}},[readOnly,attributes.onCut]),onDragOver:Object(react["useCallback"])(event=>{if(hasTarget(editor,event.target)&&!isEventHandled(event,attributes.onDragOver)){// Only when the target is void, call `preventDefault` to signal
// that drops are allowed. Editable content is droppable by
// default, and calling `preventDefault` hides the cursor.
var node=ReactEditor.toSlateNode(editor,event.target);if(index_es["a" /* Editor */].isVoid(editor,node)){event.preventDefault();}}},[attributes.onDragOver]),onDragStart:Object(react["useCallback"])(event=>{if(hasTarget(editor,event.target)&&!isEventHandled(event,attributes.onDragStart)){var node=ReactEditor.toSlateNode(editor,event.target);var path=ReactEditor.findPath(editor,node);var voidMatch=index_es["a" /* Editor */].void(editor,{at:path});// If starting a drag on a void node, make sure it is selected
// so that it shows up in the selection's fragment.
if(voidMatch){var range=index_es["a" /* Editor */].range(editor,path);index_es["h" /* Transforms */].select(editor,range);}ReactEditor.setFragmentData(editor,event.dataTransfer);}},[attributes.onDragStart]),onDrop:Object(react["useCallback"])(event=>{if(hasTarget(editor,event.target)&&!readOnly&&!isEventHandled(event,attributes.onDrop)){// COMPAT: Certain browsers don't fire `beforeinput` events at all, and
// Chromium browsers don't properly fire them for files being
// dropped into a `contenteditable`. (2019/11/26)
// https://bugs.chromium.org/p/chromium/issues/detail?id=1028668
if(!HAS_BEFORE_INPUT_SUPPORT||!IS_SAFARI&&event.dataTransfer.files.length>0){event.preventDefault();var range=ReactEditor.findEventRange(editor,event);var data=event.dataTransfer;index_es["h" /* Transforms */].select(editor,range);ReactEditor.insertData(editor,data);}}},[readOnly,attributes.onDrop]),onFocus:Object(react["useCallback"])(event=>{if(!readOnly&&!state.isUpdatingSelection&&hasEditableTarget(editor,event.target)&&!isEventHandled(event,attributes.onFocus)){var el=ReactEditor.toDOMNode(editor,editor);state.latestElement=window.document.activeElement;// COMPAT: If the editor has nested editable elements, the focus
// can go to them. In Firefox, this must be prevented because it
// results in issues with keyboard navigation. (2017/03/30)
if(IS_FIREFOX&&event.target!==el){el.focus();return;}IS_FOCUSED.set(editor,true);}},[readOnly,attributes.onFocus]),onKeyDown:Object(react["useCallback"])(event=>{if(!readOnly&&hasEditableTarget(editor,event.target)&&!isEventHandled(event,attributes.onKeyDown)){var{nativeEvent}=event;var{selection}=editor;// COMPAT: Since we prevent the default behavior on
// `beforeinput` events, the browser doesn't think there's ever
// any history stack to undo or redo, so we have to manage these
// hotkeys ourselves. (2019/11/06)
if(Hotkeys.isRedo(nativeEvent)){event.preventDefault();if(typeof editor.redo==='function'){editor.redo();}return;}if(Hotkeys.isUndo(nativeEvent)){event.preventDefault();if(typeof editor.undo==='function'){editor.undo();}return;}// COMPAT: Certain browsers don't handle the selection updates
// properly. In Chrome, the selection isn't properly extended.
// And in Firefox, the selection isn't properly collapsed.
// (2017/10/17)
if(Hotkeys.isMoveLineBackward(nativeEvent)){event.preventDefault();index_es["h" /* Transforms */].move(editor,{unit:'line',reverse:true});return;}if(Hotkeys.isMoveLineForward(nativeEvent)){event.preventDefault();index_es["h" /* Transforms */].move(editor,{unit:'line'});return;}if(Hotkeys.isExtendLineBackward(nativeEvent)){event.preventDefault();index_es["h" /* Transforms */].move(editor,{unit:'line',edge:'focus',reverse:true});return;}if(Hotkeys.isExtendLineForward(nativeEvent)){event.preventDefault();index_es["h" /* Transforms */].move(editor,{unit:'line',edge:'focus'});return;}// COMPAT: If a void node is selected, or a zero-width text node
// adjacent to an inline is selected, we need to handle these
// hotkeys manually because browsers won't be able to skip over
// the void node with the zero-width space not being an empty
// string.
if(Hotkeys.isMoveBackward(nativeEvent)){event.preventDefault();if(selection&&index_es["f" /* Range */].isCollapsed(selection)){index_es["h" /* Transforms */].move(editor,{reverse:true});}else{index_es["h" /* Transforms */].collapse(editor,{edge:'start'});}return;}if(Hotkeys.isMoveForward(nativeEvent)){event.preventDefault();if(selection&&index_es["f" /* Range */].isCollapsed(selection)){index_es["h" /* Transforms */].move(editor);}else{index_es["h" /* Transforms */].collapse(editor,{edge:'end'});}return;}if(Hotkeys.isMoveWordBackward(nativeEvent)){event.preventDefault();index_es["h" /* Transforms */].move(editor,{unit:'word',reverse:true});return;}if(Hotkeys.isMoveWordForward(nativeEvent)){event.preventDefault();index_es["h" /* Transforms */].move(editor,{unit:'word'});return;}// COMPAT: Certain browsers don't support the `beforeinput` event, so we
// fall back to guessing at the input intention for hotkeys.
// COMPAT: In iOS, some of these hotkeys are handled in the
if(!HAS_BEFORE_INPUT_SUPPORT){// We don't have a core behavior for these, but they change the
// DOM if we don't prevent them, so we have to.
if(Hotkeys.isBold(nativeEvent)||Hotkeys.isItalic(nativeEvent)||Hotkeys.isTransposeCharacter(nativeEvent)){event.preventDefault();return;}if(Hotkeys.isSplitBlock(nativeEvent)){event.preventDefault();index_es["a" /* Editor */].insertBreak(editor);return;}if(Hotkeys.isDeleteBackward(nativeEvent)){event.preventDefault();if(selection&&index_es["f" /* Range */].isExpanded(selection)){index_es["a" /* Editor */].deleteFragment(editor);}else{index_es["a" /* Editor */].deleteBackward(editor);}return;}if(Hotkeys.isDeleteForward(nativeEvent)){event.preventDefault();if(selection&&index_es["f" /* Range */].isExpanded(selection)){index_es["a" /* Editor */].deleteFragment(editor);}else{index_es["a" /* Editor */].deleteForward(editor);}return;}if(Hotkeys.isDeleteLineBackward(nativeEvent)){event.preventDefault();if(selection&&index_es["f" /* Range */].isExpanded(selection)){index_es["a" /* Editor */].deleteFragment(editor);}else{index_es["a" /* Editor */].deleteBackward(editor,{unit:'line'});}return;}if(Hotkeys.isDeleteLineForward(nativeEvent)){event.preventDefault();if(selection&&index_es["f" /* Range */].isExpanded(selection)){index_es["a" /* Editor */].deleteFragment(editor);}else{index_es["a" /* Editor */].deleteForward(editor,{unit:'line'});}return;}if(Hotkeys.isDeleteWordBackward(nativeEvent)){event.preventDefault();if(selection&&index_es["f" /* Range */].isExpanded(selection)){index_es["a" /* Editor */].deleteFragment(editor);}else{index_es["a" /* Editor */].deleteBackward(editor,{unit:'word'});}return;}if(Hotkeys.isDeleteWordForward(nativeEvent)){event.preventDefault();if(selection&&index_es["f" /* Range */].isExpanded(selection)){index_es["a" /* Editor */].deleteFragment(editor);}else{index_es["a" /* Editor */].deleteForward(editor,{unit:'word'});}return;}}}},[readOnly,attributes.onKeyDown]),onPaste:Object(react["useCallback"])(event=>{// COMPAT: Certain browsers don't support the `beforeinput` event, so we
// fall back to React's `onPaste` here instead.
// COMPAT: Firefox, Chrome and Safari are not emitting `beforeinput` events
// when "paste without formatting" option is used.
// This unfortunately needs to be handled with paste events instead.
if((!HAS_BEFORE_INPUT_SUPPORT||isPlainTextOnlyPaste(event.nativeEvent))&&!readOnly&&hasEditableTarget(editor,event.target)&&!isEventHandled(event,attributes.onPaste)){event.preventDefault();ReactEditor.insertData(editor,event.clipboardData);}},[readOnly,attributes.onPaste])}),react_default.a.createElement(Children,{decorate:decorate,decorations:decorations,node:editor,renderElement:renderElement,renderLeaf:renderLeaf,selection:editor.selection})));};/**
 * A default memoized decorate function.
 */var defaultDecorate=()=>[];/**
 * Check if the target is in the editor.
 */var hasTarget=(editor,target)=>{return isDOMNode(target)&&ReactEditor.hasDOMNode(editor,target);};/**
 * Check if the target is editable and in the editor.
 */var hasEditableTarget=(editor,target)=>{return isDOMNode(target)&&ReactEditor.hasDOMNode(editor,target,{editable:true});};/**
 * Check if the target is inside void and in the editor.
 */var isTargetInsideVoid=(editor,target)=>{var slateNode=hasTarget(editor,target)&&ReactEditor.toSlateNode(editor,target);return index_es["a" /* Editor */].isVoid(editor,slateNode);};/**
 * Check if an event is overrided by a handler.
 */var isEventHandled=(event,handler)=>{if(!handler){return false;}handler(event);return event.isDefaultPrevented()||event.isPropagationStopped();};/**
 * Check if a DOM event is overrided by a handler.
 */var isDOMEventHandled=(event,handler)=>{if(!handler){return false;}handler(event);return event.defaultPrevented;};
// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ withHistory; });

// UNUSED EXPORTS: HISTORY, History, HistoryEditor, MERGING, SAVING

// CONCATENATED MODULE: ./node_modules/slate-history/node_modules/isobject/index.js
/*!
 * isobject <https://github.com/jonschlinkert/isobject>
 *
 * Copyright (c) 2014-2017, Jon Schlinkert.
 * Released under the MIT License.
 */function isObject(val){return val!=null&&typeof val==='object'&&Array.isArray(val)===false;};
// CONCATENATED MODULE: ./node_modules/slate-history/node_modules/is-plain-object/index.js
/*!
 * is-plain-object <https://github.com/jonschlinkert/is-plain-object>
 *
 * Copyright (c) 2014-2017, Jon Schlinkert.
 * Released under the MIT License.
 */function isObjectObject(o){return isObject(o)===true&&Object.prototype.toString.call(o)==='[object Object]';}function isPlainObject(o){var ctor,prot;if(isObjectObject(o)===false)return false;// If has modified constructor
ctor=o.constructor;if(typeof ctor!=='function')return false;// If has modified prototype
prot=ctor.prototype;if(isObjectObject(prot)===false)return false;// If constructor does not have an Object-specific method
if(prot.hasOwnProperty('isPrototypeOf')===false){return false;}// Most likely a plain Object
return true;};
// EXTERNAL MODULE: ./node_modules/slate/dist/index.es.js + 2 modules
var index_es = __webpack_require__(29);

// CONCATENATED MODULE: ./node_modules/slate-history/dist/index.es.js
var History={/**
   * Check if a value is a `History` object.
   */isHistory(value){return isPlainObject(value)&&Array.isArray(value.redos)&&Array.isArray(value.undos)&&(value.redos.length===0||index_es["d" /* Operation */].isOperationList(value.redos[0]))&&(value.undos.length===0||index_es["d" /* Operation */].isOperationList(value.undos[0]));}};/**
 * Weakmaps for attaching state to the editor.
 */var HISTORY=new WeakMap();var SAVING=new WeakMap();var MERGING=new WeakMap();var HistoryEditor={/**
   * Check if a value is a `HistoryEditor` object.
   */isHistoryEditor(value){return index_es["a" /* Editor */].isEditor(value)&&History.isHistory(value.history);},/**
   * Get the merge flag's current value.
   */isMerging(editor){return MERGING.get(editor);},/**
   * Get the saving flag's current value.
   */isSaving(editor){return SAVING.get(editor);},/**
   * Redo to the previous saved state.
   */redo(editor){editor.redo();},/**
   * Undo to the previous saved state.
   */undo(editor){editor.undo();},/**
   * Apply a series of changes inside a synchronous `fn`, without merging any of
   * the new operations into previous save point in the history.
   */withoutMerging(editor,fn){var prev=HistoryEditor.isMerging(editor);MERGING.set(editor,false);fn();MERGING.set(editor,prev);},/**
   * Apply a series of changes inside a synchronous `fn`, without saving any of
   * their operations into the history.
   */withoutSaving(editor,fn){var prev=HistoryEditor.isSaving(editor);SAVING.set(editor,false);fn();SAVING.set(editor,prev);}};/**
 * The `withHistory` plugin keeps track of the operation history of a Slate
 * editor as operations are applied to it, using undo and redo stacks.
 */var withHistory=editor=>{var e=editor;var{apply}=e;e.history={undos:[],redos:[]};e.redo=()=>{var{history}=e;var{redos}=history;if(redos.length>0){var batch=redos[redos.length-1];HistoryEditor.withoutSaving(e,()=>{index_es["a" /* Editor */].withoutNormalizing(e,()=>{for(var op of batch){e.apply(op);}});});history.redos.pop();history.undos.push(batch);}};e.undo=()=>{var{history}=e;var{undos}=history;if(undos.length>0){var batch=undos[undos.length-1];HistoryEditor.withoutSaving(e,()=>{index_es["a" /* Editor */].withoutNormalizing(e,()=>{var inverseOps=batch.map(index_es["d" /* Operation */].inverse).reverse();for(var op of inverseOps){// If the final operation is deselecting the editor, skip it. This is
if(op===inverseOps[inverseOps.length-1]&&op.type==='set_selection'&&op.newProperties==null){continue;}else{e.apply(op);}}});});history.redos.push(batch);history.undos.pop();}};e.apply=op=>{var{operations,history}=e;var{undos}=history;var lastBatch=undos[undos.length-1];var lastOp=lastBatch&&lastBatch[lastBatch.length-1];var overwrite=shouldOverwrite(op,lastOp);var save=HistoryEditor.isSaving(e);var merge=HistoryEditor.isMerging(e);if(save==null){save=shouldSave(op);}if(save){if(merge==null){if(lastBatch==null){merge=false;}else if(operations.length!==0){merge=true;}else{merge=shouldMerge(op,lastOp)||overwrite;}}if(lastBatch&&merge){if(overwrite){lastBatch.pop();}lastBatch.push(op);}else{var batch=[op];undos.push(batch);}while(undos.length>100){undos.shift();}if(shouldClear(op)){history.redos=[];}}apply(op);};return e;};/**
 * Check whether to merge an operation into the previous operation.
 */var shouldMerge=(op,prev)=>{if(op.type==='set_selection'){return true;}if(prev&&op.type==='insert_text'&&prev.type==='insert_text'&&op.offset===prev.offset+prev.text.length&&index_es["e" /* Path */].equals(op.path,prev.path)){return true;}if(prev&&op.type==='remove_text'&&prev.type==='remove_text'&&op.offset+op.text.length===prev.offset&&index_es["e" /* Path */].equals(op.path,prev.path)){return true;}return false;};/**
 * Check whether an operation needs to be saved to the history.
 */var shouldSave=(op,prev)=>{if(op.type==='set_selection'&&op.newProperties==null){return false;}return true;};/**
 * Check whether an operation should overwrite the previous one.
 */var shouldOverwrite=(op,prev)=>{if(prev&&op.type==='set_selection'&&prev.type==='set_selection'){return true;}return false;};/**
 * Check whether an operation should clear the redos stack.
 */var shouldClear=op=>{if(op.type==='set_selection'){return false;}return true;};
// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ TitledContainer_TitledContainer; });

// EXTERNAL MODULE: ./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js + 3 modules
var styled_base_browser_esm = __webpack_require__(6);

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);

// CONCATENATED MODULE: ./src/js/components/common/TitledContainer/TitledContainer.js
var SectionTitle=/*#__PURE__*/Object(styled_base_browser_esm["a" /* default */])('div',{target:"e1f4aby0",label:"SectionTitle"})("font-family:Stolzl;font-size:",function(props){return props.titleFontSize?props.titleFontSize:'12px';},";font-weight:bold;line-height:1.15;text-align:left;color:#3f435c;padding:5.8px 0 6.2px;display:flex;justify-content:space-between;align-items:center;",function(props){return props.titleHeight?"height: ".concat(props.titleHeight,";"):null;}, true?"":undefined);var TitledContainer_TitledContainer=function TitledContainer(props){return Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("min-height:100px;width:100%;display:inline-block;",props.fullHeight?'height: 100%;':'',"label:TitledContainer;"+( true?"":undefined))},!props.noTitle&&Object(core_browser_esm["c" /* jsx */])(SectionTitle,{titleFontSize:props.titleFontSize,titleHeight:props.titleHeight},props.title,props.titleButton),Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("padding:",props.padding?props.padding:'16px 22px',";background-color:#fff;box-shadow:0px 1px 7px 0 rgba(0,105,250,0.07);",props.fullColFlex&&"\n          display: flex;\n          flex-direction: column;\n          height: calc(100% - 25px);\n          justify-content: space-around;\n        ","label:TitledContainer;"+( true?"":undefined))},props.children));};
// CONCATENATED MODULE: ./src/js/components/common/TitledContainer/index.js

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ common_HeaderBar_HeaderBar; });

// EXTERNAL MODULE: ./node_modules/antd/lib/modal/style/index.js
var style = __webpack_require__(88);

// EXTERNAL MODULE: ./node_modules/antd/lib/modal/index.js
var modal = __webpack_require__(55);
var modal_default = /*#__PURE__*/__webpack_require__.n(modal);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
var classCallCheck = __webpack_require__(9);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js
var createClass = __webpack_require__(10);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__(11);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
var getPrototypeOf = __webpack_require__(12);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
var inherits = __webpack_require__(13);

// EXTERNAL MODULE: ./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js + 3 modules
var styled_base_browser_esm = __webpack_require__(6);

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);

// EXTERNAL MODULE: ./node_modules/react-intl/lib/index.es.js
var index_es = __webpack_require__(4);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__(7);

// EXTERNAL MODULE: ./src/js/components/common/HeaderBar/SelectAccountsPanel.js
var SelectAccountsPanel = __webpack_require__(403);

// EXTERNAL MODULE: ./src/js/constants/classes/index.js
var classes = __webpack_require__(32);

// EXTERNAL MODULE: ./src/js/components/common/Button/index.js
var Button = __webpack_require__(30);

// EXTERNAL MODULE: ./src/js/components/OnboardingScreens/AdvancedScreen7/index.js + 1 modules
var AdvancedScreen7 = __webpack_require__(289);

// EXTERNAL MODULE: ./src/js/constants/enums.js
var enums = __webpack_require__(17);

// CONCATENATED MODULE: ./src/js/components/common/HeaderBar/HeaderBar.js
var _dec,_dec2,_dec3,_dec4,_dec5,_class;// import ConnectAccountModal from '../../SourceAccounts/ConnectAccountModal';
var Container=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e174bvn10",label:"Container"})( true?{name:"13jrmdy",styles:"display:flex;align-items:center;padding-bottom:12px;& #exportList,& .exportList-triplemars,& a{display:none;}"}:undefined);var _ref= true?{name:"1tr4pcq-HeaderBar",styles:"margin-left:auto;label:HeaderBar;"}:undefined;var _ref2= true?{name:"1tr4pcq-HeaderBar",styles:"margin-left:auto;label:HeaderBar;"}:undefined;var _ref3= true?{name:"1tr4pcq-HeaderBar",styles:"margin-left:auto;label:HeaderBar;"}:undefined;var _ref4= true?{name:"gfsnvc-HeaderBar",styles:"display:flex;flex-direction:column;align-items:center;label:HeaderBar;"}:undefined;var _ref5= true?{name:"gfsnvc-HeaderBar",styles:"display:flex;flex-direction:column;align-items:center;label:HeaderBar;"}:undefined;var HeaderBar_HeaderBar=(_dec=Object(index_module["b" /* inject */])('sessionStore'),_dec2=Object(index_module["b" /* inject */])('routingStore'),_dec3=Object(index_module["b" /* inject */])('toastsStore'),_dec4=Object(index_module["b" /* inject */])('onboardingStore'),_dec5=Object(index_module["b" /* inject */])('ordersStore'),_dec(_class=_dec2(_class=_dec3(_class=_dec4(_class=_dec5(_class=Object(index_es["d" /* injectIntl */])(_class=Object(index_module["c" /* observer */])(_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(HeaderBar,_Component);function HeaderBar(props){var _this;Object(classCallCheck["a" /* default */])(this,HeaderBar);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(HeaderBar).call(this,props));_this.state={importModalOn:false,importOrdersModalOn:false};return _this;}Object(createClass["a" /* default */])(HeaderBar,[{key:"render",value:function render(){var _this2=this;var _this$props=this.props,intl=_this$props.intl,headingId=_this$props.headingId,accountsProps=_this$props.accountsProps,_this$props$onboardin=_this$props.onboardingStore,importCSV=_this$props$onboardin.importCSV,setImportedData=_this$props$onboardin.setImportedData,noImportedData=_this$props$onboardin.noImportedData,incompleteData=_this$props$onboardin.incompleteData,_this$props$ordersSto=_this$props.ordersStore,isfileImported=_this$props$ordersSto.isfileImported,storeAccountId=_this$props$ordersSto.storeAccountId,sendImportedOrders=_this$props$ordersSto.sendImportedOrders,showToast=_this$props.toastsStore.showToast,browserHistory=_this$props.routingStore.browserHistory;var _this$state=this.state,importModalOn=_this$state.importModalOn,importOrdersModalOn=_this$state.importOrdersModalOn;return Object(core_browser_esm["c" /* jsx */])(Container,null,Object(core_browser_esm["c" /* jsx */])("h1",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(classes["a" /* text1 */],";margin-right:68px;label:HeaderBar;"+( true?"":undefined))},intl.formatMessage({id:headingId})),accountsProps&&Object(core_browser_esm["c" /* jsx */])(SelectAccountsPanel["a" /* default */],{accountsProps:accountsProps}),headingId==='common.listings'?Object(core_browser_esm["c" /* jsx */])("div",{css:_ref},Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:function clickHandler(){return _this2.setState({importModalOn:true});}}, true?intl.formatMessage({id:'listing.importListings'}):undefined)):null,headingId==='common.orders'?Object(core_browser_esm["c" /* jsx */])("div",{css:_ref2},Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:function clickHandler(){return _this2.setState({importOrdersModalOn:true});}},intl.formatMessage({id:'orders.importOrders'}))):null,headingId==='common.sourceAccounts'&&Object(core_browser_esm["c" /* jsx */])("div",{css:_ref3}),Object(core_browser_esm["c" /* jsx */])(modal_default.a,{title:intl.formatMessage({id:'orders.import'}),visible:importOrdersModalOn,onCancel:function onCancel(){return _this2.setState({importOrdersModalOn:false});},okButtonProps:storeAccountId.length===0||isfileImported?{disabled:true}:{disabled:false},onOk:function onOk(){sendImportedOrders().then(function(response){if(!response.errorMessage){showToast({type:enums["a" /* default */].TOAST_TYPES.INFO,message:'orders.importSuccessMessage'});}else{showToast({type:enums["a" /* default */].TOAST_TYPES.WARNING,message:response.errorMessage});}});_this2.setState({importOrdersModalOn:false});},width:300},Object(core_browser_esm["c" /* jsx */])("div",{css:_ref4},importOrdersModalOn?Object(core_browser_esm["c" /* jsx */])(AdvancedScreen7["a" /* default */],{forOrdersImport:true}):null)),Object(core_browser_esm["c" /* jsx */])(modal_default.a,{title:intl.formatMessage({id:'listing.import'}),visible:importModalOn,onCancel:function onCancel(){return _this2.setState({importModalOn:false});},okButtonProps:noImportedData||incompleteData?{disabled:true}:{disabled:false},onOk:function onOk(){importCSV().then(function(resp){setImportedData([]);if(!resp.errorMessage){showToast({type:enums["a" /* default */].TOAST_TYPES.INFO,message:'discover.discoverRequestSuccessful'});browserHistory.push('/discover');}else{showToast({type:enums["a" /* default */].TOAST_TYPES.WARNING,message:resp.errorMessage});}});_this2.setState({importModalOn:false});},width:300},Object(core_browser_esm["c" /* jsx */])("div",{css:_ref5},importModalOn?Object(core_browser_esm["c" /* jsx */])(AdvancedScreen7["a" /* default */],{noDescriptionText:true,justContents:true}):null)));}}]);return HeaderBar;}(react["Component"]))||_class)||_class)||_class)||_class)||_class)||_class)||_class);/* harmony default export */ var common_HeaderBar_HeaderBar = (HeaderBar_HeaderBar);
// CONCATENATED MODULE: ./src/js/components/common/HeaderBar/index.js

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ common_DashboardContainer_DashboardContainer; });

// EXTERNAL MODULE: ./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js + 3 modules
var styled_base_browser_esm = __webpack_require__(6);

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);

// CONCATENATED MODULE: ./src/js/components/common/DashboardContainer/DashboardContainer.js
var boxShadowColor= true?'rgba(0, 105, 250, 0.15)':undefined;var Container=Object(styled_base_browser_esm["a" /* default */])("section",{target:"eueczzb0",label:"Container"})("display:flex;max-height:320px;justify-content:",function(_ref){var textAlign=_ref.textAlign;return textAlign||null;},";padding:20px 120px 16px 39px;margin-bottom:38px;border-bottom:",function(_ref2){var theme=_ref2.theme;return"1px solid ".concat(theme.colors.greyLight);},";border-radius:4px;box-shadow:0px 1px 7px 0 ",boxShadowColor,";z-index:10;background-color:",function(_ref3){var theme=_ref3.theme;return theme.colors.whiteBackground;},";@media (max-width:1100px){flex-direction:column;}"+( true?"":undefined));var DashboardContainer_DashboardContainer=function DashboardContainer(_ref4){var children=_ref4.children,textAlign=_ref4.textAlign;return Object(core_browser_esm["c" /* jsx */])(Container,{textAlign:textAlign},Object(core_browser_esm["c" /* jsx */])("h2",{className:"visually-hidden"},"Dashboard"),children);};/* harmony default export */ var common_DashboardContainer_DashboardContainer = (DashboardContainer_DashboardContainer);
// CONCATENATED MODULE: ./src/js/components/common/DashboardContainer/index.js

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ common_Table_Table; });

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js + 1 modules
var objectWithoutProperties = __webpack_require__(125);

// EXTERNAL MODULE: ./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js + 3 modules
var styled_base_browser_esm = __webpack_require__(6);

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);

// EXTERNAL MODULE: ./node_modules/react-data-grid/index.js
var react_data_grid = __webpack_require__(582);
var react_data_grid_default = /*#__PURE__*/__webpack_require__.n(react_data_grid);

// CONCATENATED MODULE: ./src/js/components/common/Table/Table.js
var Container=Object(styled_base_browser_esm["a" /* default */])("div",{target:"ezb30wb0",label:"Container"})("& .react-grid-Container{.react-grid-Grid{border:1px solid ",function(_ref){var theme=_ref.theme;return theme.colors.tableBorderColor;},";border-left:none;border-right:none;",function(_ref2){var minHeight=_ref2.minHeight;return minHeight&&"min-height: ".concat(minHeight,"px;");},"}.react-grid-Main{outline:none;font-size:",function(_ref3){var theme=_ref3.theme;return theme.fontSize.small;},";line-height:1.25;letter-spacing:0.1px;}.react-grid-Cell{padding:",function(_ref4){var resetPadding=_ref4.resetPadding;return resetPadding?0:null;},";}.react-grid-Cell,.react-grid-HeaderCell{border-right:none !important;border-left:none !important;box-shadow:none !important;user-select:text;border-bottom:1px solid ",function(_ref5){var theme=_ref5.theme;return theme.colors.tableBorderColor;},";}.react-grid-HeaderCell{white-space:normal !important;background:",function(_ref6){var theme=_ref6.theme;return theme.colors.tableHeaderBackground;}," !important;&&:not(:first-of-type){padding-left:0;}.widget-HeaderCell__value{font-size:",function(_ref7){var theme=_ref7.theme;return theme.fontSize.small;},";font-family:Stolzl;font-weight:normal;font-style:normal;font-stretch:normal;line-height:1.25;letter-spacing:0.1px;text-align:left;}}.react-grid-HeaderCell,.react-grid-HeaderCell-sortable,.react-grid-Cell__value{text-align:center !important;}.rdg-last{box-shadow:none !important;}.rdg-last--frozen{box-shadow:none !important;}.react-grid-checkbox:checked + .react-grid-checkbox-label:before{background:url('../assets/icons/v.svg') center center no-repeat !important;box-shadow:none !important;}.rdg-selected{border:none !important;}.drag-handle{all:initial !important;}.disable-events{pointer-events:none;}.rdg-cell-expand{",function(_ref8){var resetCellExpandButton=_ref8.resetCellExpandButton;return resetCellExpandButton?'':"\n        float: left;\n        margin-right: 10px;\n      ";},"}.row-selected{background:transparent !important;}.rdg-cell-action-button > span{display:block !important;margin-left:15px;margin-top:10px;}.react-grid-HeaderRow{width:100% !important;}.react-grid-Canvas{&::-webkit-scrollbar-track{background-color:#eceff5;}&::-webkit-scrollbar-thumb{background-color:#a2adc4 !important;border-radius:20px;}}.widget-HeaderCell__value,.react-grid-HeaderCell-sortable{font-family:Stolzl;color:",function(_ref9){var theme=_ref9.theme;return theme.colors.tableHeaderFont;},";font-size:",function(_ref10){var theme=_ref10.theme;return theme.fontSize.small;},";line-height:",function(_ref11){var theme=_ref11.theme;return theme.lineHeight.medium;},";font-weight:normal;font-style:normal;font-stretch:normal;line-height:1.25;letter-spacing:0.1px;text-align:left;}}"+( true?"":undefined));var Table_Table=function Table(_ref12){var resetPadding=_ref12.resetPadding,resetCellExpandButton=_ref12.resetCellExpandButton,props=Object(objectWithoutProperties["a" /* default */])(_ref12,["resetPadding","resetCellExpandButton"]);return Object(core_browser_esm["c" /* jsx */])(Container,{resetPadding:resetPadding,resetCellExpandButton:resetCellExpandButton},Object(core_browser_esm["c" /* jsx */])(react_data_grid_default.a,props));};/* harmony default export */ var common_Table_Table = (Table_Table);
// CONCATENATED MODULE: ./src/js/components/common/Table/index.js

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ common_CollapseBar_CollapseBar; });

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
var classCallCheck = __webpack_require__(9);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js
var createClass = __webpack_require__(10);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__(11);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
var getPrototypeOf = __webpack_require__(12);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
var inherits = __webpack_require__(13);

// EXTERNAL MODULE: ./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js + 3 modules
var styled_base_browser_esm = __webpack_require__(6);

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);

// EXTERNAL MODULE: ./node_modules/react-intl/lib/index.es.js
var index_es = __webpack_require__(4);

// CONCATENATED MODULE: ./src/js/components/common/CollapseBar/CollapseBar.js
var _class;var ExpandButton=Object(styled_base_browser_esm["a" /* default */])("button",{target:"exfec0t0",label:"ExpandButton"})("font-weight:",function(_ref2){var theme=_ref2.theme;return theme.fontWeight.normal;},";text-transform:uppercase;width:auto;border:none;cursor:pointer;position:relative;background:transparent;vertical-align:middle;color:",function(_ref3){var theme=_ref3.theme;return theme.colors.greyDark;},";line-height:",function(_ref4){var theme=_ref4.theme;return theme.lineHeight.filtersBar;},";"+( true?"":undefined));var Container=Object(styled_base_browser_esm["a" /* default */])("div",{target:"exfec0t1",label:"Container"})("border-bottom:1px solid ",function(_ref5){var theme=_ref5.theme;return theme.colors.greyLight;},";display:flex;align-items:center;cursor:pointer;padding:",function(_ref6){var padding=_ref6.padding;return padding||null;},";&& .ant-select-arrow{right:-20px;top:46%;color:",function(_ref7){var theme=_ref7.theme;return theme.colors.greyDark;},";}"+( true?"":undefined));var _ref= true?{name:"yhsgeo-css",styles:"margin:0;min-width:120px;white-space:nowrap;label:css;"}:undefined;var CollapseBar_CollapseBar=Object(index_es["d" /* injectIntl */])(_class=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(CollapseBar,_Component);function CollapseBar(){Object(classCallCheck["a" /* default */])(this,CollapseBar);return Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(CollapseBar).apply(this,arguments));}Object(createClass["a" /* default */])(CollapseBar,[{key:"render",value:function render(){var _this$props=this.props,toogleBar=_this$props.toogleBar,open=_this$props.open,children=_this$props.children,titleId=_this$props.titleId,intl=_this$props.intl,as=_this$props.as,className=_this$props.className,titleElements=_this$props.titleElements,style=_this$props.style,padding=_this$props.padding,buttonStyle=_this$props.buttonStyle;return Object(core_browser_esm["c" /* jsx */])(react["Fragment"],null,Object(core_browser_esm["c" /* jsx */])(Container,{onClick:toogleBar,padding:padding},Object(core_browser_esm["c" /* jsx */])(as,{css:_ref,className:className,style:style},Object(core_browser_esm["c" /* jsx */])(ExpandButton,{className:open?'ant-select-open':'',css:buttonStyle},intl.formatMessage({id:titleId}),Object(core_browser_esm["c" /* jsx */])("span",{className:"ant-select-arrow"}))),titleElements),open?children:null);}}]);return CollapseBar;}(react["Component"]))||_class;CollapseBar_CollapseBar.defaultProps={open:false,as:'span'};/* harmony default export */ var common_CollapseBar_CollapseBar = (CollapseBar_CollapseBar);
// CONCATENATED MODULE: ./src/js/components/common/CollapseBar/index.js

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ common_CopyToClipboard_CopyToClipboard; });

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);

// EXTERNAL MODULE: ./node_modules/react-intl/lib/index.es.js
var index_es = __webpack_require__(4);

// EXTERNAL MODULE: ./src/js/components/common/IconSvg/index.js
var IconSvg = __webpack_require__(14);

// EXTERNAL MODULE: ./src/js/components/common/styled.js
var styled = __webpack_require__(35);

// CONCATENATED MODULE: ./src/js/components/common/CopyToClipboard/CopyToClipboard.js
var CopyToClipboard_CopyToClipboard=function CopyToClipboard(_ref){var toCopy=_ref.toCopy;return Object(core_browser_esm["c" /* jsx */])(styled["l" /* PopoverSquareButton */],{onClick:function onClick(){var el=document.createElement('textarea');el.value=toCopy;document.body.appendChild(el);el.select();document.execCommand('copy');document.body.removeChild(el);}},Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"copy",size:12,marginRight:"8px"}),Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"common.clickToCopy"}));};/* harmony default export */ var common_CopyToClipboard_CopyToClipboard = (CopyToClipboard_CopyToClipboard);
// CONCATENATED MODULE: ./src/js/components/common/CopyToClipboard/index.js

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ DebouncedSearch; });

// EXTERNAL MODULE: ./node_modules/antd/lib/button/style/index.js
var style = __webpack_require__(66);

// EXTERNAL MODULE: ./node_modules/antd/lib/button/index.js
var lib_button = __webpack_require__(39);
var button_default = /*#__PURE__*/__webpack_require__.n(lib_button);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/extends.js
var esm_extends = __webpack_require__(33);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 3 modules
var slicedToArray = __webpack_require__(64);

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./src/js/components/common/styled.js
var styled = __webpack_require__(35);

// CONCATENATED MODULE: ./src/js/utils/useDebounce.js
function useDebounce(value,delay){var _useState=Object(react["useState"])(value),_useState2=Object(slicedToArray["a" /* default */])(_useState,2),debouncedValue=_useState2[0],setDebouncedValue=_useState2[1];Object(react["useEffect"])(function(){var handler=setTimeout(function(){setDebouncedValue(value);},delay);return function(){clearTimeout(handler);};},[value]);return debouncedValue;}
// CONCATENATED MODULE: ./src/js/components/Listings/Toolbar/DebouncedSearch.js
function DebouncedSearch(_ref){var setFilter=_ref.setFilter,fetchPage=_ref.fetchPage,filterValue=_ref.filterValue,searchInputProps=_ref.searchInputProps,forListings=_ref.forListings;var debouncedInputValue=useDebounce(filterValue,500);var _useState=Object(react["useState"])(),_useState2=Object(slicedToArray["a" /* default */])(_useState,2),input=_useState2[0],setInput=_useState2[1];Object(react["useEffect"])(function(){fetchPage();},[debouncedInputValue]);return Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(styled["o" /* SearchInput */],Object(esm_extends["a" /* default */])({placeholder:"Press enter to search",onPressEnter:setFilter,onChange:function onChange(e){return setInput(e.target.value);}},searchInputProps)),forListings&&Object(core_browser_esm["c" /* jsx */])(button_default.a,{size:"small",style:{marginLeft:'10px'},onClick:function onClick(){return setFilter(input);},disabled:!input},"Search"));}
// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ ThumbnailContainer; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ ThumbnailContainerDashboard; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ styled_ThumbnailImage; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* binding */ styled_ThumbnailImageDashboard; });
__webpack_require__.d(__webpack_exports__, "e", function() { return /* binding */ styled_ThumbnailText; });

// EXTERNAL MODULE: ./node_modules/antd/lib/tag/style/index.js
var tag_style = __webpack_require__(218);

// EXTERNAL MODULE: ./node_modules/antd/lib/tag/index.js
var tag = __webpack_require__(130);
var tag_default = /*#__PURE__*/__webpack_require__.n(tag);

// EXTERNAL MODULE: ./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js + 3 modules
var styled_base_browser_esm = __webpack_require__(6);

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-intl/lib/index.es.js
var index_es = __webpack_require__(4);

// EXTERNAL MODULE: ./src/js/constants/index.js + 1 modules
var constants = __webpack_require__(15);

// EXTERNAL MODULE: ./src/js/components/common/IconSvg/index.js
var IconSvg = __webpack_require__(14);

// EXTERNAL MODULE: ./src/js/components/common/Button/index.js
var Button = __webpack_require__(30);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
var classCallCheck = __webpack_require__(9);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js
var createClass = __webpack_require__(10);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__(11);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
var getPrototypeOf = __webpack_require__(12);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules
var inherits = __webpack_require__(13);

// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
var assertThisInitialized = __webpack_require__(16);

// CONCATENATED MODULE: ./src/js/components/VideoThumbnail/Preview.js
var Preview_Preview=/*#__PURE__*/function(_Component){Object(inherits["a" /* default */])(Preview,_Component);function Preview(props){var _this;Object(classCallCheck["a" /* default */])(this,Preview);_this=Object(possibleConstructorReturn["a" /* default */])(this,Object(getPrototypeOf["a" /* default */])(Preview).call(this,props));_this.fetchImage=function(videoUrl,width,height){_this.setState({image:null});window.fetch("https://vimeo.com/api/oembed.json?url=".concat(videoUrl)).then(function(response){return response.json();}).then(function(data){if(data.thumbnail_url_with_play_button){var newSizeImg=data.thumbnail_url_with_play_button.replace(/\d+x*\d*.jpg/,"".concat(width,"x").concat(height,".jpg"));_this.setState({image:"".concat(newSizeImg)});}});};_this.state={image:null};_this.fetchImage=_this.fetchImage.bind(Object(assertThisInitialized["a" /* default */])(Object(assertThisInitialized["a" /* default */])(_this)));return _this;}Object(createClass["a" /* default */])(Preview,[{key:"componentDidMount",value:function componentDidMount(){var _this$props=this.props,url=_this$props.url,width=_this$props.width,height=_this$props.height;this.fetchImage(url,width,height);}},{key:"render",value:function render(){var image=this.state.image;return Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])("width:100%;height:100%;",image?"background-image: url(".concat(image,");"):''," background-size:cover;background-position:center;cursor:pointer;label:Preview;"+( true?"":undefined))});}}]);return Preview;}(react["Component"]);/* harmony default export */ var VideoThumbnail_Preview = (Preview_Preview);
// CONCATENATED MODULE: ./src/js/components/VideoThumbnail/styled.js
// import React from 'react';
// import ReactPlayer from 'react-player';
var ThumbnailContainer=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1i21g3m0",label:"ThumbnailContainer"})("display:flex;justify-content:flex-start;",function(props){return props.inPlaylist?"\n      background-color: ".concat(constants["a" /* colors */].whiteMediumBackground,";\n      margin: 0.5em;\n    "):"\n      width: 30%;\n    ";}, true?"":undefined);var ThumbnailContainerDashboard=Object(styled_base_browser_esm["a" /* default */])("div",{target:"e1i21g3m1",label:"ThumbnailContainerDashboard"})("display:flex;justify-content:flex-start;",function(props){return props.inPlaylist?"\n      background-color: ".concat(constants["a" /* colors */].whiteMediumBackground,";\n      margin: 0.5em;\n    "):"\n      width: 100%;\n    ";}, true?"":undefined);var _ref= true?{name:"wb6qz7-ThumbnailImage",styles:"width:162px;height:108px;position:absolute;top:0;cursor:pointer;label:ThumbnailImage;"}:undefined;var styled_ThumbnailImage=function ThumbnailImage(props){var size=props.inPlaylist?"\n    width: 81px;\n    height: 54px;\n  ":"\n    width: 162px;\n    height: 108px;\n  ";return Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(size," position:relative;label:ThumbnailImage;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(VideoThumbnail_Preview,{url:props.url,width:162,height:108,light:true}),Object(core_browser_esm["c" /* jsx */])("div",{css:_ref,onClick:props.onClick}));};var _ref2= true?{name:"fh1oq6-ThumbnailImageDashboard",styles:"width:162px;height:108px;position:absolute;top:0;cursor:pointer;label:ThumbnailImageDashboard;"}:undefined;var styled_ThumbnailImageDashboard=function ThumbnailImageDashboard(props){var size=props.inPlaylist?"\n    width: 81px;\n    height: 54px;\n  ":"\n    width: 100%;\n    height: 200px;\n  ";return Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(size," position:relative;label:ThumbnailImageDashboard;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(VideoThumbnail_Preview,{url:props.url,width:162,height:108,light:true}),Object(core_browser_esm["c" /* jsx */])("div",{css:_ref2,onClick:props.onClick}));};var TitleDark=Object(styled_base_browser_esm["a" /* default */])("h2",{target:"e1i21g3m2",label:"TitleDark"})("font-family:Stolzl;font-size:",constants["b" /* fontSize */].medium,";font-weight:bold;line-height:1;letter-spacing:0.1px;text-align:left;color:",constants["a" /* colors */].greyDark,";display:inline-block;"+( true?"":undefined));var ThinText=Object(styled_base_browser_esm["a" /* default */])("h2",{target:"e1i21g3m3",label:"ThinText"})("font-family:Stolzl;font-size:",constants["b" /* fontSize */].small,";line-height:1;letter-spacing:0.1px;text-align:left;color:",constants["a" /* colors */].greyMid,";display:inline-block;"+( true?"":undefined));var _ref3= true?{name:"ign4j3-ThumbnailText",styles:"line-height:2;cursor:auto;margin-left:5px;font-size:9.5px;height:19px;label:ThumbnailText;"}:undefined;var styled_ThumbnailText=function ThumbnailText(props){var style=props.inPlaylist?"\n    margin-left: 10px;\n    width: calc(100% - 91px);\n    position: relative;\n    >div.video-watch-control {\n      position: absolute;\n      right: 0.5em;\n      bottom: 0.5em;\n    }\n    & h2{\n      margin-top: 0;\n      margin-bottom: 0;\n    }\n  ":"\n    margin-left: 10px;\n    position: relative;\n    width: calc(100% - 172px);\n    >div.video-watch-control {\n      position: absolute;\n      right: 0.5em;\n      bottom: 0.5em;\n    }\n    & h2{\n      margin-top: 0.5em;\n    }\n  ";return Object(core_browser_esm["c" /* jsx */])("div",{css:/*#__PURE__*/Object(core_browser_esm["b" /* css */])(style,"label:ThumbnailText;"+( true?"":undefined))},Object(core_browser_esm["c" /* jsx */])(TitleDark,null,props.title),props.isNew&&Object(core_browser_esm["c" /* jsx */])(tag_default.a,{color:"green",css:_ref3},"NEW"),Object(core_browser_esm["c" /* jsx */])("br",null),Object(core_browser_esm["c" /* jsx */])(ThinText,null,props.description),Object(core_browser_esm["c" /* jsx */])("div",{className:"video-watch-control"},props.watched?Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(IconSvg["a" /* default */],{type:"v-blue",size:14}),"\xA0",Object(core_browser_esm["c" /* jsx */])(ThinText,null,Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"educationCenter.watched"}))):Object(core_browser_esm["c" /* jsx */])(react_default.a.Fragment,null,Object(core_browser_esm["c" /* jsx */])(Button["a" /* default */],{clickHandler:props.setWatched,type:"secondary"},Object(core_browser_esm["c" /* jsx */])(index_es["a" /* FormattedMessage */],{id:"educationCenter.setWatched"})))));};
// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ Legend_Legend; });

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isFunction.js
var isFunction = __webpack_require__(51);
var isFunction_default = /*#__PURE__*/__webpack_require__.n(isFunction);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/uniqBy.js
var uniqBy = __webpack_require__(335);
var uniqBy_default = /*#__PURE__*/__webpack_require__.n(uniqBy);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__(25);
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/recharts/es6/container/Surface.js
var Surface = __webpack_require__(378);

// EXTERNAL MODULE: ./node_modules/recharts/es6/shape/Symbols.js + 9 modules
var Symbols = __webpack_require__(420);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/types.js
var types = __webpack_require__(42);

// CONCATENATED MODULE: ./node_modules/recharts/es6/component/DefaultLegendContent.js
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _extends() { _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 _extends.apply(this, arguments); }

function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

/**
 * @fileOverview Default Legend Content
 */





var SIZE = 32;
var DefaultLegendContent_DefaultLegendContent = /*#__PURE__*/function (_PureComponent) {
  _inherits(DefaultLegendContent, _PureComponent);

  var _super = _createSuper(DefaultLegendContent);

  function DefaultLegendContent() {
    _classCallCheck(this, DefaultLegendContent);

    return _super.apply(this, arguments);
  }

  _createClass(DefaultLegendContent, [{
    key: "renderIcon",
    value:
    /**
     * Render the path of icon
     * @param {Object} data Data of each legend item
     * @return {String} Path element
     */
    function renderIcon(data) {
      var inactiveColor = this.props.inactiveColor;
      var halfSize = SIZE / 2;
      var sixthSize = SIZE / 6;
      var thirdSize = SIZE / 3;
      var color = data.inactive ? inactiveColor : data.color;

      if (data.type === 'plainline') {
        return /*#__PURE__*/react_default.a.createElement("line", {
          strokeWidth: 4,
          fill: "none",
          stroke: color,
          strokeDasharray: data.payload.strokeDasharray,
          x1: 0,
          y1: halfSize,
          x2: SIZE,
          y2: halfSize,
          className: "recharts-legend-icon"
        });
      }

      if (data.type === 'line') {
        return /*#__PURE__*/react_default.a.createElement("path", {
          strokeWidth: 4,
          fill: "none",
          stroke: color,
          d: "M0,".concat(halfSize, "h").concat(thirdSize, "\n            A").concat(sixthSize, ",").concat(sixthSize, ",0,1,1,").concat(2 * thirdSize, ",").concat(halfSize, "\n            H").concat(SIZE, "M").concat(2 * thirdSize, ",").concat(halfSize, "\n            A").concat(sixthSize, ",").concat(sixthSize, ",0,1,1,").concat(thirdSize, ",").concat(halfSize),
          className: "recharts-legend-icon"
        });
      }

      if (data.type === 'rect') {
        return /*#__PURE__*/react_default.a.createElement("path", {
          stroke: "none",
          fill: color,
          d: "M0,".concat(SIZE / 8, "h").concat(SIZE, "v").concat(SIZE * 3 / 4, "h").concat(-SIZE, "z"),
          className: "recharts-legend-icon"
        });
      }

      if ( /*#__PURE__*/react_default.a.isValidElement(data.legendIcon)) {
        var iconProps = _objectSpread({}, data);

        delete iconProps.legendIcon;
        return /*#__PURE__*/react_default.a.cloneElement(data.legendIcon, iconProps);
      }

      return /*#__PURE__*/react_default.a.createElement(Symbols["a" /* Symbols */], {
        fill: color,
        cx: halfSize,
        cy: halfSize,
        size: SIZE,
        sizeType: "diameter",
        type: data.type
      });
    }
    /**
     * Draw items of legend
     * @return {ReactElement} Items
     */

  }, {
    key: "renderItems",
    value: function renderItems() {
      var _this = this;

      var _this$props = this.props,
          payload = _this$props.payload,
          iconSize = _this$props.iconSize,
          layout = _this$props.layout,
          formatter = _this$props.formatter,
          inactiveColor = _this$props.inactiveColor;
      var viewBox = {
        x: 0,
        y: 0,
        width: SIZE,
        height: SIZE
      };
      var itemStyle = {
        display: layout === 'horizontal' ? 'inline-block' : 'block',
        marginRight: 10
      };
      var svgStyle = {
        display: 'inline-block',
        verticalAlign: 'middle',
        marginRight: 4
      };
      return payload.map(function (entry, i) {
        var _classNames;

        var finalFormatter = entry.formatter || formatter;
        var className = classnames_default()((_classNames = {
          'recharts-legend-item': true
        }, _defineProperty(_classNames, "legend-item-".concat(i), true), _defineProperty(_classNames, "inactive", entry.inactive), _classNames));

        if (entry.type === 'none') {
          return null;
        }

        var color = entry.inactive ? inactiveColor : entry.color;
        return /*#__PURE__*/react_default.a.createElement("li", _extends({
          className: className,
          style: itemStyle,
          key: "legend-item-".concat(i) // eslint-disable-line react/no-array-index-key

        }, Object(types["b" /* adaptEventsOfChild */])(_this.props, entry, i)), /*#__PURE__*/react_default.a.createElement(Surface["a" /* Surface */], {
          width: iconSize,
          height: iconSize,
          viewBox: viewBox,
          style: svgStyle
        }, _this.renderIcon(entry)), /*#__PURE__*/react_default.a.createElement("span", {
          className: "recharts-legend-item-text",
          style: {
            color: color
          }
        }, finalFormatter ? finalFormatter(entry.value, entry, i) : entry.value));
      });
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props2 = this.props,
          payload = _this$props2.payload,
          layout = _this$props2.layout,
          align = _this$props2.align;

      if (!payload || !payload.length) {
        return null;
      }

      var finalStyle = {
        padding: 0,
        margin: 0,
        textAlign: layout === 'horizontal' ? align : 'left'
      };
      return /*#__PURE__*/react_default.a.createElement("ul", {
        className: "recharts-default-legend",
        style: finalStyle
      }, this.renderItems());
    }
  }]);

  return DefaultLegendContent;
}(react["PureComponent"]);
DefaultLegendContent_DefaultLegendContent.displayName = 'Legend';
DefaultLegendContent_DefaultLegendContent.defaultProps = {
  iconSize: 14,
  layout: 'horizontal',
  align: 'center',
  verticalAlign: 'middle',
  inactiveColor: '#ccc'
};
// EXTERNAL MODULE: ./node_modules/recharts/es6/util/DataUtils.js
var DataUtils = __webpack_require__(24);

// CONCATENATED MODULE: ./node_modules/recharts/es6/component/Legend.js
function Legend_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { Legend_typeof = function _typeof(obj) { return typeof obj; }; } else { Legend_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return Legend_typeof(obj); }




function Legend_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; }

function Legend_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { Legend_ownKeys(Object(source), true).forEach(function (key) { Legend_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { Legend_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function Legend_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; }

function Legend_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function Legend_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function Legend_createClass(Constructor, protoProps, staticProps) { if (protoProps) Legend_defineProperties(Constructor.prototype, protoProps); if (staticProps) Legend_defineProperties(Constructor, staticProps); return Constructor; }

function Legend_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) Legend_setPrototypeOf(subClass, superClass); }

function Legend_setPrototypeOf(o, p) { Legend_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return Legend_setPrototypeOf(o, p); }

function Legend_createSuper(Derived) { var hasNativeReflectConstruct = Legend_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = Legend_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = Legend_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Legend_possibleConstructorReturn(this, result); }; }

function Legend_possibleConstructorReturn(self, call) { if (call && (Legend_typeof(call) === "object" || typeof call === "function")) { return call; } return Legend_assertThisInitialized(self); }

function Legend_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function Legend_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function Legend_getPrototypeOf(o) { Legend_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return Legend_getPrototypeOf(o); }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _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; }

function _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; }

/**
 * @fileOverview Legend
 */




function defaultUniqBy(entry) {
  return entry.value;
}

function getUniqPayload(option, payload) {
  if (option === true) {
    return uniqBy_default()(payload, defaultUniqBy);
  }

  if (isFunction_default()(option)) {
    return uniqBy_default()(payload, option);
  }

  return payload;
}

function renderContent(content, props) {
  if ( /*#__PURE__*/react_default.a.isValidElement(content)) {
    return /*#__PURE__*/react_default.a.cloneElement(content, props);
  }

  if (isFunction_default()(content)) {
    return /*#__PURE__*/react_default.a.createElement(content, props);
  }

  var ref = props.ref,
      otherProps = _objectWithoutProperties(props, ["ref"]);

  return /*#__PURE__*/react_default.a.createElement(DefaultLegendContent_DefaultLegendContent, otherProps);
}

var EPS = 1;
var Legend_Legend = /*#__PURE__*/function (_PureComponent) {
  Legend_inherits(Legend, _PureComponent);

  var _super = Legend_createSuper(Legend);

  function Legend() {
    var _this;

    Legend_classCallCheck(this, Legend);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _super.call.apply(_super, [this].concat(args));
    _this.wrapperNode = void 0;
    _this.state = {
      boxWidth: -1,
      boxHeight: -1
    };
    return _this;
  }

  Legend_createClass(Legend, [{
    key: "componentDidMount",
    value: function componentDidMount() {
      this.updateBBox();
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate() {
      this.updateBBox();
    }
  }, {
    key: "getBBox",
    value: function getBBox() {
      if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {
        return this.wrapperNode.getBoundingClientRect();
      }

      return null;
    }
  }, {
    key: "getBBoxSnapshot",
    value: function getBBoxSnapshot() {
      var _this$state = this.state,
          boxWidth = _this$state.boxWidth,
          boxHeight = _this$state.boxHeight;

      if (boxWidth >= 0 && boxHeight >= 0) {
        return {
          width: boxWidth,
          height: boxHeight
        };
      }

      return null;
    }
  }, {
    key: "getDefaultPosition",
    value: function getDefaultPosition(style) {
      var _this$props = this.props,
          layout = _this$props.layout,
          align = _this$props.align,
          verticalAlign = _this$props.verticalAlign,
          margin = _this$props.margin,
          chartWidth = _this$props.chartWidth,
          chartHeight = _this$props.chartHeight;
      var hPos, vPos;

      if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {
        if (align === 'center' && layout === 'vertical') {
          var _box = this.getBBoxSnapshot() || {
            width: 0
          };

          hPos = {
            left: ((chartWidth || 0) - _box.width) / 2
          };
        } else {
          hPos = align === 'right' ? {
            right: margin && margin.right || 0
          } : {
            left: margin && margin.left || 0
          };
        }
      }

      if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {
        if (verticalAlign === 'middle') {
          var _box2 = this.getBBoxSnapshot() || {
            height: 0
          };

          vPos = {
            top: ((chartHeight || 0) - _box2.height) / 2
          };
        } else {
          vPos = verticalAlign === 'bottom' ? {
            bottom: margin && margin.bottom || 0
          } : {
            top: margin && margin.top || 0
          };
        }
      }

      return Legend_objectSpread(Legend_objectSpread({}, hPos), vPos);
    }
  }, {
    key: "updateBBox",
    value: function updateBBox() {
      var _this$state2 = this.state,
          boxWidth = _this$state2.boxWidth,
          boxHeight = _this$state2.boxHeight;
      var onBBoxUpdate = this.props.onBBoxUpdate;

      if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {
        var _box3 = this.wrapperNode.getBoundingClientRect();

        if (Math.abs(_box3.width - boxWidth) > EPS || Math.abs(_box3.height - boxHeight) > EPS) {
          this.setState({
            boxWidth: _box3.width,
            boxHeight: _box3.height
          }, function () {
            if (onBBoxUpdate) {
              onBBoxUpdate(_box3);
            }
          });
        }
      } else if (boxWidth !== -1 || boxHeight !== -1) {
        this.setState({
          boxWidth: -1,
          boxHeight: -1
        }, function () {
          if (onBBoxUpdate) {
            onBBoxUpdate(null);
          }
        });
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$props2 = this.props,
          content = _this$props2.content,
          width = _this$props2.width,
          height = _this$props2.height,
          wrapperStyle = _this$props2.wrapperStyle,
          payloadUniqBy = _this$props2.payloadUniqBy,
          payload = _this$props2.payload;

      var outerStyle = Legend_objectSpread(Legend_objectSpread({
        position: 'absolute',
        width: width || 'auto',
        height: height || 'auto'
      }, this.getDefaultPosition(wrapperStyle)), wrapperStyle);

      return /*#__PURE__*/react_default.a.createElement("div", {
        className: "recharts-legend-wrapper",
        style: outerStyle,
        ref: function ref(node) {
          _this2.wrapperNode = node;
        }
      }, renderContent(content, Legend_objectSpread(Legend_objectSpread({}, this.props), {}, {
        payload: getUniqPayload(payloadUniqBy, payload)
      })));
    }
  }], [{
    key: "getWithHeight",
    value: function getWithHeight(item, chartWidth) {
      var layout = item.props.layout;

      if (layout === 'vertical' && Object(DataUtils["h" /* isNumber */])(item.props.height)) {
        return {
          height: item.props.height
        };
      }

      if (layout === 'horizontal') {
        return {
          width: item.props.width || chartWidth
        };
      }

      return null;
    }
  }]);

  return Legend;
}(react["PureComponent"]);
Legend_Legend.displayName = 'Legend';
Legend_Legend.defaultProps = {
  iconSize: 14,
  layout: 'horizontal',
  align: 'center',
  verticalAlign: 'bottom'
};
// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ Brush_Brush; });

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isFunction.js
var isFunction = __webpack_require__(51);
var isFunction_default = /*#__PURE__*/__webpack_require__.n(isFunction);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/range.js
var range = __webpack_require__(334);
var range_default = /*#__PURE__*/__webpack_require__.n(range);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__(25);
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-scale/src/band.js + 1 modules
var band = __webpack_require__(502);

// EXTERNAL MODULE: ./node_modules/recharts/es6/container/Layer.js
var Layer = __webpack_require__(60);

// EXTERNAL MODULE: ./node_modules/recharts/es6/component/Text.js
var Text = __webpack_require__(173);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/ChartUtils.js + 10 modules
var ChartUtils = __webpack_require__(49);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/DataUtils.js
var DataUtils = __webpack_require__(24);

// CONCATENATED MODULE: ./node_modules/recharts/es6/util/CssPrefixUtils.js
function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }

var PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];
var generatePrefixStyle = function generatePrefixStyle(name, value) {
  if (!name) {
    return null;
  }

  var camelName = name.replace(/(\w)/, function (v) {
    return v.toUpperCase();
  });
  var result = PREFIX_LIST.reduce(function (res, entry) {
    return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, entry + camelName, value));
  }, {});
  result[name] = value;
  return result;
};
// EXTERNAL MODULE: ./node_modules/recharts/es6/util/types.js
var types = __webpack_require__(42);

// CONCATENATED MODULE: ./node_modules/recharts/es6/cartesian/Brush.js
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }




function _extends() { _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 _extends.apply(this, arguments); }

function Brush_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; }

function Brush_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { Brush_ownKeys(Object(source), true).forEach(function (key) { Brush_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { Brush_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function Brush_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; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }

/**
 * @fileOverview Brush
 */










var Brush_createScale = function createScale(_ref) {
  var data = _ref.data,
      startIndex = _ref.startIndex,
      endIndex = _ref.endIndex,
      x = _ref.x,
      width = _ref.width,
      travellerWidth = _ref.travellerWidth;

  if (!data || !data.length) {
    return {};
  }

  var len = data.length;
  var scale = Object(band["b" /* point */])().domain(range_default()(0, len)).range([x, x + width - travellerWidth]);
  var scaleValues = scale.domain().map(function (entry) {
    return scale(entry);
  });
  return {
    isTextActive: false,
    isSlideMoving: false,
    isTravellerMoving: false,
    startX: scale(startIndex),
    endX: scale(endIndex),
    scale: scale,
    scaleValues: scaleValues
  };
};

var isTouch = function isTouch(e) {
  return e.changedTouches && !!e.changedTouches.length;
};

var Brush_Brush = /*#__PURE__*/function (_PureComponent) {
  _inherits(Brush, _PureComponent);

  var _super = _createSuper(Brush);

  function Brush(props) {
    var _this;

    _classCallCheck(this, Brush);

    _this = _super.call(this, props);
    _this.leaveTimer = void 0;
    _this.travellerDragStartHandlers = void 0;

    _this.handleDrag = function (e) {
      if (_this.leaveTimer) {
        clearTimeout(_this.leaveTimer);
        _this.leaveTimer = null;
      }

      if (_this.state.isTravellerMoving) {
        _this.handleTravellerMove(e);
      } else if (_this.state.isSlideMoving) {
        _this.handleSlideDrag(e);
      }
    };

    _this.handleTouchMove = function (e) {
      if (e.changedTouches != null && e.changedTouches.length > 0) {
        _this.handleDrag(e.changedTouches[0]);
      }
    };

    _this.handleDragEnd = function () {
      _this.setState({
        isTravellerMoving: false,
        isSlideMoving: false
      });

      _this.detachDragEndListener();
    };

    _this.handleLeaveWrapper = function () {
      if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {
        _this.leaveTimer = window.setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);
      }
    };

    _this.handleEnterSlideOrTraveller = function () {
      _this.setState({
        isTextActive: true
      });
    };

    _this.handleLeaveSlideOrTraveller = function () {
      _this.setState({
        isTextActive: false
      });
    };

    _this.handleSlideDragStart = function (e) {
      var event = isTouch(e) ? e.changedTouches[0] : e;

      _this.setState({
        isTravellerMoving: false,
        isSlideMoving: true,
        slideMoveStartX: event.pageX
      });

      _this.attachDragEndListener();
    };

    _this.travellerDragStartHandlers = {
      startX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'startX'),
      endX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'endX')
    };
    _this.state = {};
    return _this;
  }

  _createClass(Brush, [{
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      if (this.leaveTimer) {
        clearTimeout(this.leaveTimer);
        this.leaveTimer = null;
      }

      this.detachDragEndListener();
    }
  }, {
    key: "getIndex",
    value: function getIndex(_ref2) {
      var startX = _ref2.startX,
          endX = _ref2.endX;
      var scaleValues = this.state.scaleValues;
      var _this$props = this.props,
          gap = _this$props.gap,
          data = _this$props.data;
      var lastIndex = data.length - 1;
      var min = Math.min(startX, endX);
      var max = Math.max(startX, endX);
      var minIndex = Brush.getIndexInRange(scaleValues, min);
      var maxIndex = Brush.getIndexInRange(scaleValues, max);
      return {
        startIndex: minIndex - minIndex % gap,
        endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap
      };
    }
  }, {
    key: "getTextOfTick",
    value: function getTextOfTick(index) {
      var _this$props2 = this.props,
          data = _this$props2.data,
          tickFormatter = _this$props2.tickFormatter,
          dataKey = _this$props2.dataKey;
      var text = Object(ChartUtils["w" /* getValueByDataKey */])(data[index], dataKey, index);
      return isFunction_default()(tickFormatter) ? tickFormatter(text, index) : text;
    }
  }, {
    key: "attachDragEndListener",
    value: function attachDragEndListener() {
      window.addEventListener('mouseup', this.handleDragEnd, true);
      window.addEventListener('touchend', this.handleDragEnd, true);
    }
  }, {
    key: "detachDragEndListener",
    value: function detachDragEndListener() {
      window.removeEventListener('mouseup', this.handleDragEnd, true);
      window.removeEventListener('touchend', this.handleDragEnd, true);
    }
  }, {
    key: "handleSlideDrag",
    value: function handleSlideDrag(e) {
      var _this$state = this.state,
          slideMoveStartX = _this$state.slideMoveStartX,
          startX = _this$state.startX,
          endX = _this$state.endX;
      var _this$props3 = this.props,
          x = _this$props3.x,
          width = _this$props3.width,
          travellerWidth = _this$props3.travellerWidth,
          startIndex = _this$props3.startIndex,
          endIndex = _this$props3.endIndex,
          onChange = _this$props3.onChange;
      var delta = e.pageX - slideMoveStartX;

      if (delta > 0) {
        delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);
      } else if (delta < 0) {
        delta = Math.max(delta, x - startX, x - endX);
      }

      var newIndex = this.getIndex({
        startX: startX + delta,
        endX: endX + delta
      });

      if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {
        onChange(newIndex);
      }

      this.setState({
        startX: startX + delta,
        endX: endX + delta,
        slideMoveStartX: e.pageX
      });
    }
  }, {
    key: "handleTravellerDragStart",
    value: function handleTravellerDragStart(id, e) {
      var event = isTouch(e) ? e.changedTouches[0] : e;
      this.setState({
        isSlideMoving: false,
        isTravellerMoving: true,
        movingTravellerId: id,
        brushMoveStartX: event.pageX
      });
      this.attachDragEndListener();
    }
  }, {
    key: "handleTravellerMove",
    value: function handleTravellerMove(e) {
      var _this$setState;

      var _this$state2 = this.state,
          brushMoveStartX = _this$state2.brushMoveStartX,
          movingTravellerId = _this$state2.movingTravellerId,
          endX = _this$state2.endX,
          startX = _this$state2.startX;
      var prevValue = this.state[movingTravellerId];
      var _this$props4 = this.props,
          x = _this$props4.x,
          width = _this$props4.width,
          travellerWidth = _this$props4.travellerWidth,
          onChange = _this$props4.onChange,
          gap = _this$props4.gap,
          data = _this$props4.data;
      var params = {
        startX: this.state.startX,
        endX: this.state.endX
      };
      var delta = e.pageX - brushMoveStartX;

      if (delta > 0) {
        delta = Math.min(delta, x + width - travellerWidth - prevValue);
      } else if (delta < 0) {
        delta = Math.max(delta, x - prevValue);
      }

      params[movingTravellerId] = prevValue + delta;
      var newIndex = this.getIndex(params);
      var startIndex = newIndex.startIndex,
          endIndex = newIndex.endIndex;

      var isFullGap = function isFullGap() {
        var lastIndex = data.length - 1;

        if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {
          return true;
        }

        return false;
      };

      this.setState((_this$setState = {}, Brush_defineProperty(_this$setState, movingTravellerId, prevValue + delta), Brush_defineProperty(_this$setState, "brushMoveStartX", e.pageX), _this$setState), function () {
        if (onChange) {
          if (isFullGap()) {
            onChange(newIndex);
          }
        }
      });
    }
  }, {
    key: "renderBackground",
    value: function renderBackground() {
      var _this$props5 = this.props,
          x = _this$props5.x,
          y = _this$props5.y,
          width = _this$props5.width,
          height = _this$props5.height,
          fill = _this$props5.fill,
          stroke = _this$props5.stroke;
      return /*#__PURE__*/react_default.a.createElement("rect", {
        stroke: stroke,
        fill: fill,
        x: x,
        y: y,
        width: width,
        height: height
      });
    }
  }, {
    key: "renderPanorama",
    value: function renderPanorama() {
      var _this$props6 = this.props,
          x = _this$props6.x,
          y = _this$props6.y,
          width = _this$props6.width,
          height = _this$props6.height,
          data = _this$props6.data,
          children = _this$props6.children,
          padding = _this$props6.padding;
      var chartElement = react["Children"].only(children);

      if (!chartElement) {
        return null;
      }

      return /*#__PURE__*/react_default.a.cloneElement(chartElement, {
        x: x,
        y: y,
        width: width,
        height: height,
        margin: padding,
        compact: true,
        data: data
      });
    }
  }, {
    key: "renderTravellerLayer",
    value: function renderTravellerLayer(travellerX, id) {
      var _this$props7 = this.props,
          y = _this$props7.y,
          travellerWidth = _this$props7.travellerWidth,
          height = _this$props7.height,
          traveller = _this$props7.traveller;
      var x = Math.max(travellerX, this.props.x);

      var travellerProps = Brush_objectSpread(Brush_objectSpread({}, Object(types["c" /* filterProps */])(this.props)), {}, {
        x: x,
        y: y,
        width: travellerWidth,
        height: height
      });

      return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], {
        className: "recharts-brush-traveller",
        onMouseEnter: this.handleEnterSlideOrTraveller,
        onMouseLeave: this.handleLeaveSlideOrTraveller,
        onMouseDown: this.travellerDragStartHandlers[id],
        onTouchStart: this.travellerDragStartHandlers[id],
        style: {
          cursor: 'col-resize'
        }
      }, Brush.renderTraveller(traveller, travellerProps));
    }
  }, {
    key: "renderSlide",
    value: function renderSlide(startX, endX) {
      var _this$props8 = this.props,
          y = _this$props8.y,
          height = _this$props8.height,
          stroke = _this$props8.stroke,
          travellerWidth = _this$props8.travellerWidth;
      var x = Math.min(startX, endX) + travellerWidth;
      var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);
      return /*#__PURE__*/react_default.a.createElement("rect", {
        className: "recharts-brush-slide",
        onMouseEnter: this.handleEnterSlideOrTraveller,
        onMouseLeave: this.handleLeaveSlideOrTraveller,
        onMouseDown: this.handleSlideDragStart,
        onTouchStart: this.handleSlideDragStart,
        style: {
          cursor: 'move'
        },
        stroke: "none",
        fill: stroke,
        fillOpacity: 0.2,
        x: x,
        y: y,
        width: width,
        height: height
      });
    }
  }, {
    key: "renderText",
    value: function renderText() {
      var _this$props9 = this.props,
          startIndex = _this$props9.startIndex,
          endIndex = _this$props9.endIndex,
          y = _this$props9.y,
          height = _this$props9.height,
          travellerWidth = _this$props9.travellerWidth,
          stroke = _this$props9.stroke;
      var _this$state3 = this.state,
          startX = _this$state3.startX,
          endX = _this$state3.endX;
      var offset = 5;
      var attrs = {
        pointerEvents: 'none',
        fill: stroke
      };
      return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], {
        className: "recharts-brush-texts"
      }, /*#__PURE__*/react_default.a.createElement(Text["a" /* Text */], _extends({
        textAnchor: "end",
        verticalAnchor: "middle",
        x: Math.min(startX, endX) - offset,
        y: y + height / 2
      }, attrs), this.getTextOfTick(startIndex)), /*#__PURE__*/react_default.a.createElement(Text["a" /* Text */], _extends({
        textAnchor: "start",
        verticalAnchor: "middle",
        x: Math.max(startX, endX) + travellerWidth + offset,
        y: y + height / 2
      }, attrs), this.getTextOfTick(endIndex)));
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props10 = this.props,
          data = _this$props10.data,
          className = _this$props10.className,
          children = _this$props10.children,
          x = _this$props10.x,
          y = _this$props10.y,
          width = _this$props10.width,
          height = _this$props10.height,
          alwaysShowText = _this$props10.alwaysShowText;
      var _this$state4 = this.state,
          startX = _this$state4.startX,
          endX = _this$state4.endX,
          isTextActive = _this$state4.isTextActive,
          isSlideMoving = _this$state4.isSlideMoving,
          isTravellerMoving = _this$state4.isTravellerMoving;

      if (!data || !data.length || !Object(DataUtils["h" /* isNumber */])(x) || !Object(DataUtils["h" /* isNumber */])(y) || !Object(DataUtils["h" /* isNumber */])(width) || !Object(DataUtils["h" /* isNumber */])(height) || width <= 0 || height <= 0) {
        return null;
      }

      var layerClass = classnames_default()('recharts-brush', className);
      var isPanoramic = react_default.a.Children.count(children) === 1;
      var style = generatePrefixStyle('userSelect', 'none');
      return /*#__PURE__*/react_default.a.createElement(Layer["a" /* Layer */], {
        className: layerClass,
        onMouseMove: this.handleDrag,
        onMouseLeave: this.handleLeaveWrapper,
        onTouchMove: this.handleTouchMove,
        style: style
      }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTravellerLayer(startX, 'startX'), this.renderTravellerLayer(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving || alwaysShowText) && this.renderText());
    }
  }], [{
    key: "renderDefaultTraveller",
    value: function renderDefaultTraveller(props) {
      var x = props.x,
          y = props.y,
          width = props.width,
          height = props.height,
          stroke = props.stroke;
      var lineY = Math.floor(y + height / 2) - 1;
      return /*#__PURE__*/react_default.a.createElement(react_default.a.Fragment, null, /*#__PURE__*/react_default.a.createElement("rect", {
        x: x,
        y: y,
        width: width,
        height: height,
        fill: stroke,
        stroke: "none"
      }), /*#__PURE__*/react_default.a.createElement("line", {
        x1: x + 1,
        y1: lineY,
        x2: x + width - 1,
        y2: lineY,
        fill: "none",
        stroke: "#fff"
      }), /*#__PURE__*/react_default.a.createElement("line", {
        x1: x + 1,
        y1: lineY + 2,
        x2: x + width - 1,
        y2: lineY + 2,
        fill: "none",
        stroke: "#fff"
      }));
    }
  }, {
    key: "renderTraveller",
    value: function renderTraveller(option, props) {
      var rectangle;

      if ( /*#__PURE__*/react_default.a.isValidElement(option)) {
        rectangle = /*#__PURE__*/react_default.a.cloneElement(option, props);
      } else if (isFunction_default()(option)) {
        rectangle = option(props);
      } else {
        rectangle = Brush.renderDefaultTraveller(props);
      }

      return rectangle;
    }
  }, {
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      var data = nextProps.data,
          width = nextProps.width,
          x = nextProps.x,
          travellerWidth = nextProps.travellerWidth,
          updateId = nextProps.updateId,
          startIndex = nextProps.startIndex,
          endIndex = nextProps.endIndex;

      if (data !== prevState.prevData || updateId !== prevState.prevUpdateId) {
        return Brush_objectSpread({
          prevData: data,
          prevTravellerWidth: travellerWidth,
          prevUpdateId: updateId,
          prevX: x,
          prevWidth: width
        }, data && data.length ? Brush_createScale({
          data: data,
          width: width,
          x: x,
          travellerWidth: travellerWidth,
          startIndex: startIndex,
          endIndex: endIndex
        }) : {
          scale: null,
          scaleValues: null
        });
      }

      if (prevState.scale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {
        prevState.scale.range([x, x + width - travellerWidth]);
        var scaleValues = prevState.scale.domain().map(function (entry) {
          return prevState.scale(entry);
        });
        return {
          prevData: data,
          prevTravellerWidth: travellerWidth,
          prevUpdateId: updateId,
          prevX: x,
          prevWidth: width,
          startX: prevState.scale(nextProps.startIndex),
          endX: prevState.scale(nextProps.endIndex),
          scaleValues: scaleValues
        };
      }

      return null;
    }
  }, {
    key: "getIndexInRange",
    value: function getIndexInRange(range, x) {
      var len = range.length;
      var start = 0;
      var end = len - 1;

      while (end - start > 1) {
        var middle = Math.floor((start + end) / 2);

        if (range[middle] > x) {
          end = middle;
        } else {
          start = middle;
        }
      }

      return x >= range[end] ? end : start;
    }
  }]);

  return Brush;
}(react["PureComponent"]);
Brush_Brush.displayName = 'Brush';
Brush_Brush.defaultProps = {
  height: 40,
  travellerWidth: 5,
  gap: 1,
  fill: '#fff',
  stroke: '#666',
  padding: {
    top: 1,
    right: 1,
    bottom: 1,
    left: 1
  },
  leaveTimeOut: 1000,
  alwaysShowText: false
};
// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ Tooltip_Tooltip; });

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isNil.js
var isNil = __webpack_require__(48);
var isNil_default = /*#__PURE__*/__webpack_require__.n(isNil);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isFunction.js
var isFunction = __webpack_require__(51);
var isFunction_default = /*#__PURE__*/__webpack_require__.n(isFunction);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/uniqBy.js
var uniqBy = __webpack_require__(335);
var uniqBy_default = /*#__PURE__*/__webpack_require__.n(uniqBy);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-smooth/es6/index.js + 8 modules
var es6 = __webpack_require__(145);

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__(25);
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/sortBy.js
var sortBy = __webpack_require__(314);
var sortBy_default = /*#__PURE__*/__webpack_require__.n(sortBy);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/lodash/isArray.js
var isArray = __webpack_require__(71);
var isArray_default = /*#__PURE__*/__webpack_require__.n(isArray);

// EXTERNAL MODULE: ./node_modules/recharts/es6/util/DataUtils.js
var DataUtils = __webpack_require__(24);

// CONCATENATED MODULE: ./node_modules/recharts/es6/component/DefaultTooltipContent.js
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }





function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _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."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _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 _arrayLikeToArray(o, minLen); }

function _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; }

function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

function 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; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function _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; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }





function defaultFormatter(value) {
  return isArray_default()(value) && Object(DataUtils["g" /* isNumOrStr */])(value[0]) && Object(DataUtils["g" /* isNumOrStr */])(value[1]) ? value.join(' ~ ') : value;
}

var DefaultTooltipContent_DefaultTooltipContent = /*#__PURE__*/function (_PureComponent) {
  _inherits(DefaultTooltipContent, _PureComponent);

  var _super = _createSuper(DefaultTooltipContent);

  function DefaultTooltipContent() {
    _classCallCheck(this, DefaultTooltipContent);

    return _super.apply(this, arguments);
  }

  _createClass(DefaultTooltipContent, [{
    key: "renderContent",
    value: function renderContent() {
      var _this$props = this.props,
          payload = _this$props.payload,
          separator = _this$props.separator,
          formatter = _this$props.formatter,
          itemStyle = _this$props.itemStyle,
          itemSorter = _this$props.itemSorter;

      if (payload && payload.length) {
        var listStyle = {
          padding: 0,
          margin: 0
        };
        var items = (itemSorter ? sortBy_default()(payload, itemSorter) : payload).map(function (entry, i) {
          if (entry.type === 'none') {
            return null;
          }

          var finalItemStyle = _objectSpread({
            display: 'block',
            paddingTop: 4,
            paddingBottom: 4,
            color: entry.color || '#000'
          }, itemStyle);

          var finalFormatter = entry.formatter || formatter || defaultFormatter;
          var name = entry.name,
              value = entry.value;

          if (finalFormatter) {
            var formatted = finalFormatter(value, name, entry, i, payload);

            if (Array.isArray(formatted)) {
              var _formatted = _slicedToArray(formatted, 2);

              value = _formatted[0];
              name = _formatted[1];
            } else {
              value = formatted;
            }
          }

          return (
            /*#__PURE__*/
            // eslint-disable-next-line react/no-array-index-key
            react_default.a.createElement("li", {
              className: "recharts-tooltip-item",
              key: "tooltip-item-".concat(i),
              style: finalItemStyle
            }, Object(DataUtils["g" /* isNumOrStr */])(name) ? /*#__PURE__*/react_default.a.createElement("span", {
              className: "recharts-tooltip-item-name"
            }, name) : null, Object(DataUtils["g" /* isNumOrStr */])(name) ? /*#__PURE__*/react_default.a.createElement("span", {
              className: "recharts-tooltip-item-separator"
            }, separator) : null, /*#__PURE__*/react_default.a.createElement("span", {
              className: "recharts-tooltip-item-value"
            }, value), /*#__PURE__*/react_default.a.createElement("span", {
              className: "recharts-tooltip-item-unit"
            }, entry.unit || ''))
          );
        });
        return /*#__PURE__*/react_default.a.createElement("ul", {
          className: "recharts-tooltip-item-list",
          style: listStyle
        }, items);
      }

      return null;
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props2 = this.props,
          wrapperClassName = _this$props2.wrapperClassName,
          contentStyle = _this$props2.contentStyle,
          labelClassName = _this$props2.labelClassName,
          labelStyle = _this$props2.labelStyle,
          label = _this$props2.label,
          labelFormatter = _this$props2.labelFormatter,
          payload = _this$props2.payload;

      var finalStyle = _objectSpread({
        margin: 0,
        padding: 10,
        backgroundColor: '#fff',
        border: '1px solid #ccc',
        whiteSpace: 'nowrap'
      }, contentStyle);

      var finalLabelStyle = _objectSpread({
        margin: 0
      }, labelStyle);

      var hasLabel = !isNil_default()(label);
      var finalLabel = hasLabel ? label : '';
      var wrapperCN = classnames_default()('recharts-default-tooltip', wrapperClassName);
      var labelCN = classnames_default()('recharts-tooltip-label', labelClassName);

      if (hasLabel && labelFormatter) {
        finalLabel = labelFormatter(label, payload);
      }

      return /*#__PURE__*/react_default.a.createElement("div", {
        className: wrapperCN,
        style: finalStyle
      }, /*#__PURE__*/react_default.a.createElement("p", {
        className: labelCN,
        style: finalLabelStyle
      }, /*#__PURE__*/react_default.a.isValidElement(finalLabel) ? finalLabel : "".concat(finalLabel)), this.renderContent());
    }
  }]);

  return DefaultTooltipContent;
}(react["PureComponent"]);
DefaultTooltipContent_DefaultTooltipContent.displayName = 'DefaultTooltipContent';
DefaultTooltipContent_DefaultTooltipContent.defaultProps = {
  separator: ' : ',
  contentStyle: {},
  itemStyle: {},
  labelStyle: {}
};
// EXTERNAL MODULE: ./node_modules/recharts/es6/util/Global.js
var Global = __webpack_require__(137);

// CONCATENATED MODULE: ./node_modules/recharts/es6/component/Tooltip.js
function Tooltip_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { Tooltip_typeof = function _typeof(obj) { return typeof obj; }; } else { Tooltip_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return Tooltip_typeof(obj); }





function Tooltip_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; }

function Tooltip_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { Tooltip_ownKeys(Object(source), true).forEach(function (key) { Tooltip_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { Tooltip_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

function Tooltip_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; }

function Tooltip_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function Tooltip_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function Tooltip_createClass(Constructor, protoProps, staticProps) { if (protoProps) Tooltip_defineProperties(Constructor.prototype, protoProps); if (staticProps) Tooltip_defineProperties(Constructor, staticProps); return Constructor; }

function Tooltip_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) Tooltip_setPrototypeOf(subClass, superClass); }

function Tooltip_setPrototypeOf(o, p) { Tooltip_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return Tooltip_setPrototypeOf(o, p); }

function Tooltip_createSuper(Derived) { var hasNativeReflectConstruct = Tooltip_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = Tooltip_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = Tooltip_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Tooltip_possibleConstructorReturn(this, result); }; }

function Tooltip_possibleConstructorReturn(self, call) { if (call && (Tooltip_typeof(call) === "object" || typeof call === "function")) { return call; } return Tooltip_assertThisInitialized(self); }

function Tooltip_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function Tooltip_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function Tooltip_getPrototypeOf(o) { Tooltip_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return Tooltip_getPrototypeOf(o); }

/**
 * @fileOverview Tooltip
 */






var CLS_PREFIX = 'recharts-tooltip-wrapper';
var EPS = 1;

function defaultUniqBy(entry) {
  return entry.dataKey;
}

function getUniqPayload(option, payload) {
  if (option === true) {
    return uniqBy_default()(payload, defaultUniqBy);
  }

  if (isFunction_default()(option)) {
    return uniqBy_default()(payload, option);
  }

  return payload;
}

function Tooltip_renderContent(content, props) {
  if ( /*#__PURE__*/react_default.a.isValidElement(content)) {
    return /*#__PURE__*/react_default.a.cloneElement(content, props);
  }

  if (isFunction_default()(content)) {
    return /*#__PURE__*/react_default.a.createElement(content, props);
  }

  return /*#__PURE__*/react_default.a.createElement(DefaultTooltipContent_DefaultTooltipContent, props);
}

var Tooltip_Tooltip = /*#__PURE__*/function (_PureComponent) {
  Tooltip_inherits(Tooltip, _PureComponent);

  var _super = Tooltip_createSuper(Tooltip);

  function Tooltip() {
    var _this;

    Tooltip_classCallCheck(this, Tooltip);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _super.call.apply(_super, [this].concat(args));
    _this.state = {
      boxWidth: -1,
      boxHeight: -1
    };
    _this.wrapperNode = void 0;

    _this.getTranslate = function (_ref) {
      var key = _ref.key,
          tooltipDimension = _ref.tooltipDimension,
          viewBoxDimension = _ref.viewBoxDimension;
      var _this$props = _this.props,
          allowEscapeViewBox = _this$props.allowEscapeViewBox,
          coordinate = _this$props.coordinate,
          offset = _this$props.offset,
          position = _this$props.position,
          viewBox = _this$props.viewBox;

      if (position && Object(DataUtils["h" /* isNumber */])(position[key])) {
        return position[key];
      }

      var restricted = coordinate[key] - tooltipDimension - offset;
      var unrestricted = coordinate[key] + offset;

      if (allowEscapeViewBox[key]) {
        return unrestricted;
      }

      var tooltipBoundary = coordinate[key] + tooltipDimension + offset;
      var viewBoxBoundary = viewBox[key] + viewBoxDimension;

      if (tooltipBoundary > viewBoxBoundary) {
        return Math.max(restricted, viewBox[key]);
      }

      return Math.max(unrestricted, viewBox[key]);
    };

    return _this;
  }

  Tooltip_createClass(Tooltip, [{
    key: "componentDidMount",
    value: function componentDidMount() {
      this.updateBBox();
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate() {
      this.updateBBox();
    }
  }, {
    key: "updateBBox",
    value: function updateBBox() {
      var _this$state = this.state,
          boxWidth = _this$state.boxWidth,
          boxHeight = _this$state.boxHeight;

      if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {
        var box = this.wrapperNode.getBoundingClientRect();

        if (Math.abs(box.width - boxWidth) > EPS || Math.abs(box.height - boxHeight) > EPS) {
          this.setState({
            boxWidth: box.width,
            boxHeight: box.height
          });
        }
      } else if (boxWidth !== -1 || boxHeight !== -1) {
        this.setState({
          boxWidth: -1,
          boxHeight: -1
        });
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _classNames,
          _this2 = this;

      var _this$props2 = this.props,
          payload = _this$props2.payload,
          isAnimationActive = _this$props2.isAnimationActive,
          animationDuration = _this$props2.animationDuration,
          animationEasing = _this$props2.animationEasing,
          filterNull = _this$props2.filterNull,
          payloadUniqBy = _this$props2.payloadUniqBy;
      var finalPayload = getUniqPayload(payloadUniqBy, filterNull && payload && payload.length ? payload.filter(function (entry) {
        return !isNil_default()(entry.value);
      }) : payload);
      var hasPayload = finalPayload && finalPayload.length;
      var _this$props3 = this.props,
          content = _this$props3.content,
          viewBox = _this$props3.viewBox,
          coordinate = _this$props3.coordinate,
          position = _this$props3.position,
          active = _this$props3.active,
          wrapperStyle = _this$props3.wrapperStyle;

      var outerStyle = Tooltip_objectSpread({
        pointerEvents: 'none',
        visibility: active && hasPayload ? 'visible' : 'hidden',
        position: 'absolute',
        top: 0,
        left: 0
      }, wrapperStyle);

      var translateX, translateY;

      if (position && Object(DataUtils["h" /* isNumber */])(position.x) && Object(DataUtils["h" /* isNumber */])(position.y)) {
        translateX = position.x;
        translateY = position.y;
      } else {
        var _this$state2 = this.state,
            boxWidth = _this$state2.boxWidth,
            boxHeight = _this$state2.boxHeight;

        if (boxWidth > 0 && boxHeight > 0 && coordinate) {
          translateX = this.getTranslate({
            key: 'x',
            tooltipDimension: boxWidth,
            viewBoxDimension: viewBox.width
          });
          translateY = this.getTranslate({
            key: 'y',
            tooltipDimension: boxHeight,
            viewBoxDimension: viewBox.height
          });
        } else {
          outerStyle.visibility = 'hidden';
        }
      }

      outerStyle = Tooltip_objectSpread(Tooltip_objectSpread({}, Object(es6["b" /* translateStyle */])({
        transform: this.props.useTranslate3d ? "translate3d(".concat(translateX, "px, ").concat(translateY, "px, 0)") : "translate(".concat(translateX, "px, ").concat(translateY, "px)")
      })), outerStyle);

      if (isAnimationActive && active) {
        outerStyle = Tooltip_objectSpread(Tooltip_objectSpread({}, Object(es6["b" /* translateStyle */])({
          transition: "transform ".concat(animationDuration, "ms ").concat(animationEasing)
        })), outerStyle);
      }

      var cls = classnames_default()(CLS_PREFIX, (_classNames = {}, Tooltip_defineProperty(_classNames, "".concat(CLS_PREFIX, "-right"), Object(DataUtils["h" /* isNumber */])(translateX) && coordinate && Object(DataUtils["h" /* isNumber */])(coordinate.x) && translateX >= coordinate.x), Tooltip_defineProperty(_classNames, "".concat(CLS_PREFIX, "-left"), Object(DataUtils["h" /* isNumber */])(translateX) && coordinate && Object(DataUtils["h" /* isNumber */])(coordinate.x) && translateX < coordinate.x), Tooltip_defineProperty(_classNames, "".concat(CLS_PREFIX, "-bottom"), Object(DataUtils["h" /* isNumber */])(translateY) && coordinate && Object(DataUtils["h" /* isNumber */])(coordinate.y) && translateY >= coordinate.y), Tooltip_defineProperty(_classNames, "".concat(CLS_PREFIX, "-top"), Object(DataUtils["h" /* isNumber */])(translateY) && coordinate && Object(DataUtils["h" /* isNumber */])(coordinate.y) && translateY < coordinate.y), _classNames));
      return /*#__PURE__*/react_default.a.createElement("div", {
        className: cls,
        style: outerStyle,
        ref: function ref(node) {
          _this2.wrapperNode = node;
        }
      }, Tooltip_renderContent(content, Tooltip_objectSpread(Tooltip_objectSpread({}, this.props), {}, {
        payload: finalPayload
      })));
    }
  }]);

  return Tooltip;
}(react["PureComponent"]);
Tooltip_Tooltip.displayName = 'Tooltip';
Tooltip_Tooltip.defaultProps = {
  active: false,
  allowEscapeViewBox: {
    x: false,
    y: false
  },
  offset: 10,
  viewBox: {
    x1: 0,
    x2: 0,
    y1: 0,
    y2: 0
  },
  coordinate: {
    x: 0,
    y: 0
  },
  cursorStyle: {},
  separator: ' : ',
  wrapperStyle: {},
  contentStyle: {},
  itemStyle: {},
  labelStyle: {},
  cursor: true,
  trigger: 'hover',
  isAnimationActive: !Global["a" /* Global */].isSsr,
  animationEasing: 'ease',
  animationDuration: 400,
  filterNull: true,
  useTranslate3d: false
};
// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ common_TagBar_TagBar; });

// EXTERNAL MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js + 1 modules
var core_browser_esm = __webpack_require__(0);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);

// EXTERNAL MODULE: ./node_modules/react-intl/lib/index.es.js
var index_es = __webpack_require__(4);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__(7);

// EXTERNAL MODULE: ./src/js/components/common/TagBar/styled.js
var styled = __webpack_require__(254);

// CONCATENATED MODULE: ./src/js/components/common/TagBar/TagBar.js
var _ref= true?{name:"edkt1j-TagBar",styles:"margin-top:10px;label:TagBar;"}:undefined;var TagBar_TagBar=function TagBar(_ref2){var filterValues=_ref2.filterValues,intl=_ref2.intl,intlSection=_ref2.intlSection,buttonStyle=_ref2.buttonStyle,resetActiveFilters=_ref2.resetActiveFilters;return Object(core_browser_esm["c" /* jsx */])(styled["b" /* Container */],null,Object(core_browser_esm["c" /* jsx */])(styled["c" /* List */],null,filterValues.filtersAsTags.map(function(tag){return Object(core_browser_esm["c" /* jsx */])("li",{css:_ref,key:tag},Object(core_browser_esm["c" /* jsx */])(styled["d" /* Tag */],{key:tag},Object(core_browser_esm["c" /* jsx */])(styled["e" /* TagIcon */],{className:"anticon anticon-cross",onClick:function onClick(e){e.stopPropagation();filterValues.resetFilterValue(tag);if(resetActiveFilters){resetActiveFilters();}}}),intl.formatMessage({id:"".concat(intlSection,".").concat(tag)})));})),Object(core_browser_esm["c" /* jsx */])(styled["a" /* ClearFiltersBtn */],{css:buttonStyle,onClick:function onClick(e){e.stopPropagation();filterValues.resetFilterValue();if(resetActiveFilters){resetActiveFilters();}}},intl.formatMessage({id:'orders.clearFilters'})));};/* harmony default export */ var common_TagBar_TagBar = (Object(index_es["d" /* injectIntl */])(Object(index_module["c" /* observer */])(TagBar_TagBar)));
// CONCATENATED MODULE: ./src/js/components/common/TagBar/index.js

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ band; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ point; });

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-array/src/range.js
/* harmony default export */ var range = (function(start, stop, step) {
  start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;

  var i = -1,
      n = Math.max(0, Math.ceil((stop - start) / step)) | 0,
      range = new Array(n);

  while (++i < n) {
    range[i] = start + i * step;
  }

  return range;
});

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-scale/src/init.js
var init = __webpack_require__(86);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-scale/src/ordinal.js
var ordinal = __webpack_require__(362);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-scale/src/band.js




function band() {
  var scale = Object(ordinal["a" /* default */])().unknown(undefined),
      domain = scale.domain,
      ordinalRange = scale.range,
      r0 = 0,
      r1 = 1,
      step,
      bandwidth,
      round = false,
      paddingInner = 0,
      paddingOuter = 0,
      align = 0.5;

  delete scale.unknown;

  function rescale() {
    var n = domain().length,
        reverse = r1 < r0,
        start = reverse ? r1 : r0,
        stop = reverse ? r0 : r1;
    step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);
    if (round) step = Math.floor(step);
    start += (stop - start - step * (n - paddingInner)) * align;
    bandwidth = step * (1 - paddingInner);
    if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);
    var values = range(n).map(function(i) { return start + step * i; });
    return ordinalRange(reverse ? values.reverse() : values);
  }

  scale.domain = function(_) {
    return arguments.length ? (domain(_), rescale()) : domain();
  };

  scale.range = function(_) {
    return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];
  };

  scale.rangeRound = function(_) {
    return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();
  };

  scale.bandwidth = function() {
    return bandwidth;
  };

  scale.step = function() {
    return step;
  };

  scale.round = function(_) {
    return arguments.length ? (round = !!_, rescale()) : round;
  };

  scale.padding = function(_) {
    return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;
  };

  scale.paddingInner = function(_) {
    return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;
  };

  scale.paddingOuter = function(_) {
    return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;
  };

  scale.align = function(_) {
    return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;
  };

  scale.copy = function() {
    return band(domain(), [r0, r1])
        .round(round)
        .paddingInner(paddingInner)
        .paddingOuter(paddingOuter)
        .align(align);
  };

  return init["b" /* initRange */].apply(rescale(), arguments);
}

function pointish(scale) {
  var copy = scale.copy;

  scale.padding = scale.paddingOuter;
  delete scale.paddingInner;
  delete scale.paddingOuter;

  scale.copy = function() {
    return pointish(copy());
  };

  return scale;
}

function point() {
  return pointish(band.apply(null, arguments).paddingInner(1));
}

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ src_path; });

// CONCATENATED MODULE: ./node_modules/d3-path/src/path.js
var pi = Math.PI,
    tau = 2 * pi,
    epsilon = 1e-6,
    tauEpsilon = tau - epsilon;

function Path() {
  this._x0 = this._y0 = // start of current subpath
  this._x1 = this._y1 = null; // end of current subpath
  this._ = "";
}

function path() {
  return new Path;
}

Path.prototype = path.prototype = {
  constructor: Path,
  moveTo: function(x, y) {
    this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y);
  },
  closePath: function() {
    if (this._x1 !== null) {
      this._x1 = this._x0, this._y1 = this._y0;
      this._ += "Z";
    }
  },
  lineTo: function(x, y) {
    this._ += "L" + (this._x1 = +x) + "," + (this._y1 = +y);
  },
  quadraticCurveTo: function(x1, y1, x, y) {
    this._ += "Q" + (+x1) + "," + (+y1) + "," + (this._x1 = +x) + "," + (this._y1 = +y);
  },
  bezierCurveTo: function(x1, y1, x2, y2, x, y) {
    this._ += "C" + (+x1) + "," + (+y1) + "," + (+x2) + "," + (+y2) + "," + (this._x1 = +x) + "," + (this._y1 = +y);
  },
  arcTo: function(x1, y1, x2, y2, r) {
    x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;
    var x0 = this._x1,
        y0 = this._y1,
        x21 = x2 - x1,
        y21 = y2 - y1,
        x01 = x0 - x1,
        y01 = y0 - y1,
        l01_2 = x01 * x01 + y01 * y01;

    // Is the radius negative? Error.
    if (r < 0) throw new Error("negative radius: " + r);

    // Is this path empty? Move to (x1,y1).
    if (this._x1 === null) {
      this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1);
    }

    // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.
    else if (!(l01_2 > epsilon)) {}

    // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?
    // Equivalently, is (x1,y1) coincident with (x2,y2)?
    // Or, is the radius zero? Line to (x1,y1).
    else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {
      this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1);
    }

    // Otherwise, draw an arc!
    else {
      var x20 = x2 - x0,
          y20 = y2 - y0,
          l21_2 = x21 * x21 + y21 * y21,
          l20_2 = x20 * x20 + y20 * y20,
          l21 = Math.sqrt(l21_2),
          l01 = Math.sqrt(l01_2),
          l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),
          t01 = l / l01,
          t21 = l / l21;

      // If the start tangent is not coincident with (x0,y0), line to.
      if (Math.abs(t01 - 1) > epsilon) {
        this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01);
      }

      this._ += "A" + r + "," + r + ",0,0," + (+(y01 * x20 > x01 * y20)) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21);
    }
  },
  arc: function(x, y, r, a0, a1, ccw) {
    x = +x, y = +y, r = +r;
    var dx = r * Math.cos(a0),
        dy = r * Math.sin(a0),
        x0 = x + dx,
        y0 = y + dy,
        cw = 1 ^ ccw,
        da = ccw ? a0 - a1 : a1 - a0;

    // Is the radius negative? Error.
    if (r < 0) throw new Error("negative radius: " + r);

    // Is this path empty? Move to (x0,y0).
    if (this._x1 === null) {
      this._ += "M" + x0 + "," + y0;
    }

    // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).
    else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {
      this._ += "L" + x0 + "," + y0;
    }

    // Is this arc empty? We’re done.
    if (!r) return;

    // Does the angle go the wrong way? Flip the direction.
    if (da < 0) da = da % tau + tau;

    // Is this a complete circle? Draw two arcs to complete the circle.
    if (da > tauEpsilon) {
      this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x - dx) + "," + (y - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0);
    }

    // Is this arc non-empty? Draw an arc!
    else if (da > epsilon) {
      this._ += "A" + r + "," + r + ",0," + (+(da >= pi)) + "," + cw + "," + (this._x1 = x + r * Math.cos(a1)) + "," + (this._y1 = y + r * Math.sin(a1));
    }
  },
  rect: function(x, y, w, h) {
    this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y) + "h" + (+w) + "v" + (+h) + "h" + (-w) + "Z";
  },
  toString: function() {
    return this._;
  }
};

/* harmony default export */ var src_path = (path);

// CONCATENATED MODULE: ./node_modules/d3-path/index.js


// EXPORTS
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ identity; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ copy; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* binding */ transformer; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ continuous; });

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-array/src/bisect.js
var bisect = __webpack_require__(1594);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-interpolate/src/value.js + 10 modules
var value = __webpack_require__(684);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-interpolate/src/number.js
var number = __webpack_require__(380);

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-interpolate/src/round.js
var round = __webpack_require__(1595);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-scale/src/constant.js
function constants(x) {
  return function() {
    return x;
  };
}

// EXTERNAL MODULE: ./node_modules/recharts/node_modules/d3-scale/src/number.js
var src_number = __webpack_require__(287);

// CONCATENATED MODULE: ./node_modules/recharts/node_modules/d3-scale/src/continuous.js





var unit = [0, 1];

function identity(x) {
  return x;
}

function normalize(a, b) {
  return (b -= (a = +a))
      ? function(x) { return (x - a) / b; }
      : constants(isNaN(b) ? NaN : 0.5);
}

function clamper(a, b) {
  var t;
  if (a > b) t = a, a = b, b = t;
  return function(x) { return Math.max(a, Math.min(b, x)); };
}

// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].
// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].
function bimap(domain, range, interpolate) {
  var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];
  if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);
  else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);
  return function(x) { return r0(d0(x)); };
}

function polymap(domain, range, interpolate) {
  var j = Math.min(domain.length, range.length) - 1,
      d = new Array(j),
      r = new Array(j),
      i = -1;

  // Reverse descending domains.
  if (domain[j] < domain[0]) {
    domain = domain.slice().reverse();
    range = range.slice().reverse();
  }

  while (++i < j) {
    d[i] = normalize(domain[i], domain[i + 1]);
    r[i] = interpolate(range[i], range[i + 1]);
  }

  return function(x) {
    var i = Object(bisect["a" /* default */])(domain, x, 1, j) - 1;
    return r[i](d[i](x));
  };
}

function copy(source, target) {
  return target
      .domain(source.domain())
      .range(source.range())
      .interpolate(source.interpolate())
      .clamp(source.clamp())
      .unknown(source.unknown());
}

function transformer() {
  var domain = unit,
      range = unit,
      interpolate = value["a" /* default */],
      transform,
      untransform,
      unknown,
      clamp = identity,
      piecewise,
      output,
      input;

  function rescale() {
    var n = Math.min(domain.length, range.length);
    if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);
    piecewise = n > 2 ? polymap : bimap;
    output = input = null;
    return scale;
  }

  function scale(x) {
    return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));
  }

  scale.invert = function(y) {
    return clamp(untransform((input || (input = piecewise(range, domain.map(transform), number["a" /* default */])))(y)));
  };

  scale.domain = function(_) {
    return arguments.length ? (domain = Array.from(_, src_number["a" /* default */]), rescale()) : domain.slice();
  };

  scale.range = function(_) {
    return arguments.length ? (range = Array.from(_), rescale()) : range.slice();
  };

  scale.rangeRound = function(_) {
    return range = Array.from(_), interpolate = round["a" /* default */], rescale();
  };

  scale.clamp = function(_) {
    return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;
  };

  scale.interpolate = function(_) {
    return arguments.length ? (interpolate = _, rescale()) : interpolate;
  };

  scale.unknown = function(_) {
    return arguments.length ? (unknown = _, scale) : unknown;
  };

  return function(t, u) {
    transform = t, untransform = u;
    return rescale();
  };
}

function continuous() {
  return transformer()(identity, identity);
}

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);

// CONCATENATED MODULE: ./node_modules/@ant-design/icons-svg/es/asn/BoldOutlined.js
// This icon file is generated automatically.
var BoldOutlined_BoldOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M697.8 481.4c33.6-35 54.2-82.3 54.2-134.3v-10.2C752 229.3 663.9 142 555.3 142H259.4c-15.1 0-27.4 12.3-27.4 27.4v679.1c0 16.3 13.2 29.5 29.5 29.5h318.7c117 0 211.8-94.2 211.8-210.5v-11c0-73-37.4-137.3-94.2-175.1zM328 238h224.7c57.1 0 103.3 44.4 103.3 99.3v9.5c0 54.8-46.3 99.3-103.3 99.3H328V238zm366.6 429.4c0 62.9-51.7 113.9-115.5 113.9H328V542.7h251.1c63.8 0 115.5 51 115.5 113.9v10.8z" } }] }, "name": "bold", "theme": "outlined" };
/* harmony default export */ var asn_BoldOutlined = (BoldOutlined_BoldOutlined);

// EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/components/AntdIcon.js + 4 modules
var AntdIcon = __webpack_require__(163);

// CONCATENATED MODULE: ./node_modules/@ant-design/icons/es/icons/BoldOutlined.js
// GENERATE BY ./scripts/generate.ts
// DON NOT EDIT IT MANUALLY




var icons_BoldOutlined_BoldOutlined = function BoldOutlined(props, ref) {
  return react["createElement"](AntdIcon["a" /* default */], Object.assign({}, props, {
    ref: ref,
    icon: asn_BoldOutlined
  }));
};

icons_BoldOutlined_BoldOutlined.displayName = 'BoldOutlined';
/* harmony default export */ var icons_BoldOutlined = __webpack_exports__["a"] = (react["forwardRef"](icons_BoldOutlined_BoldOutlined));
// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);

// CONCATENATED MODULE: ./node_modules/@ant-design/icons-svg/es/asn/ItalicOutlined.js
// This icon file is generated automatically.
var ItalicOutlined_ItalicOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M798 160H366c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h181.2l-156 544H229c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8H474.4l156-544H798c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z" } }] }, "name": "italic", "theme": "outlined" };
/* harmony default export */ var asn_ItalicOutlined = (ItalicOutlined_ItalicOutlined);

// EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/components/AntdIcon.js + 4 modules
var AntdIcon = __webpack_require__(163);

// CONCATENATED MODULE: ./node_modules/@ant-design/icons/es/icons/ItalicOutlined.js
// GENERATE BY ./scripts/generate.ts
// DON NOT EDIT IT MANUALLY




var icons_ItalicOutlined_ItalicOutlined = function ItalicOutlined(props, ref) {
  return react["createElement"](AntdIcon["a" /* default */], Object.assign({}, props, {
    ref: ref,
    icon: asn_ItalicOutlined
  }));
};

icons_ItalicOutlined_ItalicOutlined.displayName = 'ItalicOutlined';
/* harmony default export */ var icons_ItalicOutlined = __webpack_exports__["a"] = (react["forwardRef"](icons_ItalicOutlined_ItalicOutlined));
// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);

// CONCATENATED MODULE: ./node_modules/@ant-design/icons-svg/es/asn/UnderlineOutlined.js
// This icon file is generated automatically.
var UnderlineOutlined_UnderlineOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M824 804H200c-4.4 0-8 3.4-8 7.6v60.8c0 4.2 3.6 7.6 8 7.6h624c4.4 0 8-3.4 8-7.6v-60.8c0-4.2-3.6-7.6-8-7.6zm-312-76c69.4 0 134.6-27.1 183.8-76.2C745 602.7 772 537.4 772 468V156c0-6.6-5.4-12-12-12h-60c-6.6 0-12 5.4-12 12v312c0 97-79 176-176 176s-176-79-176-176V156c0-6.6-5.4-12-12-12h-60c-6.6 0-12 5.4-12 12v312c0 69.4 27.1 134.6 76.2 183.8C377.3 701 442.6 728 512 728z" } }] }, "name": "underline", "theme": "outlined" };
/* harmony default export */ var asn_UnderlineOutlined = (UnderlineOutlined_UnderlineOutlined);

// EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/components/AntdIcon.js + 4 modules
var AntdIcon = __webpack_require__(163);

// CONCATENATED MODULE: ./node_modules/@ant-design/icons/es/icons/UnderlineOutlined.js
// GENERATE BY ./scripts/generate.ts
// DON NOT EDIT IT MANUALLY




var icons_UnderlineOutlined_UnderlineOutlined = function UnderlineOutlined(props, ref) {
  return react["createElement"](AntdIcon["a" /* default */], Object.assign({}, props, {
    ref: ref,
    icon: asn_UnderlineOutlined
  }));
};

icons_UnderlineOutlined_UnderlineOutlined.displayName = 'UnderlineOutlined';
/* harmony default export */ var icons_UnderlineOutlined = __webpack_exports__["a"] = (react["forwardRef"](icons_UnderlineOutlined_UnderlineOutlined));
// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);

// CONCATENATED MODULE: ./node_modules/@ant-design/icons-svg/es/asn/OrderedListOutlined.js
// This icon file is generated automatically.
var OrderedListOutlined_OrderedListOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M920 760H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-568H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM216 712H100c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h72.4v20.5h-35.7c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h35.7V838H100c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h116c2.2 0 4-1.8 4-4V716c0-2.2-1.8-4-4-4zM100 188h38v120c0 2.2 1.8 4 4 4h40c2.2 0 4-1.8 4-4V152c0-4.4-3.6-8-8-8h-78c-2.2 0-4 1.8-4 4v36c0 2.2 1.8 4 4 4zm116 240H100c-2.2 0-4 1.8-4 4v36c0 2.2 1.8 4 4 4h68.4l-70.3 77.7a8.3 8.3 0 00-2.1 5.4V592c0 2.2 1.8 4 4 4h116c2.2 0 4-1.8 4-4v-36c0-2.2-1.8-4-4-4h-68.4l70.3-77.7a8.3 8.3 0 002.1-5.4V432c0-2.2-1.8-4-4-4z" } }] }, "name": "ordered-list", "theme": "outlined" };
/* harmony default export */ var asn_OrderedListOutlined = (OrderedListOutlined_OrderedListOutlined);

// EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/components/AntdIcon.js + 4 modules
var AntdIcon = __webpack_require__(163);

// CONCATENATED MODULE: ./node_modules/@ant-design/icons/es/icons/OrderedListOutlined.js
// GENERATE BY ./scripts/generate.ts
// DON NOT EDIT IT MANUALLY




var icons_OrderedListOutlined_OrderedListOutlined = function OrderedListOutlined(props, ref) {
  return react["createElement"](AntdIcon["a" /* default */], Object.assign({}, props, {
    ref: ref,
    icon: asn_OrderedListOutlined
  }));
};

icons_OrderedListOutlined_OrderedListOutlined.displayName = 'OrderedListOutlined';
/* harmony default export */ var icons_OrderedListOutlined = __webpack_exports__["a"] = (react["forwardRef"](icons_OrderedListOutlined_OrderedListOutlined));
// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);

// CONCATENATED MODULE: ./node_modules/@ant-design/icons-svg/es/asn/UnorderedListOutlined.js
// This icon file is generated automatically.
var UnorderedListOutlined_UnorderedListOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z" } }] }, "name": "unordered-list", "theme": "outlined" };
/* harmony default export */ var asn_UnorderedListOutlined = (UnorderedListOutlined_UnorderedListOutlined);

// EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/components/AntdIcon.js + 4 modules
var AntdIcon = __webpack_require__(163);

// CONCATENATED MODULE: ./node_modules/@ant-design/icons/es/icons/UnorderedListOutlined.js
// GENERATE BY ./scripts/generate.ts
// DON NOT EDIT IT MANUALLY




var icons_UnorderedListOutlined_UnorderedListOutlined = function UnorderedListOutlined(props, ref) {
  return react["createElement"](AntdIcon["a" /* default */], Object.assign({}, props, {
    ref: ref,
    icon: asn_UnorderedListOutlined
  }));
};

icons_UnorderedListOutlined_UnorderedListOutlined.displayName = 'UnorderedListOutlined';
/* harmony default export */ var icons_UnorderedListOutlined = __webpack_exports__["a"] = (react["forwardRef"](icons_UnorderedListOutlined_UnorderedListOutlined));
// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);

// CONCATENATED MODULE: ./node_modules/@ant-design/icons-svg/es/asn/SaveOutlined.js
// This icon file is generated automatically.
var SaveOutlined_SaveOutlined = { "icon": { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z" } }] }, "name": "save", "theme": "outlined" };
/* harmony default export */ var asn_SaveOutlined = (SaveOutlined_SaveOutlined);

// EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/components/AntdIcon.js + 4 modules
var AntdIcon = __webpack_require__(163);

// CONCATENATED MODULE: ./node_modules/@ant-design/icons/es/icons/SaveOutlined.js
// GENERATE BY ./scripts/generate.ts
// DON NOT EDIT IT MANUALLY




var icons_SaveOutlined_SaveOutlined = function SaveOutlined(props, ref) {
  return react["createElement"](AntdIcon["a" /* default */], Object.assign({}, props, {
    ref: ref,
    icon: asn_SaveOutlined
  }));
};

icons_SaveOutlined_SaveOutlined.displayName = 'SaveOutlined';
/* harmony default export */ var icons_SaveOutlined = __webpack_exports__["a"] = (react["forwardRef"](icons_SaveOutlined_SaveOutlined));
// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__(2);

// CONCATENATED MODULE: ./node_modules/@ant-design/icons-svg/es/asn/SaveTwoTone.js
// This icon file is generated automatically.
var SaveTwoTone_SaveTwoTone = { "icon": function render(primaryColor, secondaryColor) { return { "tag": "svg", "attrs": { "viewBox": "64 64 896 896", "focusable": "false" }, "children": [{ "tag": "path", "attrs": { "d": "M704 320c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V184H184v656h656V341.8l-136-136V320zM512 730c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144z", "fill": secondaryColor } }, { "tag": "path", "attrs": { "d": "M512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z", "fill": primaryColor } }, { "tag": "path", "attrs": { "d": "M893.3 293.3L730.7 130.7c-.7-.7-1.4-1.3-2.1-2-.1-.1-.3-.2-.4-.3-.7-.7-1.5-1.3-2.2-1.9a64 64 0 00-22-11.7V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840z", "fill": primaryColor } }] }; }, "name": "save", "theme": "twotone" };
/* harmony default export */ var asn_SaveTwoTone = (SaveTwoTone_SaveTwoTone);

// EXTERNAL MODULE: ./node_modules/@ant-design/icons/es/components/AntdIcon.js + 4 modules
var AntdIcon = __webpack_require__(163);

// CONCATENATED MODULE: ./node_modules/@ant-design/icons/es/icons/SaveTwoTone.js
// GENERATE BY ./scripts/generate.ts
// DON NOT EDIT IT MANUALLY




var icons_SaveTwoTone_SaveTwoTone = function SaveTwoTone(props, ref) {
  return react["createElement"](AntdIcon["a" /* default */], Object.assign({}, props, {
    ref: ref,
    icon: asn_SaveTwoTone
  }));
};

icons_SaveTwoTone_SaveTwoTone.displayName = 'SaveTwoTone';
/* harmony default export */ var icons_SaveTwoTone = __webpack_exports__["a"] = (react["forwardRef"](icons_SaveTwoTone_SaveTwoTone));
/*# sourceMappingURL=main.1eb1cae9.css.map*/